尔游网
您的当前位置:首页(完整版)计算机二级C语言考试编程题题库

(完整版)计算机二级C语言考试编程题题库

来源:尔游网
计算机c语言编程题库

1、求100之内自然数中最大的能被17整除的数。

void main() { int i; }

for(i=100;i>0;i--) if(i%17==0)break; printf(\"%d\\n\

2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。

void main() { int a,b,c; for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { for(c=1;c<=9;c++) if(a*100+b*10+c+c*100+b*10+a==1333) printf(\"%d,%d,%d\\n\ } } }

3、计算并输出200-400之间不能被3整除的整数的和。

void main()

{ int i,sum=0; for(i=200;i<=400;i++) if(i%3!=0) sum=sum+i; printf(\"%d\\n\}

4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。

void main()

{ int i,n=0,sum=0; int a[10];

printf(“请输入10个数:”);

for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<10;i++) if(a[i]>=0) { sum=sum+a[i]; n++;}

printf(\"非负个数是%d,sum=%d\\n\}

5、求100之内自然数中偶数之和。

void main()

{ int i,sum=0; for(i=0;i<=100;i++) if(i%2==0) sum=sum+i;

printf(\"sum=%d\\n\}

6、输入5个数,求和并输出。要求编写求和的函数。

void main()

{ int b(int x[],int n); int sum=0; int a[5]; int i;

printf(\"请输入5个数:\"); for(i=0;i<5;i++) scanf(\"%d\ sum=b(a,5);

printf(\"sum=%d\\n\}

int b(int x[],int n) { int i,sum=0; for(i=0;i<5;i++) sum=sum+x[i]; return sum; }

7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。

void main()

{ int i,sum=0; for(i=1;i<=99;i=i+2) sum=sum+i*(i+1)*(i+2); printf(\"%d\\n\}

8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。void main()

{ int i,n; char b[20];

printf(\"请输入字符串:\"); gets(b); n=strlen(b); for(i=0;i9、编写程序,将一个一维数组的元素逆序存放并输出。例如,原顺序为1,2,3,4,5,逆序后为5,4,3,2,1。

void main() { int i; int a[5];

printf(“请输入5个数:”); for(i=0;i<5;i++) scanf(“%d”,&a[i]); for(i=0;i<2;i++) {

t=a[i]; a[i]=a[4-i]; a[4-i]=t; } for(i=0;i<5;i++) printf(\"%d \ printf(\"\\n\"); }

11、编程判断输入的整数的正负性和奇偶性。如果为正数,输出z;如果为负数,输出f;如果为偶数,输出o;如果为奇数,输出j

void main() { int a;

printf(“请输入一个数:”); scanf(“%d”,&a); if(a>0)

printf(\"z\\n\"); if(a<0)

printf(\"f\\n\"); if(a%2==0) printf(\"o\\n\");

if(a%2!=0) printf(\"j\\n\"); }

12、计算并输出1-200之间不能被5整除的整数的和。

void main()

{ int i,sum=0; for(i=1;i<=200;i++) if(i%5!=0) sum=sum+i; printf(\"%d\\n\}

13、从键盘输入n和a的值,计算a+aa+aaa+...+aa...a(n个a)的值。

void main() { int i,a,n; long int sum=0,st=0; printf(\"请输a和n:\"); scanf(\"%d%d\ for(i=1;i<=n;i++) { st=st+a; sum=sum+st; a=a*10; } printf(\"%ld\\n\}

14、输入5个数,求它们中最大值和平均值并输出。

void main() { int a[5]; int i,j,max,sum=0; float average;

printf(\"请输入5个数:\"); for(i=0;i<5;i++) scanf(\"%d\ max=a[0]; for(j=0;j<5;j++) { sum=sum+a[j]; if(max15、输出所有200-400之间能被3整除且个位数字为6的整数。

void main() { int i; for(i=200;i<=400;i++) if((i%3==0)&&((i-6)%10==0)) printf(\"%d\\n\ printf(\"\\n\"); }

16、编写程序,将用户输入的字符串中所有的字符a去掉,然后输出剩余的字符。

void main() { int i,j,n1; char a[20];

printf(\"请输入字符串:\"); gets(a);

n1=strlen(a); for(i=0;i17、计算并输出200-400之间不能被7整除的整数的和。

void main()

{ int i,sum=0; for(i=200;i<=400;i++) if(i%7!=0) sum=sum+i; printf(\"sum=%d\\n\}

18.计算并输出200-400之间不能被5整除的整数的和。

void main()

{ int i,sum=0; for(i=200;i<=400;i++) if(i%5!=0) sum=sum+i; printf(\"sum=%d\\n\

}

19、从键盘输入10个数,统计非正数的个数,并计算非正数的和

void main()

{ int i,n=0,sum=0; int a[10];

printf(“请输入10个数:”); for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<10;i++) if(a[i]<=0) { sum=sum+a[i]; n++;}

printf(\"非正个数是%d,sum=%d\\n\}

20、输入一串字符,将其中的大写字母变成对应的小写字母并输出。

void main() { int i,n; char a[20];

printf(\"请输入字符串:\"); gets(a); n=strlen(a); for(i=0;i='A'&&a[i]<='Z') a[i]=a[i]+32; for(i=0;i21、打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数。例如,153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。

void main() { int a,b,c,s; for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { for(c=0;c<=9;c++) if(a*100+b*10+c==a*a*a+b*b*b*b+c*c*c) { s=a*100+b*10+c; printf(\"%d\\n\ } } } }

22、一个皮球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求当它第10次落地时,共经过了多少米,第10次反弹多高?

void main() { int i; for(i=2;i<=10;i++) { sum=sum+2*h; h=h/2; } printf(\"%f,%f\\n\}

23、输出所有0-200之间能被3整除且个位数字为6的整数。

void main() { int i; for(i=0;i<=200;i++) if((i%3==0)&&((i-6)%10==0)) printf(\"%d\\n\ printf(\"\\n\"); }

24、输入一个正整数,输出它的阶乘。

void main()

{ int i,J=1,n=10;

printf(“请输入一个正整数:”); scanf(“%d”,&n); for(i=1;i<=n;i++) J=J*i;

printf(\"%d 的阶乘是:%d\\n\

}

25、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。

void main()

{int i,x,m=0,n=0,k=0,j=0; char a[20];

printf(\"请输入字符串:\"); gets(a); x=strlen(a); for(i=0;iif(a[i]=='*')break; else if(a[i]>='0'&&a[i]<='9') m++; else if(a[i]>='A'&&a[i]<='Z') n++;

else if(a[i]>='a'&&a[i]<='z') k++; else j++; } printf(\"%d,%d,%d,%d\\n\}

26、编写程序,使用循环结构输出下列图形: * * * * * * * * * * * * * * * * * * * *

void main() { int i,j,k ; for(i=0;i<5;i++) { for(j=0;j<4-i;j++) printf(\" \"); for(k=0;k<4;k++) printf(\"*\"); printf(\"\\n\"); } printf(\"\\n\"); }

27、输入一串字符,逆序输出。要求使用数组实现。

void main() {int i,j,t,n; char a[10];

printf(\"请输入字符串:\"); gets(a); n=strlen(a); for(i=0;it=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } for(j=0;j28、求1-1/2+1/3-1/4+...+1/99-1/100的值。

void main() {int n,s=1; for(n=2;n<=100;n++) { s=-s; } printf(\"1-1/2+1/3-1/4+...+1/99-1/100=%f\\n\}

29、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。

void main()

{ int a[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}}; int i,j;

printf(\"三个学生的总分和平均成绩依次为:\\n\"); for(i=0;i<3;i++) for(j=0;j<4;j++) sum=sum+a[i][j]; average=sum/4; printf(\"%.2f,%.2f\\n\ } }

30、求两个正整数的最大公约数。

void main()

{ int m,n,m1,n1,t,k;

printf(“请输入两个正整数:”); scanf(“%d%d”,&m,&n); if(m}

while((k=m1%n1)!=0) { m1=n1; n1=k; }

printf(\"%d和%d最大公约数是:%d\\n\

31、求100之内自然数中奇数之和。

void main()

{ int i,sum=0; for(i=0;i<=100;i++) if(i%2!=0) sum=sum+i;

printf(\"sum=%d\\n\}

32、输出所有200-400之间能被3整除且个位数字为7的整数。

void main() { int i; for(i=200;i<=400;i++) if((i%3==0)&&((i-7)%10==0)) printf(\"%d\\n\ printf(\"\\n\"); }

33、编程计算1*2*3+4*5*6+...+97*98*99的值。

void main() { int i,n,sum=0; for(i=1;i<=94;i=i+3) sum=sum+i*(i+1)*(i+2); printf(\"%d\\n\}

34、输入n的值,计算并输出1*1+2*2+3*3+4*4+5*5+...+n*n的值。要求编写函数f求平方。

void main() { int f(int x); int n,sum;

printf(\"请输n值:\"); scanf(\"%d\ sum=f(n); printf(\"%d\\n\}

int f(int x) { int j,z=0; for(j=1;j<=x;j++) z=z+j*j; return z; }

35、计算并输出1-200之间不能被3整除的整数的和。

void main()

{ int i,sum=0; for(i=1;i<=200;i++) if(i%3!=0) sum=sum+i; printf(\"%d\\n\

}

36、输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留一位小数。

void main()

{ int a[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}}; int i,j;

printf(\"三个学生的总分和平均成绩依次为:\\n\"); for(i=0;i<3;i++) for(j=0;j<4;j++) sum=sum+a[i][j]; average=sum/4; printf(\"%.1f,%.1f\\n\ } }

37、输入一个华氏温度,输出摄氏温度,计算公式为c=5/9*(F-32)。要求结果保留两位小数。

void main() { float F,c;

printf(“请输入一个华氏温度:”); scanf(“%f”,&F); printf(\"%.2f\\n\}

38、输入任意三个数,按从大到小的顺序输出。

void main() { int a,b,c,t;

printf(“请输入任意三个数:”);

scanf(“%d%d%d”,&a,&b,&c); if(aif(a39、用1元人民币兑换5分、2分、1分的硬币共50枚,每种硬币至少一枚,问共有多少种兑换方案?输出每一种方案中三种硬币的数量。

main()

int i,j,k; int count=0;

printf(\" 1分,2分,5分张数依次为: \\n\"); for(i=1;i<100;i++) for(j=1;j<50;j++) for(k=1;k<20;k++) if((i*a+j*b+k*c)==1&&i+j+k==50) {printf(\" %d %d %d\\n\ count++; } printf(\"共有%d种方案\\n\}

40、从键盘输入圆的半径,计算并输出圆面积与周长,要求结果保留两位小数。

void main() { int r; float c,s;

printf(“请输入半径r:”); scanf(“%d”,&r); s=pi*r*r; c=2*pi*r; printf(\"面积=%.2f,周长=%.2f\\n\

41、从键盘输入一个字符串,再输入两个正整数m和n,输出字符串中从m开始,连续n个字符。例如,输入abcdefg,2,3,输出bcd。

void main() { int i,m,n; char a[20];

printf(\"请输入字符串:\"); gets(a); n=strlen(a);

printf(\"请输入两个正整数:\"); scanf(\"%d%d\ for(i=m-1;i42、输入一个不多于5位的正整数,判断它是几位数,并逆序输出各位数字。void main() { int a,b,c,d,e; long x;

printf(“请输入一个不多于5位的正整数:”); scanf(“%d”,&x); a=x/10000; b=x%10000/1000; c=x%1000/100; d=x%100/10; e=x%10;

if(a!=0)printf(\"它是5位数,%d,%d,%d,%d,%d\\n\ else if(b!=0)printf(\"它是4位数,%d,%d,%d,%d\\n\ else if(c!=0)printf(\"它是3位数,%d,%d,%d\\n\ else if(d!=0)printf(\"它是2位数,%d,%d\\n\ else printf(\"它是1位数,%d\\n\

}

43, 输出Fibonacci数列的前40项

void main() { int a[40]={1,1}; int i; printf(\"%12d%12d\ for(i=2;i<40;i++) { if(i%4==0) printf(\"\\n\"); a[i]=a[i-1]+a[i-2];

}

printf(\"%12d\}

printf(\"\\n\");

44,判断某一年是否是闰年

void main () { int year,leap;

printf(“请输入一个年份:”); scanf(\"%d\ if (year%4==0) { if (year%100==0) { if (year%400==0) leap=1; else leap=0; } else leap=1; } else leap=0; if (leap) printf(\"%d is a leap year\\n\ else printf(\"%d is not a leap year\\n\}

45,起泡法(选择法)对十个数排序

void main() { int i,j,t; int a[10]; printf(\"请输入10个数:\\n\"); for(i=0;i<10;i++) scanf(\"%d\ for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; }

}

for(i=0;i<10;i++) printf(\"%d \printf(\"\\n\");

46,判断某个数是否为素数.

void main() { int i,m; float k;

printf(\"请输入一个正整数:\"); scanf(\"%d\ k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>k)printf(\"%d is a prime number\\n\ else printf(\"%d is not a prime number\\n\}

47,编程计算1!+2!+3!+…+10的值。

void main()

{ int i,j,sum1=1,sum=0; for(i=1;i<=10;i++) { for(j=1;j<=i;j++) sum1=sum1*j; sum=sum+sum1; }

printf(\"1!+2!+3!+…+10!=%ld\\n\}

48,求以下数列前十五项的和:2/1,3/2,5/3,8/5,13/8,21/13…。

void main() { int n; for(n=1;n<=15;n++) { sum=sum+a/b; t=a; a=a+b; b=t; } printf(\"%f\\n\}

49,从键盘输入圆柱体高与底面半径,计算并输出圆柱体表面积与体积,要求结果保留两位小数。

void main() { int h,r;

printf(“请输入圆柱体半径r和高h:”); scanf(“%d%d”,&r,&h); s=2*pi*r*r+2*pi*r*h; v=pi*r*r*h;

printf(\"s=%.2f,v=%.2f\\n\

50,从键盘输入一个十进制整型数据,计算并输出其各位上数字之和(忽略正负号)。例如,输入1234,输出10;输入-1234,输出10。

void main()

{ int i1,i2,i3,i4,n,sum; int a;

printf(\"请输入一个整数:\"); scanf(\"%d\ n=abs(a); i1=n/1000; i2=n%1000/100; i3=n%100/10; i4=n%10; sum=i1+i2+i3+i4;

printf(\"sum=%d\\n\void main() { int i,n;

printf(\"请输入存款本金x和存款年数n:\"); scanf(\"%f%d\ y=x; for(i=1;i<=n;i++) y=y*(1+r);

printf(\"%f\\n\}

52,编程判断输入的字符串是否为“回文”。所谓“回文”是指顺读和倒读都一样,如abcba。

void main() { int i,n; char a[20];

printf(\"请输入字符串:\"); gets(a); n=strlen(a);

for(i=0;i{

if(a[i]==a[n-i-1]) continue; else

printf(\"不是回文.\\n\");break; }

if(i>=n)

printf(\"是回文.\\n\"); }

53、编写程序,将用户输入的字符串中删除所有的数字,然后输出剩余的字符。

void main() { int i,j,n1; char a[20];

printf(\"请输入字符串:\"); gets(a);

n1=strlen(a); for(i=0;i='0'&&a[i]<='9')==0) printf(\"%c\ printf(\"\\n\"); }

1.有一函数:当x<0时,y=-1;当x=0时,y=0;当x>0时,y=1。 编一程序,输入x的值,输出y的值。

int main() { int x,y; scanf(\"%d\if (x>=0)

if (x>0) y=1; else y=0; else y=-1;

printf(\"x=%d,y=%d\\n\return 0; }

2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。

int main() { float a,b,c,t;

scanf(\"%f,%f,%f\ if(a{ t=a; a=b; b=t; }

if(a{ t=a; a=c; c=t; } if(b{ t=b; b=c; c=t; } return 0; }

3.有三个整数a,b,c,由键盘输入,输出其中最大者。

int main() {int a,b,c,max;

printf(\"请输入a,b,c\\n\");

scanf(\"%d,%d,%d\max=a; if(maxprintf(\"最大的数为%d\\n\return 0; }

4.编程求圆面积、圆周长。要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。

表输入圆半径r:\"); scanf(\"%f\ l=2*pi*r; s=pi*r*r;

printf(\"圆周长为:圆面积为:

5.有分段函数:当x<-10时,y=|x|+5;当-10≤x≤10时,y=4x-8;当x>10时,y=sqrt(x)。

编一程序,输入x的值,输出y的值。

int main() { int x,y; scanf(\"%d\ if(x<-10) y=abs(x)+5; else if(x<=10) y=4*x-8; else y=sqrt(x); printf(\"x=%d,y=%d\\n\ return 0;

}

6.编写程序,判断某一年是否是闰年。(闰年的条件是:能被4整除,但是不能被100整除,或者可以被400整除。)

int main() {int year,leap;

printf(\"enter year:\"); scanf(\"%d\ if (year%4==0)

if(year%100==0) if(year%400==0) leap=1; else leap=0; else leap=1; else leap=0;

if (leap) printf(\"%d is \ else printf(\"%d is not \ printf(\"a leap year.\\n\"); return 0; }

7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为c=5/9(f-32)

int main() {

float c,f;

printf(\"请输入一个华氏温度:\"); scanf(\"%f\

printf(\"摄氏温度为: return 0; }

8.有一函数:当x<1时,y=|x|;当1<=x<10时,y=2x-1;当x>=10时,y=3x+11。编一程序,输入x的值,输出y的值。

输入x:\");

scanf(\"%d\ if (x<1) y=abs(x); else if (x<10) y=2*x-1; else

y=3*x+11;

printf(\"x=%3d, y=%d\\n\

}

9.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。

main()

{ int a,b,c,*p1,*p2,*p3,t;

scanf(\"%d,%d,%d\ p1=&a;p2=&b;p3=&c; if(*p1>*p2)

{t=p1;p1=p2;p2=t;} if(*p1>*p3)

{t=p1;p1=p3;p3=t;} if(*p2>*p3)

{t=p2;p2=p3;p3=t;}

printf(\"%d,%d,%d\\n\ }

10.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后得到的字符。

void main ( ) {

char ch;

scanf(\"%c\

ch=(ch>='A'&& ch<='Z')?(ch+32):ch; printf(\"%c\\n\ }

11.编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。

void main() {

float r, h, v, s;

printf(\"表输入圆半径r、圆柱高h:\"); scanf(\"%f%f\ v=pi*r*r*h;

s=2*pi*r*r+2*pi*r*h; printf(\"圆柱体积为: printf(\"圆柱表面积为: }

12.有分段函数:当x<-5时,y=x+10; 当-5≤x≤5时,y=x^2;当x>5时,y=2x-10.

编一程序,输入x的值,输出y的值。

int main()

{ int x,y;

scanf(\"%d\ if(x<-5) y=x+10; else if(x<=5) y=x^2;

else y=2*x-10;

printf(\"x=%d,y=%d\\n\ return 0;

}

13.有三个整数a,b,c,由键盘输入,输出其中最小者。

int main() {int a,b,c,max;

printf(\"请输入a,b,c\\n\");

scanf(\"%d,%d,%d\max=a; if(max>b) max=b; if(max>c) max=c;

printf(\"最小的数为%d\\n\return 0;

}

14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。

15.输入三角形的三边长,求三角形面积。求三角形面积的公式为

area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2 void main ( ) {

float a,b,c,s,area;

scanf(\"%f%f%f\ s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(\"%f\\n\ }

16.编程求2!+4!+6!+8!+10!的值,并输出结果。

int main() {

int n=1,sum=0,j,m=1,i;

for(i=1;i<=5;i++){ m=1; for(j=1;j<=2*i;j++) m=m*j; sum=sum+m; }

printf(\"sum=%d\\n\ return 0; }

17.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想吃时就剩一个桃子了。求第一天共摘了多少个桃子。

int main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2; x2=x1; day--; } printf(\"total=%d\\n\ return 0; }

19.编程求1~100之间的所有素数,并输出结果。

int main() { int n,m=0,k,i;

for(n=1;n<=100;n=n+2) { k=sqrt(n);

for (i=2;i<=k;i++) if (n%i==0) break; if (i>=k+1) { printf(\"%d \ m=m+1; } if(m%10==0) printf(\"\\n\");

}

printf(\"\\n\"); return 0; }

21.用pi/4≈1-1/3+1/5-1/7+...公式求pi的近似值,直到某一项的绝对值小于10的-6次方为止。

int main()

{ int sign=1; double pi=0,n=1,term=1; while(fabs(term)>=1e-6) { pi=pi+term; n=n+2; sign=-sign;

term=sign/n; }

pi=pi*4; return 0; }

22.一个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米?

int main() { int i; double m=100,sum=0; for(i=0;i<10;i++){ sum=sum+m; m=m/2; } printf(\"%f\\n\ return 0; }

23.输入两个正整数m和n,求其最大公约数和最小公倍数。

请输入n和m: \");

scanf(\"%d,%d,%d\ if(ntemp=n; n=m; m=temp; }

p=n*m; while(m!=0)

{

r=n%m; n=m; m=r; }

printf(\":%d\\n\printf(\" :%d\\n\ }

24.利用循环,编程求1!+2!+3!+…+10!的值,并输出结果。

int main() {

int n=1,sum=0,j,m=1,i; for(i=1;i<=10;i++){ m=1; for(j=1;j<=i;j++) m=m*j; sum=sum+m; }

printf(\"sum=%d\\n\ return 0; }

25.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13......,求出这个数列前20项之和。

int main() {

int i,n=20;

double a=2,b=1,s=0,t; for(i=1;i<=n;i++) {

s=s+a/b; t=a,

a=a+b,b=t; }

return 0; }

26.求Fibonacci数列前40个数。这个数列有以下特点:第1和第2个数为1,从第3个数开始,该数是其前面两个数之和。

int main()

{ int f1=1,f2=1,f3; int i;

printf(\"%12d\\n%12d\\n\ for(i=1; i<=38; i++) { f3=f1+f2; printf(\"%12d\\n\

f1=f2; f2=f3; }

return 0; }

27.一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程求1000以内所有完数。

int main() {

int m,s,i; for (m=2;m<1000;m++) {s=0; for (i=1;ireturn 0; }

28.求S=a+aa+aaa+...+aa...a(n个a)之值。其中a是一个数字,n代表a的位数。例如:2+22+222+2222+22222(此时n为5),n由键盘输入。

int main() { int a,sn=0,tn=0,k,i=1,n; printf(\"a,n=:\"); scanf(\"%d,%d\ while(i<=n) { tn=tn+a; sn=sn+tn; a=a*10; ++i; }

printf(\"a+aa+aaa+...=%d\\n\ return 0; }

30.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

void main() {

char c;

int letters=0,space=0,digit=0,other=0; printf(\"\\n\");

while((c=getchar())!='\\n') {

if(c>='a'&&c<'z'||c>='A'&&c<='Z') letters++; else if(c==' ') space++;

else if(c>='0'&&c<='9') digit++; else

other++; }

printf(\":%d\\n:%d\\n:%d\\n:%d\\n\

}

31.将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,要求改为0,2,3,4,6,8。

#define N 6 void main() {

int a[N],i,temp;

printf(\"enter array a:\\n\"); for(i=0;itemp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; }

printf(\"\\n Now,array a:\\n\"); for(i=0;i4,3,2,0。32.编写一个函数,求数列1+1/2+1/3+1/4+1/5+...1/n,利用主函数调用这个函数并输出结果。

void main() { int i,s=1; float n,t,a; t=1;a=0;n=1; printf(\"input n:\ while(i<=n) { a=a+t; i=i++; t=s/i; } }

33.将一个二维数组int a[3][4]的行和列的元素互换,存到另外一个二维数组中。

void main() {

int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; printf(\"array a:\\n\"); for (i=0;i<=1;i++) {

for (j=0;j<=2;j++) {

printf(\"%5d\b[j][i]=a[i][j]; }

printf(\"\\n\"); }

printf(\"array b:\\n\"); for (i=0;i<=2;i++) {

for(j=0;j<=1;j++) printf(\"%5d\printf(\"\\n\"); } }

34.利用循环输出以下图形 *****

**** *** ** *

int main() {

int i,j,m;

for (i=1;i<=5;i++) { m=i; for(m=1;m38.利用循环,输出以下图形

利用循环,输出以下图形利用循环,输出以下图形利用循环,输出以下图形利用循环,输出以下图形利用循环,输出以下图形39.输出以下杨辉三角形(要求输出10行)。

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 5 10 10 5 1 ...

main()

{ static int m,n,k,b[11][11]; b[0][1]=1;

for(m=1;m<11;m++) {for(n=1;n<=m;n++)

{ b[m][n]=b[m-1][n-1]+b[m-1][n]; printf(\"%-5d\ } }

40.利用循环输出以下图形 * *** ***** ******* int main() {

int i,j,m;

for (i=1;i<=4;i++) { m=i; for(m=1;m<=4-i;m++) printf(\" \"); for(j=0;j<2*i-1;j++) printf(\"*\"); printf(\"\\n\"); } return 0; }

41.利用循环,输出以下图形 ******* ***** *** * int main() {

int i,j,m;

for (i=1;i<=4;i++) { m=i; for(m=1;m44.写一个函数,求两个整数中的较大者,用主函数调用这个函数,并输出结

果,两个整数由键盘输入。

void main() {

int max(int x,int y);

int a,b,c;

scanf(\"%d,%d\ c=max(a,b);

printf(\"max is %d\\n\}

int max(int x,int y) {

if(x>y) return(x); else

return(y); }

45.编写两个函数分别求两个整数的最大公约数和最小公倍数,在主函数中调用

这两个函数,并输出结果,两个整数由键盘输入。

void main() {

int cm(int x,int y); int cd(int x,int y); int a,b,m,n;

printf(\"输入两个数:\"); scanf(\"%d %d\m=cm(a,b); n=cd(a,b);

printf(\"最大公约数是%d\\n最小公倍数%d\\n\}

int cm(int x,int y) { int k;

k=x>y? x:y; for(;;k++)

if(k%x==0&&k%y==0) break; return(k); }

int cd(int x,int y) {

int i,j,k; k=x>y? y:x;

for(i=1;i<=k;i++)

if(x%i==0&&y%i==0) j=i; return(j); }

因篇幅问题不能全部显示,请点此查看更多更全内容