C语言程序的设计试题

上传人:z**** 文档编号:50331814 上传时间:2022-01-20 格式:DOC 页数:19 大小:213KB
收藏 版权申诉 举报 下载
C语言程序的设计试题_第1页
第1页 / 共19页
C语言程序的设计试题_第2页
第2页 / 共19页
C语言程序的设计试题_第3页
第3页 / 共19页
资源描述:

《C语言程序的设计试题》由会员分享,可在线阅读,更多相关《C语言程序的设计试题(19页珍藏版)》请在装配图网上搜索。

1、全国软件专业人才设计与开发大赛校选拔赛C语言程序设计试题说明:本试题共15页,请把答案写在答题卡上。一、单选题(共60小题,每题1分,共60分)1. 执行下列程序中的输出语句后,x的值是.main ()int x ;printf “dn”,(x=5*6,x*2,x+20); A) 30 B ) 60 C ) 50 D ) 802. 下列程序的输出结果是.main ()int x=1, y=0, z;z= ( x=0 );printf “%d %d% d%n, z,x,y); A) 0 -1-1 B )0 -1 0 C )0 1 0 D)0 1-13. 在C语言中,下列选项属于合法的长整型常数的

2、是 .A)0L B)1234567 C)0.0234567 D)3.14159e34. 下列选项中属于不正确的赋值语句的是 .A)t+ ; B) n1= (n2= (n3=0); C) k=i= =j ; D)a=b, c=1 ;5. 若有定义:int a ,b; char x ,y;并有以下输入数据:14 22 XxYy (回车)则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是A) scanf“ %d %d,&a,&b);x=getchar () ; y=getchar ();B) scanf“ %d%d %c %”,&a,&b,&x,&x,&y,&y);C) s

3、canf“ %d %d %c%c%c %”&a,&b,&x,&x,&y, &y);D) scanf“ %d%d %c %”,&a,&b,&x,&y);6. 下列转义字符不正确的是 .A) B ) C ) 053 D ) 07. 下列选项可作为 C语言赋值语句的是 .A) x=3, y=5 B) a=b=6 C) i- -; D) y=int (x);8. 当c的值不为0时,下列选项中能正确将c的值赋给变量 a、b的是A) c=b=a; B ) ( a=c)ll( b=c) ; C) (a=c) & (b=c) ; D) a=c=b;9. 有以下程序:main () un sig ned int

4、 a;int b=-1:a=b;printf “ %u , a); 该程序运行后的输出结果是 .(知识点4.5 )A) -1 B ) 65535 C ) 32767 D ) -3276810. 若x、b、m n均为int型变量,执行下面语句后b的值为.m=20 n=6;x= ( - -m= =n+ ) ? - -m : +n;b=m+A) 11 B ) 6 C ) 19 D ) 1811. 有以下程序:main () int a=111,b=222;printf“ dn”, a, b);该程序运行后的输出结果是 .A)错误信息 B) 111 C) 222 D) 111,22212. 以下程序的

5、输出结果是 .main () int a=2, c=5;printf (a=%d b=%dh, a, c) ; A) a=%2,b=%5 B) a=2,b=5 C) a=%d b=%d ) a=%d b=%d13. 对于浮点型变量f,能实现对f中的值在小数点后第三位进行四舍五入的表达式是.A) f= ( f*100+0.5 ) /100.0 B ) f= (f*100+0.5 ) /100C) f= ( int )( f*100+0.5 ) /100.0 D ) f= (f/100+0.5 ) *10014. 设 a=5, b=6, c=7, d=8, m=2, n=2, 执行(m=ab)&

6、(n=cd) 后 m,n的值为.A) 2,2 B ) 2,0 C ) 0,2 D ) 0,015. 语句 printf“dn”,strlen “);的输出结果是 .A) 9 B ) 11 C ) 7 D ) 816. 有以下程序:main ()int y=1234;printf“ y=%6c”,y);printf“ y=%+06dn”,y);该程序的运行结果是.A) y= 1234y=001234 B) y= 1234y=+01234C) y=1234y=+01234 D) y= 1234y=123417. 语句:printf “ %d , ! 9);的输出结果是 .A) 0 B ) 1 C

