新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集(参考答案)_第1页
新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集(参考答案)_第2页
新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集(参考答案)_第3页
新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集(参考答案)_第4页
新编C程序设计教程课件教学PPT作者赵忠孝新编C程序设计教程习题集(参考答案)_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、新编C程序设计教程习题集第1章 习 题一选择题1. 用高级语言编写的源程序要转换成等价的目标程序,必须经过【 】CA) 汇编 B) 编辑 C) 编译 D) 解释2. 计算机硬件能直接识别和执行的只有【 】DA) 高级语言 B) 符号语言 C) 汇编语言 D) 机器语言3. 在同等情况下,计算机执行【 】速度最快。BA)高级语言程序 B) 机器语言程序 C) 汇编语言程序 D) 源程序4. 以下说法错误的是【 】C A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式 B)计算机只能处理由0和1的代码构成的二进制指令或数据 C)C语言源程序经过C语言编译程序编译之后生成一个后缀为

2、.EXE的二进制文件 D)每一种高级语言都有它对应的编译程序 5. 以下叙述中错误的是 【 】AA)用户所定义的标识符允许使用关键字;B)用户所定义的标识符应尽量做到“见名知意”;C)用户所定义的标识符必须以字母或下划线开头;D)用户定义的标识符中,大、小写字母代表不同标识;6. 下列选项中属于合法C语言关键字的是 【 】D。A) VAR B)interger C)floaT D)default 7. 下列字符串不是标识符的是【 】D A) sum B) Average C) Day_night D) M.C)JOHN8. 正确的C语言自定义标志符是【 】A。 A)file_bak B)abc

3、(10) C)continue D)class+39. 一个 C程序的执行是从【 】AA)本程序的main函数开始,到main函数结束;B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束;C)本程序的main函数开始,到本程序文件的最后一个函数结束;D)本程序文件的第一个函数开始,到本程序main函数结束;10. 以下叙述中正确的是【 】A A)构成C程序的基本单位是函数 B)可以在一个函数中定义另一个函数 C)main()函数必须放在其他函数之前 D)所有被调用的函数一定要在调用之前进行定义 11. 以下叙述不正确的是【 】DA)一个C源程序可由一个或多个函数组成;B)一个C源程

4、序必须包含一个main函数;C)C程序的基本组成单位是函数;D)在C程序中,注释说明只能位于一条语句的后面;12. 以下叙述中正确的是【 】CA)用C语言实现的算法必须要有输入和输出操作;B)用C语言实现的算法可以没有输出但必须要有输入;C)用C程序实现的算法可以没有输入但必须要有输出;D)用C程序实现的算法可以既没有输入也没有输出;13. 以下说法错误的是【 】C A)一个算法应包含有限个步骤 B)在计算机上实现的算法是用来处理数据对象的 C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现 D)算法的目的是为了求解 14. 算法是指为解决某个特定问题而采取的确定且有限的步骤,下

5、面不属于算法的五个特性的是【 】B A)有零个输入或多个输入 B)高效性 C)有穷性 D)确定性 二判断题1. 一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。【 】2. main函数必须写在一个C程序的最前面。 【 × 】3. 一个C程序可以包含若干的函数。【 】4. C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【 】5. C程序的注释只能是一行。【× 】6. C程序的注释不能是中文文字信息。【× 】7. 可以使用Turbo C来编译和连接一个C程序。【 】8. 可以使用Turbo

6、 C来运行一个C程序。【 】9. 可以使用Turbo C来实时调试(即动态调试)一个C程序。【 】三问答题1. c语言程序的总体结构是怎样的?答:一个完整的语言程序,是由一个main()函数(又称主函数)和若干个其它函数结合构成,或仅由一个main()函数构成。2. c语言程序的基本单位是什么?它的结构又如何?答:函数是语言程序的基本单位,每个源文件可由一个或多个函数组成。C语言的任何函数(包括主函数main())都是由函数首部和函数体两部分组成。函数的一般结构如下:函数类型 函数名(函数参数表) 函数首部 函数体 说明语句部分; 执行语句部分; 3. 主函数main()在程序中的地位如何。程

