还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第1页共6页第2页共6页第3页共6页第4页共6页第5页共6页第6页共6页第1页共1页《C语言程序设计》期末考试试卷(A卷)课程名称C语言程序设计课程编号84810005任课教师题型单选题填空题阅读题编程题总分分值30262420100得分得分评阅人
一、单选题(共30题,每题1分,共30分)
1、在计算机内一切信息的存取、传输和处理都是以形式进行的A.ASCII码B.二进制C.十进制D.十六进制
2、下列无符号整数中最大的数是A.101000112B.FF16C.2378D.
7893、一个C语言程序是由()A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成
4、下面四个选项中,均是不合法的用户标识符的选项是A.AP_0doB.floatla0_AC.b-asizeofintD._123tempint
5、下面四个选项中,均是不合法的转义字符的选项是A.\\\\xfB.\1011\\abC.\011\f\}D.\abc\101xlf
6、下面程序段输出结果是()inti=5k;k=++i+++i+i++;printf%d%dki;A.248B.218C.217D.247院(系)专业年级学生姓名学号-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------
7、若有定义:intk=7x=12;,则能使值为3的表达式是A.x%=k%=5B.x%=k–k%5C.x%=k–k%5D.x%=k-k%=
58、若有说明语句intab;,用户的输入为111222333,结果a的值为111,b的值为333,那么以下输入正确的语句是()A.scanf%*3d%3c%3dab;B.scanf%3d%*3c%3dab;C.scanf%3d%3d%*3dab;D.scanf%3d%*2d%3dab;
9、对于条件表达式ki++:i--来说,其中的表达式k等价于()A.k==0B.k==1C.k!=0D.k!=
110、若a、b、c
1、c
2、x、y均是整型变量,正确的switch语句是()A.swicha+b;B.switcha*a+b*b{{case1:y=a+b;break;case3;case0:y=a-b;break;case1:y=a+b;break;case3:y=b-abreak;}}C.switchaD.switcha-b{{casec1:y=a-b;breakdefault:y=a*b;breakcasec2:x=a*d;breakcase3:case4:x=a+b;breakdefault:x=a+b;case10:case11:y=a-b;break;}}
11、下面程序的运行结果是()#includestdio.hvoidmain{inty=10;do{y--;}while--y;printf%d\ny--;}A.-1B.1C.8D.
012、下面程序段的运行结果是()x=y=0;whilex15y++x+=++y;printf%d%dyx;A.207B.612C.208D.
82013、以下程序中,while循环的循环次数是()inti=0;whilei10{ifi1continue;ifi==5break;i++;}A.1B.10C.6D.死循环,不能确定次数
14、设有数组定义:chararray[]=China;则数组array所占的空间为()A.4个字节B.5个字节C.6个字节D.7个字节
15、以下不能正确进行字符串赋初值的语句是()A.charstr
[5]=good!;B.charstr[]=good!;C.charstr
[8]=good!;D.charstr
[5]={good};
16、以下程序的输出结果是()voidmain{charst
[20]=hello\0\t\\\;printf%d%d\nstrlenstsizeofst;}A.99B.520C.1320D.
202017、以下正确的说法是()A.定义函数时,形参的类型说明可以放在函数体内B.return后边的值不能为表达式C.如果函数值的类型与返回值类型不一致,以函数值类型为准D.如果形参与实参类型不一致,以实参类型为准
18、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()A.自动autoB.静态staticC.外部externD.寄存器register
19、下面能正确进行字符串赋值操作的是()A.chars
[5]={ABCDE};B.chars
[5]={ABCDE};C.char*s;s=ABCDE;D.char*s;scanf%ss;
20、若有下面的程序段,则下列叙述正确的是()chars[]=china;char*p;p=s;A.s和p完全相同B.数组s中的内容和指针变量p中的内容相等C.s数组长度和p所指向的字符串长度相等D.*p与s
[0]相等-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------
21、设已有定义:char*st=howareyou;下列程序段中正确的是()A.chara
[11]*p;strcpyp=a+1st
[4];B.chara
[11];strcpy++ast;C.chara
[11];strcpyast;D.chara[]*p;strcpyp=a
[1]st+2;
22、若指针p已正确定义,要使p指向两个连续的短整型动态存储单元,不正确的语句是()A.p=2*short*mallocsizeofshort;B.p=short*malloc2*sizeofshort;C.p=short*malloc2*2;D.p=short*calloc2sizeofshort;
23、从下列选项中选择不会引起二义性的宏定义是()A.#definePOWERxx*xB.#definePOWERxx*xC.#definePOWERxx*xD.#definePOWERxx*x
24、根据下面的定义,能打印出字母M的语句是()structperson{charname
[9];intage;};structpersonclass
[10]={John17Paul19Mary18adam16};A.printf%c\nclass
[3].name;B.printf%c\nclass
[3].name
[1];C.printf%c\nclass
[2].name
[1];D.printf%c\nclass
[2].name
[0];
25、以下程序的输出是()structst{intx;int*y;}*p;intdt
[4]={10203040};structstaa
[4]={50dt
[0]60dt
[0]60dt
[0]60dt
[0]};voidmain{p=aa;printf%d\n++p-x;}A.10B.11C.51D.
6026、以下程序的输出是()unionmyun{struct{intxyz;}u;intk;}a;voidmain{a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf%d\na.u.x;}A.4B.5C.6D.
025、有定义如下structsk{inta;floatb;}data*p;如果p=data;则对于结构变量data的成员a的正确引用是25A*.data.aB*p.aCp-data.aDp.data.a
27、函数rewind的作用是()A.使位置指针重新返回文件的开头B.将位置指针指向文件中所要求的特定位置C.使位置指针指向文件的末尾D.使位置指针自动移至下一个字符位置
28、函数调用语句fseekfp-20L2;的含义是()A.将文件位置指针移到距离文件头20个字节处B.将文件位置指针从当前位置向后移动20个字节C.将文件位置指针从文件末尾处退后20个字节D.将文件位置指针移到离当前位置20个字节处
29、设有以下结构体类型structst{charname
[8];intnum;floats
[4];}student
[50];并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,以下不正确的形式是()A.fwritestudentsizeofstructst50fp;B.fwritestudent50*sizeofstructst1fp;C.fwirtestudent25*sizeofstructst25fp;D.fori=0;i50;i++fwritestudent+isizeofstructst1fp;
30、若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()A.fopenA:\user\abc.txtrB.fopenA:\\user\\abc.txtr+C.fopenA:\user\abc.txtrbD.fopenA:\\user\\abc.txtw-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------得分评阅人
二、填空题(共6题,每空2分共26分)
31、以下程序是实现在M行N列的二维数组中,找出每一行上的最大值请将程序补充完整#defineM3#defineN4voidmain{intx[M][N]={157426438231};intijp;fori=0;iM;i++{p=0;forj=1;jN;j++ifx[i][p]x[i][j]1;printfThemaxvalueinline%dis%d\ni2;}}
32、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数请填空#includestdio.hvoidmain{intij;fori=0;3;i++{j=i*10+6;if4continue;printf%dj;}}
33、下面程序的功能是将键盘输入的字符串str中的所有c字符用C替换请将程序补充完整#includestdio.h#includestring.hvoidmain{inti;charstr
[80];getsstr;fori=0;5;i++{ifstr[i]!=c6;str[i]=C;}printf%s\nstr;}
34、下面程序的功能是实现数组元素中值的逆转#includestring.hvoidinvertint*sintnum;voidmain{intin=10a
[10]={12345678910};invertan-1;fori=0;i10;i++printf%4da[i];printf\n;}voidinvertint*sintnum{int*tk;t=s+num;while7{k=*s;*s=*t;*t=k;8;9;}}-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------
35、下面程序的功能是输入学生的姓名和成绩,然后输出#includestdio.hstructstuinf{charname
[20];/*学生姓名*/intscore;/*学生成绩*/}stu*p;main{p=stu;printfEntername:;gets10;printfEnterscore:;scanf%d,11;printfOutput:%s%d\n,p-name,p-score;}
36、下面程序的功能是统计文件中的字符的个数#includestdio.hmain{longnum=0;12*fp;iffp=fopenfname.datr==NULL{printfCantopenthefile!;exit0;}while13{fgetcfp;num++;}printfnum=%d\nnum;fclosefp;}得分评阅人
三、阅读题(共6题,每题4分,共24分)
37、下面程序的输出结果是1voidmain{intab;fora=1b=1;a=100;a++{ifb=10break;ifb%3==1{b+=3;continue;}}printfa=%d\na;}
38、以下程序的输出结果是
(2)main{inta=0b=1c=0d=20;ifad=d-10;elseif!bif!cd=15;elsed=25;printfd=%d\nd;}-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------
39、下面程序的输出结果是
(3)main{intijx=0;fori=0;i2;i++{x++;forj=0;j-3;j++{ifj%2continue;x++;}x++;}printfx=%d\nx;}
40、下面程序的输出结果是
(4)#includestdio.hmain{intn
[3]
[3]ij;fori=0;i3;i++forj=0;j3;j++n[i][j]=i+j;fori=0;i2;i++forj=0;j2;j++n[i+1][j+1]+=n[i][j];printf%d\nn[i][j];}
41、下面程序的输出结果是
(5)voidsschar*schart{while*s{if*s==t*s=t-a+A;s++;}}voidmain{charstr1
[100]=abcddfefdbdc=d;ssstr1c;printf%s\nstr1;}
42、下面程序的输出结果是
(6)#includestdio.hstructstr1{charc
[5];char*s;};main{structstr1s1
[2]={{ABCD,EFGH},{IJK,LMN}};structstr2{structstr1sr;intd;}s2={OPQ,RST,32767};structstr1*p
[2];p
[0]=s1
[0];p
[1]=s1
[1];printf%s\n,++p
[1]-s;printf%c,s
2.sr.c
[2];}得分评阅人
四、编程题(共2题,每题10分,共20分)
43、编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入
44、求编写一函数strlshifchar*sintn,其功能是把字符串s中的所有字符左移n个位置,串中的前n个字符移到最后-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------答题纸
1、单选题
0102030405060708091011121314151617181920212223242526272829302、填空题31空格1:空格2:32空格3:空格4:33空格5:空格6:34空格7:空格8:空格9:35空格10:空格11:36空格12:空格13:
3、阅读题37结果为38结果为39结果为40结果为41结果为42结果为-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------
四、编程题
43、程序如下
44、程序如下。