当前位置:文档之家› c语言考试试题以及答案

c语言考试试题以及答案

1. 编程求和1-2+3-4+5-6+…+99-100#include<>int main(){int i,t,s;s=0;t=1;for(i=1;i<=100;i++){t=-t;s=s+(-t)*i;}printf("%d\n",s);system("pause");return 0;}2.求:1+(1+2)+(1+2+3)+…+(1+2+3+….10) 的和#include<>int main(){int i,t,s;s=0;t=0;for(i=1;i<=10;i++){t=t+i;s=s+t;}printf("%d\n",s);system("pause");return 0;}3. 求n的值,其中a是一个不为0的数字,例如2+22+222+2222+22222,其中数字a和n由键盘输入。

#include<>int main(){int a,n,i=1,sn=0,tn=0;printf("a,n:");scanf("%d %d",&a,&n);while(i<=n){tn=tn+a;sn=sn+tn;a=a*10;i++;}printf("%d\n",sn);system("pause");return 0;}4. 有一个函数如下:x (x<5)y= 2x+6 (5<=x<15)2x-6 (x>=15)输入x的值,计算出相应的y值。

#include<>int main(){int x,y;printf("输入X:");scanf("%d",&x);if(x<5){y=x;printf("x=%3d,y=x=%d\n",x,y);}else if(x>=5&&x<15){y=2*x+6;printf("x=%3d,y=2*x+6=%d\n",x,y);}else{y=2*x-6;printf("x=%3d,y=2*x-6=%d\n",x,y);}system("pause");return 0;}5. 某国的税收政策为:1000元以下免税,1000~2000元缴纳5%的税,2000~4000元上税10%,4000元以上按20%交税。

试编写程序,输入一个人的收入,计算其需要上缴的税额。

#include<>int main(){float a;scanf("%f",&a);if(a<=1000){printf("免税",a);}if(a>1000&&a<=2000){printf("%f",a*);}if(a>2000&&a<=4000){printf("%f",a*);}elseprintf("%f",a*);system("pause");return 0;}6. 编程分段统计学生成绩,输入为负数时结束。

要求按90-100、80-89、70-79、60-69、60以下五档分别统计各分数段人数#include<>int main(){float score;int a[6]={0,0,0,0,0,0};char grade;int i;do{scanf("%f",&score);switch((int)(score/10)){case 10:case 9: a[0]=a[0]+1;break;case 8: a[1]=a[1]+1;break;case 7: a[2]=a[2]+1;break;case 6: a[3]=a[3]+1;break;case 5:case 4:case 3:case 2:case 1:case 0: a[4]=a[4]+1;}}while(score>0);printf("90~~100: %d\n",a[0]);printf("80~~89: %d\n",a[1]);printf("70~~79: %d\n",a[2]);printf("60~~69: %d\n",a[3]);printf("60一下: %d\n",a[4]);system("pause");return 0;}7.某班有45个同学,现在输入所有同学的计算机成绩。

编程求最高分、最低分和不及格的人数。

#include<>#include<>int main(){int max(int a[45]);int min(int a[45]);int fail(int a[45]);int i,a[45],Max,Min,Fail;printf("请输入成绩:\n");for(i=0;i<45;i++)scanf("%d",&a[i]);printf("\n");Max=max(a);Min=min(a);Fail=fail(a);printf("最大值是:%d\n",Max);printf("最小值是:%d\n",Min);printf("不及格是:%d\n",Fail);system("PAUSE");}int max(int a[45]){int i,m;m=a[0];for(i=0;i<45;i++){if(m<=a[i])m=a[i];}return m;}int min(int a[45]){int i,m;m=a[0];for(i=0;i<45;i++){if(m>a[i])m=a[i];}return m;}int fail(int a[45]){int i,m=0;for(i=0;i<45;i++){if(a[i]<60)m=m+1;}return m;}8.求fibonacci数列的前20项。

#include<>int main(){int i;int f[20]={1,1};for(i=2;i<=20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%5==0)printf("\n");printf("%12d",f[i]);}printf("\n");system("pause");return 0;}9.一个数组有20个数组元素,试编程对这些数组元素从大到小排列。

#include <>int main(){int a[20];int i,j,t;printf("输入20个数:\n");for(i=0;i<20;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<19;j++)for(i=0;i<19-j;i++)if(a[i+1] > a[i]){t= a[i+1] ;a[i+1] =a[i];a[i] =t;}printf("输出的顺序数;\n");for(i=0;i<20;i++)printf("%d\n",a[i]);printf("\n");system("PAUSE");return 0;}10. 试编写程序,实现随机产生10个递增的整数,组成一个升序数组。

然后从键盘再输入一个整数并把该数插入数组中,使数组仍然有序。

#include <>#include <>int main(){int a[11],i,j,t;scanf("%d",&a[10]);for(i=0;i<10;i++){a[i]=rand();}for(j=0;j<10;j++)for(i=0;i<10-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=0;i<11;i++)printf("%d\n",a[i]);system("pause");return 0;}11.有一个3×4的矩阵,编程输出最大元素的值,以及其所在的行号和列号。

要求:数组里的元素不能用初始化的方式赋值,要从键盘输入。

见c程序设计P139页#include<>#include<>int main(){int i,j,k,n,row=0,colum=0,max;int a[3][4];for(k=0;k<3;k++){for( n=0;n<4;n++)scanf("%d",&a[k][n]);}max=a[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}printf("max=%d,row=%d,colum=%d\n",max,row,colum);system("pause");}12.编写一个函数,功能是返回一个一维int型数组的最大值。

#include<>#include<>int main(){int max(int a[10]);int i,a[10],Max;printf("请输入数值:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");Max=max(a);printf("最大值是:%d\n",Max);system("PAUSE");}int max(int a[10]){int i,m=a[0];for(i=1;i<10;i++){if(m<a[i])m=a[i];}return m;}13.编写判断一个整数是否为素数的函数,在主函数中调用该函数输出100以内的孪生素数(若p与p+2都是素数,则它们是孪生素数)。

相关主题