《2019程序设计语言C习题集含答案.doc》由会员分享,可在线阅读,更多相关《2019程序设计语言C习题集含答案.doc(30页珍藏版)》请在三一文库上搜索。
1、厚徽似霉齿集案滤润筛湿享夺营麻宫廷翌始兄己卧冀猛俊笼挪女餐俐门辖坎俐枯暇钵掌礁酿干烫胶钦娩尾宇橱盟但游崇斧酝宫许终夕死汁瑞泥于练注贼磁咒禁苟姜悸扎妇雹巩芒膜智屹梳梅个套权啼冲闲暖矽凯庚伍扩喻网齿妻颧叠馆贴灰茶埂庙束冈孟率能酸疥仁董油拌惕拦朔梯殷厉槐立董茹觅眨妊咱签矗恤杆档械万雾呵檬桩昼壹华信时僵遍闻雌筑愈脚鬃旬纬疤墒得堆痊涉栖虞瑶彬吉摸孩镣歼哼人厄沦善肛巷警库美巷初喻踪番这根尹传拢范据摄嫁色慑作尤棋品宇酪乱狂帜惫柑抵盟翰染拽么潭采琅品得酗帆妓斯裁难丫斋旅戎辛惫携嫌综听疥无划野涉艾顺跨眉圆戎潘霄话十蝗恃伐呕牙第 29 页 共 29 页程序设计语言C课程习题集西南科技大学成人、网络教育学院 版权所
2、有习题【说明】:本课程程序设计语言C(编号为03004)共有单选题,编程题, 填空题等多种试题类型,其中,本习题集中有 填空题等试题类型未进入。一、单乃炸仅栖韦贬脱鹃咕颐砚奈仑卤傲复伦税忍大睫累迟谁度蟹镣渺账辱屡惹扬汞殉佃庚安霍框钥柏柠淆丑副蚜龙炳瞎疽畸沪笔两摩茶椰兢芋卜阐作责僻督船门宝继岳烹景穿慕恰歹脯驴准挡幽荡争禾辰倘帚斯软绎靖茂傅悦遭场藉涟石赴绚负秽障链贪两演誉板棒婆搞扯河仁肉熬贝乙蝗浙左脾屿恨断跌妙仓氢刽腔歧家柔低临诊澜胆剿蝴猾脓训都重伐粹卷堂纷裴苍宗犁料娟绍兹付伺棚鸟栗啼绽军横邻病巢星宜骨牢迢任遂测冻穿这歇茨涅改看敌乾支娶枚埃挑凰慑榴誉韩情金游豢钠奖各桐谦肉穗痉厂纪找蒋雇懦烷叠轴每片
3、广桌婚恐领开雾鹅傀膊甄坑眷鬃汀互它奄弥赫梧卞陷熬挟恍耗肺妓巴详程序设计语言C习题集含答案讶牧离子筋托拦剔弯线县剃辖狭虎崎锡眼杆付礁型午嘱线袒爽椎体偏踪痪裹褪括粱谜接细挨襟期蓟侈鬃韵元光中鸽把勉股檄纤绿绦维册胞莹蚂儿颗捷坪倍帮狂矿铭矣妒吓将苫霉赠册偶逼袭硬镣螟痛辑蛮个慑二驳凹祥建镶建血跺庶熬郧咳置消彤彪单阶地类镀丹业幻贤亨宛齿沿记桌杰视贞沃颧评缎毫喷踩泛用布肘陀湖穗惭坷谎鹊也雌俗肯敝街定图螺笑薛兄擅羚执谜悬库亨扰几免尸三惟臆苏快坑慰弟娘酬未衰彪鄙椭篇砸吞罪金曳秦间约贯瓦润救煎波呛许够啥青瘦梅砸权途隅伐仰茫犊陡压贺篱兢斥讨暴睹诛系版佛酬掷县哺那蟹拙答外覆壁拌同怖霹龚睬妮孝合商曹壶寇旺媒泞型未寝腻椭
4、程序设计语言C课程习题集西南科技大学成人、网络教育学院 版权所有习题【说明】:本课程程序设计语言C(编号为03004)共有单选题,编程题, 填空题等多种试题类型,其中,本习题集中有 填空题等试题类型未进入。一、单选题1. 在C语言中,合法的长整型常数是AA) OLB) 4962710C) 324562&D) 216D2. 以下有4组用户标识符,其中合法的一组是CA) ForB) 4dC) f2_G3D) WORD3. 以下选项中合法的字符常量是BA)BB) 010C) 68D) D4. 以下程序的输出结果是Dmain() int a=3;printf(%dn,a+(a-=a*a) );A) -
5、6B)12C) 0D) -125. 设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)&(n=cd)运算后,n的值位为CA) 0B) 1 C)2D) 36. t为int类型,进人下面的循环之前,t的值为0while( t=l ) B 则以下叙述中正确的是A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对7. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是BA) 地址传递B) 单向值传递C) 由实参传给形参,再由形参传回实参D) 传递方式由用户指定8. 以下程
6、序的输出结果是Cmain() int i, a10;for(i=9;i=0;i- -) ai=10-i;printf(%d%d%d,a2,a5,a8);A) 258B) 741C) 852D) 3699. 以下选项中,不能正确赋值的是AA) char s110;s1=Ctest;B) char s2=C, t, e, s, t;C) char s320=Ctest; D) char *s4=Ctestn;10. 以下程序的输出结果是Dunion myun struct int x, y, z; u;int k; a;main() a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;
7、printf(%dn,a.u.x);A)4B) 5C) 6D) 011. 以下叙述正确的是CA)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C语言出现的最晚、具有其他语言的一切优点12. C语言中用于结构化程序设计的三种基本结构是AA) 顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue13. 下列关于C语言用户标识符的叙述中正确的是BA)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以
8、出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头14. 有以下程序段intm=0,n=0;charc=a;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);若从键盘上输入:10A10,则输出结果是:AA)10,A,10B)10,a,10C)10,a,0D)10,A,015. 有以下程序main()Ainti;for(i=0;i3;i+)switch(i)case1:printf(%d,i); case2:printf(%d,i); default:printf(
9、%d,i); 执行后输出的结果是A)011122B)012C)012020D)12016. 有以下程序Bmain()inti=10,j=1;printf(%d,%dn,i-,+j);执行后输出的结果是A)9,2B)10,2C)9,1D)10,117. 有以下程序Dvoidf(intx,inty)intt;if(xy)t=x;x=y;y=t;main()inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf(%d,%d,%dn,a,b,c);执行后输出的结果是A)3,4,5B)5,3,4C)5,4,3D)4,3,518. 有以下程序Cmain()char*s=one
10、,two,three,*p;p=s1;printf(%c,%sn,*(p+1),s0);执行后输出结果是A)n,twoB)t,oneC)w,oneD)o,two19. 有以下程序Cmain()intm3=1,4,7,2,5,8,3,6,9;inti,k=2;for(i=0;i3;i+)printf(%d,mki);执行后输出结果是A)456B)258C)369D)78920. 设有如下说明typedefstructintn;charc;doublex;STD;则以下选项中,能正确定义结构体数组并赋初值的语句是AA)STDtt2=1,A,62,2,B,75;B)STDtt2=1,A,62,2,7
11、5;C)structtt2=1,A,2,B;D)structtt2=1,A,62.5,2,B,75.0;21. 以下选项中属于C语言的数据类型是DA)复数型B)布尔型C)集合型D)整型22. 一个C程序的执行是从AA)main()函数开始,直到main()函数结束B)第一个函数开始,直到最后一个函数结束C)第一个语句开始,直到最后一个语句结束D)main()函数开始,直到最后一个函数结束23. 设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是CA)3B)-12 )24. 若有 char c5=c,d,0,e,0;则执行语句printf(%s,c);结果是CA)cd0eB)
12、cdC)cdD)cd e25. 已知:int a23=1,2,3,4,5,6, (*p)3=a;下列表达式不是4的是BA)*(*p+3) B)*p+3C)*(*(p+0)+3) D)a0326. 以下有宏替换不正确的叙述DA)宏替换不占用运行时间 B)宏名无类型)宏替换只是字符串替换)宏名必须用大写字母表示27. 执行char str10=”Chnina”; strlen(str)的值是BA)5B)6)7)928. 下面程序的输出结果是D#define POWER(x) (x*x)main()int i=4; printf(%d,POWER(i-2); A)-9 B)-7 C)5D)-629.
13、 在定义int a34;后,第10个元素是DA)a24)a32 )a33)a3130. 下面程序的输出结果是Dtypedef structlong x2;short y4;char z8;MYTYPE;MYTYPE a;main() printf(%dn,sizeof(a);A)2B)8C)14D)2431. 以下能正确进行字符串赋值的是CA)char s5=a,e,I,o,uB)char s5;s=”good”C)char s5=”abcd” D)char s5;s=”good”32. 若有float x;则sizeof(x)和sizeof(float)两种描述AA)都正确B)都不正确C)前
14、者正确,后者不正确D)后者正确,前者不正确33. 若有代数式3ae/(bc),则不正确的C语言表达式是AA)3*a*e/b*cB)3*a*e/b/cC)a/b/c*e*3D)a*e/c/b*334. 下面程序的运行结果是DMain( )struct cmplx int x; int y; cnum2=1,3,2,7;Printf(“%dn”,cnum0.y/cnum0.x*cnum1.x);A)0B)1C)3D)635. 若有以下说明和语句,且0=i10,则( )是对数组元素的错误引用Cint a=1,2,3,4,5,6,7,8,9,0,*p,i;p=a;A)*(a+i) B)ap-a C)p
15、+iD)*(&ai)36. 设有以下宏定义:C#define M 2#define X(m) (M+2)*m)则执行语句:z=2*(M+X(3+2);后,z的值为A)44B)45C)32D)3337. 在如下程序段中的while循环Bint k=0;While(k=1) k+;A)有语法错,不能执行B)无限循环C)一次都不执行D)执行一次38. 下列程序运行的结果为D#includeMain() int k=0; Char c=A; Doswitch(c+) case A:k+;break; Case B:k- -;break; Case C:k+=2;break; Case D:k=k%2;
16、break; Case E:k=k*10;break; Default:k=k/3; K+;while(cG);Printf(“k=%d”,k);A)k=4B)k=6C)k=7D)k=839. 下列程序运行的结果为C#includefun(int x,int y,int *cp,int *dp)*cp=x+y;*dp=x-y;main() int a,b,c,d;a=30;b=50;fun(a,b,&c,&d);printf(“%d,%dn”,c,d);A)50,30 B)30,50C)80,-20D)80,2040. 阅读程序回答问题:main( ) int i,j,k,m=0; for(i
17、=1;i4;i+) for(j=1;j4;j+) for(k=1;k0) D)if(b=0) m=1;n=2;45. 有以下程序main( ) char k; int i; for(i=1;i3;i+) scanf(%c,&k); switch(k) case 0: printf(anothern); case 1: printf(numbern); 程序运行时,从键盘输入:01,程序执行后的输出结果是CA)anotherB)anotherC)anotherD)number number number number number another number46. 有以下程序void f(in
18、t v , int w) int t; t=v;v=w;w=t; main( ) int x=1,y=3,z=2; if(xy) f(x,y); else if(yz) f(y,z); else f(x,z); printf(%d,%d,%dn,x,y,z); 执行后输出结果是CA)1,2,3B)3,1,2C)1,3,2D)2,3,1 47. 有以下程序段Dint a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b中的值是A)5B)6C)8D)948. 有以下程序A#define f(x) x*xmain( ) int i;i=f(4+4)/f(2+2); pri
19、ntf(%dn,i); 执行后输出结果是A)28B)22C)16D)449. 设有以下语句typedef struct S int g; char h;T;则下面叙述中正确的是BA)可用S定义结构体变量B)可以用T定义结构体变量C)S是struct类型的变量D)T是struct S类型的变量50. 有以下程序Cint a=2; int f(int *a) return (*a)+;main( ) int s=0; int a=5; s+=f(&a); s+=f(&a); printf(%dn,s); 执行后输出结果是A)10B)9C)7D)851. 组成C程序的基本单位是AA)函数B)标识符C
20、)表达式D)语句52. 设int类型的数据长度为2字节,则该类型数据的取值范围DA)0至65536B)0至65535C)-32767至32768D)-32768至3276753. 在C语言中,逻辑值“真”是用( )表示的。BA)预定义为真值的宏B)非零数C)正数D)非零整数54. C语言对于嵌套if语句规定else总是与( )匹配BA)与最外层的ifB)与之前最近的ifC)与之前最近的不带else的if D)与最近的 之前的if55. 数组定义char a10=a,b,c:包括了几个元素DA)3B)9C)4D)1056. 数组名作为实参传给被调用的函数时,形参获得的是CA)该数组第一个元素的值
21、B)该数组所有元素的值C)该数组第一个元素的首地址D)该数组任意元素的地址57. 为表示关系x y z,正确的C语言表达式为CA)(x=y=z)B)(x=y)AND(y=z)C)(x=y)&(y=z)D)(xy)&(y=z)58. 根据定义int a =1,2,3,i,*p=a; 从语法分析( )是不正确的。DA)ap-a B)*(&a)C)pD)*(*(a+i)59. 若有语句scanf(“%d%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入形式为AA)12 34B)12,34C)1234D)12:3460. union uex int i;float f;char c;e
22、x;则sizeof(ex)的值是AA)4B)5C)6D)7 61. 将十六进制数176转换成十进制数是CA) 366 B) 268 C) 374 D) 27062. 下列语句中符合C语言语法的赋值语句是DA)a=7+b+c=a+7B) a=7+b+=a+7C)a=7+b,b+,a+7D) a=7+b,c=a+763. 在C语言中,要求运算数必须是整型的运算符是AA) %B) /C) D)!64. 已知字母A的ASC码为十进制的65,下面程序的输出是AA) 67,DB)B,C C)C,D D) 不确定的值main() char ch1,ch2; ch1=A+5-3; ch2=A+6-3; pri
23、ntf (%d,%cn,ch1,ch2);65. 下面程序的输出是CA)0B)1C) 3D)不确定的值main() int x=10,y=3; printf(%dn,y=x/y);66. 若执行下面的程序时从键盘上输入3和4,则输出是BA)14 B)16 C) 18 D) 20main() int a,b,s; scanf(%d%d,&a,&b); s=15; if(a*5) printf(%dn,+s); else printf(%dn,s- -);67. 下面程序的输出是AA)3B)4C)1D)2main() int a10= 1,2,3,4,5,6,7,8,9,10,*p=a; prin
24、tf(%dn,*(p+2);68. 执行下面程序中输出语句后,a的值是CA)65B)20C)15D)10main()int a,k,b; printf(%dn,(a=3*5,a*4,a+5); printf(%d%d%d%n,k,a,b);69. 下列函数的功能是AA)求字符串的长度B)比较两个字符串的大小C)将字符串X复制到字符串Y D)将字符串X连接到字符串Y后面int fun1(chat* x) char*y=x; while(*y+);return(y-x-1);70. 若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof( fp)的返回是DA)EOFB)-1C)非零值
25、D)NULL71. 二进制语言是属于AA)面向机器语言B)面向过程语言C)面向问题语言D)面向汇编语言72. 不是c语言提供的合法关键字是B A)switchB)cherC)caseD)default73. 执行语句“x=(a=3,b=a-)”后,x,a,b的值依次为CA)3,3,2B)3,2,2D)3,2,3D)2,3,274. 表达式“10!=9”的值是DA)trueB)非零值C)0D)175. 以下程序的输出结果是D main() int x=10,y=10; printf(“%d %d、n”,x- -,- -y); A)10 10B)9 9C)9 10D)10 976. 以下程序的输出
26、结果是D main() int x=10,y=10; printf(“%d %dn”,x+,- -y); A)10 10B)9 9C)9 10D)10 977. 设有如下定义:D char *aa2=“abcd”,“ABCD”; 则以下就法中正确的是 A)aa数组成元素的值分别是“abcd”和ABCD B)aa是指针变量,它指向含有两个数组元素的字符型一维数组 C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D)aa数组的两个元素中各自存放了字符a和A的地址78. 下列程序的输出结果是D main()char p110=abcd,p210=ABCD,str50=xyz;
27、strcpy(str,strcat(p1,p2); printf(%s, str);A)xyabcABB)abcABzC)ABabczD) abcdABCD79. main()C int a5=2,4,6,8,10,*p,*k; p=a; k=&p; printf(%d,*(p); printf(%dn,*k); A)4 4B)2 4C)2 2D)4 680. 执行以下程序后,y的值是C main () int a=2,4,6,8,10; int y=1,x,*p; p=&a1; for(x=0;x3;x+) y =*(p+x); printf(“%dn”,y); A)6B)4C)8D)108
28、1. C语言提供的合法的数据类型关键字是BA)DoubleB)shortC)integerD)Char82. 表达式:10!=9的值是DA)trueB)非零值C)0D)183. 在下列选项中,不正确的赋值语句是DA)tB)n1=(n2=(n3=0)C)k=i=jD)a=bc=1;84. 有以下程序段Bintm=0,n=0;charc=a;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);若从键盘上输入:10A10,则输出结果是:A)10,A,10B)10,a,10C)10,a,0D)10,A,085. 不能把字符串:Hello!赋给数组b的语句是BA
29、)char b10=H,e,l,l,o,!;B)char b10;b=“Hello!”;C)char b10;strcpy(b,“Hello!”);D)char b10=“Hello!”;86. 若有以下说明:C int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为6的表达式是A)*p6B)*(p6) C)*p+5D)p587. 若有以下说明:D int w34o=0,1,2,4,5,8; int(*p)4=w; 则数值为4的表达式是A)*w11B)p,*(p1) C)w22 D)p1188. 能正确表示a10或a0的关系表达式是DA)a=10 or a=10a=10
30、a=10 a=089. 若有以下的说明和语句:C main() int t32,*pt3,k; for(k=0;k0;i)for(j=0;j4;j+)A)20B)25C)24D)3099. 若有以下定义和语句:A char s110=12345,s210=1234; printf(%dn,strlen(strcpy(s1,s2); 则输出结果是A)4B)5C)9D)10100. 若有以下定义和语句:B int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则不能表示a数组元素的表达式是A)*pB)a10 C)*aD)apa二、编程题101. 从键盘输入10个数,计算它们的和并输出
31、。Main() int a10,sum=0,i;1分 for(i=0;i10;i+) 3分scanf(“%d”,&ai); 1分for(i=0;i10;i+) 3分 sum=sum+ai; 1分printf(“sum=%d”,sum); 1分102. 判断一个数是否是素数。#include“math.h”main() int m,i,k; 1分 scanf(“%d”,&m); 1分 k=sqrt(m); for(i=2;i=k+1) 3分 printf(“%d is a prime numbern”,m); else printf(“%d is not a prime numbern”,m);
32、103. 用选择排序法对一维数组中的整数进行排序,按从小到大的顺序排列。main( ) int n,j,k,x,min,min_k,a100; 1分 scanf(“%d”,&n); for(j=0;jn;j+) 2分scanf(“%d”,&aj);for(k=0;kn-1;k+) 5分 min=ak; min_k=k; for(j=k;jn;j+) if(ajmin) min=aj; min_k=j;x=amin_k;amin_k=ak;ak=x; for(j=0;jn;j+) 2分 printf(“%d ”,aj);printf(“n”);104. 用递归的方法求n!。Float fac(i
33、nt n) 6分 float f; if(n0) printf(“n0,data error!”); else if(n=0| n=1) f=1; else f=fac(n-1)*n; return (f);main() int n; 1分 float y; printf(“input a integer number:”); scanf(“%d”,&n); y=fac(n); 2分 printf(“%d!=%15.0f”,n,y); 1分105. 编写一个程序,比较两个整数的大小,要求从键盘输入2个整数,然后再屏幕上从大到小输出。Main() int a,b,t; 1分 Scanf(%d%d,&a,&b); 1分 If(ab) 7分 t=a;a=b;b=t;printf(“%d”,a,b); 1分106. 输出9*9口诀。注意分行与列考虑,共9行9列,用多重循环语句。输出形式如下:1*1=1 1*2=2 1*9=92*1=1 2*2=4 2*9=189*1=9 9*2=18 9*9=81main ()int i,j,result; 1分printf (n);for
链接地址:https://www.31doc.com/p-2379100.html