ImageVerifierCode 换一换
格式:DOCX , 页数:64 ,大小:57.18KB ,
资源ID:9331511      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9331511.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(二级C语言教程课后习题详解.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

二级C语言教程课后习题详解.docx

1、二级C语言教程课后习题详解新视野教育二级C语言教程课后习题详解(以修订版教材为准)第一章 C语言的基础知识第二节 熟悉Visual C+1. C语言源程序名的后缀是 BA).exe B).c C).obj D).cp*C语言源程序的拓展名为.C 2. 下列叙述中错误的是 DA)计算机不能直接执行用C语言编写的源程序B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行*后缀为.obj的目标文件不能直接运行3. 用C语言编写的代码程序 BA)可立即执行 B)是

2、一个源程序C)经过编译即可执行 D)经过编译解释才能执行第三节 标识符1. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是 BA)大写字母 B)连接符 C)数字字符 D)下划线*标识符的命名中不能出现连接符2. 以下选项中不合法的标识符是 CA)print B)FOR C)&a D)_00*标识符中不能出现“&”3. 以下叙述中错误的是 AA)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识*用户自定义标识符不允许使用关键字4. 可在C程序中用作用户标识符的一组标

3、识符是 AA)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl* B答案出现了连接符、C答案出现小数点、D答案出现关键字5. 以下不合法的用户标识符是 CA)j2_KEY B)Double C)4d D)_8_ *开头第一个字符不能为数字6. 以下不能定义为用户标识符的是 DA)Main B)_0 C)_int D)sizeof*sizeof为关键字7. 下列选项中,不能用作标识符的是 DA)_1234_ B)_1_2 C)int_2_ D)2_int_*开头第一个字符不能为数字8. 以下4组用户定义标识符中,全部合法的一组是 AA)_main B)I

4、f C)txt D)intenclude -max REAL k_2sin turbo 3COM _001* B答案出现连接符、C答案出现数字开头、D答案出现关键字第五节 整数和实数1以下选项中正确的整型常量是 CA)10110B B)0386 C)0Xffa D)x2a22以下关于long、int和short类型数据占用内存大小的叙述中正确的是 DA)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定3以下选项中不属于C语言的类型的是 DA)signed short int B)unsigned long intC)unsigned int D

5、)long short4以下选项中合法的实型常数是CA)5E2.0 B)E3 C).2E0 D)1.3E5以下选项中,不能作为合法常量的是 BA)1.234e04 B)1.234e0.4 C)1.234e4 D)1.234e06以下选项中可作为C语言合法常量的是 AA)80. B)080 C)8e1.0 D)80.0e7以下符合C语言语法的实型常量是 CA)1.2E0.5 B)3.14.15 9E C).5E3 D)E158以下不合法的数值常量是 CA)011 B)lel C)8.0E0.5 D)0xabcd 9以下选项中,合法的一组C语言数值常量是 BA)028 B)12. C).177 D

6、)0x8A5e-3 OXa23 4c1.5 10,0000xf 4.5e0 Oabc 3.e510下列定义变量的语句错误的是 DA)int _int ; B)double int_; C)long For; D)float US$;第六节 算术表达式与赋值表达式习题1表达式3.65/2+1.2+5%2的值是 DA)4.3 B)4.8 C)3.3 D)3.8*3.6-2+1.2+1=3.82设有定义:float x=123.4567;,则执行以下语句后输出的结果是 _。123.460000printf(%fn,(int)(x*100+0.5)/100.0);*(int)12346.17/100.

7、0=12346/100.0=123.46 格式控制为“%f”3设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 h 计算结果不相符的是 BA)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)*因为1/2=0,故B答案结果不相符第七节 自加自减运算符、逗号表达式习题1设变量已正确定义为整型,则表达式n=i=2,+i,i+的值为_。3*表达式3的值为整个表达式的值2设有定义:int k=0;,以下选项的4个表达式中与其他3个表达式的值不相同的是 AA)k+ B)k+=1 C)+k D)k+1*执行k+,表达式的值为k自加

8、之前的值03有以下程序 Bmain() char a1=M, a2=m; printf(%cn, (a1, a2) ); 以下叙述中正确的是A)程序输出大写字母M B)程序输出小写字母mC)格式说明符不足,编译出错 D)程序运行时产生出错信息*逗号表达式的值为最后一个表达式的值4有以下程序:Bmain( ) int a=0,b=0;a =10; /*给a赋值b=20; 给b赋值 */printf(a+b=%dn,a+b); /*输出计算结果*/程序运行后的结果是A)a+b=30 B)a+b=10 C)30 D)程序出错*本题要注意的是注释部分应该包括: /*给a赋值 b=20; 给b赋值 */

