新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集(参考答案).docx
新编C程序设计教程习题集第1章习题选择题1,用高级语言编写的源程序要转换成等价的目标程序,必须经过【 】cA)汇编 B)编辑 C)编译 D)解释2 .计算机硬件能直接识别和执行的只有【】DA)高级语言B)符号语言 汇编语言 D)机器语言3,在同等情况下,计算机执行【】速度最快。BA)高级语言程序B)机器语言程序 汇编语言程序 D)源程序4 .以下说法错误的是【】CA)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由。和1的代码构成的二进制指令或数据C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每种髙级语言都有它对应的编译程序5 .以下叙述中错误的是【】AA)用户所定义的标识符允许使用关键字;B)用户所定义的标识符应尽量做到“见名知意”;C)用户所定义的标识符必须以字母或下划线开头;D)用户定义的标识符中,大、小写字母代表不同标识;6 .下列选项中属于合法C语言关键字的是【】D。A) VAR B)interger C)floaT D)default7 .下列字符串不是标识符的是【】DA) sum B) Average C) Day night D) M.C)JOHN8 .正确的C语言自定义标志符是】A。A)file_bakB)abc(10)C)continueD)class+39 . 个C程序的执行是从【】AA)本程序的main函数开始,到main函数结束;B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束;C)本程序的main函数开始,到本程序文件的最后一个函数结束;D)本程序文件的第一个函数开始,到本程序main函数结束;10 .以下叙述中正确的是】AA)构成C程序的基本单位是函数B)可以在个函数中定义另个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义11 .以下叙述不正确的是【】DA)一个C源程序可由一个或多个函数组成;B)个C源程序必须包含个main函数;C)C程序的基本组成单位是函数;D)在C程序中,注释说明只能位于一条语句的后面;12 .以下叙述中正确的是1】CA)用C语言实现的算法必须要有输入和输出操作;B)用C语言实现的算法可以没有输出但必须要有输入;C)用C程序实现的算法可以没有输入但必须要有输出;D)用C程序实现的算法可以既没有输入也没有输出;13 .以下说法错误的是【】CA)个算法应包含有限个步骤B)在计算机上实现的算法是用来处理数据对象的C)算法中指定的操作,不能通过经实现的基本运算执行有限次后实现D)算法的目的是为了求解14 .算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是【】BA)有零个输入或多个输入B)高效性C)有穷性D)确定性二.判断题1.2.3.4.5.6.7.8.9.个C程序的执行总是从该程序的main函数开始,在main函数最后结束。4main函数必须写在个C程序的最前面。X 个C程序可以包含若干的函数。寸 C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但 是可以增加程序的可读性。【)C程序的注释只能是一行。X C程序的注释不能是中文文字信息。X 可以使用Turbo C来编译和连接一个C程序。可以使用Turbo C来运行一个C程序。 可以使用Turbo C来实时调试(即动态调试)个C程序。 三.问答题1 . c语言程序的总体结构是怎样的?答;一个完整的C语言程序,是由一个main。函数(又称主函数)和若干个其它函数结合构 成,或仅由一个main。函数构成。2 . c语言程序的基本单位是什么?它的结构又如何?答:函数是C语言程序的基本单位,每个源文件可由一个或多个函数组成。C语言的任何函数 (包括主函数main。)都是山函数首部和函数体两部分组成。函数的一般结构如下:函数类型函数名(函数参数表)函数首部说明语句部分;执行语句部分;3 .主函数main。在程序中的地位如何。程序总是从哪个函数开始执行,到哪个函数执行完后 结束?答:一个源程序不论由多少个文件组成,都只能有一个main函数,即主函数。main。函数的 作用,相当于其它高级语言中的主程序。其它函数的作用,相当于子程序。不论主函数在程序中的位置如何,C语言程序总是从main。函数开始执行,也是在main。函 数终止执行。当主函数执行完毕时,整个程序也执行完毕。习惯上,将主函数main。放在程序的 最前面。4 .什么是算法?算法的基本特征是什么?答:算法(Algorithm)是为解决某个问题而采取的方法和步骤,是程序的灵魂。个算法应该具有以下五个重要的特征:1 .有穷性算法的有穷性是指算法必须能在执行有限个步骤之后终止,不能是无限的。2 .确切性算法的每步骤必须有确切的定义,而不能是含糊的,模棱两可的。3 .可行性算法中的所有计算步都可以被分解为有限次的基本运算,即每个计算步都可以在有限时间 内完成。4 .有。个或多个输入个算法有0个或多个输入,以刻画运算对象的初始情况。所谓0个输入是指算法本身定出 了初始条件。5 .有一个或多个输出个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意 义的。5 .结构化程序设计采用方法是什么?答:结构化程序设计方法的主要原则可以概括为:(1)自顶向下。程序设计时,应先考虑总体,后考虑细节。(2)逐步求精。对复杂问题,应设计些子目标作为过渡,逐步细化。(3)模块化。个复杂问题,肯定是由若干个稍简单的问题构成(4)每种程序结构允许有一个入口和一个口。(5)严格控制GOTO语句的使用。6 .程序设计的一般那几个步骤?答:程序设计的般步骤如下:1 .分析问题对要解决的问题,首先必须分析清楚,明确问题的要求,列出所有已知量,找出问题的求解 范围、解的精度等。2 .建立数学模型对实际问题进行分析之后,找出它的内在规律,就可以建立数学模型。3 .选择算法建立数学模型后,还不能着手编程序,必须根据数据结构,选择解决问题的算法。一般选择 算法时要注意:(1)算法的逻辑结构尽可能简单。(2)算法所要求的存储量应尽可能少。(3)避免不必要的循环,减少算法的执行时间。(4)在满足问题要求条件下,使所需的计算量最小。4 .编写程序把整个程序看作一个整体,先全局后局部,自顶向下,一层层分解处理。如果某些子问题 的算法相同,而仅仅是参数不同,可以用函数来表示。5 .调试运行准备多组试验数据,调试运行。对程序中的错误进行修改,使程序能运行出结果。6 .分析结果对试验数据计算的结果进行分析,看是否正确。如果不正确,返回修改程序,再调试运行。7 .写出程序的文档主要是对程序中的变量、函数或过程作必要的说明。解释编程思路,画出框图,讨论运行结 果等。7.执行一个c语言程序的般过程是什么?答:个简单C程序的上机执行过程如下图所示。1)启动Tc,进入Tc集成环境。2)编辑(或修改)源程序。3)编译。如果编译成功,则可进行下步操作;否则,返回2)修改源程序,再重新编译, 直至编译成功。4)连接。如果连接成功,则可进行下步操作;否则,根据系统的错误提示进行相应修 改,再重新连接,直至连接成功。5)运行。通过观察程序运行结果,验证程序的正确性。6)退出Tc集成环境,结束本次程序运行。图C程序的上机执行过程第2章习题一.选择题1 .不合法的字符常量是【】B。A)、B)"B"a'D)' x32'2 .合法的字符常量是】D 。A)'084'B)84'abD)' x4A'3 . C语言提供的合法的数据类型关键字是【】B。A) Float B) signed C) integer D)chara 4.属于合法的C语言长整型常量的是【】B 。A)2736 B)OL C)2E10 D)(long)58762735 .下面选项中,不是合法整型常量的是【】BoA) 160B) -OxcdgC)-01D) -0x48a6 .以下所列的C语言常量中,错误的是【】B 。A)0xFFB) 1. 2e0. 5O2LD)' 72'7 .下面四个选项中,均是不正确的8进制数或16进制数的选项是【 】D 。A)016 0x8f 018 B)0abc 017 Oxa0010 -Oxll 0x16 D)0al2 7ff -1238 .下选项中不属于C语言的类型是【】D。A)signed short int B)unsigned long intB)unsigned int D)long short9 .判断int x = Oxaffblo x的结果是【】B 。A)赋值非法B)溢出 为affb D)为ffbc10 .下面选项中,是合法浮点数的是【】B»A)+le0.5 B) 60 C) 123eD)-e311 .在C语言中,要求参加运算的数必须是整数的运算符是】C 。A)/B)*0% D)=12 .在C语言中,字符型数据在内存中存放形式是【】D。A)原码 B)BCD码 C)反码 D) ASCH码13 .下列语句中,不符合语法的赋值语句是【】A。A)a=7+b+c=a+7;B)a=7+b+ ;C)a=(7+b, b+, a+7); D)a=7+b, c=a+7;14 .下面非法的C语言转义字符是】BoA) 'b' B) '0xf' C) '037' D)'15 .有字符串如下,"'n407asi”xabc”,则字符串的长度为1 】DA) 6B)7C)8D)916 .对于语句:f=(3. 0,4. 0,5.0), (2.0, 1.0, 0.0);的判断中,正确的是】B。A)语法错误B)f为5.0 C)f为0.0 D)f为2.017 .与代数式 不等价的C语言表达式是】A。uvA)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y18 .在C语言中,数字029是一个【 】D 。A)进制数B)十六进制数C)十进制数D)非法数19 . C语言中整数一8在内存中的存储形式为【】AoA)1111111111111000 B)100000000001000 000000000001000D)111111111111011120 .对于char cx= '039'语句,正确的是【】A A)不合法B)cx的ASCII值是330 ex的值为四个字符D)ex的值为三个字符21 .在C语言中,不正确的short类型的常数是【】B。A)123 B)32768C)037 D)0xAF22 .若int k=7,x=12;则能使值为3的表达式是】D。A) x%= (k%=5)B)x%=(k- k%5)C)x%=k - k%5D)(x%=k) - (k%=5)23 .假定x和y为double型,则表达式x=2, y=x+3/2的值是【】D。A)3.500000B)3 2.000000D)3.00000024 .设以下变量均为int类型,则值不等于7的表达式是】CoA)(x=y=6, x+y, x+1)B)(x=y=6,x+y,y+1)C) (x=6, x+1, y=6, x+y) D) (y=6, y+1, x=y, x+1)25 .在16位C编译系统匕若定义long a;,则能给a赋4000的正确语句是【】D。A)a=20000+20000B)a=4001。 30000+10000,D)aM000L*10L,26 . 7/9*9在C语言中的计算结果是】C。A)1B)7 D)以上都不是27 .以下能正确定义且赋初值的语句是【】BA)int nl=n2=10;B)char c=32;C)float f=f+l. 1;D)double x=12. 3E2. 5;28 .若有定义:inta=7;floatx=2. 5, y=4. 7;则表达式 x+a%3*(int)(x+y)%2/4 的值是【】AA)2. 500000 B)2. 750000 C)3. 500000D)0. 00000029 .若有运算符, sizeof,二&=,则它们按优先级由高至低的正确排列次序是【】BA) sizeof, &=,«,'B)sizeof, «, ', &=C) , «, sizeof, &=D)«, ", &=, sizeof30 .设变量a是int型,f是float型,i是double型,则表达式10+' a' +i*f值的数据类型 为【】CA) int B)float C)doubleD)不确定二.填空题1 .在C语言中(以16位PC机为例),个char数据在内存中所占字节数为11 ,其数 值范围为【 ! 2551个int数据在内存中所占字节数为【2,其数值范围为【32768 I32767 0 个long数据在内存中所占字节数为【4】, 其数值范围为【214783648】2147836471个float数据在内存中所占字节数为【4】,其数值范围为【3. 4X10 3.4X1018 12 . C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为 【字母或下划线】。3,字符常量使用一对【单引号】界定单个字符,而字符串常量使用对【双引号】来界定若 干个字符的序列。4 .在C语言中,不同运算符之间运算次序存在【优先级】的区别,同一运算符之间运算次序 存在【结合性】的规则。5 .设x, i, j,k都是int型变量,表达式x=(i=4, j=16,k=32)计算后,x的值为【32 6 . 设 x=2.5,a=7, y=4.7,贝 ijx+a%3*(int) (x+y)%2/4为【2 =7 . 设 a=2, b=3, x=3. 5, y=2. 5,则表达式(float) (a+b)/2+(int) x%(int) y 的值为【3. 5】。81数学式子/+J(2x+3y)的c语言表达式为 exp(3)+sqrt(2*x+3*y) I _ I x+y9 .数学式子“ 3x的C语言表达式为【abs(x-y) + (x+y)/(3*x) -b + yjb2 -4ac10.数学式子2a的 C 语言表达式为【(-b+sqrt (b*b-4*a*c) / (2*a) 11 .已知:char a- 'a' ,b= 'b' ,c= 'c' , i;则表达式 i=a+b+c 的值为【294 12 .已知 int a=12,n=5;则:a+=a; a-=2;a*=2+3 ;a/=a+a n%(n%2) ;a+=a-;表达式运算后a的值各为【 Jo13 .设 int a; float f; double i ;则表达式 10+' a' +i*f 值的数据类型是【double 14 .若a为int型变量,则表达式(a=4*5, a*2) , a+6的值为【40 15 .假设所有变量均为整型,则表达式(a=2, b=5, a+, b+, a+b)的值为【9 .16 .已知a, b, c是个十进制数x的百位,十位,个位,则计算a, b, c的表达式是【a=x/100, b=(x-x/100*100)/10, c=x%10,17 .定义:double x=3. 5, y=3. 2;则表达式(int)x*0. 5的值是【1.5,表达式y+=x+的值 是6.718 .定义:int m=5, n=3;则表达式m/=n+4的值是【0,表达式m=(m=l, n=2, n-m)的值是 1,表达式m+=m-=(m=l)*(n=2)的值是【219 .表达式5%(-3)的值是2,表达式-5% (-3)的值是【-220 .若a是int变量,则执行表达式a=25/3%3后,a的值是【2.三.判断题1 .在C程序中对用到的所有数据都必须指定其数据类型。2 . 个变量在内存中占据一定的存储单元。V 3 . 个实型变量的值肯定是精确的。X 4 .对几个变量在定义时赋初值可以写成:int a=b=c=3;X 5 .自增运算符(+)或自减运算符(")只能用于变量,不能用于常量或表达式。6 .在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()”。【 J7 . %运算符要求运算数必须是整数。【/ I8 .若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。X 9 .在C程序中,逗号运算符的优先级最低。J 10 . C语言不允许混合类型数据间进行运算。X 四.简答题1 .为什么C语言的字符型可以进行数值运算?答:C语言将字符(character)以其ASCII码的值进行存储和处理,因此可以参加数值运 算。2 .简述a'和“a”的区别。答:字符常量由单引号括起来,字符串常量由双引号括起来。例如:a和"a"是不同的。'a是字符常量,占个字节;"a"是字符串常量,占2个字节。3 .程序:int m=12; m=15;为什么整型变量m的值在运算后不是当初的12,而是15?答:int m=12;是在定义变量时进行初始化,m=15;是程序运行时对变量重新赋值,原来的 值也就随之改变。4 .将下面各数用八进制和十六进制数表示:十进制 32-1-327682002-1280进制 040 0177777 0100000 037220177600 00十六进制 0x20 Oxffff 0x8000 0x7d2 0xff80 0x05 .华氏温度F与摄氏温度c的转换公式为:c=(F-32)*5/9 ,则float c,F; c=5/9*(F-32)是其对应的C语言表达式吗?如果不是,为什么?答:对五.程序阅读题1 .写出以下程序运行的结果。void main() char cl=,a*, c2=,b*, c3=,c , c4=, 10T , c5=,102* ;printf("a%c b%ctc%ctabcn*, cl, c2, c3);printf(*tb%c %c*, c4, c5);aa bb cc abc A B 2 .写出以下程序运行的结果。void main() int i, j, m, n;i=8;j=10;m=+i;n=j+;printf ( "%d, %d, %d, %d",i, j, m, n);)9, 11,9, 10第3章习题.选择题1 . printf函数中用到格式符%5s”,其中数字5表示输出的字符串占用5歹如果字符 串长度小于5,则输出按方式】C«A)从左起输出该字串,右补空格B)按原字符长从左向右全部输出C)右对齐输出该字串,左补空格D)输出错误信息2 .已有定义int a=-2;和输出语句:printf ( “81x”,a);以下正确的叙述是D A)整型变量的输出格式符只有d 一种B) %x是格式符的一种,它可以适用于任何种类型的数据0 %x是格式符的种,其变量的值按十六进制输出,但%81x是错误的D) %81x不是错误的格式符,其中数字8规定了输出字段的宽度3 .以下程序的输出结果是】Domain () int a=3; printf("%dn”, (a+=a-=a*a);)A) -6B)12 C) 0D) -124 . putchar函数可以向终端输出个【】D。A)整型变量表达式值B)实型变量值C)字符串D)字符或字符型变量值5 .若x, y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是【】D。A) scanf ( <<%d%lx, %leH ,&x,&y, &z);B) scanf ( "%2d*%d%lf” ,&x,&y,&z);C)scanf( "%x%*d%o” , &x, &y);D)scanf( "%x%o%6. 2f" , &x, &y, &z);6 .已有如下定义和输入语句,若要求al, a2,cl,c2的值分别为10, 20, A和B,当从第一列开 始输入数据时,正确的数据输入方式是【】A。int al, a2; char cl, c2;scanf ( ,<%d%c%d%c" , &al, &cl, &a2, &c2);A)10A20B<CR>B)10 A 20 B<CR>C)10 A20B<CR>D)10A20 B<CR>7 .已有定义int x; float y;且执行scanf ( "%3d%f” , &x, &y);语句,若从第一列开始输入 数据!2345 678回车,则x的值为【】B。A) 12345B)1230 45D) 3458 .已有定义int X: float y;且执行scanf ( "%3d%f" , &x, &y);语句,若从第一列开始输入 数据!2345 678回车,则y的值为【】B。A)无定值B) 45. 0000000678. 000000 D) 123. 0000009 .阅读以下程序,当输入数据的形式为25, 13, 10<CR>正确的输出结果为1).main () (int x, y, z;scanf( "%d%d%d" , &x, &y, &z);printf( "x+y+z=%dn” ,x+y+z); )A) x+y+z=48B) x+y+z=35C) x+z=35D)不确定值10 .逻辑运算符两侧运算对象的数据类型【】D 。A)只能是或1B)只能是或非正数C)只能是整型或字符型数据D)可以是任何类型的数据11 .以下关于运算符优先顺序的描述中正确的是【】C,A)关系运算符(算术运算符(赋值运算符逻辑与运算符B)逻辑与运算符关系运算符算术运算符赋值运算符0赋值运算符逻辑与运算符关系运算符(算术运算符D)算术运算符关系运算符赋值运算符逻辑与运算符12 .下列运算符中优先级最高的是【】B。A)<B)+C)&& D) !=13 .能正确表示当x的取值在1,10和200, 210范围内为真,否则为假”的表达式是C.A) (x>=l)&&(x<=10)&&(x>=200)&&(x<=210)B) (x>=l) I I (x<=10) I I (x>=200) I I (x<=210)C) (x>=l)&&(x<=10)I I(x>=200)&&(x<=210)D) (x>=l)I I(x<=10)&&(x>=200)I I(x<=210)Do14 .能正确表示逻辑关系:“a210或a0”的C语言表达式是【A)a>=10 or a<=0B)a>=0|a<=10C) a>=10 &&a=QD)a>=10 II a=015 .设int x=l,y=l;表达式(!x| |y)的值是【 】BA)0B)1C)2 D)-l16 .有如下程序段int a=14, b=15, x;char c= 'A'x=(a&&b)&&(c"B');执行该程序段后,X的值为【】DA)tureB)false C)0 D)117 .表示图中坐标轴上阴影部分的正确表达式是】C=A) (x<=a)&&(x>=b)&&(x<=c) B) (x<=a)I I(b<=x<=c) C) (x<=a)I I(x>=b)&&(x<=c) D) (x<=a)&&(b<=x<=c)18 .判断char型变量ch是否为大写字母的正确表达式是】CoA) 'A' <=ch<= 'Z'B)(ch>= 'A' )&(ch<= 'Z')C)(ch>= 4A' )&&(ch<= ,Z' )D)( ,A' <=ch)AND( ,Z, >=ch)19 .设x、y和z是int型变量,且x=3, y=4, z=5,则下面表达式中值为0的是【D 】。 A) ,x' && 'y'B)x<=yC)xI Iy+z&fty-zD)!(x<y)&&!zI 11)20 .已知 x=43,ch= 'A' ,y=0;则表达式(x>=y&&ch 'B' &&!y)的值是CoA)0 B)语法错C)1 D) “假”21 .若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”, 则以下不能满足要求的表达式是】CoA)A%2=1B)!(A%2=0) C)!(A%2)D)A%222 .设有:int a=l, b=2, c=3, d=4, m=2, n=2; 执行(m=a>b)&&(n=c>d)后n的值为【】BoA)1B)2C)3D)423 .判断char型变量cl是否为小写字母的正确表达式是】DoA) 'a' <=cl<= 'z'B)(cl>=a)&&(cl=z)0(,a' >=cl)|(,z' <=cl) D) (cl>= 'a* )&&(cl<=,z')24 .已知x,y,z均为整型变量,且值均为1,则执行语句+x1 |+y&&+z;后,表达式x+y的值为 J CA)1B)2C)3D)425 .以下程序的运行结果是】Bottinclude “stdio. h” main ()int a, b, d=241;a=d/100%9;b=(-l)&&(-l);printf ( w%d, %dM , a, b); )A) 6, 1B)2, 106,0D)2,026 .以下不正确的if语句形式是【】C«A)if(x>y&&x!=y);B)if(x=y) x+=y;C) if (x!=y) scanf ("知",&x) else scanf ( "%d" , &y); D)if(x<y) x+; y+;27 .已知char ch='C'则以下表达式的值是【】。Dch=(ch>='A' && ch<=" Z") ? (ch+32): ch;A) A B)a C)Z D)c28 .已知 int x=10, y=20, z=30;以下语句:if(x>y)z=x: x=y: y=z;执行后x, y, z的值是【】。BA)x=10, y=20, z=30B)x=20,y=30, z=30C)x=20, y=30, z=10D)x=20, y=30, z=2029 .以下if语句语法正确的是】B»A) if(x>0)printf( "%f" ,x)else printf( "%f" , -x);B)if(x>0)x=x+y: printf( "%f" , x); else printf( "%f" , -x);C)if(x>0)x=x+y; printf( "%f" , x); ;else printf( "%f" , -x);D)if(x>0)x=x+y: printf( "%f" , x) else printf( "%f" , -x);30 .有如下程序 main () float x=2. 0,y: if(x<0. 0)y=0.0;else if(x<10. 0)y=l. 0/x;else y=l. 0;printf(*%fn*,y); )该程序的输出结果是【】。CA)0. 000000 B)0. 250000C)0. 500000 D) 1.00000031 .若int k=8;则执行下列程序后,变量k的正确结果是】Domain ()int k=8;switch(k)case 9:k+=l;case 10:k+=l;case 11:k+=1;break;default:k+=l;)printf("%dn", k);A) 12 B)ll C)10D)932 .对表达式for (表达式1;表达式3)可理解为1°BA)for (表达式1;表达式3)B) for (表达式1;1;表达式3)0 for (表达式1;表达式1;表达式3)D) for (表达式1;表达式3;表达式3)33.下面有关for循环的正确描述是【】D.A)for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 34.设有程序段int k=10;while(k=0) k=kT;则下面描述中正确的是【A)while循环执行10次C)循环体语句次也不执行 35.设有以下程序段int x=0, s=0;while(!x!=0) s+=+x;printf ("紀",s);则【】BA)运行程序段后输出CoB)循环是无限循环D)循环体语句执行次B)运行程序段后输出10程序段中的控制表达式是非法的D)程序段执行无限次36 .语句while(!E);中的表达式!E等价于】A。A)E=O B)E!=1 C)E!=O D)E=137 .下面程序段的运行结果是【】Aoa=l; b=2; c=2;while(a<b<c) t=a; a=b; b=t; c; printf ( "%d, %d, %d" , a, b, c);A) 1,2,0 B)2, 1,0 01,2, 1 D)2, 1, 138 .下面程序段的运行结果是】Dox=y=0:while(x<15) y+, x+=+y;printf ( "%d, %d" , y, x);A) 20, 7B)6, 12020,8D)8, 2039 .已知int t=0;while(t=l)则以下叙述正确的是【A)循环控制表达式的值为0C)循环控制表达式不合法40.下面程序段的运行结果是【。BB)循环控制表达式的值为1D)以上说法都不对C»int n=0;while(n+<=2); printf( "%d” , n);A) 2B)3C)4D)有语法错41 .设有程序段t=0;while(printf( u*n )t+;if(t<3) break;则下面描述正确的是】DoA)其中循环控制表达式与等价B)其中循环控制表达式与。,等价C)其中循环控制表达式是不合法的D)以上说法都不对42 . C语言中while和do-while循环的主要区别是】AoA)do-while的循环体至少无条件执行一次B) whi le的循环控制条件比do-while的循环控制条件严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句43 .以下描述中正确的是】CoA)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合 语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略while44 .若i为整型变量,则以下循环执行次数是】Bofor(i=2;i=0;) printf( "%dM , i-);A)无限次B)0次C)1次D)2次45 .以下for循环的执行次数是】Cofor(x=0, y=0;(y=123)&&(x<4);x+)A)是无限循环B)循环次数不定C)执行4次 D)执行3次46 .以下不是无限循环的语句为【】AoA)for(y=0, x=l;x>+y;x=i+) i=x;B)for(;x+=i);C)while(l) x+; D)for(i=10;i) sum+=i;47 .下面程序段的运行结果是【】Cofor(y=l;y<10;) y=(x=3*y, x+l),x-l);printf( ax=%d, y=%dw , x, y);A)x=27, y=27 B)x=12, y=13 C)x=15, y=14 D)x=y=2748 .下面程序段的运行结果是】Dofor(x=3;x<6;x+) printf(x%2)?():(),x);A)*3B)#3C)#3D)*3#4#4*4*4#5*5*5#549 .下列程序段不是死循环的是】DoA)int i=100;while(1) i=i%100+l;if(i>100) break;B) for(;);C) int k-0;do +k; while(k>=0);D) int s=36; while(s) -s;50 .执行语句for(i=l;i+4;);后变量i的值是【1C。A) 3B)4C)5 D)不定51 .以下正确的描述是【】。BA) cont inue语句的作用是结束整个循环的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)从多层循环嵌套中退出时,只能使用goto语句52 .下面程序段【】D«for(t=l;t<=100;t+) (scanf( "%d" , &x);if(x<0) continue;print