7、)有语法错误,不能执行 D ) -918. 已有定义语句:int x=6, y=4, z=5;执行以下语句后,能正确表示x、y、z值的选项是.if(xy)z=x ; x=y ; y=z ;A)x=4,y=5, z=6 B )x=4,y=6,z=6C)x=4,y=5,z=5 D )x=5,y=6,z=419.下列选项中属于正确的switch语句的是.A)switch(1.0 )B)swicth ( 1) case 1.0:printf(“ An ”); case 1:printf(“An ”);case 2.0:printf(“ Bn ”); case 2:printf(“Bn ”); C) s

8、witch(int )(1.0+2.5 )D)switch(a); case 1:printf(“ An ”); caseaa :printf (“An ”);case 1+2:printf(“Bn”); casea . b:printf “ Bn ”); 20.若k为int型变量,以下语句段执行后的输出结果是k=-3 ;if ( kb)if (cd) x=1 ;elseif (ad) x=2 ;else x=3;else x=4;else x=5;A) 2 B ) 3 C ) 4 D ) 522.下列程序的运行结果是main () int y=10;do y-; while (-y );pr

9、intf “%dn”, y-);A) -1 B)1 C ) 8D ) 023.下列程序的运行结果是# in elude main ()int i ;for (i=1 ; i=5 ; i+ ) if (i %2 ) printf(“ * ”;else con ti nue ;printf(“ # ”;printf (“ $n ” ;A) *#*#$ B ) #*#*#*$ C ) *#*#*#$ D ) *#$24. 若x是int型变量,且有下面的程序片段:for (x=5; x8; x+)printf (x%2)? (“ *%d”: “ #%dn), x);该程序片段的输出结果是 .A) *5

10、#6 B ) #5 C ) #5*6#7 D ) *5#6*7 *7 *6#725. 有以下程序:main ()int a=1, b=0;switch (a) case 1 : switch (b) case 0 : printf“ * ); break ;case 1 : printf“ #); break ; case 2 : printf “ $ ”; break ; 该程序的输出结果是.A) * B ) *$ C ) *#$ D ) #$26. 下列程序段的输出结果是 .int x=3 ;do printf“ %3d,x-=2 ); while (! (x);A) 1 B) 3 0 C

11、 ) 1 -2 D )死循环27. 有以下程序,其中 x、y为整型变量;for (x=0, y=0; (x=1) & (y= 1 ); x+,y);printf “x=%d y=%d, x, y);该程序的输出结果是.A) x=2, y=0 B) x=1 ,y=0 C) x=1, y=1 D) x=0, y=028. 有以下程序段:int n=0 , p;do scanf“ c”,&p); n+; while (p! =12345&nj )语句共执行的次数是 .main () int i=0,j=10, k=2, s=0;for (;) i+= k ;if ( ij ) printf“ c”,

12、s);break ;s+=i ;A) 4 B ) 7 C ) 5 D ) 630. 以下程序的功能是:按顺序读入10名学生和4门课程的成绩,计算出每位学生的平均分进行输出,但运行结果不正确。main () int n , k ; float score , ave;ave=0.0 ;for ( n=1; n=10; n+) for (k=1 ; k=4; k+) scanf“ f”, &score );ave+=score/4 ; printf “ NO%d %fn ”,n, ave); 造成程序计算结果错误的语句行是 .A) ave=0.0 ; B) for (n=1; *=10; n+)C

13、) ave+=score/4 ; D) printf “ NO%d %fn ”,n,ave);31. 若有以下定义:char s10=a,b ,c ,0 ,0,2 ,x32,0;执行语句 printf“ c”,strle n (s);的结果是 .A) 3 B) 4 C) 8 D) 1032. 设有数组定义:char array =“abcdef ”;则数组array所占的空间为 .A) 4个字节B) 5个字节C) 6个字节D) 7个字节33. 有以下程序:main () char str 10=“China ”,“Beijing ” , *p=str ;printf (“%sn”,p+10);

14、 该程序运行后的输出结果是 .A) China B) Beijing C ) ng D) ing34. 阅读下面程序,该程序段的功能是 .#in elude main () int c =23,1,56, 234,7, 0, 34,i,j,t ;for ( i=1;i=0&tcj) cj+1=cj; j- -; cj+1=t;for ( i=0;i7;i+) printf (“ %d ”,ci);putchar ( n);A)对数组元素的升序排列B )对数组元素的降序排列C)对数组元素的倒序排列D )对数组元素的随机排列35. 下列程序的输出结果是.main() int in33,i,j ;f

