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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C习题与答案.docx

1、C 习题与答案第一章习题一、 选择填空12345678910CBDADADDAC1. 下列各种高级语言中,( )是面向对象的程序设计语言。A.BASIC; B.PASCAL; C.C+ D.Ada2. 下列各种高级语言中,( )是最早提出了对象的概念。A.Algol 60; B.Simula 67; C.Smalltalk; D.C+3. 下述面向对象抽象的原理中,( )是不对的。A. 数据抽象; B. 行为共享; C.进化; D. 兼容;4. ( )不是面向对象系统所包含的要数。A. 重载; B. 对象; C. 类; D. 继承;5. 关于C+与C语言的关系的描述中,( )是错误的。A. C

2、语言是C+的一个子集; B. C语言与C+是兼容的; C. C+对C语言进行了一些改进; D. C+和C语言都是面向对象的;6. 下面关于对象概念的描述中,( )是错误的。A.对象就是C语言中的结构变量; B.对象代表着正在创建的系统中的一个实体; C. 对象是一个状态和操作(或方法)的封装体; D.对象之间的信息传递是通过消息进行的;7. 下面关于类概念的描述中,( )是错误的。A.类是抽象数据类型的实现; B.类是具有共同行为的若干对象的统一描述体;C.类是创建对象的样板; D.类就是C语言中的结构类型;8. C+对C语言作了很多改进,下列描述中( )使得C语言发生了质变,即从面向过程变成

