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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

完整版c++复习题及答案.docx

1、完整版c+复习题及答案一、选择题1.在每个 C+程序中都必须包含有这样一个函数,该函数的函数名为 A 。A.main B. MAIN C. name D. function2.若 a,b 均为 int 型变量,为了将 10 赋给 a,将 20 赋给 b,则对应以下 cin 语句的正确输入方式为 B 。(代表回车换行,代表空格)。cin a b;A1020 B10_20 C10,20 D20_103.在以下关于 C+语言的注释的叙述中,不正确的是 C 。AC+程序中,注释可用/*、*/形式表示,也可用/形式表示BC+编译器在编译一个程序时,将跳过注释,不对其进行处理CC+编译器在编译一个程序时,

2、可发现注释中的单词拼写错误D程序中注释的多少不会影响所生成的可执行文件的长度4.以下叙述不正确的是 C 。A.在 C+程序中,严格区分大小写字母B.一个 C+源程序有且仅有一个 main 函数C.在 C+程序中,注释只能位于一条语句的后面D.一个 C+程序总是从 main 函数开始执行5.C+语言对 C 语言做了很多改进,C+语言相对于 C 语言的最根本的变化是 D A增加了一些新的运算符B允许函数重载,并允许设置缺省参数C规定函数说明符必须用原型 D引进了类和对象的概念6.C+是 C A.面向对象的程序设计语言B.结构化程序设计语言C.既是面向对象的程序设计语言又是结构化程序设计语言D.非结

3、构化程序设计语言7.下列合法的标识符为 D A.abde+ B. #KDJF C. 67KDJ D. DK3_8.关于字符串和字符的关系正确的是 C A.“A”与A是相同的B.字符串是常量,字符是变量C.“A”与A是不同的D.“A ”与“A”是相同的9.下面关于语句的说法正确的是 B if (xy)z=x; s=z*z; elsez=y;s=1/(z*z);if (xy) z=x; s=z*z; elsez=y;s=1/(z*z);A.下面这两段程序的执行效果是一致的B.空语句是只有一个分号的语句,它其实什么也不干C.语句的构成不一定需要分号D.语句的书写对程序的运行不起作用,因此可以随便写都

4、可以10.以下各标识符中,合法的用户标识符组为 D 。A.PAd,P#d,b-b,abc,_0123,ssipedB.cin,a10,CPP,float,del_word,signedC.void,max,hiy,list,*jerD.a,temp,_isw,INT,keep,wind11.在 VC+中,以下语句的输出为 D 。short int k= -1;cout k , (unsigned short) k endl;A-1,-1 B-1,32767 C-1,32768 D-1,6553512.若给出以下程序,其输出为 B 。#include using namespace std; i