7、序总是从哪个函数开始执行,到哪个函数执行完后结束?答:一个源程序不论由多少个文件组成,都只能有一个main函数,即主函数。main()函数的作用,相当于其它高级语言中的主程序。其它函数的作用,相当于子程序。不论主函数在程序中的位置如何,C语言程序总是从main()函数开始执行,也是在main()函数终止执行。当主函数执行完毕时,整个程序也执行完毕。习惯上,将主函数main()放在程序的最前面。4. 什么是算法?算法的基本特征是什么?答:算法(Algorithm)是为解决某个问题而采取的方法和步骤,是程序的灵魂。一个算法应该具有以下五个重要的特征: 1.有穷性算法的有穷性是指算法必须能在执行有限

8、个步骤之后终止,不能是无限的。2.确切性算法的每一步骤必须有确切的定义,而不能是含糊的,模棱两可的。3.可行性算法中的所有计算步都可以被分解为有限次的基本运算,即每个计算步都可以在有限时间内完成。4.有0个或多个输入一个算法有0个或多个输入,以刻画运算对象的初始情况。所谓0个输入是指算法本身定出了初始条件。 5. 有一个或多个输出一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。5. 结构化程序设计采用方法是什么?答:结构化程序设计方法的主要原则可以概括为:(1)自顶向下。程序设计时,应先考虑总体,后考虑细节。(2)逐步求精。对复杂问题,应设计一些子目标作为过

9、渡,逐步细化。 (3)模块化。一个复杂问题,肯定是由若干个稍简单的问题构成(4)每种程序结构允许有一个入口和一个口。(5)严格控制GOTO语句的使用。6. 程序设计的一般一那几个步骤?答:程序设计的一般步骤如下:1.分析问题对要解决的问题,首先必须分析清楚,明确问题的要求,列出所有已知量,找出问题的求解范围、解的精度等。2.建立数学模型对实际问题进行分析之后,找出它的内在规律,就可以建立数学模型。3.选择算法建立数学模型后,还不能着手编程序,必须根据数据结构,选择解决问题的算法。一般选择算法时要注意:(1) 算法的逻辑结构尽可能简单。(2) 算法所要求的存储量应尽可能少。(3) 避免不必要的循

10、环,减少算法的执行时间。(4) 在满足问题要求条件下,使所需的计算量最小。4.编写程序 把整个程序看作一个整体,先全局后局部,自顶向下,一层一层分解处理。如果某些子问题的算法相同,而仅仅是参数不同,可以用函数来表示。5.调试运行 准备多组试验数据,调试运行。对程序中的错误进行修改,使程序能运行出结果。6.分析结果对试验数据计算的结果进行分析,看是否正确。如果不正确,返回修改程序,再调试运行。7.写出程序的文档主要是对程序中的变量、函数或过程作必要的说明。解释编程思路,画出框图,讨论运行结果等。7. 执行一个c语言程序的一般过程是什么?答:一个简单C程序的上机执行过程如下图所示。 1)启动Tc,

11、进入Tc集成环境。 2)编辑(或修改)源程序。 3)编译。如果编译成功,则可进行下一步操作;否则,返回2)修改源程序,再重新编译,直至编译成功。 4)连接。如果连接成功,则可进行下一步操作;否则,根据系统的错误提示进行相应修改,再重新连接,直至连接成功。 5)运行。通过观察程序运行结果,验证程序的正确性。 6)退出Tc集成环境,结束本次程序运行。编辑并保存编译连接运行新建一个程序文件源程序.c文件目标文件.obj可执行.exe文件.obj语法错误逻辑错误图 C程序的上机执行过程第2章习 题一选择题1. 不合法的字符常量是【 】B 。A) t B) “B” C) a D)x322. 合法的字符常

12、量是【 】D 。A) 084 B) 84 C) ab D)x4A3. C语言提供的合法的数据类型关键字是【 】DB。A) Float B) signed C) integer D)chara4. 属于合法的C语言长整型常量的是【 】B 。A)2736 B)0L C)2E10 D)(long)58762735. 下面选项中,不是合法整型常量的是【 】B。A)160 B)0xcdg C)01 D)0x48a6. 以下所列的C语言常量中,错误的是【 】B 。A)0xFF B)1.2e0.5 C)2L D)727. 下面四个选项中,均是不正确的8进制数或16进制数的选项是【 】D 。A)016 0x8