9、,也就是说“b=20;”也被系统作为注释处理第八节 字 符1以下选项中不属于字符常量的是( )。BA)C B)C C)0 D)0722已知字母A的ASC代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是( )。BA)kk=A&kk=Akk=a&(kk+32)=65 & kk913已知字符A的ASC代码值是65,字符变量c1的值是A,c2的值是D。执行语句printf(%d,%d,c1,c2-2);后,输出结果是( )。CA)A,B B)A,68 C)65,66 D)65,684、以下不合法的字符型常量是 BA)x13 B)018 C)65 D)n5已知大写字

10、母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是( )。DA)c=cZ + z B)c=c+32C)c=cA + a D)c=A+ ca第九节 位运算1变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是 AA)ab B)a|b C) a&b D)a42有以下程序 #include main() int a=1,b=2,c=3,x; x=(ab)&c; printf(%dn,x);程序的运行结果是 DA)0 B)1 C)2 D)3

11、3有以下程序main()unsigned char a=2,b=4,c=5,d; d=a|b; d&=c; printf(%dn,d); 程序运行后的输出结果是 BA)3 B)4 C)5 D)64若变量已正确定义,则以下语句的输出结果是( )。 Bs=32; s=32; printf(%d,s);A)1 B)0 C)1 D)32*两个相同的数进行按位异或,结果为05设有以下语句 int a=1,b=2,c; c=a(b2); 执行后,c的值为 DA)6 B) 7 C) 8 D) 9 第二章 数据输出与输入第二节 数据输出1有以下程序段 char ch; int k; ch=a; k=12; p

12、rintf(%c,%d,ch,ch,k);printf(k=%dn,k); 已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是 DA)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=122、有以下程序段:main() int x,y,z; x=y=1; z=x+,y+,+y; printf(“%d,%d,%dn”,x,y,z);程序运行后的输出结果是 CA) 2,3,3 B) 2,3,2 C) 2,3,1 D) 2,2,1 *分析过程见教材25页例33有以下程序,其中%u表示按无符

13、号整数输出main()unsigned short x=0xFFFF;/* x的初值为十六进制数 */printf(%un,x);程序运行后的输出结果是 BA)-1 B)65535 C)32767 D)0XFFFF4以下叙述中不正确的是 AA)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在C语言中,整数可以以十进制、八进制或十六进制的形式输出D)使用putchar函数可以不要输出项5设有以下程序main()int c=35; printf(%d, c&c);程序运行后的输出结果是 CA)0 B)70 C)35 D)53*两个相同的数

14、进行按位与时,结果等于本身6以下程序运行后的输出结果是_。88 main() int x=0210; printf(%Xn,x); *将八进制数转为十六进制数输出第三节 数据输入1以下程序运行时若从键盘输入:10 20 30。输出结果是_。A#include main() int i=0,j=0,k=0;scanf(%d%*d%d,&i,&j,&k);printf(%d,%d,%d,i,j,k); A)10,30,0 B)10,20,30 C)0,0,0 D)程序出错*注意%*d为跳过输入的数据2已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33。输出结果是 B#inclu

15、de stdio.hmain() char a,b; a=getchar(); scanf(%d,&b); a=a-A+0; b=b*2; printf(%c %c,a,b);A)程序段有语法错 B)1 B C)1 65 D)1 b* a=a-A+0; 即a=66-65+48 b=b*2; 即b=33*2 得出结果后找到对应的字符输出3有以下程序 main() int m=0256,n=256; printf(%o %on,m,n); 程序运行后的输出结果是()。A)0256 0400 B)0256 256 C)256 400 D)400 400 * m为八进制数 n为十进制数 %O指输出八进

16、制数 输出是不带前导4有以下程序 main() int a=666, b=888; printf(%dn,a,b);程序运行后的输出结果是()。BA)错误信息 B)666 C)888 D)666,888 * %d只与输出列表中的变量a对应,注意区别printf(“%dn”,(a,b);5设有以下程序main( ) int x=102,y=012; printf(%2d,%dn,x,y); 执行后输出结果是CA)10,01 B)02,12 C)102,10 D)02,10*%d为输出十进制整数,所以要将八进制转为十进制6执行以下程序时输入1234567,则输出结果是_。12 34#include