15、or(i=0 ; i3 ;i+)for(j=0 ; j3 ;j+)nij=i+j;for(i=0 ; i2 ;i+)for(j=0 ; j2 ;j+)ni+1j+1+= nijprintf (“ %d n ”, nij);A) 14 B) 0 C ) 6 D )值不确定36. 下列函数调用语句中含有 个参数。func (fl,f2 ),(f2,f3,f4 ),f5 )A) 3 B) 4 C) 5 D) 637. 下列程序的运行结果是.#in clude main () char *p1,*p2,ch20=“ ABCDEFabcde” ;p1= “1234”; p2= “abed”;strcpy

16、 ( ch+1,p2+1) ; strcpy (ch+3, p1+3);pintf(“ sn ”, ch); A) Abc4EFabcde B) Abc4EF C) AbcdEF D) Abc438. 下列程序的运行结果是.# in clude int f (int a ) switch (a) case 0: return 0;case 1 : case 2 : return 1;return (f (a-2 ) +f (a-3 );main () int b ;b=f (10);printf (“ b=%dn”,b);A) 12 B ) 10 C) 9 D ) 839. 有以下程序:fun

17、 (int n ) if (n= =1| n= =2) return 2;return s=n-fun (n-2 ); main ()printf(“ %dn, fun (7); 该程序运行后的输出结果是 .A) 1 B ) 2 C ) 3 D ) 440. 下列程序中函数sort的功能是对a数组中的数据进行由大到小的排序:void sort (int a ,int n ) inti , j , t ;for (i=0 ; in-1 ; i+ )for (j=i+1 ; jn ; j+ )if (aiaj) t=ai; ai=aj; aj=t ; main () int aa10=1,2,3,

18、4,5,6,7, 8,9,10 ,i ;sort (&aa3 ,5);for (i=0 ; i10 ; i+ ) printf ( %d”,aai);printf (“n ”);该程序运行后的输出结果是 .A) 1, 2,3,4,5,6, 7, 8, 9, 10,B) 10, 9, 8,7,6,5,4,3, 2, 1,C)1, 2,3,8,7,6, 5, 4, 9, 10,D) 1, 2, 10,9,8,7,6,5, 4, 3,41. 下列程序的运行结果是 .main () int a=3, y;y=fn (a , a+);printf (“%c”, y); int fn (x , c) in

19、t b ;if (xc) b=1;else if (x= =c ) b=0;else b=-1;return ( b);A) 3 B) -1 C ) 1 D) 042. 下列程序的运行结果是.main () char arr24;strcpy ( arr , “you”); strcpy (arr1 , “me);printf“ %sn”, arr ); A) you me B ) you C) me D) arr43. 下列程序的输出结果是.intf () static int i=0;int s=1;s+=i ; i+ ;return s ; main () int i , a=0 ;fo

20、r (i=0 ; i5 ; i+ ) a+=f ();printf“ %dn), a); A) 20 B) 24 C) 25 D) 1544. 程序中对fun函数有如下说明:void *fun ();此说明的含义是.A) fun函数无返回值B) fun函数的返回值可以是任意的数据类型C) fun函数的返回值是无值型的指针类型D) 指针fun指向一个函数,该函数无返回值45. 设有下列定义:static int x , *p=&x, *q ;scanf (“ %d %d, p, q);若输入3,4,则x的值为.A) 3 B)4 C)0 D )无法确定46. 设有以下程序:int fun ( ch

21、ar *s ) int n=0;while ( *s) n+ ; s+ ; return n ; main ()char y =“ this_is_a n_example.”;printf (%dn”,fun(&y6);该程序的输出结果是.A) 12 B) 13 C) 14 D) 1647. 下列程序的功能是.int fun ( char *a )char *b=a ;while ( *b) b+;return b-a ; A)比较两个字符串的大小B )字符串的复制C)计算字符串的长度 D )字符串的连接48. 下列程序的输出结果是.main ()int k=3 , m=5, n=7 ;int