13、f 018 B)0abc 017 0xaC)010 -0x11 0x16 D)0a12 7ff -1238. 下选项中不属于C语言的类型是【 】D。A)signed short int B)unsigned long intB)unsigned int D)long short9. 判断int x = 0xaffb1。x的结果是【 】B 。A)赋值非法 B)溢出 C)为affb D)为ffbc10. 下面选项中,是合法浮点数的是【 】B。A)+1e0.5 B).60 C)123e D)e311. 在C语言中,要求参加运算的数必须是整数的运算符是【 】C 。A)/ B)* C)% D) =12.

14、 在C语言中,字符型数据在内存中存放形式是【 】D。A)原码 B)BCD码 C)反码 D)ASCII码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语言转义字符是【 】B。A)b B)0xf C)037 D)15. 有字符串如下,"n407as1"xabc",则字符串的长度为【 】DA)6 B)7 C)8 D)916. 对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,正确的是【 】B。A)语

15、法错误 B)f为5.0 C)f为0.0 D)f为2.017. 与代数式 不等价的C语言表达式是【 】A。A)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在内存中的存储形式为【 】A。A)1111111111111000 B)100000000001000C)000000000001000 D)111111111111011120. 对于char cx=039;语句,正确的是【 】A 。A)不合法 B)cx的ASCII值是33C)cx

16、的值为四个字符 D)cx的值为三个字符21. 在C语言中,不正确的short类型的常数是 【 】B 。A)123 B)32768 C)037 D)0xAF22. 若int k=7,x=12;则能使值为3的表达式是【 】D。A)x%=(k%=5) B)x%=(kk%5)C)x%=kk%5 D)(x%=k)(k%=5)23. 假定x和y为double型,则表达式x=2,y=x+3/2的值是【 】D。A)3.500000 B)3 C)2.000000 D)3.00000024. 设以下变量均为int类型,则值不等于7的表达式是【 】C。A)(x=y=6,x+y,x+1) B)(x=y=6,x+y,y

17、+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赋40000的正确语句是【 】D。A)a=20000+20000。 B)a=4000*10。C)30000+10000。 D)a=4000L*10L。26. 7/9*9 在C语言中的计算结果是 【 】C。A)1 B)7 C)0 D)以上都不是27. 以下能正确定义且赋初值的语句是【 】B A)int n1=n2=10; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5; 28. 若有定义:int a=7

18、;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是【 】AA)2.500000 B)2.750000 C)3.500000 D)0.000000 29. 若有运算符<<,sizeof,&=,则它们按优先级由高至低的正确排列次序是【 】BA)sizeof,&=,<<, B)sizeof,<<,&=C),<<,sizeof,&= D)<<,&=,sizeof30. 设变量a是int型,f是float型,i是double型,则表达式10+a+i*f值的数据类型

19、为【 】C A)int B)float C)double D)不确定二填空题1. 在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为【 1 】,其数值范围为【 0 】【255 】。一个int数据在内存中所占字节数为【 2 】 ,其数值范围为【-32768 】 【 32767 】。一个long数据在内存中所占字节数为【 4 】,其数值范围为【-214783648】 【 214783647 】。一个float数据在内存中所占字节数为【 4 】,其数值范围为【-3.4×1038】 【3.4×1038 】。2. C语言的标识符只能由大小写字母,数字和下划线三种字

20、符组成,而且第一个字符必须为【字母或下划线】。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,则x+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 】。8.

21、 数学式子的C语言表达式为【exp(3)+sqrt(2*x+3*y) 】。9. 数学式子的C语言表达式为【 abs(x-y)+(x+y)/(3*x) 】 。10. 数学式子的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

22、+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.7 】。18. 定义:int m=5,n=3;则表达式m/=n+4的值是【 0

23、】,表达式m=(m=1,n=2,n-m)的值是【 1 】,表达式m+=m-=(m=1)*(n=2)的值是【-2 】。19. 表达式5%(-3)的值是【 2 】,表达式-5%(-3)的值是【 -2 】。20. 若a是int变量,则执行表达式a=25/3%3后,a的值是【 2 】。三判断题1. 在C程序中对用到的所有数据都必须指定其数据类型。【 】2. 一个变量在内存中占据一定的存储单元。【 】3. 一个实型变量的值肯定是精确的。【 × 】4. 对几个变量在定义时赋初值可以写成:int a=b=c=3;【 × 】5. 自增运算符(+)或自减运算符(-)只能用于变量,不能用于常量

