还剩4页未读,继续阅读
文本内容:
分享到-C语言程序设计试题及答案
(三)学号学习中心名称专业层次姓名题号一二三四五六七八九十总分得分注意所有答案都要写在答题卡上
一、单项选择题(20分,每题2分)1.执行下列程序段后,正确的结果是(B)intka
[3]
[3]={123456789};fork=0;k3;k++printf“%2d”a[k][k];A123B159C147D3692.若a是int类型变量,则计算表达式a=25/3%3的值是(B)A3B2C1D03.下面正确的字符常量是(C)A“c”B‘\\’’C‘W’D‘’4.C语言中,运算对象必须是整型的运算符是(B)A%B/C*D+5.数字字符0的ASCII值为48,若有以下程序main{chara=1b=2;printf%cb++;printf%d\nb-a;}程序运行后的输出结果是(B)A)32B)502C)22D)2506.以下语句或语句组中能正确进行字符串赋值的是(D)A)char*sp;*sp=right!;B)chars
[10];s=right!;C)chars
[10];*s=right!;D)char*sp=right!;7.fori=0;i10;i++ifi〈=5〉break;则循环结束后i的值为(B)A0B1C5D108.执行下列程序段后,正确的结果是(C)charx
[8]={876500}*s;s=x+1;printf“%d\n”s
[2];AnB0C5D69.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是AA单向值传递B地址传递C相互传递D由用户指定方式10.设有数组定义charstr[]=”China”;则下面的输出为(C)printf“%d”strlenstr;A4B5C6D7
二、填空题(30分,每空2分)1.下列程序段的输出结果是3inti=19j;j=i%4;printf“%d”j;2.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入abc三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能voidfun2int*xint*y{intt;t=*x;*x=*y;*y=t;}voidfun1{inta=20b=30c=25;ifcbfun2__cb____;ifacfun2__ac____;ifabfun2__ab____;}3.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入B33回车,则输出结果是1B#includestdio.hmain{charab;a=getchar;scanf%db;a=a-A+0;b=b*2;printf%c%c\nab;}4.以下程序运行后的输出结果是435main{inta=3b=4c=5t=99;ifbaac{t=a;a=c;c=t;}ifacbc{t=b;b=a;a=t;}printf%d%d%d\nabc;}5.若已知a=10b=20则表达式!ab的值是___0______6.若s是unsignedint型变量,则下面表达式的值是__1__s%2+s+1%
27.下面程序将字符数组a复制到字符数组b中main{chara[]=Iamaboy.b
[20];inti;fori=___0____;a[i]!=\0;i++{__b[i]=a[i]___________;}__b[i]=’\0’__;}8.若有inta
[3]
[2]={{1}{32}{45}};,则a
[1]
[1]的值是29.有以下程序,执行后输出结果是0main{intt=1i=5;for;i=0;i--t*=i;printf%d\nt;}10.在循环语句中,break语句的作用是是用来跳出当前一层循环的,continue语句的作用是终止本次循环
三、写出程序的运行结果(30分,每题10分)1.写出程序运行后的输出结果main{inta=1b;forb=1;b=10;b++{ifa=8break;ifa%2==1{a+=5;continue;}a-=3;}printf%d\nb;}输出结果:b=42.写出程序运行后的输出结果#includestring.hchar*sschar*s{returns+strlens/2;}main{char*p*str=abcdefgh;p=ssstr;printf%s\np;}输出结果:efgh3.写出程序运行后的输出结果intf1intxinty{returnxyx:y;}intf2intxinty{returnxyy:x;}main{inta=4b=3c=5d=2efg;e=f2f1abf1cd;f=f1f2abf2cd;g=a+b+c+d-e-f;printf%d%d%d\nefg;}437
四、编程(完形填空)(20分,每题10分)1.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串yes!,否则函数返回字符串no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如adgda请填空#includestdio.h#includestring.hchar*huiwenchar*str{char*p1*p2;intit=0;p1=str;p2=_____str+strlenstr-1____;str+strlenstrfori=0;i=strlenstr/2;i++if*p1++!=*p2--{t=1;break;}if_t==0或!t _t==0returnyes!;elsereturnno!;}main{charstr
[50];printfInput:;scanf%sstr;printf%s\n___huiwenstr_____;huiwensrt}2.下面程序完成以下功能
(1)trans()函数将二维数组a进行转置,即行列互换,如下图所示;1234125724692481589736967162149721转置前转置后
(2)findmin()函数求新数组中对角线(左上到右下)上的最小元素的值;请将程序填写完整voidtransintb
[4]
[4]/*转置函数*/{intijtemp;fori=0;i4;i++forj=_0__;j4;j++{temp=b[i][j];b[i][j]=b[j][i];b[j][i]=temp;}}intfindminintb
[4]
[4]/*求对角线上最小的元素*/{intminij;min=_______;fori=0;i4;i++{if__b[i][i]min___min=_b[i][i]____;}returnmin;}main{intij;inta
[4]
[4]min;fori=0;i4;i++forj=0;j4;j++scanf%da[i][j];transa;printf“theresultis:”;fori=0;i4;i++{forj=0;j4;j++printf%5da[i][j];printf\n;}min=_findmina__;printftheminis%5d\nmin;}--。