您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计期末试题C
C语言程序设计期末试题C一、选择题:(20分,每题2分)1.以下不正确的C语言标识符是()。A.ABCB.abcC.a_bcD.ab.c2.C程序是由构成的。A.主程序与子程序B.主函数与若干子函数C.一个主函数与一个其它函数D.主函数与子函数3.以下说法中正确的是:。A.在C语言中,实参与其对应的形参各占独立的存储单元;B.在C语言中,实参与其对应的形参共占同一个存储单元;C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;D.在C语言中,形参是虚拟的,不占存储单元。4.设n=3;则n++的结果是()。A.2B.3C.4D.55.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。A.0B.1C.2D.36.凡是函数中未指定存储类别的局部变量其隐含的存储类别是()。A.自动(auto)B.静态(static)C.外部(extern)D.寄存器(register)7.在while(x)语句中的x与下面条件表达式等价的是:。A.x==0B.x==1C.x!=1D.x!=08.若有以下说明和语句:structworker{intno;char*name;}work,*p=&work;则以下引用方法不正确的是()。A.work.noB.(*p).noC.p-noD.work-no9.以下对二维数组进行正确初始化的是()。A.inta[2][3]={{1,2},{3,4},{5,6}};B.inta[][3]={1,2,3,4,5,6};C.inta[2][]={1,2,3,4,5,6};D.inta[2][]={{1,2},{3,4}};10.二维数组a有m列,则在a[i][j]之前的元素个数为:。A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+1二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分)1.#includestdio.hmain(){inti=16,j,x=6;j=i+++1;x*=i=j;printf(“%d,%d\n”,j,x);}运行结果是:2.#includestdio.h#includemath.hmain(){inta=1,b=4,c=2;floatx=10.5,y=4.0,z;z=(a+b)/c+sqrt((double)y)*1.2/c+x;printf(“%f\n”,z);}运行结果是:3.#includestdio.hmain(){inta,b,c,d;a=c=0;b=1;d=20;if(a)d=d-10;elseif(!b)if(!c)d=25;elsed=15;printf(“d=%d\n”,d);}运行结果:4.main(){inti=10;switch(i){case9:i+=1;case10:i+=1;case11:i+=1;default:i+=1;}printf(“%d”,i);}运行结果:5.#includestdio.hmain(){inta[]={1,2,3,4},i,j,s=0;j=1;for(i=3;i=0;i--){s=s+a[i]*j;j=j*10;}printf(s=%d\n,s);}运行结果:6.func(intx){x=20;}main(){intx=10;func(x);printf(“%d”,x);}运行结果:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(20分,每空2分)1.已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下:main(){intyear,leap;scanf(“%d”,&year);if()leap=1;elseleap=0;if()printf(“是润年”);elseprintf(“不是润年”);}2.将100至200间不能被3整除的数输出:main(){intn;for(n=100;n=200;n++){if(n%3==0);printf(“%d”,n);}}3.判断m是否是素数#includemath.hmain(){intm,i,k;scanf(“%d”,&m);k=sqrt(m);for(i=2;i=k;i++)if(m%i==0);if(i=k+1)printf(“%disaprimenumber\n”,m);elseprintf(“%disnotaprimenumber\n”,m);}4.给定一3*4的矩阵,求出其中值最大的元素的值,及所在的行列号。main(){inti,j,row=0,colum=0,max;staticinta[3][4]={{1,2,3,4}{9,8,7,6}{10,-10,-4,4}};;for(i=0;i=2;i++)for(j=0;j=3;j++)if(a[i][j]max){max=a[i][j];;;}printf(“max=%d,row=%d,colum=%d\n”,max,row,colum);}5.下面函数的功能是将两个字符串s和t连接起来。char*conj(char*s,char*t){char*p=s;while(*s);while(*t){*s=;s++;t++;}*s=’\0’;;}四、编程(40分)1.计算1-1/2+1/3-1/4+…+1/99-1/100+…,直到最后一项的绝对值小于10-4为止。(13分)2.输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的个数并输出结果。(13分)3.任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果。(14分)C语言程序设计期末试题C答案答案一、选择题1、D,2、B,3、A,4、B,5、A,6、A,7、D,8、D,9、B,10、B二、给出下列程序的运行结果1、17,1022、13.7000003、d=204、135、s=12346、10三、阅读程序,在标有下滑线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。1、(year%4==0&&year%100!=0)||year%400==0)leap2、continue3、break4、max=a[0][0]row=i+1colum=j+15、s++*treturn(p)四、编程1、#includestdio.hmain(){inti;floatsum,sign;i=1;sum=0;sign=1.0;while((1.0/i)=1e-4){sum+=sign/i;i++;sign=-sign;}printf(sum=%.4f,sum);}2、#includestdio.hmain(){charstr[81];inti;intletter,space,num,other;charc;printf(Pleaseenterastring:);gets(str);letter=space=num=other=0;for(i=0;str[i]!='\0';i++){c=str[i];if((c='A'&&c='Z')||(c='a'&&c='z'))letter++;elseif(c='0'&&c='9')num++;elseif(c=='')space++;elseother++;}printf(Inthisstring:letter=%d,space=%d,num=%d,other=%d,letter,space,num,other);}3、#includestdio.hmain(){intnum[10];inti,j,k;inttemp;printf(Pleaseenter10numbers:\n);for(i=0;i10;i++)scanf(%d,&num[i]);for(i=0;i9;i++){k=i;for(j=i+1;j10;j++){if(num[k]num[j])k=j;if(k!=i){temp=num[i];num[i]=num[k];num[k]=temp;}}printf(Aftersorted:\n);for(i=0;i10;i++)printf(%5d,num[i]);}}
本文标题:C语言程序设计期末试题C
链接地址:https://www.777doc.com/doc-4181199 .html