C语言程序设计试题
第1、2、3章 概述、类型、表达式
一、选择题
1、一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )
A、任意 B、第一个函数必须是主函数,其他函数任意 C、必须完全按照执行的顺序排列
D、其他函数可以任意,主函数必须在最后 2、下列四个叙述中,正确的是:( )
A、C程序中的所有字母都必须小写
B、C程序中的关键字必须小写,其他标示符不区分大小写 C、C程序中的所有字母都不区分大小写 D、C语言中的所有关键字必须小写 3、下列四个叙述中,错误的是:( )
A、一个C源程序必须有且只能有一个主函数 B、一个C源程序可以有多个函数
C、在C源程序中注释说明必须位于语句之后 D、C源程序的基本结构是函数 4、下面不是C语言合法标识符的是:( )
A、abc B、5n C、_4m D、x3 5、以下叙述不正确的是:( )
A. 分号是C语句的必要组成部分 B. C程序的注释可以写在语句的后面 C. 函数是C程序的基本单位 D. 主函数的名字不一定非用main来表示 6、 C语言中允许的基本数据类型包括:( )
A. 整型、实型、逻辑型 B. 整型、实型、字符型
C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型 7、 C语言中能用八进制表示的数据类型为:( )
A、字符型、整型 B、整形、实型
C、字符型、实型、双精度型 D、字符型、整型、实型、双精度型 8、 下列属于C语言合法的字符常数是:( )
A、’\\97’ B、”A” C、’\\t’ D、”\\0” 9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )
A、char A、0L B、4962710 C、0412765 D、0xa34b7fe 11、 若有以下定义语句char c1=’b’, c2=’e’; printf(“%d,%c\\n”,c2-c1,c2-‘a’+’A’);则输出结果是:( ) A、2,M B、3,E C、2,E D、输出项与相应的格式控制不一致,输出结果不确定 12、 以下合法的赋值语句是:( ) A、x=y=100 B、d--; C、x + y D、c = int(a+b); 13、 设变量t为int型,下列选项中不正确的赋值语句是:( ) A、++t; B、n1=(n2=(n3=0)); C、k=i==m; D、a=b+c=1; 14、 在以下一组运算符中,优先级最高的是:( ) A、<= B、== C、% D、&& 15、 下列能正确表示a≥10或a≤0的关系表达式是:( ) A、a>=10 or a<=0 B、a<=10 || a>=0 C、a>=10 || a<=0 D、a>=10 && a<=0 16、 下列只有当整数x为奇数时,其值为“真”的表达式是:( ) A、x%2==0 B、!(x%2==0) C、(x-x/2*2)==0 D、!(x%2) 17、 设a为整型变量,不能正确表达数学关系10=15) C、a>10 && a<15 D、!(a<=10) && !(a>=15) 18、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:( )A、0 B、语法错 C、1 D、“假” 19、 表达式17%4 /8的值为:( ) A、0 B、1 C、2 D、3 20、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:( ) A、无输出 B、结果不确定 C、-1 D、1 21、 一个可执行的C程序的开始执行点是:( ) A. 程序中的第一个语句 B. 包含文件中的第一个函数 C. 名为main的函数 D. 程序中的第一个函数 22、 组成C语句的一个必不可少的符号是:( ) A. 逗号 B. 引号 C. 冒号 D. 分号 23、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( A. int B. long C. float D. double 24、 下述是C语言中有关变量定义的几个说法,正确的是:( ) A. 变量可以不定义直接使用 B. 一个说明语句只能定义一个变量 C. 几个不同类型的变量可在同一语句中定义 D. 变量可以在定义时进行初绐化 25、 与x * = y + z等价的赋值表达式是:( ) A. x = y + z B. x = x * y + z C. x = x * (y + z) D. x = x + y * z 26、 当代电子计算机能够自动地处理指定的问题是因为:( ) A.计算机是电动的 B.有解决该问题的计算机程序 C.事先存储了解决该问题的程序 D.以上都不是 27、 以下叙述中最准确的是:( ) A.计算机程序是处理某一问题所有指令的集合 B.计算机程序是处理某一问题所用到的所有数据的集合 C.计算机程序是处理某一问题的所有指令及其数据的集合 D.计算机程序是处理某一问题的所有指令及其数据的有序集合 28、 关于计算机程序设计,以下描述最准确的是:( ) A.程序设计就是用语言来编写程序 B.程序设计就是用计算机语言来编写程序 ) C.程序设计就是用计算机程序设计语言来编写程序 D.程序设计就是用计算机能识别的语言来编写程序 29、 目前编写计算机程序一般采用的是:( ) A.机器语言 B.汇编语言 C.高级语言 D.英语 30、 设计一个计算机程序最基本的工作是:( ) A.制定正确的算法 B.选择合理的数据结构 C.制定正确的算法和选择合理的数据结构 D.以上都不是 31、 算法具有五个特性,以下选项中不属于算法特性的是:( ) A.有穷性 B.简洁性 C.可行性 D.确定性 32、 下述哪一个不是结构化程序基本结构:( ) A.顺序 B.选择 C.循环 D.嵌套 33、 C语言是一种:( ) A.机器语言 B.汇编语言 C.高级语言 D.以上都不是 34、 C语言源程序的扩展名为:( ) A..exe B..c C..obj D..cpp 35、 C程序编译后最终产生(即计算机执行)的文件的扩展名为( ) A..exe B..c C..obj D..cpp 36、 下列各项中,不是C语言的特点是:( ) A.语言简洁、紧凑,使用方便 B.程序执行效率高,可移植性好 C.能实现汇编语言的大多数功能 D.有较强的网络操作功能 37、 构成C语言源程序的基本单位是:( ) A.子程序 B.过程 C.文本 D.函数 38、 下列叙述正确的是:( ) A.C语言源程序可以直接在DOS环境中运行 B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行 C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行 D.C语言源程序可以直接在VC++环境中运行 39、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:( ) A.写在前面的函数先开始执行 B.总是从main()函数开始执行 C.总是从max()函数开始执行 D.写在后面的函数先开始执行 40、 以下叙述不正确的是:( ) A.分号是C语句的必要组成部分 B.C程序的注释可以写在语句的后面 C.函数是C程序的基本单位 D.主函数的名字不一定用mian表示 41、 以下为C语句的是:( ) A.a=8 B.a++; C.if(a>8) D. #include A.a=8; B.a++; C.if(a>8); D.for(i=1;i<5;i++) 42、 以下所列语句中,合法的语句是:( ) A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a); 43、 C程序中的复合语句指的是:( ) A.并列的多个C语句 B.写在同一行中的多个C语句 C.用一对大括号对括的多个C语句 D.就是函数体中的语句 44、 当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( ) A.由系统自动换行 B.立即按回车键换行 C.在任意一个空格处按回车键换行 D.输入一个分号后并按回车键换行换行 45、 在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。 A.( 2> x> -2 )||(4 > x > 8) B.!((( x < -2 )||( x >2 )&&(( x <= 4 )||( x > 8 )) C.( x < 2 )&&( x >= -2 )&&( x > 4 )&&( x < 8 ) D.( x > -2 )&&( x >4 )||( x < 8 )&&( x < 2 ) 二、判断题 1. ( )C语言是严格区分大写和小写的,因次主函数不能写成main()以外的其他形式。 2. ( )C语言程序是从源文件的第一条语句开始执行的。 3. ( )C语言对其数据在内存中所占用的实际字节数是有明确规定的。 4. ( )C语言中/*..*/之间的注释内容是不能跨行的。 5. ( )C语言中多个以“;”结束的语句不能放在同一行。 6. ( )以下常数:'101',e3,’\\78’,(2+3)e(4-2)都是不合法的。 7. ( )变量说明语句int a=b=c=23;是正确的。 8. ( )字符型数据不可以和整数数据一起进行算术运算。 9. ( )C语句:3*x*x+4*x+1+6sin(x)=y.是可以允许的。 10. ( )表达式m=(a=4,4*5)和m=a=4,4*5的值是相等的。 11. ( )C语言中强制类型转换不会改变原变量的原有数据类型。 12. ( )表达式j=-i++和j=-(i++)不相等 13. ( )程序段:i=8,j=10;printf(\其结果9,10,9,10. 14. ( )C语言中放在“”之间的内容都被视为字符串的一个构成部分,都可以在屏幕上原样 显示。 15. ( )计算机程序的基本组成是:指示计算机如何去解决某一问题的一组指令。 16. ( )计算机程序的执行过程实际上是对程序所表达的数据进行处理的过程。 17. ( )目前程序设计的理念已经从“面向过程的程序设计”向“面向对象的程序设计”方 面转变。 18. ( )任何一个计算机程序都可以用机器语言、汇编语言和高级语言来编写。 19. ( )有人曾提出:计算机程序=算法+数据结构。 20. ( )在程序设计中提到的算法就是“解决问题的方法和步骤” 21. ( )在程序设计中提到的数据结构就是“程序处理的对象的表示方法” 22. ( )计算机程序的算法就是解决“做什么”和“怎么做”的问题。 23. ( )结构化程序设计的基本理念是:将一个较大的问题细分成若干个较小问题的组合。 24. ( )C程序的编译是从程序的第一行开始,到程序的最后一行结束。 25. ( )C程序的编译是从主函数的第一行开始,到主函数的最后一行结束。 26. ( )C程序的执行是从程序的第一行开始,一直到程序的最后一行结束。 27. ( )C程序的执行是从主函数的第一行开始,一直到主函数的最后一行结束。 28. ( )设x、t均为int型变量,则执行语句\后,t的值为0 29. ( )若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不 变 30. ( )在C程序中,%是只能用于整数运算的运算符 31. ( )在C语言中,逻辑“真”等价于不等于0的数 32. ( )C语言中字符型、整型、实型都能用八进制表示 33. ( )在VC语言中,5种基本数据类型的存储空间长度的排列顺序为:char 34. ( )变量的三要素是:变量名、变量类型、变量的值。 三、多选题 1. 目前程序设计采用的基本方法有: A.面向过程的程序设计 B.面向对象的程序设计 C.面向问题的程序设计 D.面向机器的程序设计 第4章 顺序结构 一、选择题 1、下面程序的输出是:( ) main() { int k=11; printf(\ } A) k=11,k=12,k=13 B) k=11,k=13,k=13 C) k=11,k=013,k=oXb D) k=11,k=13,k=b 2、以下合法的C语言赋值语句是:( ) A)a=b=58 B)k=int(a+b) ; C)a=58,b=58 D)-- i; 3、以下程序的输出结果是:( ) main() { int x=10,y=3; printf(“%d\\n”,y=x/y); } A)0 B)1 C)3 D)不确定 4、若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是:(A)read (a,b,c); B)scanf(“%d%d%d”,a,b,c); C)scanf(“%D%D%D”,%a,%b,%c); D)scanf(“%d%d%d”,&a,&b,&b); 5、执行下面程序段后,c3中的值是:( ) int c1=1 , c2=2 , c3; c3=c1/c2; A)0 B)1/2 C)0.5 D)1 6、若执行以下程序段,其输出结果是:( ) ) int a=0 , b=0 , c=0; c=(a-=a-5) , (a=b,b+3) ; printf(“%d , %d , %d\\n” , a,b,c); A)0,0,0 B)0,0,5 C)5,0,5 D)-10,0,-10 7、以下程序段的输出是:( ) float a=57.666; printf(“*%2.2f*\\n”, a); A)*57* B)*58* C)*57.66* D)*57.67* 8、若有以下定义和语句:( ) int a=5,b b=a++; 此处b的值是:( ) A) 7 B) 6 C) 5 D) 4 9、若有以下定义和语句:( ) char c1='b',c2='e'; printf(\则输出结果是:( ) A) 2,M B) 3,E C) 2,e D) 输出结果不确定 10、以下程序的输出结果是:( ) main() { int x=10,y=10; printf(\ } A) 10 10 B) 9 9 C) 9 10 D) 10 9 11、在C语言中,如果下面的变量都是int类型,则输出结果是:( ) sum=pad=5; pad=sum++,pad++,++pad; printf(\ A) 7 B) 6 C) 5 D) 4 12、以下程序的输出结果:( ) #include int i=010,j=10; printf(\ } A) 11,10 B) 9,10 C) 010,9 D) 10,9 13、在C语言中,short类型数据的范围是-32768~32767,下面程序段的输出结果是:( short i =65536; ) printf(\ A) 65536 B) 0 C) 1 D)超出取值范围,无输出结果 14、已知字符A的ASCII码为十进制的65,下面程序的输出是:( ) main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf(\ } A) 67,D B) B,C C) C,D D) 不确定的值 15、若有定义和语句: char s; s=\; 则结果是:( ) A) 输出 97 B) 输出 a C) 输出 adcb D) 编译不能通过 16、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处 则能给x赋整数1,给y赋数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是:( ) A) scanf(\ B) scanf(\ C) scanf(\ D) scanf(\ 17、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是:( ) main() { int x; scanf(\ if (x++>5) printf(\ else printf(\ } A) 7和5 B) 6和3 C) 7和4 D) 6和4 18、若执行下面的程序从键盘输入3和4,则输出是:( ) main() { int a,b,s; scanf(\ s=a; if (a printf(\ } A) 14 B) 16 C) 18 D) 20 19、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值 scanf(\ 为了把100和765.12分别赋给i和f,则正确的输入为:( ) A) 100<空格>765.12<回车> B) i=100,f=765.12<回车> C) 100<回车>765.12<回车> D) x=100<回车>,y=765.12<回车> 20、以下程序的输出结果是:( ) #include { int n; printf(\ } A) -1 B) 0 C) 1 D) 不确定 二、判断题 1.( )在C语言中,实型数据在内存都中占4个字节。 2.( )在C语言中,参加算术(+,-,*,/,%)运算的数据可以是任何类型的数据。 3.( )若有定义和语句:int a;char c;scanf(\当通过键盘输入: 10,‘A’之后,则变量a中存放的是10,变量c中存放的是‘A’。 4.( )C语言中,变量名只能是小写字母表示,符号常量名可用大写表示 5.( )在C语言中,变量可以不要定义,直接使用 6.( )一个C语言程序总是从主函数开始执行的 7.( )注释语句必须用/*和*/括起来,且只能位于某一语句的后面 8.( ) “a”和‘a’均是占用1个字节的内存空间 的数据 三、多选题 1. 以下所列语句中,不合法的语句是:( ) A、a=1,b=2 B、++a; C、a=a+1=5; D、y= (int) a; E、a=b=c=10; 2. 下列描述正确的是:( ) A. putchar函数的作用是向屏幕输出一个字符 B. putchar函数能在屏幕上输出控制字符 C. putchar(c)函数中,c只能是字符型变量,不能是整型变量 D. putchar函数能在屏幕上输出转义字符 E.putchar函数的使用需要包含“stdio.h”头文件 3. 下列描述正确的是:( ) A. getchar函数只能接收一个字符 B. getchar函数得到的字符可以赋给一个字符变量 C. getchar函数得到的字符可以赋给一个整型变量 D. getchar函数得到的字符可以作为表达式的一部分 E.getchar函数是编程者自定义的函数 4. printf函数中,关于格式字符描述正确的是:( ) A.格式字符o表示以八进制无符号形式输出整数 B.格式字符u 表示以无符号十进制形式输出整数 C.格式字符x 表示以无符号十六进制形式输出整数 D.格式字符f 表示以实数形式输出单、双精度数 E.格式字符e 表示以浮点数形式输出单、双精度数 5. 假设int x,y,z;若从键盘给x、y、z输入数据,下列不正确的输入语句是:( ) A.input x、y、z; B.scanf(\,&x,&y,&z); C.scanf(\,x,y,z); D.read(\,&x,&y,&z); E.scanf(\,&x,&y,&z\; 6. 假设float x,y,z;,并通过scanf(\\,&a,&b,&c);对a赋于10.0,b赋予22.0,c赋予33.0的值,下面正确的输入形式是:( )(注:符号︻代表空格) A、10<回车>22<回车> 33<回车> B、10.0<回车>22.0<回车>33.0<回车> C、10.0,22.0,33.0<回车> D、10.0︻22.0︻33.0<回车> E、10︻22︻33<回车> 7. 若有int a,c;char b;并通过scanf(\,&a,&b,&c);对a赋于整数10,b赋予字符M,c赋予整数33的值,下面正确的输入形式是:( )(注:符号︻代表空格) A、10<回车>M<回车> 33<回车> B、10M33<回车> C、 10︻M︻33<回车> D、10M<回车>33<回车> E、10M︻<回车>33<回车> 8. 若有 char ch;,下面可以对变量c正确赋值的语句是:( ) A.ch =‘A’; B.getchar(ch); C.ch = getchar(); D.scanf(“%c”,&ch); E.printf(“%c”,ch=‘B’); 9. 下面属于转义符的有:( ) A.‘\\t ’ B.‘\\n’ C.‘%d’ D.‘\\376’ E.‘\\x20’ 10.若a为整型变量,则下列表达式的值为0的是( ), A.a % a B.a != a C.3/4 D.3 && 0 E.a = 0 第5、6章 选择与循环结构 一、选择题 1. 有以下程序 main( ) { int i; for ( i=0; i<3; i++ ) switch ( i ) { case 1 : printf(\ case 2 : printf(\ default : printf(\ } } 执行后输出结果是:( ) A)011122 B)012 C)012020 D)120 2. 有以下程序 main() { int i=1, j=1, k=2; if ( (j++ || k++) && i++) printf(\ } 执行后输出结果是:( ) A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 3. 有以下程序 main() { int a=5,b=4,c=3,d=2; if (a>b>c) printf(\ else if ( (c-1 >= d) ==1) printf(\ else printf(\ } 执行后输出结果是:( ) A)2 B)3 C)4 D)编译时有错,无结果 4. 有以下程序 main() { int i=0,s=0; do { if (i%2) { i++; continue; } i++; s += i; } while( i<7 ); printf(\ } 执行后输出结果是:( ) A)16 B)12 C)28 D)21 5. 以下程序的输出结果是:( ) main() { int a=5,b=4,c=6,d; printf(\ } A) 5 B) 4 C) 6 D) 不确定 6. 以下程序中,while循环的循环次数是:( ) main() { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; } } A) 1 B) 10 C) 6 D) 死循环,不能确定次数 7. 以下程序的输出结果是:( ) main( ) { int a=0,i; for(i=1;i<5;i++) switch(i) { case 0: case 3: a+=2; case 1: case 2: a+=3; default: a+=5; } printf(\ } A) 31 B) 13 C) 10 D) 20 8. 以下程序的输出结果是:( ) main() { int a=4,b=5,c=0,d; d=!a && !b || !c; printf(\ } A) 1 B) 0 C) 非0的数 D) -1 9. 以下程序的输出结果是:( ) #include main() { int i=0,a=0; while(i<20) { for( ; ; ) { if((i)==0) break; else i--; } i+=11; a+=i; } printh(\ } A) 21 B) 32 C) 33 D) 11 10.阅读以下程序:( ) main() { int x; scanf(\ if(x--<5) printf(\ else printf(\ } 程序运行后,如果从键盘上输人5,则输出结果是:( A)3 B) 4 C) 5 D) 6 11.假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(w 12.以下程序的输出结果是:( ) main() { int a, b; for(a=1, b=1; a<=100; a++) { if(b>=10) break; if (b%3==1) { b+=3; continue; } } ) printf(\ } A) 101 B) 6 C) 5 D) 4 13.若执行以下程序时从键盘上输入9,则输出结果是:( ) main() { int n; scanf (\ if(n++<10) printf (\ else printf(\} A) 11 B) 10 C) 9 D) 8 14.有以下程序段 int k=0 while(k=1) k++; 则while 循环执行的次数是:( ) A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 15.以下程序执行后sum的值是:( ) main() { int i , sum; for(i=1;i<6;i++) sum+=i; printf(\ } A)15 B)14 C) 不确定 D)0 16.有以下程序段 int x=3 do { printf (\ }while (!(--x)); 其输出结果是:( ) A) 1 B) 3 0 C) 1 -2 D) 死循环 17.若变量c为char类型,能正确判断出c为小写字母的表达式是:( A) 'a'<=c<= 'z' B) (c>= 'a')||(c<= 'z') C) ('a'<=C)and ('z'>=c) D) (c>= 'a')&&(c<= 'z') 18.以下程序的输出结果是:( ) D) 执行1次) main() { float x=0.5; char z='a'; printf(\} A) 0 B) 1 C) 2 D) 3 19.以下程序的输出结果是:( ) main() { int x=10,y=10,i; for(i=0;x>8;y=i ) printf(“%d %d ”,x--,y); } A)10 1 9 2 B)9 8 7 6 C)10 9 9 0 D)10 10 9 0 20.以下程序的输出结果是:( ) main() { int i; for(i=1;i<=6;i++) { if(i%2) { printf(“#”); continue; } printf(“*”); } printf(“\\n”); } A)#*#*# B)##### C)***** D)*#*#* 21.以下程序的输出结果是:( ) main() { int i; for(i='A';i<='I';i++) printf(“%c”,i+32); printf(“\\n”); } A)编译不通过,无输出 B) aceg C)acegi D)abcdefghi 22.以下程序输出结果是:( ) main () { int m=5; if (m>5) printf (“%d\\n”,m); else printf (“%d\\n”,m--); } A )7 B )6 C)5 D)4 23.运行以下程序后,如果从键盘上输入china#《回车》,则输出结果为:( ) #include { int v1=0,v2=0; char ch ; while ((ch=getchar())!='#') switch (ch ) { case 'a': case 'h': default:v1++; case '0':v2++; } printf(“%d,%d\\n”,v1,v2); } A) 2,0 B)5,0 C) 5,5 D)2,5 24.设有如下定义: int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)后,n的值为:( A)1 B)2 C)3 D)0 25.以下程序的输出结果是:( ) main() { int i,j,x=0; for (i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if (j%2) continue; x++; } x++; } printf(“x=%d\\n”,x); } A)x=4 B)x=8 C)x=6 D)x=12 26.设x和y均为int型变量,则执行以下的循环后,y值为:( for(y=1,x=1;y<=50;y++) { if(x==10)) break; if (x%2==1) { x+=5; continue; } x-=3; ) ) } A)2 B)4 C)6 D)8 27.假定a和b为int型变量,则执行以下语句后b的值为:( ) a=1;b=10; do { b-=a; a++; }while (b--<0); A)9 B)-2 C)-1 D)8 28.设j为int型变量,则下面for循环语句的执行结果是:( for (j=10;j>3;j--) { if(j%3) j--; --j;--j; printf(“%d ”,j); } A)6 3 B)7 4 C)6 2 D)7 3 29.有以下程序 main() { int x, i; for(i=1;i<=50;i++) { x=i; if(x%2==0) { x++; if(x%3==0) { x++; if(x%7==0) { x++; printf(\} } } } } 输出结果是:( ) A)28 B)27 C)42 D)26 30.假定所有变量均已正确说明,下列程序段运行后x的值是:( a=b=c=0;x=35; if(!a) x--; else if(b) ; if(c) x=3; else ) ) x=4; A)34 B)4 C)35 D)3 31.执行表达式k = ( 10>12 ? 15 :6>5 ? 8 :9 )后,变量k的值为:( ) A. 9 B. 8 C. 15 D. 1 32.以下程序运行后,如果从键盘上输人5,则输出结果是:( ) main( ) { int x; scanf(\,&x); if(x--<5) printf(\,x); else printf(\,x++); } A、3 B、4 C、5 33.以下程序段的输出结果是:( ) int k, j , s ; for(k=2;k<6;k++,k++) { s=1; for (j=k;j<6;j++) s+=j; } printf(“%d\\n”,s); A)9 B)1 C)11 34.以下程序段的输出是:( ) int i,j,m=0; for (i=1;i<=15;i+=4) for (j=3;j<=19;j+=4) m++; printf(“%d\\n”,m); A)12 B)15 C)20 35.以下程序段的输出结果是:( ) int i, sum; for(i=1;i<6;i++) sum+=sum; printf(“%d\\n”,sum); A)15 B)14 C)不确定 36.下面程序的输出是:( D ) main() { int x=3,y=6,a=0; 、6 D)10 D)25 )0 D D while (x++!=(y-=1)) { a++; if (y printf(\ } A) x=4,y=4,a=1 B) x=5,y=5,a=1 C) x=5,y=4,a=3 D) x=5,y=4,a=1 37.定义如下变量:int n=10;则下列循环的输出结果是:( ) while (n>7) { n--; printf(\ } A) 10 9 8 B) 9 8 7 C) 10 9 8 7 D) 9 8 7 6 38.以下程序段的输出结果是:( ) int x=3; do { printf(\} while (!(--x)); A) 1 B) 3 0 C) 1 -2 D) 死循环 39.执行下面的程序后,a的值为:( ) main() { int a,b; for (a=1,b=1;a<100;a++) { if (b>=20) break; if (b%3==1) { b+=3; continue; } b-=5; } } A) 7 B) 8 C) 9 D) 10 40.读程序: main() { int num=0; while (num<=2) { num++; printf(\ } 上面程序的输出结果是:( ) A) 1 B) 2 2 C) 1 2 3 D) 1 2 3 4 41.以下循环体的执行次数是:( ) main() { int i,j; for(i=0,j=1;i<=j+1;i+=2,j--) printf(\ } A) 3 B) 2 C) 1 D) 0 42.在C语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是: ( ) A) switch B) continue C) break D) if 二、判断题: 1. ( )用1作while循环的判断条件,则循环一次也不执行。 2. ( )for循环表达式的括号内的3个表达式均不可以省略。 3. ( )语句while(!E);中的条件!E等价于E==0。 4. ( )语句while(E);中的条件E等价于E!=0。 5. ( )若有for( ; ; ){……},是指循环体执行0次。 6. ( )程序有死循环的时候,上机编译不能通过。 7. ( )强制终止死循环可以使用CTRL+BREAK组合键。 8. ( )执行for(I=0;I<3;I++);后I的值为2。 9. ( )执行for(I=0,j=0;I<2;I++);j=j+1;后j的值为1。 10. ( )所有类型的循环都可以进行嵌套使用。 11. ( )利用break语句可以提前终止循环的执行。 12. ( )利用continue语句可以提前终止循环的执行。 13. ( )break语句和continue语句不可以同时出现在同一个循环体内。 14. ( )switch语句中,每一个case的冒号后面都必须至少跟有一条语句 15. ( ) 关于if语句中,条件表达式只能是关系表达式或逻辑表达式 三、多选题 1、 关于if语句,下列叙述正确的是:( ) A.if语句中,条件表达式只能是关系表达式或逻辑表达式 B.if语句中,条件表达式的括号不可以省略 C.else子句不能作为一个独立的语句单独使用,必须是if语句的一部分。 D.if和else后面可以包含多个操作语句,此时要用一对大括号把这多个语句对括起来成为一个复合语句。 2、 以下4条语句,没有语法错误的是() A.if (a>b) m =a; B.if (a); C.if ((a=b)>=0) m=a; D.if ((a=b;)>=0) m=a; 3、 如果不加花括号表示else与if的配对关系,则else与if的匹配方法,不正确的是 A.else与它上面最远的if配对 B.else与它上面最近的if配对 C.else与离它最近的if配对 D.else与它上面最近的且没有和其他else配对的if配对 4、 关于条件运算符的叙述正确的是 A.条件运算符的优先级别比关系运算符和算术运算符都低 B.条件运算符是C语言中惟一的一个三目运算符 C.条件运算符的结合方向是“自右至左” D.条件运算符可以替代任何if语句的功能 5、 关于switch语句叙述正确的是 A.语句中,case的冒号后面允许没有语句。 B.switch语句中,每一个case的冒号后面都允许跟有多条语句。 C.在与switch语句配套的case语句中所使用的表达式可以是变量或常量 D.switch语句中,可以没有default语句。 6、 在计数循环for(表达式1;表达式2;表达式3)中,可以省略的表达式是:( A.表达式1 B.表达式2 C.表达式3 D.三个表达式都可以 E.一个都不能少 7、 下列语句段是死循环的是( ) A.n=100; B.s=33; while(n) n=n0+1; while(s++%2+s%2) s++; C.for(;;); D.for(i=1;;) if(--i)break; E.x=0; do{ x++; }while(x>=0); 第7章 数组 一、选择题 1、若有以下说明语句: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’,d,g; 则数值为4的表达式是:( )。 A、a[g-c] B、a[4] C、a[‘d’-‘c’] D、a[‘d’-c] 2、假设int型变量占两个字节的存储单元,若有定义: int x[10]={0,2,4}; 则数组x在内存中所占字节数为:( ) A、3 B、6 C、10 D、20 3、下列合法的数组定义是:( ) A、int a[]=”string”; B、int a[5]={0,1,2,3,4,5}; C、char a=”string”; D、char a[]={0,1,2,3,4,5}; 4、若给出以下定义: char x[]=”abcdefg”; char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’}; 则正确的叙述为:( ) ) A、数组x和数组y等价 B、数组x和数组y的长度相同 C、数组x的长度大于数组y的长度 D、数组y的长度大于数组x的长度 5、下面程序段的输出结果是:( ) int j; int x[3][3]={1,2,3,4,5,6,7,8,9}; for (j=0;j<3;j++) printf(“%d”,x[j][2-j]); A、1 5 9 B、1 4 7 C、3 5 7 D、3 6 9 6、下列程序运行后的输出结果是:( ) main() { int n[3],t,j,k; for(t=0;t<3;t++) n[t]=0; k=2;