C语言程序设计期末考试试题及答案.C语言程序设计试题(2021/2021学年第二学期)一.选择题(满分30分,每题2分)1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是D。A.a=b=c+8;B.a+=y+3;C.c++;D.a+b+c2.已知intj,i=1;执行语句“j=i++;”后,变量i的值是B。A.1B.2C.–1D.-23.执行下面程序:#includestdio.hvoidmain(){inta=1,b=2,c=3;c=(a+=a+2),(a=b,b+3);printf(“%d,%d,%d”,a,b,c);}则输出结果是:A。A.2,2,4B.4,2,3C.5,5,3D.4,2,54.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为D。A.aB.!aC.a=0D.a5.for(j=0;jA.12B.11C.10D.96.C语言中函数返回值的类型由D决定的。A.return语句中的表达式类型B.调用该函数的主调函数的类型C.调用函数时临时决定D.定义函数时所指定的函数类型7.下列说法中正确的是B。A在调用用户自定义函数时,必须对其进行声明。B函数可以返回一个值,也可以什么值也不返回。C说明函数时,必须明确参数的类型和返回值。D在程序设计中空函数没有什么作用。8.若inti=10;执行下列程序后,变量i的正确结果是D。switch(i){case0:i+=1;case10:i+=1;case11:i+=1;default:i+=1;}A.10B.11C.12D.139.下列语句中不正确的字符串赋值或初始化的是C。A.charstr[10]={strings};B.charstr[8]={'s','t','r','i','n','g','s','\0'};C.charstr[10];str=strings;D.charstr[]=strings;10.有如下程序:#includevoidmain(){inta=1,b=0,c=0;if(aif(belsec++;printf(“%d\n”,c);}该程序的运行结果是D。A.3B.2C.1D.011.在函数调用,对参数传递的说法正确的是A。A实参和形参各占一个独立的存储单元。B实参和形参始终共用一个相同的存储单元。C可以由用户指定实参和形参是否共用一个存储单元。D可以由系统指定实参和形参是否共用一个存储单元12.以下正确的程序段是C。A.charstr1[]=12345,str2[]=abcdef;strcpy(str1,str2);B.charstr[10],*st=abcde;strcat(str,st);C.charstr[10]=,*st=abcde;strcat(str,st);D.char*st1=12345,*st2=abcde;strcat(st1,st2);13.若有定义:int*p[4];则标识符pB。A.是一个指向整型变量的指针B.是一个指针数组名C.是一个指针,它指向一个含有四个整型元素的一维数组D.说明不合法装订线.14.以下程序的运行结果是C。typedefunion{longa[1];intb[2];charc[8];}TEST;TESTm;main(){printf(“%d\n”,sizeof(m));}A.32B.16C.8D.2415.设有以下结构体类型:structst{charname[8];intnum;floats[4];}student[50];并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件file.txt中,以下不正确的形式是C。A.fwrite(student,sizeof(structst),50,fp);B.fwrite(student,50*sizeof(structst),1,fp);C.fwrite(student,25*sizeof(structst),25,fp);D.for(i=0;ifwrite(student+i,sizeof(structst),1,fp);二、填空题(满分20分,每空2分)1.每个C语言编写的程序必须有一个,并且只能有一个主函数。2.设x和y均为int型变量,且x=1,y=2,则表达式3+x/y的值为3。3.若有定义:inta[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是4。4.设x=0xAB,若要通过x|y使x低4位置1,高4位不变,则y=0x0F。5.测试char型变量m的最高位数据是否为1的表达式是a&0x80。6.若x=2,y=-3则x&&y的结果是1。7.与二进制数101等值的十进制数为5。8.定义inti=1;执行语句while(i++9.下面程序的运行结果为22222。#includevoidmain(){inti=2,j=5,s;s=i;for(;--j;)s=s*10+i;printf(“%d”,s);}10.写出程序的执行结果:i=10,j=11main(){inti=0,j=0;while(ii++;while(j++printf(“i=%d,j=%d\n”,i,j);}三、读程序写结果(满分16分,每题4分)1.判断下面程序的运行结果。#includevoidmain(){inta=0,b=1;intfun(inta,intb);printf(%d\n,fun(a,b));printf(%d\n,fun(a,b));}intfun(intm,intn){statics=1;s++;return(s*(m+n));}2程序运行的结果为:3。装订线.2.以下程序的输出结果是3,2。#includestdio.hstructchain{intx;inty;structchain*p;}m[2];voidmain(){m[0].x=1;m[0].y=2;m[1].x=3;m[1].y=4;m[0].p=&m[1];m[1].p=m;printf(%d,%d\n,(m[0].p)-x,(m[1].p)-y);}3.下面程序的运行结果是7654321。#includevoidmain(){charp[]=1234567;fun(p,strlen(p));puts(p);}4.下面程序的输出结果为4,2。#includestdio.hstructks{inta;int*b;}s[4],*p;voidmain(){intn=1,i;printf(\n);for(i=0;i四、程序设计(满分34分)1.编写一个程序,判断某一年是否为闰年。(6分)#includeintyear;printf(“inputyear=”);scanf(“%d”,&year);if((year%4==0&&year%100!0)||year%400==0)printf(“%4disaleapyear\n”,year);elseprintf(“%4disnotaleapyear\n”,year);}装装订线2.用ΛΛ71513114-+-≈π公式求π的近似值,直到最后一项的绝对值小于610-为止,请编程实现。(8分)#include“math.h”voidmain(){ints;floatn,t,pi;t=1;pi=0;n=1.0;s=1;while((fabs(t))1E-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf(“pi=%10.6f\n”,pi);}3.编写程序,利用子函数实现计算字符串的长度。(10分)#includeintlength(char*s){char*p=s;while(*p)p++;return(p-s);}4.将一个整数字符串转换为一个整数,如-1234转换为-1234。(10分)#include#includechnum(char*p){intnum=0,k,len,j;len=strlen(p);for(;*p!='\0';p++){k=*p-'0';j=(--len);while(j--0)k=k*10;num=num+k;}return(num);}装订线庄子云:“人生天地之间,若白驹过隙,忽然而已。”是呀,春秋置换,日月交替,这从指尖悄然划过的时光,没有一点声响,没有一刻停留,仿佛眨眼的功夫,半生已过。人活在世上,就像暂时寄宿于尘世,当生命的列车驶到终点,情愿也罢,不情愿也罢,微笑也罢,苦笑也罢,都不得不向生命挥手作别。我们无法挽住时光的脚步,无法改变人生的宿命。但我们可以拿起生活的画笔,把自己的人生涂抹成色彩靓丽的颜色。生命如此短暂,岂容随意挥霍!只有在该辛勤耕耘的时候播洒汗水,一程风雨后,人生的筐篓里才能装满硕果。就算是烟花划过天空,也要留下短暂的绚烂。只有让这仅有一次的生命丰盈充实,才不枉来尘世走一遭。雁过留声,人过留名,这一趟人生旅程,总该留下点儿什么!生活是柴米油盐的平淡,也是行色匆匆的奔波。一粥一饭来之不易,一丝一缕物力维艰。前行的路上,有风也有雨。有时候,风雨扑面而来,打在脸上,很疼,可是,我们不能向生活低头认输,咬牙抹去脸上的雨水,还有泪水,甩开脚步,接着向前。我们需要呈现最好的自己给世界,需要许诺最好的生活给家人。所以,生活再累,不能后退。即使生活赐予我们一杯不加糖的苦咖啡,皱一皱眉头,也要饮下。人生是一场跋涉,也是一场选择。我们能抵达哪里,能看到什么样的风景,能成为什么样的人,都在于我们的选择。如果我们选择面朝大海,朝着阳光的方向挥手微笑,我们的世界必会收获一片春暖花开。如果我们选择小桥流水,在不动声色的日子里种篱修菊,我们的世界必会收获一隅静谧恬淡。选择临风起舞,我们就是岁月的勇者;选择临阵脱逃,我们就是生活的懦夫。没有淌不过去的河,就看我们如何摆渡。没有爬不过去的山,就看我们何时启程。德国哲学家尼采说:“每一个不曾起舞的日子,都是对生命的辜负。”让我们打开朝着晨光的那扇窗,迎阳光进来,在每一个日出东海的日子,无论是鲜衣怒马少年时,还是宠辱不惊中年时,都活出自己的明媚和精彩。时间会带来惊喜,只要我们.记为什么出发,.记以梦为马,岁月一定会对我们和颜悦色,前方也一定会有意想不到的惊喜。人生忽如寄,生活多苦辛。短暂的生命旅程,别辜负时光,别辜负自己。愿我们每一个人自律、阳光、勤奋,活成自己喜欢的模样,活成一束光,