c++复习题及答案_第1页
c++复习题及答案_第2页
c++复习题及答案_第3页
c++复习题及答案_第4页
c++复习题及答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、一、选择题1 .在每个C+程序中都必须包含有这样一个函数,该函数的函数名为A QA. main B. MAIN C. name D. function2 .假设a,b均为int型变量,为了将10赋给a,将20赋给b,那么对应以下cin语句的正确输 入方式为B .<CR>代表回车换行,代表空格.cin >> a >> b;A . 1020<CR> B. 10_20<CR> C. 10,20<CR> D. 20_10<CR>3 .在以下关于C+语言的注释的表达中,不正确的选项是 C .A . C+程序中,注释可用&

2、quot;/*"、"*/"形式表示,也可用"/"形式表示B. C+编译器在编译一个程序时,将跳过注释,不对其进行处理C. C+编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会影响所生成的可执行文件的长度4. 以下表达不正确的选项是C .A.在C+程序中,严格区分大小写字母B . 一个C+源程序有且仅有一个 main函数C.在C+程序中,注释只能位于一条语句的后面D . 一个C+程序总是从 main函数开始执行5. C+语言对C语言做了很多改良,C+语言相对于C语言的最根本的变化是DA.增加了一些新的运算符B.允许函数重

3、载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念6. C+是 CA.面向对象的程序设计语言B.结构化程序设计语言C.既是面向对象的程序设计语言又是结构化程序设计语言D.非结构化程序设计语言7. 以下合法的标识符为DA. abde+ B. #KDJF C. 67KDJ D. DK3_8. 关于字符串和字符的关系正确的选项是_CA.“A"与A'是相同的B.字符串是常量,字符是变量C. “A"与A'是不同的D. "A与“A是相同的if (x>y)z=x; s=z*z;elsez=y;s=1/(z*z);9. 下面关于语句的

4、说法正确的选项是Bif (x>y)z=x; s=z*z; elsez=y;s=1/(z*z);A.下面这两段程序的执行效果是一致的B.空语句是只有一个分号的语句,它其实什么也不干C.语句的构成不一定需要分号D.语句的书写对程序的运行不起作用,因此可以随便写都可以10 .以下各标识符中,合法的用户标识符组为D .A. PAd, P#d, b-b, abc, _0123, ssipedB. cin, a10, CPP, float , del_word , signedC. void , max , hiy , <fr> , list, *jerD. a, temp , _isw

5、 , INT , keep , wind11 .在VC+中,以下语句的输出为D qshort int k= -1;cout << k << ',' << (unsigned short) k <<endl; A. -1,-1 B, -1,32767 C. -1,32768 D. -1,6553512 .假设给出以下程序,其输出为B .#include <iostream>using namespace std;int main () int a=4,b=7;cout << (a=a+1,b+a,b+1) &