24、或表达式。【 】6. 在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()”。【 】7. %运算符要求运算数必须是整数。【 】8. 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。【× 】9. 在C程序中,逗号运算符的优先级最低。【 】10. C语言不允许混合类型数据间进行运算。【× 】 四简答题1. 为什么C语言的字符型可以进行数值运算? 答:C语言将字符(character)以其ASCII码的值进行存储和处理,因此可以参加数值运算。2. 简述a和“a”的区别。答:字符常量由单引号括起来,字符串常量由双引号括起来。例如:'a

25、9;和 "a"是不同的。'a'是字符常量,占一个字节;"a"是字符串常量,占2个字节。3. 程序:int m=12; m=15;为什么整型变量m的值在运算后不是当初的12,而是15? 答:int m=12;是在定义变量时进行初始化,m=15;是程序运行时对变量重新赋值,原来的值也就随之改变。4. 将下面各数用八进制和十六进制数表示:十进制 32 1 32768 2002 128 0八进制 040 0177777 0100000 03722 0177600 00十六进制0x20 0xffff 0x8000 0x7d2 0xff80 0x05

26、. 华氏温度F与摄氏温度c的转换公式为:c=(F-32)*5/9 ,则float c,F; c=5/9*(F-32)是其对应的C语言表达式吗?如果不是,为什么?答:对五程序阅读题1. 写出以下程序运行的结果。void main( ) char c1='a',c2='b',c3='c',c4='101',c5='102' printf("a%c b%ctc%ctabcn",c1,c2,c3); printf("tb%c %c",c4,c5);2. 写出以下程序运行的结果。voi

27、d 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(“%8lx”,a);以下正确的叙述是【D 】。A)整型变量的输出格式符只有d一种B)x是格式符的一种,它可以适用于任

28、何一种类型的数据C)x是格式符的一种,其变量的值按十六进制输出,但8lx是错误的D)8lx不是错误的格式符,其中数字8规定了输出字段的宽度3. 以下程序的输出结果是 【 】D。main() int a=3; printf("%dn",(a+=a-=a*a) ); A) -6 B)12 C) 0 D) -12 4. putchar函数可以向终端输出一个【 】D。A)整型变量表达式值 B)实型变量值C)字符串 D)字符或字符型变量值5. 若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是【 】D。A)scanf(“%d%lx,%le”,&am

29、p;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. 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是【 】A。int a1,a2; char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);A)10A20B<CR> B

30、)10 A 20 B<CR>C)10 A20B<CR> D)10A20 B<CR>7. 已有定义int x; float y;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入数据12345 678<回车>,则x的值为【 】B。A)12345 B)123C)45D)3458. 已有定义int x; float y;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入数据12345 678<回车>,则y的值为【 】B。A)无定值 B)45.000000 C)678

31、.000000 D)123.0000009. 阅读以下程序,当输入数据的形式为25,13,10<CR>正确的输出结果为【D 】。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=35C)x+z=35 D)不确定值10. 逻辑运算符两侧运算对象的数据类型【 】D。A)只能是0或1 B)只能是0或非0正数C)只能是整型或字符型数据 D)可以是任何类型的数据11. 以下关于运算符优先顺序的描述中正确的是【 】C。A)关系运算符<算术运算符

32、<赋值运算符<逻辑与运算符B)逻辑与运算符<关系运算符<算术运算符<赋值运算符C)赋值运算符<逻辑与运算符<关系运算符<算术运算符D)算术运算符<关系运算符<赋值运算符<逻辑与运算符12. 下列运算符中优先级最高的是【 】B。A)<B)+C)&&D)!=13. 能正确表示“当x的取值在1,10和200,210范围内为真,否则为假”的表达式是【 】C。A) (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B) (x&

33、gt;=1)|(x<=10)|(x>=200)|(x<=210)C) (x>=1)&&(x<=10)|(x>=200)&&(x<=210)D) (x>=1)|(x<=10)&&(x>=200)|(x<=210)14. 能正确表示逻辑关系:“a10或a0”的C语言表达式是【 】D。A)a>=10 or a<=0 B)a>=0|a<=10C)a>=10 &&a<=0 D)a>=10a<=015. 设int x=1,y=1;