5、nt main ( ) int a=4,b=7;cout (a=a+1,b+a,b+1) 0?sin(x):-sin(x) Bsqrt(fabs(sinx) Csqrt(sqrt(sinx*sinx) Dfabs(sqrt(sin(x)15.下列 A 是 C+语言的有效标识符?A._No1 BNo.1 C12345 Dint16.C+语言中,表示一条语句结束的标号是 B A# B; C/ D17.每个 C+程序中都必须有且仅有一个 C A.类 B预处理命令 C主函数 D语句18.下列数据类型不是 C+语言基本数据类型的是 D 。A字符型 B整型 C实型 D数组19.下列字符列中,可作为 C+语

6、言程序自定义标识符是 B 。Aswitch Bfile Cbreak Ddo20.运算符 +、=、=、% 中,优先级最低的运算符是 C 。A + B= C= D%21.下列字符列中,可以作为“字符串常量”的是 B 。A.ABC Bxyz Cuvw D a22.设变量 m,n,a,b,c,d 均为 0,执行(m = a= =b)|(n=c= =d)后,m,n 的值是D 。A0,0 B 0,1 C 1,0 D 1,123.字符串vmx43np102q的长度是 A 。A 8 B 10 C 17 D 1624.在 C+语言中,自定义的标识符 D 。A能使用关键字并且不区分大小写 B不能使用关键字并且不

7、区分大小写 C能使用关键字并且区分大小写 D不能使用关键字并且区分大小写25.设有代码“int a = 5;”,则执行了语句“a + = a - = a*a;”后,变量 a 的值是 C。A3 B 0 C -40 D 1226.设 a 为 5,执行下列代码后,b 的值不为 2 的是 C 。Ab = a/2 Bb = 6-(-a)Cb = a%2 Db = a 3 ? 3: 227.设 x 和 y 均为 bool 量,则 x & y 为真的条件是 A 。A.它们均为真 B. 其中一个为真C. 它们均为假 D. 其中一个为假28.若给定条件表达式(m)?(a+): (a-),则其中表达式 m C 。

8、A.和(m= =0)等价 B. 和(m= =1)等价C. 和(m!=0)等价 D. 和(m!=1)等价29.在 C+语言的 if 语句中,用作判断的表达式为 D 。A.关系表达式 B. 逻辑表达式C. 算术表达式 D. 任意表达式30.设 i 和 k 都是 int 类型,则以下 for 循环语句 B 。for ( i=0, k= -1; k=1; i+, k+ ) cout *n;A.判断循环结束的条件不合法 B. 是无限循环C. 循环体一次也不执行 D. 循环体只执行一次31.若有以下语句,则输出结果为 A 。int a=2,b=1;cout b?a 大于 b:a 小于 b endl;A.a

9、 大于 b B. a 小于 b C. 1 D. 输出语句有错32.int k=10; while(k=0) k=k-1;则下面描述正确的是 C 。A.while 循环执行 10 次 B. 循环是无限循环C. 循环体语句一次也不执行 D. 循环体语句执行一次33. int a=1,b=2,c=2,t; while(ab) t=a;a=b;b=t;c-; couta”,”b”,”c;运行结果为 D 。A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,134.int x=-1; dox=x*x;while(!x);下列说法正确的是 C 。A.是死循环 B. 循环执行两次C. 循环执

10、行一次 D. 有语法错误35.以下能正确计算 1*2*3*10 的程序段是 C 。A. do i=1;s=1; B. do i=1;s=0; s=s*i; i+; s=s*i;i+;while(i=10); while(i=10); C. i=1;s=1; D. i=1;s=0;do s=s*i; dos=s*i;i+; i+;while(i=10); while(i=10);36.以下描述正确的是 C 。A. 由于 do-while 循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合语句B.do-while 循环由 do 开始,用 while 结束,在 while(表达式)后面不能

11、写分号C. 在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(“假”)的操作D.do-while 循环中,根据情况可以省略 while37.C+中 while 和 do-while 循环的主要区别是 A 。A.do-while 的循环体至少无条件执行一次B.while 的循环控制条件比 do-while 的循环控制条件严格C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句38.下面有关 for 循环的正确描述是 D 。A.for 循环只能用于循环次数已经确定的情况B.for 循环是先执行循环体语句,后判断表达式C.for 循环

12、中,不能用 break 语句跳出循环体D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来39.对 for(表达式 1; ;表达式 3)可理解为 B 。A.for(表达式 1;0;表达式 3)B.for(表达式 1;1;表达式 3)C.for(表达式 1;表达式 1;表达式 3)D.or(表达式 1;表达式 3;表达式 3)40. for(i=2;i= =0;) printf(“%d”,I-);循环执行的次数是 B 。A. 无 限次 B. 0 次 C. 1 次 D. 2 次41.在 C+编程语言中,以下正确的描述是 B 。A.continue 语句的作用是结束整个循环的执行B

13、.只能在循环体内和 switch 语句体内使用 break 语句C.在循坏体内使用 break 语句或 continue 语句的作用相同D.从多层循环嵌套中退出,只能使用 goto 语句42.下面程序段 D 。for(t=1;tx;if(x0) continue; coutt;A.当 x=0 时什么也不输出C. cout 永远也不执行 D. 最多允许输出 100 个非负整数43.定义一个函数实现交换 x 和 y 的值,并将结果正确返回。能够实现此功能的是 C。A.swap(int x, int y) int t; t=x; x=y; y=t; B.swap(int *x, int *y) in

14、t t; t=x; x=y; y=t; C.swap(int *x, int *y) int t; t= *x; *x = *y; *y=t; D.swap(int *x, int *y) int *t; t=x; x=y; y=t; 44.说明语句int (*p) ( );的含义是 C 。A.p 是一个指向一维数组的指针变量B.p 是指针变量, 指向一个整型数据C.p 是一个指向函数的指针,该函数的返回值是一个整型D.以上都不对45.设有说明 int (*p) 4 ; 其中的标识符 p 是 C 。A.4 个指向整型变量的指针变量B.指向 4 个整型变量的函数指针C.一个指向具有 4 个整型元

15、素的一维数组的指针D.具有 4 个指向整型变量的指针元素的一维指针数组46.若有如下声明,下列说法错误的是 C 。struct em char a; char b;A.struct 是结构体类型关键字 B. em 是结构体类型名C. em 是用户声明的结构体变量 D. a,b 是结构体成员名47.若有下列定义,则对结构体变量的成员引用错误的是 C 。struct date int year; int month; int day;struct student int no;char name16; date birthday; stud;A.stud.noB.stud.nameC.stud.b

16、irthdayD.stud.birthday.year48.下列叙述中,不正确的是 B 。A.类的构造函数可以重载B.类的析构函数可以重载C.一个类可以不定义构造函数D.一个类可以不定义析构函数49.已知宏定义:#define N 3#define Y(n) (N+1)*n)(N+1)*5+1)执行语句 z=2*(N+Y(5+1); 后,变量 z 的值是 B 。A. 42 B. 48 C. 52 D. 出 错50.类的构造函数的作用是 C A)一般成员函数的初始化B) 类 的 初 始 化 C)对象的初始化 D)删除类创建的对象51.下列说法正确的是 B A)内置函数在运行时是将该函数的目标代码

17、插入每个调用该函数的地方 B)内置函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C)类的内置函数必须在类体内定义 D)类的内置函数必须在类体外通过加关键字 inline 定义二、填空题1.程序的三种基本的控制结构是: 顺序结构 、 选 择 结构 、 选择结构2.假定一个结构类型定义为:“struct D int a ; union int b ; double c ; ; D * d2 ; ;” , 则 该 类 型 的 大 小 为 20 字节。3.C+语言中的每条基本语句以 ; 作为结束符,每条复合语句以 作为结束符。4.关系表达式 x+y5 的相反表达式为 x+y=0);6.下面

18、程序段的运行结果为 * 。x=2;docout“*”;x-; while(!x=0);7.定义内置函数的方法是在函数的返回值类型之前增加关键字 inline 。8.假定 a 为一个整型数组名,则元素 a4的字节地址为 a+16 。9.假定一个一维数组的定义为“char a8 ;”,则该数组所含元素的个数为 8 ,所占存储空间的字节数为 32 。10. 已知 int a32=3, 2, 1; 则表达式“a00/a01/a02”的值是 1 。11.若用数组名作为函数调用时的实参,则实际上传递给形参的是 数组首地址 。12.如果一个函数无返回值,定义它时函数类型应是 void 。13.预处理命令以

19、# 开头。14.假定 a 是一个二维数组,则 aij的指针访问方式为 *(ai+j) 或*(*(a+i)+j) 。15.C+在编译时,可以将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去。这种嵌入到主调函数中的函数称为 内置函数 。16.使用内置函数可以节省运行时间,但却增加了 目标函数 的长度。17.C+允许用同一函数名定义多个函数,这些函数的参数个数和参数类型不同。这就是函数的重载 。18.利用 C+编程语言可以建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为 函数模板 。19.对一个类中的数据成员的初始化可以通过构造函数中的 初始化表

20、 实现,也可以通过构造函数中的 函数体 实现。20.假定 AB 为一个类,则执行“AB a10;”语句时,系统自动调用该类的构造函数的次数为 10 。三、填空完成下面的程序1. #include using namespace std; int main( ) int a, b, c, x; cina;couta=ab; coutb=bc; coutc=cendl;if (a=b&b=c) coutthe three numbers are eauqlb & ac) x=a; else if (bc) x=b;else x=c; coutthe greatest number is:x=A&c

21、=a&c=z ) n+; c=getchar( );3.鸡、兔共有 30 只,脚共有 90 个,下面程序段是计算鸡兔各有多少只,x 代表有多少只鸡,y 代表有多少只兔子,请填空完成程序。for(x=1;x=29;x+)y=30-x;if( 2*x+4*y=90 ) coutx y;4.下面的程序是求 2 个或 3 个正整数中的最大数,用带有默认参数的函数实现。请填空完成程序。#include using namespace std; int main()int max(int a,int b, int c=0 ); int a,b,c,m1,m2;cinabc;m1= max(a,b,c);