6、lt;< endl;return 0;A. 5 B. 8 C. 11 D.程序有错误,无法运行13 .字符串“ " EOF= "的长度是 A q A. 8B. 9 C.12 D.非法字符串14 .数学式J|sinx|在C+程序中对应正确的表达式为B .A . sqrt(sin(x)>0?sin(x):-sin(x)B. sqrt(fabs(sinx)C . sqrt(sqrt(sinx*sinx)D. fabs(sqrt(sin(x)15 .以下 A 是C+语言的有效标识符 ? A . _No1B. No.1 C. 12345D. int16 . C+语言中,表

7、示一条语句结束的标号是 BA . #B. ;C. /D . 17 .每个C+程序中都必须有且仅有一个CA.类B,预处理命令C.主函数 D.语句18 .以下数据类型不是 C+语言根本数据类型的是D .A.字符型 B.整型C.实型 D.数组19 .以下字符列中,可作为C+语言程序自定义标识符是 B.A . switchB. fileC. breakD . do20 .运算符+、<=、=、中,优先级最低的运算符是C .A.+B. <=C . =D, %21 .以下字符列中,可以作为“字符串常量的是 B.A. ABC B. " xyz " C. ' uvw

8、9; D.' a'22 .设变量 m, n , a, b, c, d 均为 0,执行(m = a= =b)|(n=c= =d)后,m, n 的值是 DA. 0, 0 B, 0, 1 C,1, 0 D. 1,123 .字符串"vmx43np102q的长度是 A .A.8B.10C.17D. 1624 .在C+语言中,自定义的标识符 D.A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写C.能使用关键字并且区分大小写D.不能使用关键字并且区分大小写25 .设有代码“int a = 5;,那么执行了语句"a + = a - = a*a ;"

9、;后,变量a的值是 CA. 3B.0C.-40D.T226 .设a为5,执行以下代码后,b的值不为2的是 CA. b = a/2B . b = 6-(-a)C. b = a%227.设x和y均为bool量,那么x && y为真的条件是28.A.它们均为真C.它们均为假 假设给定条件表达式A.和(m= =0)等价C.和(m!=0)等价B.其中一个为真D.其中一个为假 (m)?(a+): (a-),那么其中表达式B.和(m= =1)等价D.和(m!=1)等价29 .在C+语言的if语句中,用作判断的表达式为A.关系表达式C.算术表达式B.逻辑表达式D.任意表达式30 .设i和k都是

10、int类型,那么以下for循环语句for ( i=0, k= -1; k=1; i+, k+ ) cout << "*n"A.判断循环结束的条件不合法B.是无限循环C.循环体一次也不执行D.循环体只执行一次31 .假设有以下语句,那么输出结果为 A .int a=2,b=1;cout << a>b?"a 大于 b":"a 小于 b" << endl;A. a大于b B. a小于b C. 1 D.输出语句有错32 . int k=10;while(k=0) k=k-1;那么下面描述正确的选项是C

11、A. while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次33 . int a=1,b=2,c=2,t;while(a<b) t=a;a=b;b=t;c-;cout<<a<< "," <<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.是死循环C.循环执行一次B.循环执行两次D.有语法错误*10的程序段是A.C.

12、do i=1;s=1;s=s*i; i+; while(i<=10);i=1;s=1;36.do s=s*i;i+; while(i<=10); 以下描述正确的选项是B. do i=1;s=0;s=s*i;i+; while(i<=10);D. i=1;s=0;dos=s*i;i+;while(i<=10);35 .以下能正确计算 1*2*3*A.由于do-while循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合 语句B. do-while循环由do开始,用while结束,在while表达式后面不能写分号C.在do-while循环体中,一定要有能使 whi

13、le后面表达式的值变为零“假的操作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循环中,不能用 break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,

14、但必须用花括号括起来39 .对for表达式1;表达式3可理解为B .A. for表达式1; 0;表达式 3B. for表达式1; 1;表达式3C. for表达式1;表达式1;表达式3D. or表达式1;表达式3;表达式340 . fori=2;i = =0; printf " %d-,I循环执行的次数是B .A.无限次 B. 0次 C. 1次 D. 2次41 .在C+编程语言中,以下正确的描述是 B.A. continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用 break语句C.在循坏体内使用 break语句或continue语句的作用相同D.从多

15、层循环嵌套中退出,只能使用 goto语句42 .下面程序段D .for(t=1;t<=100;t+)cin>>x;if(x<0) continue;cout<<t;A.当x<0时整个循环结束B. 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) int t; t=x; x=y; y=t; C. swap(

16、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个整型元素的一维数组的指针D.具有4个指向整型变量的指

17、针元素的一维指针数组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. C. stud.birthdayD. stud.birthday.y

18、ear48 .以下表达中,不正确的选项是B qA.类的构造函数可以重载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 .类的构造函数的作用是CA) 一般成员函数的初始化B)类的初始化C)对象的初始化D)删除类创立的对象51 .以下说法正确的选项是 BA)内置函数在运行时是将该函数的目标代码插入每个调用该函数的地方B)内置函数在编译时是将该函数的目标代

19、码插入每个调用该函数的地方C)类的内置函数必须在类体内定义D)类的内置函数必须在类体外通过加关键字inline 定义二、填空题1. 程序的三种根本的限制结构是:顺序结构 、 诜择结构 、 诜择结构2 .假定一个结构类型定义为:“struct D int a ; union int b ; double c ; ; D * d2 ; ;,那么该类型的大小 为 20 字节.3 .C+语言中的每条根本语句以.:作为结束符,每条复合语句以作为结束符.4 . 关系表达式 x+y>5的相反表达式为 x+y<=5.5 .下面的程序段中循环体的执行次数是 3.a=10;b=0;dob+=2;a-=

20、2+b; while(a>=0);6 .下面程序段的运行结果为*.x=2;docout<<" * "-;* 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 .假设用数组名作为函数调用时的实参,那么实际上传递给形参的是数组首