34、表达式(!x|y-)的值是【 】BA)0 B)1 C)2 D)-116. 有如下程序段int a=14,b=15,x;char c=A;x=(a&&b)&&(c<B);执行该程序段后,x的值为【 】DA)ture B)false C)0 D)1 xa b c17. 表示图中坐标轴上阴影部分的正确表达式是【 】C。A) (x<=a)&&(x>=b)&&(x<=c)B) (x<=a)|(b<=x<=c)C) (x<=a)|(x>=b)&&(x<=c)D) (x

35、<=a)&&(b<=x<=c)18. 判断char型变量ch是否为大写字母的正确表达式是【 】C。A)A<=ch<=ZB)(ch>=A)&(ch<=Z)C)(ch>=A)&&(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)x|y+z&&y-z D)!(x<y)&&!z|1)20. 已知x=43,ch=

36、A,y=0;则表达式(x>=y&&ch<B&&!y)的值是【 】C。A)0 B)语法错 C)1 D)“假”21. 若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是【 】C。A)A%2=1 B)!(A%2=0) C)!(A%2) D)A%222. 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为【 】B。A)1 B)2 C)3 D)423. 判断char型变量c1是否为小写字母的正确表达式是【 】D。A)a

37、<=c1<=zB)(c1>=a)&&(c1<=z)C)(a>=c1)|(z<=c1)D)(c1>=a)&&(c1<=z)24. 已知x,y,z均为整型变量,且值均为1,则执行语句+x|+y&&+z;后,表达式x+y的值为【 】CA)1 B)2 C)3 D)425. 以下程序的运行结果是【 】B。#include “stdio.h”main() int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);A)6,1 B)2,1 C)

38、6,0 D)2,026. 以下不正确的if语句形式是【 】C。A)if(x>y&&x!=y);B)if(x=y) x+=y;C)if(x!=y) scanf(“%d”,&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

39、(x>y)z=x; x=y; y=z;执行后x,y,z的值是【 】。BA)x=10,y=20,z=30 B)x=20,y=30,z=30C)x=20,y=30,z=10 D)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=

40、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=1.0/x; else y=1.0; printf("%fn",y);该程序的输出结果是【 】。CA)0.000000 B)0.250000 C)0.500000 D)1.00000031. 若int k=8;则执行下列程序后,变量k的正确结果是【 】D。main()int k=8; switch(k) case 9:k+=1; case 10:k+=1;

41、case 11:k+=1;break; default:k+=1; printf("%dn",k);A)12 B)11 C)10 D)9 32.  对表达式for(表达式1; 表达式3)可理解为 【 】。BA)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3) 33.  下面有关for循环的正确描述是【 】D。 A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 C)在for循

42、环中,不能用break语句跳出循环体 D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 34. 设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是【 】C。A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次35. 设有以下程序段int x=0,s=0;while(!x!=0) s+=+x;printf(“%d”,s);则【 】B。A)运行程序段后输出0 B)运行程序段后输出1C)程序段中的控制表达式是非法的 D)程序段执行无限次36. 语句while(!E);中的表达式!E等价于【 】A。

43、A)E=0B)E!=1C)E!=0D)E=137. 下面程序段的运行结果是【 】A。a=1; 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,0B)2,1,0C)1,2,1D)2,1,138. 下面程序段的运行结果是【 】D。x=y=0;while(x<15) y+,x+=+y;printf(“%d,%d”,y,x);A)20,7B)6,12C)20,8D)8,2039. 已知 int t=0; while(t=1) . 则以下叙述正确的是 【 】。 BA)循环控

44、制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 40. 下面程序段的运行结果是【 】C。int n=0;while(n+<=2); printf(“%d”,n);A)2B)3C)4D)有语法错41. 设有程序段t=0;while(printf(“*”)t+; if(t<3) break;则下面描述正确的是【 】D。A)其中循环控制表达式与0等价 B)其中循环控制表达式与0等价C)其中循环控制表达式是不合法的 D)以上说法都不对42. C语言中while和do-while循环的主要区别是【 】A。A)do-while的循环体至少无条件执行一

45、次B)while的循环控制条件比do-while的循环控制条件严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句43. 以下描述中正确的是【 】C。A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略while44. 若i为整型变量,则以下循环执行次数是【 】B。for(i=2;i=0;) prin

