1、1 从低位开始取出长整型变量s中奇数位上的数,依次构成 一个新数放在t中。 例如,当s中的数为:7654321时,t 中 的数为:7531。 #include void main( ) long s, t, sl=10;printf(“nPlease enter s:“); scanf(“%ld“, ,若是从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。该怎么办呢?,t = s %10;,sl = sl*10;,2求一维数组a中的值为偶数的元素之和。 例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9 ,程序 的输出应为: The result is
2、: 62 #include #include void main() int a10=10,4,2,7,3,12,5,34,5,9,i,s;s = 0;for ( i=0; i10; i+)/*found*/if (i % 2 = 0)s = s + ai;/*found*/print(“The result is: %dn“, s); 注意:和求下标为偶数的元素之和区分开;另外求值为奇数的 元素之和呢?,if (ai % 2 = = 0),printf(“The result is: %dn“, s);,若用函数调用来求呢?#include int sum ( int arr ,int n
3、) int i,s;s = 0;for ( i=0; in; i+)if (arri % 2 = 0)/*found*/s = s + i;return (s);void main() int a10=10,4,2,7,3,12,5,34,5,9,i,s;/*found*/s = sum( a ,2 );printf(“The result is: %dn“, s);,s = s +arri;,s = sum( a ,10 );,3.求二维数组a中的最大值。 例如,当二维数组a中的元素为:4 4 347 3 125 6 5 程序的输出应为:The max is: 34 。#include in
4、t arrmax( int arr33) int i,j,max;max=arr00; /*found*/for ( i=1; i3; i+)for ( j=0; j3; j+)if (max arrij) max = arrij;return (max); void main() int a33=4,4,34,7,3,12,5,6,5,i,j;/*found*/ printf(“The max is: %dn“,arrmax(a00); ,i=0;,arrmax(a),4. 求一维数组a中的最大元素及其下标。例如,当一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9,程序的 输
5、出应为:The max is: 34,pos is: 7 。#include void main() int a10=1,4,2,7,3,12,5,34,5,9,i,max,pos;max = a0;pos = 0;for ( i=1; i ai)max = ai;/*found*/i = pos; printf(“The max is: %d ,pos is: %dn“, max , pos); ,若用函数调用呢? #include int max;maxarr(int arr ) int pos,i;/*found*/ max = 0;pos = 0;for ( i=1; i10; i+)
6、if (max arri) max = arri;pos = i; /*found*/return (i);void main() int a10=34,4,2,7,3,12,5,8,5,9;printf(“The max is: %d ,pos is: %dn“, max , maxarr(a);,max=arr0;,return(pos);,maxai,pos=i;,5猴子第一天摘下若干桃子,当即吃了一半又多吃一个;第二天 将剩下的桃子吃了半又多吃一个,到第12天的早上,只剩下一个 桃子,求第一天共摘了多少桃子。#include void main() int i,j,x,p;x=1;/*
7、found*/j=12;while(j=1) p=(x+1)*2;/*found*/p=x;j-;printf(“total is %dn“,p);,j=11;,x=p;,6. 将长整型数中每一位上为偶数的数依次取出,构成一个新数放 在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:8642。#include void main() long s, t, sl=1;int d;printf(“nPlease enter s:“); scanf(“%ld“, ,(d%2=0),s/=10;,若是将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高
8、位仍在高位,低位仍在低位呢?,7求出a所指数组中最大数(规定最大数不在a0中),最大值和a0中的数 对调。例如数组中原有的数为:7、10、12、0、3、6、9、11、5、8,输出的结果为:12、10、7、0、3、6、9、11、5、8。#include #define N 10void main( ) int aN=7,10,12,0,3,6,9,11,5,8, n=10, i, k,m,max,t;for ( i = 0; iN; i+) printf(“%d “,ai); printf(“n“);max=a0; m=0;for ( k = 1; k N; k+ )/*found*/if (
9、akmax ) max = ak; m = k; /*found*/t = a0; am=a0; am = t;for ( i=0; iN; i+ ) printf(“%d “,ai);printf(“n“);,a0=am;,if(akmax)或if(maxak),若是求出最小数呢?,8输出200300之间的所有素数,要求每行输出8个素数。#include #include void main() int m,j,n=0,k;for(m=200;mk) if(n%8=0) printf(“n“);/*found*/printf(“%6d“,j);n+; ,break;,printf(“%6d“
10、,m);,9打印九九乘法表#include void main() int i,j,k;for(i=1;i=9;i+)/*found*/ for(j=1;j=9;j+)printf(“%3d *%3d =%3d“,i,j,i*j);/*found*/printf(“n“); for(j=1;j=i;j+) printf(“n“);,j=i;,printf(“n“);,10输出100200之间既不能被3整除也不能被7整除的 整数并统计这些整数的个数,要求每行输出8个数。 #include void main() int i;/*found*/int n;for(i=100;i=200;i+) /
11、*found*/if(i%3=0,int n=0;,if(i%3!=0&i%7!=0),11打印输出以下图形* * * * * * * * * * * * * * * * * * * * * #include void main() int i,j;for(i=1;i=5;i+)/*found*/ printf( “n “)for(j=1;j=10-i;j+)printf(“ “);/*found*/for(j=1;j=2*i+1;j+)printf(“*“); printf(“n“);,for(j=1;j=2*i-1;j+),printf( “n“);,12求:1!+2!+3!+ + 20!
12、#include void main()/*found*/ long int s,t;int n;s=0;t=1;/*found*/for(n=1;n20;n+) t=t*(n+1);s=s+t; printf(“1!+2!+3!+ +20!=%en“,s);,float s,t;,for(n=0;n20;n+),13输入一个百分制成绩,打印出五级记分成绩。#include 100);t=score/10;/*found*/switch(score) case 10:case 9:printf(“Excellent!n“);break;case 8:printf(“Good!n“);break
13、;case 7:printf(“Middle!n“);break;case 6:printf(“Pass!n“);break;/*found*/else :printf(“Fail!n“); ,score/10) 或 swich(t),default,14求一维数组a中值为奇数的元素的平均值。#include double average( int arr , int n ) int k=0,i; double s;s = 0;for ( i=0 ;in; i+)/*found*/if (arri % 2 = 1) s = s + arri; k+; return (s/k) ; main()
14、 int a12=10,4,2,7,3,12,5,34,5,9,21,18;double s;/*found*/s = average(a12,12);printf(“The result is: %.2fn“, s);,if (arri % 2 = =1),s = average(a,12);,15将m,n之间的所有素数存放到一维数组a中,并输出。 #include #include prime (int m) int j,k;k=sqrt(m);for ( j=2; jn) t=m;m=n;n=t;/*found*/for (i=m; i=100; i+)/*found*/if(prime
15、=1) ac=i;printf(“%4d“,ac);c+; ,for (i=m; i=n; i+),if(prime(i)=1),16求一维数组a中所有元素的平均值。#include float average( a,n)/*found*/ int a,n;int j; float aver;/*found*/float s;for ( j=0; jn; j+)s += aj; aver = s / n;return (aver); main() int a12=10,4,2,7,3,12,5,34,5,9,6,8;printf(“Theaverageis:%.2fn“,average(a,1
16、2);,int a,n;,float s=0; 或 float s;s=0;,17将2,100之间的所有素数存放到一维数组a中, 并输出这些素数。 #include #include void main() int a100,i,j,k,m;m = 0;for ( i=2; i= k+1)am+ = i;for(i=0;im;i+) printf(“%5d“,ai); ,break;,if(j = k+1),18求一维数组a中所有元素的平均值,结果保留两位小数。 例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9 程序的输出应为:The aver is: 9.10 。#
17、include void main() int a10=10,4,2,7,3,12,5,34,5,9,i;/*found*/int aver,s;/*found*/s = 0;for ( i=1; i10; i+)s += ai; aver = s / i;printf(“The aver is: %.2fn“, aver);,s = a0;,float aver,s;,19. 当M为5时,如果从键盘上输入的5个数 分别为:1、2、3、4、5时,输出应为:1 2 3 2 1。 当M为10时,如果从键盘上输入的10个数 分别为:1、2、3、4、5、6、7、8、 9、10 时, 输出应为:1 2
18、3 4 5 5 4 3 2 1。 #define M 5void main( ) int i,a100,t;/*found*/for(i=0;iM;i+) scanf(“%d“, ,20. 在第一个循环中给a数组的前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1;在最后一个循环中输出对称折叠以后的a数组的前10个元素。 #include void main( ) int i,a10;for(i=1;i=10;i+)/*found*/ai-1=i;for(i=0;i5;i+) /*foun
19、d*/a10-i-1=ai; for(i=0;i10;i+) printf(“%5d“,ai);printf(“n“); ,21. 把数组a(大小为M)中前M-1个元素中的最大值放入a的最后一个元素中。 #include #define M 11 void main() int aM,i;for(i=0;iM-1;i+)scanf(“%d“, ,m! 22.求 Cmn= 之值。n! * (m-n)! #include long int fun(int x)long int s=1; int i;for (i=1;i=x;i+)s*=i;/*found*/return(s);void main(
20、) long int m=12,n=2,s1,s2,s3;s1=fun(m); s2=fun(n); s3=fun(m-n);/*found*/printf(“cmn is : %ld“,s1/(s2*s3) ); ,viod main() long int m=12,n=2; printf(“cmn is : %ld“,fun(m)/fun(n)/fun(m-n); ,23. 计算正整数num的各位上的数字之和。 若输入:202,则输出应该是:4。void main( )int num,k;/*found*/k=0;printf(“Please enter a number:“) ;scan
21、f(“%d“,24从键盘上输入一个正整数n,计算并输出n的阶乘。 例如,如果从键盘上输入8,程序的运行结果应为:The result is: 40320。#include long fac( int n ) int i;long t=1;for( i=2;i=n;i+)t = t*i;return (t);void main() int n;long int s;printf(“Enter an integer number:“);/*found*/scanf(“%d“,25从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数. 例如:从键盘上输入2345, 则程
22、序运行的结果应当为:n=2345。#include “stdio.h“void main() char s10; int i;long int n=0;/*found*/scanf(“%s“,s); 或gets(s);/*found*/for(i=0;istrlen(s);i+) 或for(i=0; si!=0;i+)n=n*10+si-0;printf(“n=%ldn“,n); ,26. 求一维数组a中素数的个数。 例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13, 则程序的输出应为:prime number(s) is(are): 6。 #include void
23、main() int a10=2,3,5,7,8,9,10,11,12,13,i,j,k,count;count = 0;for ( i=0; i=k+1) count+;/*found*/printf(“prime number(s) is(are): %d“,count);,27输出Fabonacci数列:1,1,2,3,5,8,的 前20项的值,要求每行输出5个数。 #include “stdio.h“void main() long int f20=1,1;int i;/*found*/printf(“%8ld%8ld “,f0,f1);for(i=2;i20;i+) fi=fi-1+
24、fi-2;/*found*/if(i%5=0) printf(“n“);printf(“%8ld“,fi); ,28求一维数组a中非素数之和。 例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,15,17, 则程序的输出应为:Sum is: 54。 #include #include void main() int a12=2,3,5,7,8,9,10,11,12,13,15,17,i,j,k,s;s = 0;for ( i=0; i12; i+)k=sqrt(ai);for ( j=2;j = k; j+)/*found*/if (ai% j = 0)break;/*
25、found*/if( j=k )s += ai;printf(“Sum is: %d“,s);,29求两个正整数m,n之间的非素数之和(包含m和n)。 例如:如果数组m=2,n=20,则程序的输出应为:Sum is: 132。#include #include void main() int m=2,n=20,i,j,k,sum;/*found*/sum=0;for ( i=m; i=n; i+) k=sqrt(i);for (j=2;j = k; j+)if (i % j = 0) break;/*found*/if(j=k ) sum += i;printf(“Sum is: %dn“,s
26、um);,30将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。 #include void main() char s6; int n=0,j=0;/*found*/gets(s);/*found*/while(sj!=0) n=n*8+sj-0;j+; printf(“%dn“,n); ,31计算1到M(M为100)之间的奇数之和及偶数之和。程序运行结果为: sum of evens is 2550sum of odds is 2500#include #define M 100void main() int a,b,c,i;a=0;c=
27、0;/*found*/for(i=1;i=M;i+=2) a+=i;/*found*/b=i+1;c+=b; printf(“sum of evens is %dn“,c);printf(“sum of odds is %dn“,a); ,32实现在N行M列的二维数组中,找出每一行上的最大值,且原数组值不变。 例如:如果二维数组元素的值为:1 5 7 42 6 4 38 2 3 1 时,程序的运行结果应为:The max value in line 0 is 7The max value in line 1 is 6The max value in line 2 is 8#define M 4
28、#define N 3void main() int i,j,p,xNM=1,5,7,4,2,6,4,3,8,2,3,1;/*found*/for(i=0;iN;i+) p=0;for(j=0;jM;j+)if(xipxij)/*found*/xip=xij; 或p=j;printf(“The max value in line %d is %dn“,i,xip);,33查找n在数组a中最后一次出现的位置。例如:如果a数组中的元素为:1,5,2,5,6,8,7,4,3,0, 当n=5时,程序的输出结果为:5 is No.3 。 当n=10时,程序的输出结果应为:10 not found !。#
29、include void main( ) int a10=1,5,2,5,6,8,7,4,3,0;int i,k,n,f=0;scanf(“%d“, ,若是n第一次出现的位置: if(n=ai) f=1; k=i; break; ,34求两个正整数x,y的最小公倍数。 例如:如果x=24,y=36,程序的输出应为:min is : 72。#include #include void main() int x,y,t,i;printf(“Please enter two numbers:“);scanf(“%d,%d“,35求两个正整数x,y的最大公约数和最小公倍数。 例如:如果x=24,y=36,程序的输出应为: max is : 12, min is : 72 。#include #include void main() int x,y,t,max,min,i,n1,n2;scanf(“%d,%d“,