22、 *pk=&k, *pm=&m *p ;* ( p=&n) =*pk* ( *pm);printf (“ dn”,n);A) 5 B) 7 C) 15 D) 2149. 下列程序的执行结果是.main () char a10=9, 8, 7,6, 5, 4,3, 2, 1, 0, *p=a+5 ;printf (“ %d,*p) ; A) 非法B) a4的地址C) 5 D) 450. 以下函数返回a所指的数组中最小值所在的下标值:fun (int *a , int n ) int i ,j=0, p ;P=j ;for ( i=j ; in ; i+ )if ( aiap) ;return (

23、 p) ; 在下划线处应填入.A) i=p B ) ap=ai C ) p=j D ) p=i51. 下列程序的运行结果是 .void fun ( int *a , int *b ) int *k ;k=a; a=b; b=k; main () int a=3, b=6, *x=&a, *y=&b ;fun (x,y);printf (“ %d %d , a, b);A) 6 3 B ) 3 6 C )编译出错 D) 0 052. 有如下程序:#define f( x) x*xmain () inti ;i=f (4+4) / (2+2);printf (“ dn”, i ) ; 该程序执行后

24、的输出结果是 .A) 28 B) 21 C) 16 D) 453. 下列程序的输出结果是.struct tt ; int n1 ; char n2 ; float n3 ;union uuint u12; char u22; su ;main ()printf(“ %dn, sizeof (struct tt ) ; A) 11 B) 12 C) 7 D) 954. 下列程序的输出结果是.struct LH int n ; struct LH *m ; p4;main () inti ;for (i=0 ; in , p3.m-n ); A ) 1, 2 B) 1, 3 C) 2, 0 D )

25、程序出错55. 下列程序的输出结果是.struct st int x ; int *y ; *p ;int dt4=10, 20, 30, 40;struct st aa4=50, &dt0 , 60, &dt1 , 70, &dt2 , 80, &dt3;main ()p=aa ;printf “%d ”,+p-x);printf (“%d ”,(+p) -x );printf “ %d ”,+ (*p-y ); A) 10 20 20 B ) 50 60 21 C ) 51 60 21 D ) 60 70 3156. 字符0的ASCII码的十进制数为 48,且数组的第0个元素在低位,则以下

26、程序的执行结果是.#in elude main () union int i4;long k ;char c6;a , *s=&a ;s-i0=0x39;s-i1=0x38;printf“ cn”,s-c0);A) 5 B) 3 C) 6 D) 957. 下列程序的运行结果是.main () unsigned c仁0xff, c2=0x00 ;c仁c2|c12 ; c2=c1A0236 ;printf “ %x %xn ”,c1 , c2);A) 0x3f, 0XA1 B) 3f, A1 C) ffff , 61 D) 3f , al58. 若有运算符,sizeof , A, &=,则它们按优

27、先级由高至低的排列次序正确的是. A sizeof , &= , , a b ) sizeof , , a , &=C) a, sizeof,&= D ) , a,&=, sizeof59. 有以下程序:#in elude void fun (char *fname , char *st ) FILE *myf ; int i ;myf=fopen ( fname, “ W);for (i=0 ; istrlen(st ); i+ ) fputc (sti , myf);fclose ( myf);main () fun (“test.t ), new world ”; fun (“test.

28、t ), hello,”; 执行该程序后,文件 test.t中的容是 .A) hello , B) new worldhello , C) new world D ) hello , rld60. 有以下程序:#in elude main () FILE *fp ; int i=20, j=30 , k, n;fp=fopen (“ d1.dat ”,w);fprintf (fp , %dn, i ) ; fprintf (fp , %dn), j );fclose (fp );fp=fopen (“ d1.dat ”, r ”);fscanf (fp , %d%d, &k, &n); pri

29、ntf (“ %d %dn” k, n);fclose (fp ) ; 该程序运行后的输出结果是 .A) 20 30 B ) 20 50 C ) 30 50 D ) 30 20二、多选题(共20小题,每题2分,共40分)1. 下列符号串中,不属于C语言合法标识符的有 .A) _1_2_3 B) a-b-c C ) int D ) 9cd2. 当把下列四个表达式用作if语句的控制表达式时,含义相同的选项有 (假设k0)A) k%2 B) k%2= =1 C) ( k%2)! =0 D) ! k%2= =03. 已有定义int a=-2;和输出语句 printf (“ %8lx), a);下列叙述

