C语言练习(含答案)_第1页
C语言练习(含答案)_第2页
C语言练习(含答案)_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、、选择题(每小题1.5分,共60 分)1A2B3A4D5D6c7D8B9c10D11A12A13c14B15D16D17A18D19D20c21D22c23B24A25D26B27A28c29A30B31c32A33B34c35c36D37A38c39A40c1. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述屮错误的是()A)有零个或多个输入B)有零个或多个输岀C)有穷性D)可行性2.以下符合C语言语法的实型常量是()A) C) .5E-35D)E1B) 5A)_mai nB)IfC)txtD)i nten clude-maxREALk_2sinturbo3COM_0014.

2、以下不能定义为用户标识符的是()A) sea nfB ) VoidC)D)3.以下4组用户定义标识符屮_3A) 0=x0); D)if(b=O) m=l;n=2;11. 设有定义: inta,*pa=&a; 以下 scanf 语句中能正确为变量 a 读入数据的是 ()A)scanf(%d ,pa);B) scanf( 44%d,a);C) scanf( “d,&pa);D) scanf( “d,*pa);12. 以下程序段中与语句k=ab?(bc?l:O):O ;功能等价的是 () A)if(ab)&(bc) k=l;else k=0;C)if(a=b) k=0; else if

3、(b=c) k= 1;13. 有以下程序main() char k; int i; for(i=l;ib)ll(bc) ) k=l else k=0; D)if(ab) k=l; else if(bc) k=l; else k=0; scanf( “c,&k); switch(k) case O: printf(“nano;th)eTcase T: piintf(nunibein);程序运行时,从键盘输入:A) anotherB)naunmotbherOlv 回车,程序执行后的输出结果是() C) D) annouthmeb nunmubmebrnumber another number er

4、 er14. 有以下程序main() int x=0,y=5,z=3;while(z 0&4_+ XV5) y=y-1; printf( u%d,%d,%dn ,x,y,z); 程序执行后的输出结果是 ()A)3,2,0 B)3,2, ? l C)4,3,-l15. 有以下程序main() int i,s=0;for(i=l;i10;i+=2) s+=i+l; printf( 44%dn ,s); 程序执行后的输出结果是 ()A)自然数1? 9的累加和C)自然数1? 9屮的奇数之和16. 有以下程序D)5,-2,-5B)自然数1? 10的累加和D)自然数1? 10屮的偶数之和main() in

5、t i,n=0;for(i=2;iv5;i+) do if(i%3) continue;n+; while(!i);n+;print f( n=% dn ,n); 程序执行后的输出结果是 ()A) n=5 B)n=2C)n=3 D) n=417. 若程序中定义了以下函数double myadd(double a,double b)说明是 return (a+b); 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的 ()A)double myadd(double a,b); B)double myadd(double,double);C)double myadd(dou

6、ble b,double a);D)double myadd(double x,double y);18. 有以下程序char fun(char x , char y) if(xy) f(x,y);else if(yz) f(y,z);else f(x,z);printf(% d, % d, % dn ,x, y,z); 执行后输出结果是 ()A) 1,2,3 B)3,l,2 C)l,3,2 D)2,3,l21. 有以下程序段int a10= l,2,3,4,5,6,7,&9,10,*p= &a3,b; b=p5;b中的值是()A)5 B)6 C)8 D)922. 有以下程序main() ch

7、ar a=” abcdefg ” ,b10= ” abcdefg;printf( u%d %dn ,sizeof(a),sizeof(b); 执行后输出结果是 OA)7 7 B)8 8 C)8 10 D)10 1023. 有以下程序 void swap 1 (int c) int t;t=cO;c Q=cl;cl=t;)void swap2(int cO,int cl) int t; t=cO;cO=cl;cl=t;main()int a =3,5,b 2=3,5;swapl(a); swap2(b0,bl);printf (“d %d %d %dn ,aO,al,bO,bl); 其输出结果是