3、为面向对象。A.增加了一些新的运算符; B.允许函数重载,并允许设置缺省参数; C.规定函数说明必须用原型; D.引进了类和对象的概念;9. 按照标识符的要求,( )符号不能组成标识符。A.连接符; B. 下划线; C.大小写字母; D.数字字符;10. 下列符号中,( )不可作为分隔符。A.,; B.:;C.?; D.;二、判断下列描述的正确性,对者划,错者划。1234567891011121 C+引进了引用的概念,对编程带来了很多方便。Y2 C+允许使用友元,但是友元会破坏封装性。Y3 C+中使用了新的注释符(/),C语言中注释符(/*/)不能在C+中使用。X4 C+中为了减轻使用者的负担

4、,与C语言相比较C+中减少了一些运算符。X5 C+程序中,每条语句结束时都加一个分号(;)。Y6 C+中标识符内的大小写字母是没有区别的。X7 C+中不允许使用宏定义的方法定义符号常量,只能用关键字const来定义符号常量。X8 在编写C+程序时,一定要注意采用人们习惯使用的书写格式,否则将会降低其可读性。Y9 C+是一种以编译方式实现的高级语言。Y10 在C+编译过程中,包含预处理过程、编译过程和连接过程,并且这三个过程的顺序是不能改变的。Y11 预处理过程是一般编译过程之后连接过程之前进行的。X12 源程序在编译过程中可能会出现一些错误信息,但在连接过程中将不会出现错误信息。X三、分析下列

5、程序的输出结果1 BeiJjing ShangHai TianJing2 Input a,b:8 5a=8,b=5a-b=33 d=5:c=m1#includevoid main()coutBeiJing ;coutShangHain ;coutTianJingendl;2.#includevoid main()int a,b;coutab;couta=a,b=bendl;couta-b=a-bn;假定,输入如下两个数据:8 53#include void main()char c=m;int d=5;coutd=d:;coutc=cn;四、编译下列程序,改正所出现的各种错误信息,并分析输出结

6、果:1、 #includevoid main ( )coutThis is a string!;This is a string!2、 #includevoid main( ) int x;cinx;int p=x*x;coutp=”p”n;3、 #include void main ( )int i,j;i=5;j=0;int k=i+j;couti+j=kn;i+j=5五、通过对第四题中三个程序的所出现问题的修改,回答下列问题:1. 从对第四题1题的修改中,总结出编程时应注意哪三个问题?2. C+程序中所出现的变量是否都必须先说明才能引用?3. 使用cout和运算符; D. &17、下列各

7、运算符中,()不能作用于浮点数。A/; B.&; C.!; D.18、下列各运算符中,()优先级最高。A. +(双目);B. *(单目); C. b)+(int(b)%2); D. - -a+b22、下列表达式中,()是合法的。已知:double m=3.2; int n=3;A. m3; B. +a+b+; C.b+(a=3); D. ( a=3)-a+二、 判断下列描述是否正确,对者划,错者划。1、 任何字符常量与一个任意大小的整型数进行加减都是有意义的。2、 转义序列表示法只能表示字符不能表示数字。3、 在命名标识符中,大小写字母是不加区别的。4、 C+的程序中,对变量一定要先说明再使用

8、,说明只要在使用之前就可以。5、 C+中数组元素的下标是从0开始,数组元素是连续存储在内存单元中的。6、 数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。7、 枚举变量的取值受到该枚举变量所对应的枚举表中的枚举符的局限。8、 指针是用来存放某种变量的地址值的变量。这种变量的地址值也可以存放在某个变量中,存放某个指针的地址值的变量称为指向指针的指针,即二级指针。9、 引用是用来给某个变量以别名的变量。,对引用的操作,实质上就是对被引用的变量的操作。10、 运算符的优先级和结合性可以确定表达式的计算顺序。11、 在说明语句 中,的值和的值是相等的。12、 已知:表达式具有两用性

9、。13、 移位运算符在移位操作中,无论左移还是右移,所移出的空位一律补0;14、 某个变量的类型高是指该变量被存放在内存中的高地址处。15、 隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。16、 类型定义是用来定义一些C+中所没有的新的类型。三、 计算下列各表达式的值(下列各表达式是相互独立的,不考虑前面对后面的影响。)1、 已知:unsigned int x=015,y=0x2b;A.x|y; B.xy; C.x&y; D.x+y; E.x=4.2、 已知:inti(10),j(5);A.+i-j-; B.i=i*=j; C.i=3/2*(j=3-2); D.ij; E.i&j|

10、1; F.i+i&0xff.3、 已知:int a(5),b(3);计算下列表达式得值以及a和b的值。A.!a&b+; B.a|b+4&a*b; C.a=1,b=2,ab?+a:+b; D.+b,a=10,a+5;E.a+=b%=a+b; F.a!=b2=a+1.4、 已知:int d(5),*pd=&d,&rd=d;A.d+-rd; B.*pd*rd; C.+*pd-rd; D.+rd-d.5、 已知:1的ASCII码的值为49。A.3+21+1; B.2*9|31; C.5%-3*2/6-3; D.8= =35)|2=3+2-(0-7).四、 按下列要求编写程序1 从键盘上输入两个int型

11、数,比较其大小,并输出显示其中小的。2 从键盘上输入一个int型数,一个浮点型数比较其大小,并输出其中大的。3 输入一摄氏温度,编程输出华氏温度。已知:华氏温度转换为摄氏温度的计算公式如下:C=(F-32)*5/9其中,F表示华氏温度,C表示摄氏温度。4 编程实现输入公里数,输出显示其英里数。已知:1英里=1.60934公里(用符号常量)。5 输入一个int型数,将它的低4位(右4位)都置为1。第三章习题一、 选择填空1. 预处理命令在程序中都是以( )开头的。A. * ; B. # ; C . : ; D. / ;2. 文件包含命令中被包含的文件的扩转名( )。A.必须为.h; B.不能用.

12、h; C .必须是.c; D.不一定是.h;3. 下列条件编译命令中#if()#else#endifA.整常量表达式; B.任何标识符; C .任意表达式 ; D.被定义的宏名;4. 带参数的宏定义中,程序中引用宏定义的实参( )。A.只能是常量; B.只能是整型量; C .只能是整形表达式; D.可以是任意表达式;5. 下列( )是语句A. ;; B.a=17; C .x+y; D. cout”n”;6. 下列for循环的次数为( )。for(int i(0),x=0;!x&i=5;i+)A.5; B.6; C .1; D.无限;7. 下列while循环的次数是( )。while(int i

13、=0)i- -;A.0; B.1; C .5 ; D.无限;8. 下列do-while循环的循环次数为( )。已知:int i(5);docouti- - endl;i- - ;while(i!=0);A.0; B.1; C .5; D.无限;9. 下列for循环的循环体执行次数为( )。for(int i(0),j(10);i=j=10;i+,j- -) A.0; B.1; C .10; D.无限;10. 已知:int a,b;下列switch语句中,( )是正确的。A. switch(a);case a:a+;break;case b:b+;break; B. switch(a+b) ca

14、se 1:a+b;break;case 2:a-b|C. switch(a*a)case1,2:+a;case3,4:+b;D. switch(a/10+b)case 5:a/5;breakdefault:a+b;11. 下述关于循环体的描述中,( )是错误的。A. 循环体中可以出现break语句和continue语句;B. 循环体中还可以出现循环语句;C. 循环体中不能出现goto语句;D. 循环体中可以出现开关语句。12. 下述关于goto语句的描述中,( )是正确的。A. goto语句可在一个文件中随意转向;B. goto语句后面要跟上一个他所转向的语句;C. goto语句可以同时转向多

15、条语句;D. goto语句可以从一个循环体内转到循环体外。13. 下述关于break语句的描述中,( )是正确的。A. break语句可用于循环体内,它将退出该重循环;B. break语句可用于开关语句中,它将退出开关语句。C. break语句可用于if体内,它将退出if语句;D. break语句在一个循环体内可以出现多次。14. 下述关于开关语句的描述中,( )是正确的。A. 开关语句中default子句可以没有,也可以有一个;B. 开关语句中每个语句序列中必须有break语句;C. 开关语句中default子句只能放在最后;D. 开关语句中case子句后面的表达式可以是整形表达式。15.

16、下列关于条件语句的描述中,()是错误的。A. if语句中只有一个else子句;B. if语句中可以有多个else if子句;C. if语句中if体内不能是开关语句;D. if语句中的if体中可以是循环语句。二、 判断下列描述是否正确,对者划,错者划。1 预处理命令是在进行编译时首先执行的,然后再进行正常编译。2 宏定义命令是以分号结束的。3 带参数的宏定义只能有1至2个参数。4 文件包含命令所包含的文件是不受限制的。5 条件编译命令只在编译时才有作用。6 预处理命令的主要作用是提高效率的。7 复合语句就是分程序。8 条件语句不能作为多路分支语句。9 开关语句不可以嵌套,在开关语句的语句序列中不

17、能再有开关语句10开关语句中的default关键字,只能放在该语句的末尾,不能放在开头或中间。11Switch语句中必须有break语句否则无法退出switch语句。12While循环语句的循环体至少执行一次。13Do-while循环可以写成while循环的格式。14For循环是只有可以确定的循环次数时才可使用,否则不能用for循环。15只有for循环的循环体可以是空语句,其他种循环的循环体不能用空语句。16当循环体为空语句时,将说明该循环不作任何工作,只起延时作用。17循环是可以嵌套的,一个循环体内可以包含另一种循环语句。18在多重循环中,内重循环的循环变量应用的次数比外重的多。19Brea

18、k语句可以出现在各种循环体中。20continue语句只能出现在循环体中。三、 分析下列程序的输出结果。1.#include#define M 1.5#define A(a) M*avoid main()int x(5),y(6);coutA(x+y)endl;2. #include#define MAX(a,b) (a)(b)?(a):(b)void main()int m(1),n(2),p(0),q;q=MAX(n,n+p)*10;coutqendl;3.#include#include”f1.cpp”void main()int a(5),b;b=f1(a);coutbendl;f1.

19、cpp文件内容如下:#define M(m) m*mf1(int x)int a(3);return M(x+a);4. #includevoid main()int i(0);while(+i)if(i= =10) break;if(i%3!=1) continue;coutiendl;5.#includevoid main()int i(1);doi+;cout+iendl;if(i= =7) break;while(i= =3);cout”Ok!n”;6.#includevoid main()int i(1),j(2),k(3),a(10);if(!i)a- -;else if (j)

20、if(k) a=5;elsea=6;a+;coutaendl;if(ij) if(i!=3) if(!k) a=1; else if(k)a=5;a+=2;coutaendl;7.#includevoid main()int i,j,a88;* * a=1;for(i=1;i8;i+)* *(a+i)=1;*(*(a+i)+i)=1;for(j=1;ji;j+) *(*(a+i)+j)= *(*(a+i-1)+j-1)+ *(*(a+i-1)+j);for(i=0;i8;i+)for(j=0;j=i;j+) cout*(*(a+i)+j);coutendl;8.#includevoid mai

21、n()int x(5);doswitch(x%2)case 1:x- -; break;case 0:x+; break;x- -;coutx0);9.#includevoid main()int a(5),b(6),i(0),j(0);switch(a)case 5:switch(b)case 5:i+;break;case 6:j+;break;default: i+;j+;case 6: i+; j+; break;default: i+;j+;couti”,“jendl;10.#includechar input=SSSWILTECH1111W1WALLMP1;void main()int i;char c;for(i=2;(c=inputi)!=0;i+)switch(c)case a:couti; contin

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

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