30、不正确的有A) 整型变量的输出形式只有 d种B) %x是格式符的一种,它可以适用于任何一种类型的数据C) %x是格式符的一种,其变量的值按十六进制输出,但8lx是错误的D) %8lx不是错误的格式符,其中数字81规定了输出字段的宽度4. 下列选项中,没有构成死循环的程序段有 .A int i=100; B)for (;)while ( 1) i=i%100+1;if ( i=100) break ; C) int k=0 ; D) int s=36;do +k ; while ( k=0); while ( s);s ;5. t为int类型,进入下面的循环之前,t的值为0:while ( t=

31、1 ) 。则下列叙述不正确的有 .A)循环控制表达式的值为0 B )循环控制表达式的值为1C)循环控制表达式不合法D)循环有可能是个无限循环6. 下列判断正确的是.A) char *a=“china ”; 等价于 char *a ; *a= “ china ”;B) char str6=“ china ” ;等价于 char str = “ china ” ;C) char *s=“china ”; 等价于 char *s ; s= “ china ”;D) char c4=abc”,d4= “ abc”;等价于 char c4=d4=“ abc;7. 若变量已正确定义,以下能正确计算1+2+

32、3+4+5的程序段有 .A) i=1 ; s=1 ; B) i=0 ; s=0;do do s=s+i ; i+ ; i+; s=s+i ;while (i5 ) ; while (i5 );C) i=1 ; s=0; D) i=0 ; s=0;do do s=s+i ; i+ ; s=s+i ; i+ ;while (i6 ) ; while (i=5 );8. 下面程序把数组元素中的最小值放入a0中,则在if语句中条件表达式可以是main () int a10=5, 2, 9, 6, 7, 1, 12, 8, 23, 0 , *p=a , i ;for (i=0 ; ia B) *pa0

33、C ) *p*a0 D ) *p*a9. 设有如下定义:char *s2=“ abed ”, “ ABCD ;则下列说确的有.A) s数组元素的值分别是“abed”和“ ABCD两个字符串的首地址B) s是指针数组名,它含有两个元素分别指向字符型一维数组C) s数组的两个元素分别存放的是含有四个字符的一维字符数组中的元素D) s数组的两个元素中分别存放了字符a和A的地址10. 以下有关字符串赋值、赋初值的语句错误的有 .A) char sz240; sz1=“ string1 ”;B) char *sz2; sz1=“ string2 ”;C) char sz40=“ string3 ”;D)

34、 char *sz =“ string4 ”;11. 若有以下说明:int a59;则下列选项中对数组元素aij 的引用错误的. ( 0=i4, 0=jlink=a-link-link;a-link-link=sB)a=a-link; a-link=s; s-link=NULL ;C)s-link=NULL ; a= ( *a)。link ;( *a)。link =sD)a=a-link; s-link=a-link; a-link=s-link要求依次输出x数组6个元素中的值,下列选项中能完成次操作的语句有A)for(i=0 ;i6 ;i+ )printf(“ 2d,B)for(i=0 ;i

35、6 ;i+ )printf(“ 2d,C)for(i=0 ;i6 ;i+ )printf(“ 2d,D)for(i=0 ;i6 ;i+ )printf(“ 2d,* (P+);*(P+i);*P+);(*p)+);16.下列叙述正确的有.(知识点8.5)A)函数可以嵌套定义,但不能嵌套调用B)函数可以嵌套调用,也可以嵌套定义C)函数不可以嵌套定义,但可以递归调用D)函数可以嵌套调用,但不能嵌套定义17. 下列叙述不正确的有 .A)全局变量可以为本文件中其他函数所调用,编译时分配在静态存储区B)局部变量只在本函数围有效,形式参数属于局部变量C)局部变量如没有被说明为静态的存储类别,则会被分配动态

36、存储空间,存储在动 态存储区中D)局部静态变量在函数调用结束后依然存在,但其他函数不能引用它18. 若变量已正确定义,要求程序段完成求5!的计算,下列选项中不能完成此操作的程序段有.A)for( i=1,p=1 ;i=5;i+)p*=i ;B)for( i=1;i=5 ;i+)p=1;p*=i ;C)i=1;p=1;while( i=5) p*=i; i+;D)i=1;p=1;do p*=i;i+ ;while( i=5);19. 若有以下说明,则对strcpy库函数的调用不正确的有 .char *str仁“ copy ”,str210 , *str3= abcde ”,*str4 , *str5= hijk ”A)strcpy(str2 , str1) ;B) strcpy(str3, str1 );C)strcpy(str4 , str1) ;D) strcpy(str5 , str1 );20. 下列选项中可以将变量n清零的表达式有.A) n=n&n B ) n=n&0 C ) n=n5 D ) n=n|n三、附加题(共20分)现有21根火柴,两人轮流取,每人每次可取走1- 4根,不可多取,也不能不取,谁取最后一根火柴则谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为“常胜将军”。分析问题,描述算法设计思想:(不需编程)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!