8、 ()D)3 5 5 3A)5 3 5 3 B) 5 3 3 5C)3 5 3 524. 有以下程序void sum(int *a) a0=al;main() int aa10= 1,2,3,4,5,6,7,&9,10,i;for(i=2;i=0;i )sum( &aai); piintf (“diT,aa 0); 执行后的输出结果是 ()A)4 B)3 C)2 D)125. 有以下程序int f(int b4) int i,j,s=O;for(j=0;j2) i=3-j; s+=bi|j;return s;main()int a44=l,2,3,4,0,2,4,5,3,6,9,12,3,2,

9、l,0; printf(t%dn ,f(a); 执行后的输出结果是 ()A)12 B)ll C)18 D)1626. 有以下定义#include char a10,*b=a;不能给数组a输入字符串的语句是()A)gets(a) B)gets(aO) C)gets(&aO); D)gets(b);27. 有以下程序main() char *p10=“abc,aabdfg,dcdb&,abbd,cd;printf (“dn,stTlen(p4);执行后输出结果是 OA)2 B)3 C)4 D)5 2&有以下程序int a=2;int f(int *a)return (*a)+;main() int

10、 s=0; int a=5; s+=f(&a);s+=f(&a);printf ( “ dn,s);执行后输出结果是 ()A) 10 B)9 C)7 D)829. 有以下程序#define f(x) x*xmain() inti;i=f(4+4)/f(2+2); printf( “dn,i);执行后输出结果是 OA)28 B)22 C)16 D)430. 设有以下语句typedef struct S int g; char h; T;则下面叙述中正确的是 ()A)可用S定义结构体变量B)可以用T定义结构体变量C) S 是 struct 类型的变量 D) T 是 struct S 类型的变量31

11、. 有以下程序struc STU char name 10; int num;void fl (struct STU c) struct STU b=“ LiSiGuo,2042;c=b;void f2(struct STU *c) struct STU b=SunDan ,2044;*c=b;main() struct STUa=44YangSan,204 l,b=“Wang Yin ” ,2043;fl(a);f2(&b);printf ( “ d %dn ,a.num,b.num); 执行后的输出结果是 ()A) 2041 2044 B) 2041 2043 C) 2042 2044 D

12、) 204220432. 有以下程序3main() unsigned char a,b; a=4l3; b=4&3; piintf (“d %dn,a,b(; 执行后输出结果是 ()A) 7 0 B)0 7 C)11 D)43 033. 下面程序的功能是输出以下形式的金字塔图案是:main()for(i=l;i=4;i+) for(j=l;j=4-i;j+)for(j=l;j= int i,j ;printf (“ ;“) ;j+) printf( “ *J;printf( iT“); 在下划线处应填入的是 ()A)i B)2*i ? l C)2*i+1 D)i+234. 有以下程序void

13、sort(int a,int n) int i,j,t;for(i=0;in-1 ;i+=2) for(j =i+2;j n;j +=2) if(aiaj) t=ai;ai=aj;a|j=t; main() int aa10= 123,4,5,6,7,&9,10,i;printf ( “ d,aai);sort(aa,10);for(i=0;i10;i+) printfCW); 其输出结果是 OA)l,2,3,4,5,6,7,&9,10,C)9,2,7,4,5,6,3,8,l,10,B) 10,9,8,7,6,5,4,3,2,1,D)l,10,3,8,5,6,7,4,9,2,35. 以下程序段

14、中,不能正确赋字符串 (编译时系统会提示错误 )的是 ()A) char s10=abcdefg; B) char t=abcdefg ” ,*s=t;C) char s10;s=AAabcdefgAA; D) char s10;strcpy(s,” abcdefg);36. 有以下程序执行后输出的结果是 () #include main(int argc ,char *argv) int i,len=0;for(i= 1 ;iargc;i+=2) len+=strlen(argv i); printf(“n5”d,len);经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的