17、 main() int a=1,b;scanf(%2d%2d,&a,&b);printf(%d %dn,a,b);第三章 选择结构第一节 关系运算与逻辑运算1已知字母A的ASC代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是 BA) kk=A&kk=Akk=a&(kk+32)=z D) isalpha(kk)&(kk=2&c=2&c=2&c=k B)-k+ C)k%int(f) D)k=f=m*强制类型转换的格式必须为:(类型名)表达式6设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是AA)(!a=1)&(!b=0) B)(!a=1

18、)|(!b=0) C)a & b D)a|(b+b)&(c-a)第二节 if语句1若变量已正确定义,有以下程序段 int a=3,b=5,c=7; if(ab) a=b; c=a; if(c!=a) c=b; printf(%d,%d,%dn,a,b,c); 其输出结果是 BA)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7*if表达式后的语句只能是一个语句或者一个复合语句2当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是 DA)k%2 B)k%2=1 C)(k%2)!=0 D)!k%2=1*前三个是对k%2后的结果进行判断,而D答案是

19、对k进行逻辑非后再除二取余3下列条件语句中,功能与其他语句不同的是 DA) if(a) printf(%dn,x); else printf(%dn,y); B) if(a=0) printf(%dn,y); else printf(%dn,x);C) if (a!=0) printf(%dn,x); else printf(%dn,y);D) if(a=0) printf(%dn,x); else printf(%dn,y); *前三个都是当a不等于0时输出x,a等于0时输出y,D答案相反4设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是 CA)if(x+) ; B

20、)if(xy&y!=0); C)if(xy)x- - D)if(ybc)printf(%dn,d); else if(c-1=d)=1)printf(%dn,d+1); elseprintf(%dn,d+2)执行后输出结果是 DA)2 B)3 C)4 D)编译时有错,无结果* 无语句结束标志“;”第四节 条件表达式、switch语句、goto语句1以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是 AA)if(ab) &(bc) ) k=1; B)if(ab) |(bc) ) k=1; else k=0; else k=0;C)if(ab) k=1; else if(bc) k=1

21、; else k=0;2下列叙述中正确的是 DA)break语句只能用于switchB)在switch语句中必须使用defaultC)break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句*break还能用于循环体中3有以下程序段 int k=0,a=1,b=2,c=3;k=ac?c:k;执行该程序段后,k 的值是 BA)3 B)2 C)1 D)04有以下程序#include main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b

22、+; break; case 2: a+; b+; break; case 3: a+; b+; printf(a=%d,b=%dn,a,b); 程序的运行结果是 DA)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1* 考点:switch后有无break5以下程序的输出结果是 Cmain( ) int a=5,b=4,c=6,d;printf(%dn,d=ab?(ac?a:c):(b);A)5 B) 4 C) 6 D) 不确定第四章 循环结构第一节 while语句习题1有以下程序main() int y=10; while(y-); printf(y=%dn,y);

23、程序执行后的输出结果是 BA) y=0 B)y=-1 C)y=1 D)while构成无限循环* 此题考点为循环体语句为空语句,当y表达式的值为0时结束循环,故y的值为-12有以下程序main() int k=5;while(-k) printf(%d,k-=3); printf(n);执行后的输出结果是 AA)1 B)2 C)4 D)死循环* k=5时,执行-k后, k=4,表达式的值为4,为真,执行输出语句k-=3,k=1,输出1再次执行-k表达式,k=0,表达式的值为0,结束循环第二节 do-while语句1若变量已正确定义,有以下程序段 i=0;do printf(%d,i);while

24、(i+);printf(%dn,i)其输出结果是 BA)0,0 B)0,1 C)1,1 D)程序进入无限循环* 执行第一个输出语句时,输出i的值为0;执行while语句,循环体语句为空,i+表达式的值为0是i的值为1,执行最后一个输出语句时输出i的值为12有以下程序段 int n,t=1,s=0; scanf(%d,&n); do s=s+t; t=t-2; while (t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是 DA)任意正奇数 B)任意负偶数 C)任意正偶数 D)任意负奇数3以下程序的功能是:将输入的正整数按逆序输出。例如,若输入135,则输出531,请填空。n/=10

25、 #include main() int n,s; printf(Enter a number:); scanf(%d,&n); printf(Output: ); do s=n%10; printf(%d,s); _; while(n!=0); printf(n);*答案:n=n/10分析:假如输入的值为135,那么n=135(1) n=135,do:s=n%10,那么s的值为5,输出s的值为5。接着我们要输出3才能将n逆序输出。在学习%和/的时候总结过:135/10=13,135%10=5,因此我们试着将后面的空填上n=n/10,那么n的值为13,判断(n!=0)为真。(2) n=13,do:s=n%10,那么s的值为3,输出s的值为3。执行n=n/10后n的值为1,判断(n

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1