欢迎光临奥帕文库,如需获取更多资料请使用搜索功能。
奥帕文库
当前位置:首页 » 工程科技 » 电子/电路 » 正文

【图文】05 2 C语言试卷A

一、单选题(每空 1 分,共 50 分)1. 以下选项中不属于算法特性的是( -D ) A)有穷性 B) 确定性 C)有效性 D)简洁性 B)由用户自己定义 D)是随意的 D)-80.0e D)printf B) (x<=y)and(y<=z) D) (x<=y)&(y<=z) 2. 在 C 语言中,变量所分配的内存空间大小( C ) A)均为两个字节 C)由变量的类型决定 A) -8e3.0 B)-080 B)_0 C) -80. C)_int3. 以下选项中可作为 C 语言合法常量的是( C ) 4. 以下不能定义为用户标识符是( D ) A)Main 5. 数学关系式 x≤y≤z 可用 C 语言的表达式表示为(A ) A) (x<=y)&&(y<=z) C) (x<=y<=z) 选用( A)6. 若定义 float a;现要从键盘输入 a 数据,其整数位为 3 位,小数位为 2 位,则 (输入时 3 位加 2 位加小数点占 1 位,一共 6 位,输入时算列就行 B)scanf( “%5.2f”,a) ; D)scanf( “%f” ,a) ; B)1 D)3 B)“c” D)‘\\’ B) 包含 2 个字符 D) 说明不合法 了,输出时则不一样) A)scanf( “%6f” ,&a) ; C)scanf( “%6.2f”,&a) ; A)0 C)2 8. 在 C 语言中,合法的字符常量是( D ) A)‘程序设计’ C) c A) 包含 1 个字符 C) 包含 3 个字符 main() { char a='1',b='2'; printf("%c,",b++); printf("%d\n",b-a); } 程序运行后的输出结果是 ( C )7. 执行 int x=3,y=2;后表达式 x=(y>=1)的值是( B )9. 设有说明语句:char a=’\101’;则变量 a ( A )10. 数字字符 0 的 ASCII 值为 48,若有以下程序

A) 3,2B) 50,2C)2,2D)2,50 (我们可以这样理解当 b 在一个表达式中时,无论++在前还是在后都加上一) 11. 已有定义:char a[]="she",b[]={'s','h','e'};,以下叙述中正确的是( C ) A)数组 a 和 b 的长度相同 C)a 数组长度大于 b 数组长度 符数+1) 12. 下列关于链表的叙述不正确的是( D ) A)每条链表都有一个头指针,用于指向链表中的第一个结点 B)链表的每一个结点中必须要有一个结构体类型的指针变量用来存放下一个 结点的首地址 C)如果不提供头指针,则整条链表都无法访问 D)链表中的各个结点在内存中一定不是连续存放的 13. 若 int a[][3]={1,2,3,4,5,6,7} ;则 a 数组第一维的大小是 ( B ) 指该数组中有几组数,第二维是指每组数组中有几个元素) A) 2 B) 3 C) 4 D)无确定值 14. 下面程序段的运行结果是( D) char s[]=“xyz”;int i; for(i=0;i<3;i++) printf(“%s”,&s[i]); A) xyz 素开始的啦) 15. C 语言中运算对象必须是整型的运算符是( A ) A) %= B) / C) = D) <= 16. 有以下语句:int b;char c[10];,则正确的输入语句是( B ) A)scanf("%d%s",&b,&c); C)scanf("%d%s",b,c); 17. 有以下程序 main() { int m,n; scanf("m=%dn=%d ",&m,&n); printf("%d%d \n",m,n); } 若想从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456,则正确的输 入是( A ) A)m=123n=456 C) m=123 n=456 B) m=123,n=456 D)123 456 B) scanf("%d%s",&b,c); D)scanf("%d%s",b,&c); B) xyz xyz xyz C) xxy xyz D)xyz yz z (第一次首地址是 &s[0]输出所以为 xyz,第二次以&s[1]为首地址所以为 yz,注意,是从第二个元 (第一维是 B)a 数组长度小于 b 数组长度 D)上述说法都不对 (字符串的长度等于字

18. 设 x 为 int 型变量,则执行以下语句后,x 的值为( B ) x=10; x+=x-=x-x; A) 10 B) 20 C) 40 D) 30 (x-x=0,x-=0 得 x=10,x+=x,得 x=20) 19. 能将高级语言编写的源程序转换为目标程序的是( C ) A)链接程序 的是( B ) A)有零个或多个输入 C)有穷性 B)有零个或多个输出 D)可行性 (一个或多个输出) B)解释程序 C)编译程序 D)编辑程序 20. 一个算法应该具有"确定性"等 5 个特性,下面对另外 4 个特性的描述中错误21. 若以下选项中的变量已正确定义,则正确的赋值语句是( C ) A)x1=26.8%3; B)1+2=x2; C)x3=0x12; D)x4=1+2=3; (x3=0x12 是什么意思?悬赏分:0 - 解决时间:2006-8-18 17:200x12 是代表 16 进制的 12 那 x3 代表什么呢?提问者: 问到你翻脸 - 六 级最佳答案 x3 看来一个变量,之前肯定有类似 int x3;的字) 22. 设有以下定义 int a=0; double b=1.25; char c=’A’; int d[10]; 则下面语句中错误的是( D ) A)a++; 是( B ) A)(a+b)*h/2 C)(a+b)*h*1/2 A){;} C)for (;x= =0;); A) e==0 26. 有以下程序 main( ) { char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"}; printf("%d\n",strlen(p[4])); B)e!=0 B)(1/2)*(a+b)*h D)h/2*(a+b) B)a=0,b=0,c=0; D)if(b= =0) m=1; n=2; C)e==1 D)e!=1 B)b++; C)c++; D)d++; 23. 设有定义:float a=2,b=4,h=3;,以下 C 语言表达式与代数式计算结果不相符的24. 以下 4 个选项中,不能看作一条语句的是( D )25. while(!e);中表达式!e 等价于( A )

} 执行后输出结果是( A ) A)2 B)3 C)4 D)5 B) char t[]="abcdefg",*s=t; D) char s[10];strcpy(s,"abcdefg"); 27. 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是( C ) A) char s[10]="abcdefg"; C) char s[10];s="abcdefg"; int n=0; while(n++<2); A)2 29. B)3 printf(“%d“,n); C) 4 D)有语法错28. 下面程序段的运行结果是( B )。

