新编C程序设计教程赵忠孝新编C程序设计教程习题集(参考答案).pdf
新编C 程序设计教程习题集第 1 章 习 题一.选择题1.用高级语言编写的源程序要转换成等价的目标程序,必须经过【】CA)汇编 B)编辑 C)编译 D)解释2.计算机硬件能直接识别和执行的只有【】DA)高级语言 B)符号语言 C)汇编语言 D)机器语言3.在同等情况下,计算机执行【】速度最快。BA)高 级 语 言 程 序 B)机 器 语 言 程 序 C)汇编语言程序 D)源程序4.以下说法错误的是【】CA)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由0 和 1 的代码构成的二进制指令或数据O 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 语言自定义标志符是 】AoA)file_bak B)abc(10)C)continue D)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.以下叙述中正确的是 】CA)用 C 语言实现的算法必须要有输入和输出操作;B)用 C 语言实现的算法可以没有输出但必须要有输入;C)用 C 程序实现的算法可以没有输入但必须要有输出;D)用 C 程序实现的算法可以既没有输入也没有输出;13.以下说法错误的是【】CA)一个算法应包含有限个步骤B)在计算机上实现的算法是用来处理数据对象的C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现D)算法的目的是为了求解14.算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的 是【】BA)有零个输入或多个输入B)高效性C)有穷性D)确定性二.判断题1.一个C 程序的执行总是从该程序的main函数开始,在 main函数最后结束。4 2.main函数必须写在一个C 程序的最前面。【X】3.一个C 程序可以包含若干的函数。Z 4.C 程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【4 J5.C 程序的注释只能是一行。X 6.C 程序的注释不能是中文文字信息。X 7.可以使用Turbo C 来编译和连接一个C 程序。4 8.可以使用Turbo C 来运行一个C 程序。4 9.可以使用Turbo C 来实时调试(即动态调试)一个C 程序。4 三.问答题1.c 语言程序的总体结构是怎样的?答:个完整的C 语言程序,是由一个main()函 数(又称主函数)和若干个其它函数结合构成,或仅由一个main。函数构成。2.c 语言程序的基本单位是什么?它的结构又如何?答:函数是C 语言程序的基本单位,每个源文件可由一个或多个函数组成。C语言的任何函数(包括主函数main。)都是由函数首部和函数体两部分组成。函数的一般结构如下:函数类型函数名(函数参数表)函数首部说明语句部分;执行语句部分;函数体3.主函数main。在程序中的地位如何。程序总是从哪个函数开始执行,到哪个函数执行完后结束?答:一个源程序不论由多少个文件组成,都只能有一个m ain函数,即主函数。main()函数的作用,相当于其它高级语言中的主程序。其它函数的作用,相当于子程序。不论主函数在程序中的位置如何,C语言程序总是从main。函数开始执行,也是在main。函数终止执行。当主函数执行完毕时,整个程序也执行完毕。习惯上,将主函数main。放在程序的最前面。4.什么是算法?算法的基本特征是什么?答:算 法(Algorithm)是为解决某个问题而采取的方法和步骤,是程序的灵魂。个算法应该具有以下五个重要的特征:1.有穷性算法的有穷性是指算法必须能在执行有限个步骤之后终止,不能是无限的。2.确切性算法的每一步骤必须有确切的定义,而不能是含糊的,模棱两可的。3.可行性算法中的所有计算步都可以被分解为有限次的基本运算,即每个计算步都可以在有限时间内完成。4.有0 个或多个输入一个算法有0 个或多个输入,以刻画运算对象的初始情况。所谓0 个输入是指算法本身定出了初始条件。5.有一个或多个输出一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。5.结构化程序设计采用方法是什么?答:结构化程序设计方法的主要原则可以概括为:(1)自顶向下。程序设计时I应先考虑总体,后考虑细节。(2)逐步求精。对复杂问题,应设计一些子目标作为过渡,逐步细化。(3)模块化。一个复杂问题,肯定是由若干个稍简单的问题构成(4)每种程序结构允许有一个入口和一个口。(5)严格控制GOTO语句的使用。6.程序设计的一般那几个步骤?答:程序设计的一般步骤如下:1.分析问题对要解决的问题,苜先必须分析清楚,明确问题的要求,列出所有已知量,找出问题的求解范围、解的精度等。2.建立数学模型对实际问题进行分析之后,找出它的内在规律,就可以建立数学模型。3.选择算法建立数学模型后,还不能着手编程序,必须根据数据结构,选择解决问题的算法。一般选择算法时要注意:(1)算法的逻辑结构尽可能简单。(2)算法所要求的存储量应尽可能少。(3)避免不必要的循环,减少算法的执行时间。(4)在满足问题要求条件下,使所需的计算量最小。4.编写程序把整个程序看作一个整体,先全局后局部,自顶向下,层一层分解处理。如果某些子问题的算法相同,而仅仅是参数不同,可以用函数来表示。5.调试运行准备多组试验数据,调试运行。对程序中的错误进行修改,使程序能运行出结果。6.分析结果对试验数据计算的结果进行分析,看是否正确。如果不正确,返回修改程序,再调试运行。7.写出程序的文档主要是对程序中的变量、函数或过程作必要的说明。解释编程思路,画出框图,讨论运行结果等。7,执行一个c 语言程序的般过程是什么?答:一个简单C程序的上机执行过程如下图所示。1)启动T c,进入Tc集成环境。2)编辑(或修改)源程序。3)编译。如果编译成功,则可进行下一步操作;否则,返回2)修改源程序,再重新编译,直至编译成功。4)连接。如果连接成功,则可进行下一步操作;否则,根据系统的错误提示进行相应修改,再重新连接,直至连接成功。5)运行。通过观察程序运行结果,验证程序的正确性。6)退出T c集成环境,结束本次程序运行。图C程序的上机执行过程第 2 章 习 题一.选择题1 .不合法的字符常量是 】B。A)(f B)B C)a 2 .合法的字符常量是【】D 。A)0 8 4 B)8 4 C)a b D),x 3 2 1D)x 4 A 3 .C语言提供的合法的数据类型关键字是1 】唯。A)F l o a t B)s i g n e d C)i n t e g e r D)c h a r a4 .属于合法的C语言长整型常量的是【】B oA)2 7 3 6 B)0 L C)2 E 1 0 D)(l o n g)5 8 7 6 2 7 35 .下面选项中,不是合法整型常量的是【】B。A)1 6 0 B)-O x c d g C)-0 1 D)-0 x 4 8 a6 .以下所列的C语言常量中,错误的是【】B 。A)O x F F B)1.2 e 0.5 C)2 L D)7 2 7 .下面四个选项中,均是不正确的8进制数或1 6进制数的选项是1 】D 。A)0 1 6 0 x 8 f 0 1 8 B)O a b c 0 1 7 O x aC)0 1 0 -0 x 1 1 0 x 1 6 D)0 a l 2 7 f f -1 2 38 .下选项中不属于C语言的类型是【】D。A)s i g n e d s h o r t i n t B)u n s i g n e d l o n g i n tB)u n s i g n e d i n t D)l o n g s h o r t9 .判 断i n t x =O x a f f b l x的结果是【】B 。A)赋值非法 B)溢出 C)为a ffb D)为ffbc1 0 .下面选项中,是合法浮点数的是【】B。A)+l e O.5 B)6 0 C)1 2 3 e D)-e 31 1.在C语言中,要求参加运算的数必须是整数的运算符是 】C 。A)/B)*0%D)=1 2.在C语言中,字符型数据在内存中存放形式是【1D。A)原码 B)B C D码 C)反码 D)A S C I I码1 3 .下列语句中,不符合语法的赋值语句是【】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;1 4 .下面非法的C语言转义字符是 】B A)b B)Oxf C)0 3 7 D)1 5 .有字符串如下,n 4 0 7 a sl xa bc,则字符串的长度为【】DA)6B)7 C)8 D)91 6 .对于语句:f=(3.0 于.0,5.0),(2.0,1.0,0.0);的判断中,正确的是 】B。A)语法错误 B)f 为 5.0 C)f 为 0.01 7 .与代数式与 不等价的C语言表达式是【uvA)x*y/u*v B)x*y/u/v C)x*y/(u*v)1 8.在 C语言中,数字0 2 9是一个【】D oA)八进制数 B)十 六 进 制 数 C)十进制数D)f 为 2.0A。D)x/(u*v)*yD)非法数1 9.C语言中整数-8在内存中的存储形式为【】A。A)1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0B)1 0 0 0 0 0 0 0 0 0 0 1 0 0 0C)0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0)1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 12 0 .对于ch a r cx=0 3 9;语句,正确的是 】A 。A)不合法 B)cx的 A S C H 值是3 3C)cx的值为四个字符 D)cx的值为三个字符2 1 .在 C语言中,不正确的sh o r t类 型 的 常 数 是【】B。A)1 2 3 B)3 2 7 6 8 C)0 3 7 D)OxA F2 2 .若 i n t k=7,x=1 2;则能使值为3的表达式是 】D oA)x%=(k?仁 5)B)x%=(k-k%5)C)x%=k -k%5 D)(x%=k)-(k%=5)2 3 .假定x 和 y为 d o ubl e 型,则表达式x=2,y=x+3/2 的值是【】D。A)3.5 0 0 0 0 0 B)3 C)2.0 0 0 0 0 0 D)3.0 0 0 0 0 02 4 .设以下变量均为i n t类型,则值不等于7的表达式是 】C。A)(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)2 5 .在 1 6 位 C编译系统上,若定义l o n g a;,则能给a赋 4 0 0 0 0 的正确语句是【】D。A)a=2 0 0 0 0+2 0 0 0 0,B)a=4 0 0 0*1 0。C)3 0 0 0 0+1 0 0 0 0=D)a=4 0 0 0 L*1 0 L o2 6 .7/9*9在 C语言中的计算结果是 】C。A)1 B)7 C)0 D)以上都不是2 7 .以下能正确定义且赋初值的语句是【】BA)i n t n l=n 2=1 0;B)ch a r c=3 2;C)fl o a t f=f+l.1;D)d o ubl e x=1 2.3 E 2.5;2 8.若有定义:i n t a=7;fl o a t x=2.5,y=4.7;则表达式 x+a%3*(i n t)(x+y)/2/4 的值是【AA)2.500000 B)2.750000 C)3.500000 D)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)double D)不确定二.填空题1.在 C 语言中(以16位 PC机为例),一个char数据在内存中所占字节数为【1】,其数值范围为【0】一【255一个int数据在内存中所占字节数为【2】,其数值范围为32768 3 2 7 6 7 一 个 long数据在内存中所占字节数为【4】,其数值范围为1-214783648 2 1 4 7 8 3 6 4 7】。一个float数据在内存中所占字节数为【4】,其数值范围为1-3.4X10 3.4X10382.C 语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为【字母或下划线】。3.字符常量使用-对【单引号】界定单个字符,而字符串常量使用-对【双引号】来界定若干个字符的序列。4.在 C 语言中,不同运算符之间运算次序存在【优先级】的区别,同一运算符之间运算次序存 在【结合 性】的规则。5.设 x,i,j,k都 是 int型变量,表达式x=(i=4,j=16,k=32)计算后,x 的值为 32。6.设*=2.5国 7,尸4.7,则*+2船*011。&+丫)2/4为【2 67.设 a=2,b=3,x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y 的值为【3.5】。8.数学式子,+J(2x+3y)的 c 语言表达式为【exp(3)+sqrt(2*x+3*y)I+山9.数学式子 3 x 的 C 语言表达式为【abs(x-y)+(x+y)/(3*x)】。-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*=a;表达式运算后a 的值各为【0 13.设 int a;float f;double i ;则表达式10+a+i*f值的数据类型是【d o u b l e 工14.若 a 为 int型变量,则 表 达 式(a=4*5,a*2),a+6的值为【4 0】。15.假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为【9】。16.已知a,b,c 是一个十进制数上的百位,十位,个位,则计算谋a,b,c 数的表达式是【a=x/100,b=(x-x/100*100)/10,c=x%101 7 .定义:d o ubl e x=3.5,y=3.2;则表达式(i n t)x*O.5的值是【1.5,表达式y+=x+的值是【6.7】。1 8.定义:i n t m=5,n=3;则表达式m/=n+4 的值是【0,表达式m=(m=l,n=2,n-m)的值是1,表达式m+=m-=(m=l)*(n=2)的值是【-21 9.表 达 式 5%(-3)的值是2表达式-5%(-3)的值是【-22 0 .若 a是 i n t变量,则执行表达式a=2 5/3%3 后,a的值是 2 三.判断题1 .在 C程序中对用到的所有数据都必须指定其数据类型。J 2 .一个变量在内存中占据一定的存储单元。J 3 .一个实型变量的值肯定是精确的。X 4 .对几个变量在定义时赋初值可以写成:i n t a=b=c=3;【X】5.自增运算符(+)或自减运算符(一)只能用于变量,不能用于常量或表达式。【J 16.在 C程序的表达式中,为了明确表达式的运算次序,常使用括号“()。J 7 .%运算符要求运算数必须是整数。V 8 .若 a是实型变量,C程序中允许赋值a=1 0,因此实型变量中允许存放整型数。X 9 .在 C程序中,逗号运算符的优先级最低。J 1 0 .C语言不允许混合类型数据间进行运算。X 四.简答题1 .为什么C语言的字符型可以进行数值运算?答:C语言将字符(c h a r a c t e r)以其A S C II码的值进行存储和处理,因此可以参加数值运算。2 .简 述 a 和“a”的区别。答:字符常量由单引号括起来,字符串常量由双引号括起来。例如:a 和 a 是不同的。a 是字符常量,占一个字节;a 是字符串常量,占2个字节。3 .程序:i n t m=1 2;m=1 5;为什么整型变量m的值在运算后不是当初的1 2,而 是 1 5?答:i n t m=1 2;是在定义变量时进行初始化,m=1 5;是程序运行时对变量重新赋值,原来的值也就随之改变。4.将下面各数用八进制和十六进制数表示:5.华氏温度F与摄氏温度c的转换公式为:c=(F-3 2)*5/9 ,则 f l o a t c,F;c=5/9*(F-3 2)是其对应的C语言表达式吗?如果不是,为什么?十进制 3 2 -1 -3 2 7 682 0 0 2-1 2 80八进制 0 40 0 1 7 7 7 7 7 0 1 0 0 0 0 00 3 7 2 20 1 7 7 60 0 0 0十六进制 0 x2 0 O xf f f f 0 x8 0 0 0 0 x7 d 20 xf f 8 00 x0答:对五.程序阅读题1.写出以下程序运行的结果。v o i d m a i n()c h a r c l=,a ,c2-b ,c 3=,c*,c 4=,1 0 T ,c 5=,1 0 2,;p r i n t f (z,a%c b%c t c%c t a b c nz,,c l,c 2,c 3);p r i n t f (,z t b%c%c ,c 4,c 5);aa bbccabcA B2.写出以下程序运行的结果。v o i d m a i n()i n t i,j,m,n;i=8;j=1 0;m=+i;n=j+;p r i n t f(d,%d,%d,%d”n);)9,1 1,9,1 0第 3 章习题一.选择题1 .p r i n t f 函数中用到格式符“%5s”,其中数字5 表示输出的字符串占用5 歹 如 果 字 符申长度小于5,则输出按方式 1C。A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出0右对齐输出该字串,左补空格 D)输出错误信息2 .已有定义i n t a=-2;和输出语句:p r i n t f (%8 1 x ,a);以下正确的叙述是【DA)整型变量的输出格式符只有d 一种B)%x 是格式符的一种,它可以适用于任何一种类型的数据0%x是格式符的种,其变量的值按十六进制输此但8 1 x 是错误的D)%8 1 x 不是错误的格式符,其中数字8规定了输出字段的宽度3.以下程序的输出结果是 】Dom a i n ()i n t a=3;p r i n t f (%d n”,(a+=a-=a*a);)A)-6 B)1 2 C)0 D)-1 24 .p u t c h a r 函数可以向终端输出一个【】D。A)整型变量表达式值 B)实型变量值C)字符串 D)字符或字符型变量值5.若 x,y均定义为int型,z 定义为double型,以下不合法的scanf函数调用语句是【】DoA)scanf(a%d%lx,%lev,&x,&y,&z);B)scanf(%2d*%d%lf”,&x,&y,&z);C)scanf(4%x%*d%o n,&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(rt%d%c%d%cw,&al,&cl,&a2,&c2);A)10A20B B)10 A 20 BC)10 A20B D)10A20 B7.已有定义int x;float y;且执行scanf(%3d%f”,&x,&y);语句,若从第一列开始输入数 据 12345 678 回车,则 x 的值为【】B。A)12345 B)123 C)45 D)3458.已有定义int x;float y;且执行scanf(%3d%f ,&x,&y);语句,若从第一列开始输入数 据 12345 678 回车,则 y 的值为【】B。A)无定值 B)45.000000 0678.000000 D)123.0000009.阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为 I)main()(int x,y,z;scanf(%d%d%d,&x,&y,&z);printf(x+y+z=%dn”,x+y+z);)A)x+y+z=48 B)x+y+z=350 x+z=35 D)不确定值10.逻辑运算符两侧运算对象的数据类型【】D。A)只能是0 或 1 B)只能是。或非0 正数0 只能是整型或字符型数据 D)可以是任何类型的数据11.以下关于运算符优先顺序的描述中正确的是【】CA)关系运算符 算术运算符 赋值运算符 逻辑与运算符B)逻辑与运算符(关系运算符(算术运算符 赋值运算符0 赋值运算符 逻辑与运算符(关系运算符(算术运算符D)算术运算符 关系运算符 赋值运算符 逻辑与运算符12.下列运算符中优先级最高的是【】B。A)=l)&(x=20 0)&(x =21 0)B)(x=l)|!(x=20 0)|(x=21 0)C)(x =l)&(x=20 0)&(x=l)|(x=20 0)|(x=1 0 o r a=0 a=1 0&a=1 0|a=01 5 .设 i n t x=l,y=l;表达式(!x|y-)的值是【】BA)0 B)1 0 2 D)-l1 6 .有如下程序段i n t a=1 4,b=1 5,x;c h a r c=A ;x=(a&b)U(c B);执行该程序段后,x的值为【】DA)t u r e B)f a l s e C)0 D)11 7 .表示图中坐标轴上阴影部分的正确表达式是 】Coa b cA)(x=b)&(x=c)B)(x=a)|(b=x=c)C)(x=b)&(x =c)D)(x=a)&(b =x =c)1 8 .判断c h a r 型变量c h 是否为大写字母的正确表达式是 】CA)A=,A)&(c h=A)&(c h=Z )D)(A=c h)1 9 .设 x、y和 z 是 i n t 型变量,且x=3,y=4,z=5,则下面表达式中值为0的 是【D】。A)&7 B)x =yC)x|y+z&y-z D)!(x=y&c h b)&(n=c d)后 n的值为【】B。A)1 B)2 C)3 D)423.判断c h a r 型变量c l 是否为小写字母的正确表达式是1 】DA)a =c l=a)&(c l=c l)|I(z =a )&(c l y&x!=y);B)i f(x=y)x+=y;C)i f(x!=y)s c a n f(%d ,&x)e l s e s c a n f(%d ,&y);D)i f(x=A&c h=Z)?(c h+32):c h;A)A B)a C)Z D)c28 .已知 i n t x=1 0,y=20,z=30;以下语句:i f(x y)z=x;x=y;y=z;执行后x,y,z的值是【A)x=1 0,y=20,z=30C)x=20,y=30,z=1 0 BB)x=20,y=30,z=30D)x=20,y=30,z=2029 .以下i f语句语法正确的是 】B。A)i f(x 0)p r i n t f(%f ,x)e l s e p r i n t f(%f ,-x);B)i f(x 0)x=x+y;p r i n t f(%f ,x);e l s e p r i n t f(%f ,-x);C)i f (x 0)x=x+y;p r i n t f(“%f”,x);e l s e p r i n t f(%f ,-x);D)i f(x 0)x=x+y;p r i n t f(“f”,x)e l s e p r i n t f(%f ,-x);30 .有如下程序m a i n ()f l o a t x=2.0,y;i f(x 0.0)y=0.0;e l s e i f(x 1 0.0)y=l.0/x;e l s e y=l.0;printfy);)该程序的输出结果是【】。CA)0.0 0 0 0 0 0 B)0.25 0 0 0 0 C)0.5 0 0 0 0 0 D)1.0 0 0 0 0 031 .若 i n t k=8;则执行下列程序后,变量k的正确结果是 】Dom a i n ()i n t k=8;s w i t c h(k)c a s e 9:k+=l;c a s e 1 0:k+=l;c a s e 1 1:k+=l;b r e a k;d e f a u l t:k+=l;)p r i n t f k);A)1 2 B)l l C)1 0 D)932.对表达式f o r (表达式1;表达式3)可 理 解 为 1BA)f o r (表达式1;0;表达式3)B)f o r (表达式1;1;表达式3)0 f o r (表达式1;表达式1;表达式3)D)f o r (表达式1;表达式3;表达式3)33.下面有关f o r 循环的正确描述是【1D。A)f o r 循环只能用于循环次数已经确定的情况B)f o r 循环是先执行循环体语句,后判断表达式C)在 f o r 循环中,不能用b r e a k 语句跳出循环体D)f o r 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来3 4.设有程序段in t k=1 0;w hil e(k=0)k=k-l;则下面描述中正确的是 】CA)w hil e循环执行1 0次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次3 5 .设有以下程序段in t x=0,s=0;w hil e(!x!=O)s+=+x;p r in tf(版1 ,s);则【】BoA)运行程序段后输出0 B)运行程序段后输出10 程序段中的控制表达式是非法的 D)程序段执行无限次3 6 .语 句 w hil e(!E);中的表达式!E 等价于 】A。A)E=0 B)E!=1 C)E!=0 D)E=13 7 .下面程序段的运行结果是【】A。a-1;b=2;c-2;w hil e(abc)t=a;a=b;b=t;c一;p r in tf(%d,%d,%d”,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,13 8 .下面程序段的运行结果是 】Dox=y=0;w hil e(x1 5)y+,x+=+y;p r in tf(%d,%d ,y,x);A)2 0,7 B)6,1 2 C)2 0,8 D)8,2 03 9.已知in t t=0;w hil e(t=l).)则以下叙述正确的是【A)循环控制表达式的值为0C)循环控制表达式不合法4 0.下面程序段的运行结果是【o BB)循环控制表达式的值为1D)以上说法都不对 Coin t n=0;w hil e(n+=2);p r in tf(“%d”,n);A)2 B)3 C)4 D)有语法错4 1.设有程序段t=0;w hil e(p r in tf(*)t+;if(t3)br eak;则下面描述正确的是 】DA)其中循环控制表达式与0 等价 B)其中循环控制表达式与 0,等价0其中循环控制表达式是不合法的 D)以上说法都不对42.C语言中while和do-while循环的主要区别是 】A。A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-whi le的循环控制条件严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句43.以下描述中正确的是 】CoA)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由d o开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略whi le44.若i为整型变量,则以下循环执行次数是 】Bofor(i=2;i=0;)printf(%d”,i-);A)无限次 B)0次 C)1次 D)2次45.以下for循环的执行次数是 】Cofor(x=0,y=0;(y=123)&(x4);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(1)x+;D)for(i=10;i-)sum+=i;47.下面程序段的运行结果是 】Cofor(y=l;y10;)y=(x=3*y,x+1),x-l);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=2748.下面程序段的运行结果是 】Dofor(x=3;x100)break;)B)for;C)in t k=0;do +k;w hil e(k=0);D)in t s=3 6;w hil e(s)-s;5 0.执行语句。1 (1=1;1+4;);后变量1 的值是【】C。A)3 B)4 C)5 D)不定5 1 .以下正确的描述是【】。BA)co n tin ue语句的作用是结束整个循环的执行B)只能在循环体内和s w itch语句体内使用br eak 语句C)在循环体内使用br eak 语句或co n tin ue语句的作用相同D)从多层循环嵌套中退出时,只能使用go to 语句5 2 .下面程序段【】D。fo r(t=l;t=1 00;t+)(s can f(%d ,&x);if(x0)co n tin ue;p r in tf(%3 d”,t);)A)当 x=0时什么也不输出O p r in tf函数永远也不执行 D)最多允许输出1 00个非负整数5 3 .下面程序段【】Cox=3;do(y=x;if(!y)p r in tf(x );co n tin ue;p r in tf(#”);w hil e(K=xb)?a:b;。if(ab)m ax=a;el s e m ax=b;4 .以下程序输出的结果是【0 10m ain()in t a=5,b=4,c=3,d;d=(abc);p r in tf(%d n”,d);5 .若从键盘输入5 8,则以下程序输出的结果是【5 8 5 8 5 8 。m ain()in t a;s can f&a);if(a5 0)p r in tf(d,a);i f(a 40)pri nt f a);if(a3 0)p r in tf(d,a);6 .阅读下面语句,则程序的执行结果是 1,0 o#in cl ude s tdio.hm ain ()in t a=-l,b=l,k;if(+a0)&!(b=0)p r in tf(%d,%d n,a,b);el s e p r in tf(d,%d n,b,a);7 .以下程序的输出结果为i:dec=-4,oct=177774,hex=fFFc,unsigned=65532m ain ()(s ho r t i;i=-4;p r in tf(a n i:dec=%d,o ct=%o,hex=%x,un s ign ed=%u nw,i,i,i,i);)8 .以下程序的输出结果为*3.1 4 0000,3.1 4 2*】。m ain ()(p r in tf(3 f*n”,3.1 4,3.1 4 1 5);)9.以下程序的输出结果为 c:dec=1 2 0,o ct=1 7 0,hex=7 8,AS CI I=x m ain ()(char c=x ;p r in tf(uc:dec=%d,o ct=%o,hex=%x,AS CI I=%c nw,c,c,c,c);)1 0.以下程序的输出结果为【】。x=l y=2 *s um*=31 0 S q uar ed is:1 00m ain ()(in t x=l,y=2;p r in tf(ux=%d y=%d*s um*=%d n,7,x,y,x+y);p r in tf(u 1 0 S q uar ed is:%d n),1 0*1 0);)1 1 .以下程序段的输出结果为【】。in t x=7 2 8 1;p r in tf(“p r in tf(“(2)p r in tf(u(3)p r in tf(4)p r in tf(“(5)x=%3 d,x=%6 d,x=%6 o,x=%6 x,x=%6 u n ,x,x,x,x,x);x=%-3 d,x=%-6 d,x=$%-06 d,x=$%06 d,跳06 d n”,x,x,x,x,x);x=%+3 d,x=%+6 d,x=%+08 d n”,x,x,x);x=%o,x=%#o n”,x,x);x=%x,x=%#x n”,x,x);12345 c的值是【0】。1 8 .当a=5,b=4,c=2时,表达式a b!=c的值是【1】。1 9 .在C语言中,表示逻辑“真 值 用【1】。2 0.设i,j,k均为in t型变量,则执行完下面的f o r语句后,k的值为【1 0】。f o r(i=0,j=1 0;i=j;i+,j)k=i+j;2 1 .下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。m a in ()in t i,x,y=l;sc a n f (,z%d,z,&x);f o r(i=2;i=x/2;i+)if (x%i=0)y=0;b re a k;prin t f(%d n”,y);)2 2 .阅读下面程序,则执行后程序的结果为 1 5,1 6 t t in c l ud e st d io.h m a in()in t a=0,b=0;w hil e(a 1 5)a+;w hil e(b+1 5);prin t f (,z%d,%d n,z,a,b);2 3.C语言提供的三种逻辑运算符是【&】、【|】、【!o2 4.设 x,y,z 均 为 in t 型变量,请写出描述“x或 y中有一个小于z”的表达式 x z|y 0&(x 0|y 0|z B&C A|A B&!O B 的值是 0 。2 7 .若 a=6,b=4,c=2,则表达式!(a-b)+c T&b+c/2 的值是【1 】。2 8 .若 a=6,b=4,c=3,则表达式a&b+c|b-c 的值是【1】。2 9 .若 a=5,b=2,c=l,则表达式 a-b c|b=c 的值是0 。3 0 .条件 2 x 3 或 x -1 0”的 C 语言表达式是 2 x&x