




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计语言C课程习题集西南科技大学成人、网络教育学院 版权所有习题【说明】:本课程程序设计语言C(编号为03004)共有单选题,编程题, 填空题等多种试题类型,其中,本习题集中有 填空题等试题类型未进入。一、单选题1. 在C语言中,合法的长整型常数是AA) OLB) C) &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) -6B)12C) 0D) -
2、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. 以下程序的输出结果是Cmain(
3、) 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;printf(%dn,a.
4、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)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中
5、可以出现下划线,但不可以放在用户标识符的开头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(%d,i); 执行后输出的
6、结果是A)B)012C)D)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,two,three,*p;p=s1;printf
7、(%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,75;C)structtt2=1,A,2,B;D)s
8、tructtt2=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)cdC)cdD)cd e25. 已知:int a2
9、3=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. 在定义int a34;后,第10个元素是DA)a
10、24)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)前者正确,后者不正确D)后者正确,前者不正确33.
11、若有代数式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+iD)*(&ai)36. 设有以下宏定义:C#d
12、efine 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;break; Case E:k=k*10;brea
13、k; 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=1;i4;i+) for(j=1;j4;j+)
14、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(int v , int w) int t; t=v;v
15、=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); printf(%dn,i); 执行后输出结果是A)28B
16、)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)表达式D)语句52. 设int类型的数据长度为2
17、字节,则该类型数据的取值范围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)该数组第一个元素的值B)该数组所有元素的值C)该数组第一个元素的首地址
18、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;ex;则sizeof(ex)的值是AA)4B)5C)
19、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; printf (%d,%cn,ch1,ch2);65.
20、下面程序的输出是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; printf(%dn,*(p+2);68. 执行下面程序中
21、输出语句后,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)非零值D)NULL71. 二进制语言是属于AA)面向机器
22、语言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. 以下程序的输出结果是D main() int x=10,y=10
23、; 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; strcpy(str,strcat(p1,p2);
24、 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)1081. C语言提供的合法的数据类型关键字是BA)Do
25、ubleB)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)char b10=H,e,l,l,o,!;B)c
26、har 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=10a=10 a=089. 若有以下的说明和语句:C
27、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个数,计算它们的和并输出。Main() int a10,sum=0,i;1
28、分 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);103. 用选择排序法对一维数组中的整数进行排序,
29、按从小到大的顺序排列。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(int n) 6分 float f; if(n0)
30、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
31、;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 (i=1;i10;i+) 2分for(j=1;j10;j+) 6分result=i*j;printf(%d*%d=%-3d,i,j,result); /*-3d表示左对齐,占3位*/ printf(n);/*每一行后换行*/1分107. 有一分数序列:2/1,3/2,
32、5/3,8/5,13/8,21/13.求出这个数列的前20项之和。(请抓住分子与分母的变化规律。)main ()int n,t,number=20; 1分float a=2,b=1,s=0;for (n=1;n=number;n+) 2分s+=a/b; 3分t=a;a+=b;b=t;/这一步是关键4分printf(sum is %9.6fn,s);108. 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。main()int len; 1分char *s20;printf(please input a sing:n);scanf(%s,s); 1分len=length(
33、s); 2分printf(the sing has %d characters.,len);int length(char *p)int n;n=0;while(*p!=0) 4分 n+; p+;return n; 2分109. 编写一个递归函数求n!,函数原型int fact(int n)。#include sio.hint fact(int n) int sum; 1分if(j= =0) 2分 sum=1; 1分else sum=n*fact(n-1); 4分return sum; 2分110. 编写一个程序,对10个数进行排序。#define N 10main()int i,j,min,
34、tem,aN; 1分/*input data*/printf(please input ten num:n);for(i=0;iN;i+) 1分printf(a%d=,i);scanf(%d,&ai);printf(n);for(i=0;iN;i+)printf(a%d=%d ,i,ai);printf(n);/*sort ten num*/for(i=0;iN-1;i+) 2分min=i; for(j=i+1;jaj) min=j;tem=ai;ai=amin;amin=tem;/*output data*/printf(After sorted n);for(i=0;i=a&si=z) 2
35、分si=si-32;fputc(si,fp); 1分i ;fclose(fp); 1分fp=fopen(test,r); 1分fgets(s,slen(s)-1,fp); 1分printf(%sn,s);fclose(fp); 1分113. 编写一个程序,求1+2+3+4+100.要求用循环语句。main() int sum=0,i; 2分 for(i=1;i=100;i+)8分 sum=sum+i;114. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?在屏幕上输出结果。main()int i,j,k; 1分printf(n);for(i=1;i5;i+)1分for(j=1;j5;j+)1分for (k=1;k5;k+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮业食品安全管理体系认证合同
- 小米c面试题及答案
- 市容环卫外包方案
- 轻工产品仓储仓单质押担保协议
- 汽车售后服务网点车辆订购及维修服务合同
- 社区改造设计建筑方案
- 生态造林工程投标方案
- 党章知识课件
- 数学小升初面试题及答案
- 体育协会换届方案
- 厂房围墙承包协议书
- 国际压力性损伤-溃疡预防和治疗临床指南(2025年版)解读
- 熊猫旅居签署协议书
- 心衰药物治疗进展课件
- 化工仪表管理与维护
- 2024年“蓝桥杯”科学素养竞赛考试题库(含答案)
- 风力发电运维值班员(技师)职业技能鉴定考试题(附答案)
- 2025年上半年潜江市城市建设发展集团招聘工作人员【52人】易考易错模拟试题(共500题)试卷后附参考答案
- 广东省惠州市惠城区2024-2025 学年度第一学期期末教学质量检测八年级道德与法治试卷及答案(含答案)
- 血站生物安全培训课件
- 现场外伤急救技术
评论
0/150
提交评论