21、地址.12 .如果一个函数无返回值,定义它时函数类型应是void .13 .预处理命令以# 开头.14 .假定 a 是一个二维数组,那么 aij 的指针访问方式 为 *(ai+j) 或 *(*(a+i)+j).15 . C+在编译时,可以将所调用函数的代码直接嵌入到主调函数中,而不是将流程转出去.这种嵌入到主调函数中的函数称为内置函数 .16 .使用内置函数可以节省运行时间,但却增加了目标函数的长度.17 . C+允许用同一函数名定义多个函数,这些函数的参数个数和参数类型不同.这就是 函数的重载 .18 .利用C+编程语言可以建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来

22、代表.这个通用函数就称为函数模板.19 .对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的函数体 实现.20 .假定AB为一个类,那么执行“ AB a10;语句时,系统自动调用该类的构造函数的次数为 10.三、填空完成下面的程序1. #include <iostream>using namespace std;int main() int a, b, c, x;cin>>a;cout<<"a="<<a<<endl;cin>>b;cout<<"b=

23、"<<b<<endl;cin>>c;cout<<"c="<<c<<endl;if (a=b&&b=c) cout<<"the three numbers are eauql"<<endl; else if(a>b && a>c) x=a;else if (b>c) x=b;else x=c;cout<<"the greatest number is:"<<x

24、<<endl;return 0;器品用口"2,下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环,请填空完成程序.int n=0,c;c=getchar();while( c!='n') if( c>='A'&&c<='Z'|c>='a'&&c<='z') n+;c=getchar();)3,鸡、兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,x代表有多少只鸡,y代表有多少只兔子,请填空完成程序.for(x=1

25、;x<=29;x+)y=30-x;if( 2*x+4*y=90) cout<<x<<" "<<y;)4,下面的程序是求 2个或3个正整数中的最大数,用带有默认参数的函数实现.请填空 完成程序.#include <iostream>using namespace std;int main()int max(int a,int b, int c=0);int a,b,c,m1,m2;cin>>a>>b>>c;m1= max(a,b,c);m2= max(a,b);cout<<&

26、quot;a,b,c 三个正整数中的最大数为:"<<m1<<endl;cout<<"a,b 两个正整数中的最大数为:"<<m2<<endl;return 0;)int max(int a, int b, int c)if(b>a) a=b;if(c>a) a=c;return a;)四、给出以下程序运行后的输出结果1. # include <iostream>using namespace std;void SB(char ch) switch(ch) case 'A

27、9;: case 'a': cout <<"well!" break;case 'B': case 'b':cout <<"good!" break; case 'C': case 'c':cout <<"pass!" break; default:cout <<"bad!" break;int main() char a1='B',a2='c',a3=&#

28、39;f;SB(a1);SB(a2);SB(a3);SB('A');cout <<endl;return 0;答案:good! pass! bad! well!2. #include<iostream>using namespace std;int main()int a,b;for(a=1,b=1;a<=100;a+)if(b>=20) break;if(b%3= =1)b+=3;continue; b- =5;cout<<a<<endl;return 0;答案:83. #include<iostream>

29、;using namespace std;main()int i,j,x=0;for(i=0;i<2;i+)x+;for(j=0;j<=3;j+)if (j%2) continue; x+; x+; cout<< “x=" <<x<<endl;答案:x=84. #include<iostream>using namespace std;main()int i;for(i=1;i<=5;i+)if(i %2) cout<< “*" ; else continue;cout<< “#&qu

30、ot; ; cout<< 7" ;答案:*#*#*#$5. #include<iostream>using namespace std;void main() int I,j,a=0;for(I=0;I<2;I+) for(j=0;j<4;j+) if(j%2) break; a+; a+; cout<<a<<endl;答案:46. 运行以下程序时,从键盘键入right?请给出回车后运行的结果.#include<iostream>using namespace std;void main()char c;whil

31、e(c=getchar()!='?') putchar(+c);答案:sjhiu7. #include<iostream.h>void main()int I;for(I=1;I<=5;I+)switch(I%2)case 0:I+; cout<<"#"break;case 1:I+=2; cout<<"*"default: cout<<"n"答案:*8. #include <iostream> using namespace std;int a=5;int main () int a=10, b=20; int a=0,b=0; for (int i=1; i<6; i+)a+=i ; b+=a;)cout <<a<<' '<<b<<endl;return 0; 答案:10209. #include<iostream>using namespace std;int k=1;void f(int m)m+=k; k+=m; char k='B' cout<< k - 'A'

温馨提示

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

评论

0/150

提交评论