46、tf(“%d”,i-);A)无限次B)0次 C)1次 D)2次45. 以下for循环的执行次数是【 】C。for(x=0,y=0;(y=123)&&(x<4);x+)A)是无限循环B)循环次数不定C)执行4次D)执行3次46. 以下不是无限循环的语句为【 】A。A)for(y=0,x=1;x>+y;x=i+) i=x;B)for(;x+=i);C)while(1) x+; D)for(i=10;i-) sum+=i;47. 下面程序段的运行结果是【 】C。for(y=1;y<10;) y=(x=3*y,x+1),x-1);printf(“x=%d,y=%d”,

47、x,y);A)x=27,y=27B)x=12,y=13C)x=15,y=14D)x=y=2748. 下面程序段的运行结果是【 】D。for(x=3;x<6;x+) printf(x%2)?(“*%d”):(“#%dn”),x);A)*3 B)#3 C)#3 D)*3#4 #4 *4 *4#5 *5 *5 #549. 下列程序段不是死循环的是【 】D。A)int i=100;while(1)i=i%100+1; if(i>100) break;B) for(;);C) int k=0;do +k; while(k>=0);D) int s=36;while(s) -s;50.

48、执行语句for(i=1;i+<4;);后变量i的值是【 】C。A)3B)4C)5D)不定51. 以下正确的描述是【 】。BA)continue语句的作用是结束整个循环的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)从多层循环嵌套中退出时,只能使用goto语句52. 下面程序段【 】D。for(t=1;t<=100;t+) scanf(“%d”,&x); if(x<0) continue; printf(“%3d”,t);A)当x<0时整个循环结束 B)x>=0时什么也不输出

49、C)printf函数永远也不执行 D)最多允许输出100个非负整数53. 下面程序段【 】C。x=3;do y=x-; if(!y) printf(“x”); continue; printf(“#”);while(1<=x<=2);A)将输出#B)将输出#*C)是死循环D)含有不合法的控制表达式二填空题1. 设y是int型,请写出y为奇数的关系表达式 【 y%2 】 。2. 设int a=5,b=6,表达式(+a=b-)?+a:-b的值是【 7 】 。3. 将以下程序写成三目运算表达式是【a=(a>b)?a:b; 】 。if(a>b)max=a;else max=b;

50、4. 以下程序输出的结果是【 0 】。main() int a=5,b=4,c=3,d;d=(a>b>c);printf("%dn",d);5. 若从键盘输入58,则以下程序输出的结果是 【585858 】 。main()int a;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);6. 阅读下面语句,则程序的执行结果是 【 1,0 】 。#

51、include "stdio.h"main() int a=-1,b=1,k;if(+a<0)&&!(b-<=0)printf("%d,%dn",a,b);else printf("%d,%dn",b,a);7. 以下程序的输出结果为【 】。main() short i; i=-4; printf(“ni:dec=%d,oct=%o,hex=%x,unsigned=%un”,i,i,i,i);8. 以下程序的输出结果为【*3.140000,3.142* 】。main() printf(“*%f,%4.3f*

52、n”,3.14,3.1415);9. 以下程序的输出结果为【c:dec=120,oct=170,hex=78,ASCII=x 】。main() char c=x; printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%cn”,c,c,c,c); 10. 以下程序的输出结果为【 】。x=1 y=2 *sum*=3 10 Squared is:100main() int x=1,y=2; printf(“x=%d y=%d *sum*=%dn”,x,y,x+y); printf(“10 Squared is:%dn”,10*10);11. 以下程序段的输出结果为【 】。int

53、 x=7281;printf(“(1) x=%3d,x=%6d,x=%6o,x=%6x,x=%6un”,x,x,x,x,x);printf(“(2) x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%06dn”,x,x,x,x,x);printf(“(3) x=%+3d,x=%+6d,x=%+08dn”,x,x,x);printf(“(4) x=%o,x=%#on”,x,x);printf(“(5) x=%x,x=%#xn”,x,x);12. 假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。a+=【b 】; b=a-【 b 】; a-=【b

54、】;13. 假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即:把b中的值给a,把c中的值给b,把a中的值的给c。例如:交换前,a=10,b=20,c=30;交换后,a=20,b=30,c=10。请填空。【 t=a; 】; a=b; b=c; 【c=t; 】;14. 有一输入函数scanf(“%d”,k);其不能使float类型变量k得到正确数值的原因是【类型错 】和【 地址错 】。15. 已有定义int a; float b,x; char c1,c2;为使a=3,b=6.5,x=12.6,c1=a,c2=A,正确的scanf函数调用语句是【scanf("%d%f%f%c%c",&

温馨提示

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

评论

0/150

提交评论