15、命令行ex abed efg h3 k44A) 14 B)12 C)8 D)637. 有以下程序void f(int a,int j) int t;if(ij)t=ai; ai=aj;aj=t;f(a,i+l,j-l);main() int i,aa5= 1,2,3,4,5; f(aa,0,4);for(i=0;i5;i+) printf( d, ”“,aai); printf(n” ); 执行后输出结果是 ()A)5,4,3,2 丄 B)5,2,3,4 丄 01,4,3,2.5, D)l,2,3,4,5, 3&有以下函数定义:void fun(int n, double x) f

16、un 的止确调用语句是若以下选项中的变量都已止确定义并赋值,则对函数B) k=fun(10,12.5);D) void fun(n,x);A) fun(int y,double m);C) fun(x,n);39. 有以下程序 #include main() printf( n%dn H,NULL ); 程序运行后的输出结果是A) OB) 1C) -ID) NULL 没定义,出错40. 已定义 c 为字符型变量,则下列语句中正确的是A) c=97;B) c=97; C) c=97;D) c=a;二、填空题 ( 每空 2分,共 40分)1. 已知字符 A 的 ACSII 码值为 65,以下语句的

17、输岀结果是【1】char ch=B ,;printf(%c %dn,ch,ch);2. 以下程序运行后的输出结果是【2】main() int p=30;printf( H%dnH,(p/30 ? p/10 : p% 3);3. 有以下语句段int nl=10,n2=20;printf( 【3】 ,nl.n2);要求按以下格式输岀 nl和n2的值,每个输岀行从第一列开始,请填空。nl=10n2=204. 以下程序运行后的输岀结果是【4】o main() char m;m=B+32; printf(%cn,m);5. 以下程序运行后的输岀结果是【5】。main() int a=l,b=3,c=5;

18、if (c=a+b) printf(yesn);else printf(non);)6. 有以下程序main() int t=l,i=5;for(;i=0;i ) t*=i; printf(%dn ,t); 执行后输岀结果是【6】。7. 有以下程序mai n() int n=0, m=l,x=2;if(!n)X-=l ;if(m)x-=2;if(x)x-=3;printf(tt%dn”,x执行后输岀结果是【7】。八&有以下程序#i nclude mai n() char chl,ch2; int nl, n2;ch 1 =getchar(); ch2=getchar(); nl=chl- tO

19、,; n2=nl*10+(ch2 ? 0);printf( %dn”,n2);程序运行时输入:12v回车,执行后输岀结果是【8】。9. 执行以下程序后,输岀#号的个数是9 o#i ncludemai n() int i,j :for(i=l; i5; i+)for(j=2; j=i; j+) putchar(A#A);10. 以下程序运行后的输岀结果是【10】mai n()int i,n =0,0,0,0,0;for(i= 1 ;iv=4;i+) ni=ni-l*2+l;printf( n%d n,ni);11. 有以下程序void f( int y,i nt *x)y=y+*x;*x=*x+

20、y;mai n() int x=2,y=4;f(y,& x);printf ( % d%dn”,x,y);执行后输岀的结果是【11】。12. 函数fun的功能是计算xndouble fun( double x,i nt n) int i; double y=l;for(i= 1 ;i=n ;i+) y=y*x;return y;m=a4+b4-(a+b)3主函数中已经正确定义 m,a,b变量并赋值,并调用 fun函数计算: 实现这一计算的函数调用语句为【12】。13.F面rotate函数的功能是:将n行n列的矩阵A转置为A,例如:1234159156782613当A=91112贝 U A =

21、370 1410116481 15请填空34526#defi ne N 4 void rotate(i nt aN) in ti,j,t;for(i=0;iN;i+)for(j=O;【13】;j+)t=aiO;14;aji=t;14. 以下sstrcpy()?数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成个新的字符串s。请填空。void sstrcpy(char *s,char *t) while(*s+=【15】);mai n() char strl 100,stT2=” abcdefgtT;sstrcpy(strl,str2);printf( 6%sn”,strl);15. 下列程序的运行结果是:【16】#in clude char *ss(char *s) return s+strle n( s)/2;mai n() char *p,*stT=abcdefgh;p=ss(str);printf ( % sn,p);16. 下面程序的运行结果是:【17】int f( int a, int n) if(n l) return a0+f(&al, n-1);el

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论