C 语言中 while 和 do-while 循环的主要区别是( A ) A)do-while 的循环体至少无条件执行一次 B)while 的循环控制条件比 do-while 的循环控制条件严格 C)do-while 允许从外部转到循环体内 D)do-while 的循环体不能是复合语句30. 以下程序段( C ) x=-1; do {x=x*x;} while(!x); A)是死循环 C)循环执行一次 B)循环执行二次 D)有语法错误31. 下面有关 for 循环的正确描述是( D ) A)for 循环只能用于循环次数已经确定的情况 B)for 循环是先执行循环体语句,后判断表达式 C)在 for 循环中,不能用 break 语句跳出循环体 D)for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 32. 对 for(表达式 1; ;表达式 3)可理解为( B ) A)for(表达式 1;0;表达式 3) B)for(表达式 1;1;表达式 3) C)for(表达式 1;表达式 1;表达式 3) D)for(表达式 1;表达式 3;表达式 3) 33. 以下 for 循环的执行次数是( C ) for(x=0,y=0;(y=10)&&(x<4);x++) A)是无限循环 C)执行 4 次 B)循环次数不定 D)执行 3 次34. 下面程序段的执行结果是( C )

for(y=1;y<10;) y=((x=3*y,x+1),x-1); printf(“x=%d,y=%d”,x,y); A) x=27,y=27 B)x=12,y=13 C)x=15,y=14 D)x=y=27 35. 下面程序段的运行结果是( D ) for(x=3;x<6;x++) printf((x%2)?(“**%d”): (“##%d\n”),x); A)**3 ##4 **5 A)3 B)4 B) ##3 **4 ##5 C)5 D)不定 C)##3 **4##5 D)**3##4 **536. 执行语句 for(i=1;i++<4;);后变量 i 的值是( C) 37. 有一堆零件( 100 到 200 之间) ,如果分成 4 个零件一组的若干组,则多 2 个零件;如果分成 7 个零件一组,则多 3 个零件;如果分成 9 个零件一组,则多 5 个零件。

下面程序是求这堆零件总数,请选择填空。

( D ) #include main() { int i; for(i=100;i<200;i++) if((i-2)%4==0) if(!((i-3)%7)) if( ③ ) printf(“%d”,i); } A) i%9=5 B) i%9!=5 C) (i-5)%9!=0 D)i%9= =5 38. 以下正确的描述是( B ) A)continue 语句的作用是结束整个循环的执行 B)只能在循环体内和 switch 语句体内使用 break 语句 C)在循环体内使用 break 语句或 continue 语句的作用相同 D)从多层循环嵌套中退出时,只能使用 goto 语句 39. 下面程序段( D ) for(t=1;t<=100;t++) { scanf(“%d”,&x); if(x<0) continue; printf(“%3d”,t); } A) 当 x<0 时整个循环结束 B)x>=0 时什么也不输出

C)printf 函数永远也不执行 40. 以下描述正确的是( C)D)最多允许输出 100 个非负整数A)由于 do-while 循环中循环体语句只能是一条可执行语句, 所以循环体内不 能使用复合语句 B)do-while 循环由 do 开始,用 while 结束,在 while(表达式)后面不能写 分号 C)在 do-while 循环体中, 一定要有能使 while 后面表达式的值变为零 (“假” ) 的操作 D)do-while 循环中,根据情况可以省略 while 41. 以下正确的描述是( B ) A)continue 语句的作用是结束整个循环的执行 B)只能在循环体内和 switch 语句体内使用 break 语句 C)在循环体内使用 break 语句或 continue 语句的作用相同 D)从多层循环嵌套中退出时,只能使用 goto 语句 42. 以下描述正确的是( C ) A)goto 语句只能用于退出多层循环 B)switch 语句中不能出现 continue 语句 C)只能用 continue 语句来终止本次循环 D)在循环中 break 语句不能独立出现 43. C 语言的简单数据类型包括( D ) A)整型、实型、逻辑型 C)整型、字符型、逻辑型 44. 以下叙述中不正确的是( C ) A) 对结构体变量的成员可以像普通变量一样进行各种运算 B) 结构体变量的地址指的是该结构体变量在内存空间的起始地址 C) 可以将一个结构体变量作为一个整体进行输入和输出 D) 可以直接定义某种结构体类型的变量,不出现结构体名 45. 以下叙述中正确的是( B ) A) C 程序是以函数为单位进行编译的 B)C 程序是以源程序文件为单位进行编译的 C) C 语言的函数不可以进行嵌套调用 D) C 语言中的函数可以进行嵌套定义 46. 结构化程序设计不应该使用( C ) A)自顶向下,逐步细化的方法 B)模块化设计 C)灵活、简洁的 goto 结构 D)三种基本结构:顺序结构、选择结构、重复结构的编码方法 47. 若 int a=13 ,则执行语句 a/=a+a; 后 a 的值是( C ) B)整型、实型、字符型、逻辑型 D)整型、实型、字符型