22、m2= max(a,b); couta,b,c 三个正整数中的最大数为:m1endl; couta,b 两个正整数中的最大数为:m2a) a=b; if(ca) a=c; return a;四、给出下列程序运行后的输出结果1.# include using namespace std;void SB(char ch) switch(ch) case A: case a:cout well!; break; case B: case b:cout good!; break; case C: case c:cout pass!; break; default:cout bad!; break;in

23、t main( ) char a1=B,a2=c,a3=f;SB(a1);SB(a2);SB(a3);SB(A);cout endl; return 0;答案:good! pass! bad! well!2.#include using namespace std; int main()int a,b; for(a=1,b=1;a=20) break; if(b%3= =1)b+=3;continue; b- =5;coutaendl; return 0;答案:83.#include using namespace std; main( )int i,j,x=0; for(i=0;i2;i+)

24、x+;for(j=0;j=3;j+)if (j%2) continue; x+; x+;cout“x=”xendl;答案:x=84. #include using namespace std; main( )int i; for(i=1;i=5;i+)if(i%2) cout“*”; else continue; cout“#”;cout“$n”;答案:*#*#*#$5. #include using namespace std; void main( ) int I,j,a=0; for(I=0;I2;I+) for(j=0;j4;j+) if(j%2) break; a+; a+;cout

25、aendl;答案:46.运行以下程序时,从键盘键入 right?请给出回车后运行的结果。#include using namespace std; void main()char c;while(c=getchar()!=?) putchar(+c);答案:sjhiu7. #include void main( )int I; for(I=1;I=5;I+)switch(I%2)case 0:I+; cout#;break; case 1:I+=2; cout*; default: coutn;答案:*#8. #include using namespace std; int a=5;int

26、main ( ) int a=10, b=20; int a=0,b=0;for (int i=1; i6; i+) a+=i ; b+=a;cout a bendl; return 0;答案:10 209. #include using namespace std; int k=1;void f(int m)m+=k; k+=m;char k=B; cout k - A n; coutm,kn;int main()int i=4; f(i);couti,kn; return 0;程序的输出第一行是 1 ,第二行是 5,6 ,第三行是 4,6 。10. # include # include int main( ) char a5=student, worker, cadre, soldier, peasant; char p1, p2;p1=p2=a0;for (int i=0; i0) p1=ai;if (strcmp(ai,p2)0) p2=ai;cout p1 p2endl; return 0;答案:worker cadre11. #incl

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2