C++程序设计期末考试复习题_第1页
C++程序设计期末考试复习题_第2页
C++程序设计期末考试复习题_第3页
C++程序设计期末考试复习题_第4页
C++程序设计期末考试复习题_第5页
已阅读5页,还剩19页未读, 继续免费阅读

下载本文档

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

文档简介

课程名称:C++程序设计(专升本)

1.(单选题)关于C++与C语言关系的描述中,()是错误的。(本题2.0分)

A.C语言是C++语言的一个子集

B.C语言与C++语言是兼容的

C.C++语言对C语言进行了一些改进

D.C++语言和C语言都是面向对象的

学生答案:D

标准答案:D

解析:无

得分:2.0

2.(单选题)按照标识符的要求,()符号不能组成标识符。(本题2.0分)

A.连接符

B.下划线

C.大小写字母

D.数字字符

学生答案:A

标准答案:A

解析:无

得分:2.0

3.(单选题)为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。(本题2.0分)

A.缩排位置相同的if

B.在其之前未配对的if

C.在其之前未配对的最近的if

D.同一行上的if

学生答案:C

标准答案:C

解析:无

得分:2.0

4.(单选题)在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中a[2][2]的值是()。(本题2.0分)

A.1

B.0

C.6

D.2

学生答案:C

标准答案:C

解析:无

得分:2.0

5.(单选题)设"char**s;",以下正确的表达式是()。(本题2.0分)

A.s="computer";

B.*s="computer";

C.**s="computer";

D.*s='c';

学生答案:B

标准答案:B

解析:无

得分:2.0

6.(单选题)对于"int*pa[5];"的描述中,()是正确的。(本题2.0分)

A.pa是一个指向数组的指针,所指向的数组是5个int型元素

B.pa是一个指向某数组中第5个元素的指针,该元素是int型变量

C.pa[5]表示某个元素的第5个元素的值

D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针

学生答案:D

标准答案:D

解析:无

得分:2.0

7.(单选题)在下列表示引用的方法中,()是正确的。已知:intm=10;(本题2.0分)

A.int&x=m;

B.int&y=10;

C.int&z;

D.float&t=&m;

学生答案:C

标准答案:A

解析:无

得分:0.0

8.(单选题)下列for循环的次数为()。for(i=0,x=0;!x&&i<=5;i++)(本题2.0分)

A.5

B.6

C.1

D.无限

学生答案:B

标准答案:B

解析:无

得分:2.0

9.(单选题)对于C/C++语言的函数,下列叙述中正确的是()。(本题2.0分)

A.函数的定义不能嵌套,但函数调用可以嵌套

B.函数的定义可以嵌套,但函数调用不能嵌套

C.函数的定义和调用都不能嵌套

D.函数的定义和调用都可以嵌套

学生答案:A

标准答案:A

解析:无

得分:2.0

10.(单选题)在一个被调用函数中,关于return语句使用的描述,()是错误的。(本题2.0分)

A.被调用函数中可以不用return语句

B.被调用函数中可以使用多个return语句

C.被调用函数中,如果有返回值,就一定要有return语句

D.被调用函数中,一个return语句可以返回多个值给调用函数

学生答案:D

标准答案:D

解析:无

得分:2.0

11.(单选题)在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。(本题2.0分)

A.内联函数

B.重载函数

C.递归调用

D.嵌套调用

学生答案:A

标准答案:A

解析:无

得分:2.0

12.(单选题)使用fseek函数可以实现的操作是()。(本题2.0分)

A.改变文件指针的当前位置

B.文件的顺序读写

C.文件的随机读写

D.以上都不对

学生答案:A

标准答案:A

解析:无

得分:2.0

13.(单选题)下列存储标识符中,()的可见性与存在性不一致。(本题2.0分)

A.外部类

B.自动类

C.内部静态类

D.寄存器类

学生答案:C

标准答案:C

解析:无

得分:2.0

14.(单选题)在如下结构定义中,不正确的是()。(本题2.0分)

A.structstudent{intno;charname[10];floatscore;};

B.structstud[20]{intno;charname[10];floatscore;};

C.structstudent{intno;charname[10];floatscore;}stud[20];

D.struct{intno;charname[10];floatscore;}stud[100];

学生答案:B

标准答案:B

解析:无

得分:2.0

15.(单选题)将两个字符串连接起来组成一个字符串时,选用()函数。(本题2.0分)

A.strlen()

B.strcpy()

C.strcat()

D.strcmp()

学生答案:C

标准答案:C

解析:无

得分:2.0

16.(单选题)()不是构造函数的特征(本题2.0分)

A.构造函数的函数名与类名相同

B.构造函数可以重载

C.构造函数可以设置缺省参数

D.构造函数必须指定类型说明

学生答案:D

标准答案:D

解析:无

得分:2.0

17.(单选题)已知:类A中一个成员函数说明如下:voidSet(A&a);其中,A&的含义是()。(本题2.0分)

A.指向类A的指针为a

B.将a的地址值赋给变量Set

C.a是类A对象的引用,用来作函数Set()的参数

D.变量A与a按位与作为函数Set()的参数

学生答案:A

标准答案:C

解析:无

得分:0.0

18.(单选题)已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。(本题2.0分)

A.voidprint()const;

B.constvoidprint();

C.voidconstprint();

D.voidprint(const);

学生答案:A

标准答案:A

解析:无

得分:2.0

19.(单选题)关于虚函数的描述中,()是正确的。(本题2.0分)

A.虚函数是一个static类型的成员函数

B.虚函数是一个非成员函数

C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数

D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型

学生答案:C

标准答案:C

解析:无

得分:2.0

20.(单选题)关于new运算符的下列描述中,()是错的。(本题2.0分)

A.它可以用来动态创建对象和对象数组

B.使用它创建的对象和对象数组可以使用运算符delete删除

C.使用它创建对象时要调用构造函数

D.使用它创建对象数组时必须指定初始值

学生答案:D

标准答案:D

解析:无

得分:2.0

21.(问答题)虚析构函数有什么作用?(本题3.0分)

学生答案:让c++在通过基类指针删除派生类对象时,能够知道并执行派生类自己的清理工作,从而保证所有资源都被正确释放

标准答案:对象销毁时,需要调用析构函数。在多态调用时,是用基类的指针访问派生类的对象。如果析构函数是非虚函数,则基类指针只能访问基类的析构函数,而不能访问派生类的析构函数,导致派生类对象销毁时,没有调用派生类的析构函数,只是调用了基类的析构函数。如果把析构函数定义成虚函数,则可克服这个问题。

解析:无

得分:0.75

22.(问答题)拷贝构造函数在哪几种情况下调用?(本题3.0分)

学生答案:不顶焦度计大难不死

标准答案:用一个对象初始化另一个对象时;当用对象作为函数参数传递时;当函数返回对象时

解析:无

得分:0.0

23.(问答题)函数重载与函数覆盖有什么不同,它们与多态有什么关系?(本题4.0分)

学生答案:让c++在通过基类指针删除派生类对象时,能够知道并执行派生类自己的清理工作,从而保证所有资源都被正确释放。

标准答案:函数重载是指函数名相同,而函数的参数个数或类型不同;覆盖是指在派生类中成员函数与基类成员函数的函数名、参数个数、类型与返回值均相同;C++中正是通过虚函数的覆盖,实现多态的功能。

解析:无

得分:0.0

24.(问答题)C++继承是如何工作的?(本题3.0分)

学生答案:继承使得派生类能够使用基类的公有和保护成员,从而实现代码的复用,派生类也可以增加成员,也可以隐藏和覆盖基类的成员,对于公有继承,基类成员的访问权限在派生类保持不变

标准答案:继承使得派生类能够使用基类的公有和保护成员,从而实现代码的复用,派生类可以增加成员,也可以隐藏和覆盖基类的成员。对于公有继承,基类成员的访问权限在派生类保持不变。

解析:无

得分:3.0

25.(问答题)类与对象有什么区别?(本题2.0分)

学生答案:类是类型,是对象的抽象,对象是类的具体实例。

标准答案:类是类型,是对象的抽象,对象是类的具体实例。一个类可以有多个对象,每个对象都有自己的存储单元,而类不占存储单元。

解析:无

得分:1.0

26.(问答题)下面的程序可以统计命令行第一个参数中出现的字母个数,请填充下面空白,完成程序。(10分)#include<stdio.h>#include<ctype.h>voidmain(intargc,___________argv[];){char*str;intcount=0;if(argc<2)exit(1);str=________________;while(*str)if(isalpha(_______________))count++;printf("\n字母个数:%d\n",count);}提示:intisalpha(intch)函数功能是检查ch是否是字母(本题10.0分)

学生答案:1.char*2

标准答案:①char*②argv[1]③*str++

解析:无

得分:3.33

27.(论述题)定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[]和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的基本操作为Push()和Pop()。(本题10.0分)

学生答案:设计一个字符栈类stackcpp

标准答案:constintSIZE=27;classStack{public:Stack():tos(0){};voidPush(charch);charPop();private:charstck[SIZE];inttos;};voidStack::Push(charch){if(tos==SIZE)cout<<"\nStackisfull\n";else{stck[tos]=ch;tos++;}}charStack::Pop(){if(tos==0){cout<<"\nStackisempty\n";return0;}tos--;returnstck[tos];}

解析:无

得分:0.72

28.(论述题)完成下面的函数,对有n个元素的数组a,使数组元素按逆序排列。voidinverse(int*a,intn)(本题12.0分)

学生答案:

标准答案:voidinverse(int*a,intn){inti,*p;p=newint[n];for(i=0;i<=n-1;i++)p[i]=a[i];for(i=0;i<=n-1;i++)a[i]=p[n-i-1];delete[]p;}

解析:无

得分:2.0

29.(论述题)下面的函数统计子字符串substr在字符串str中出现的次数,如果substr在str中不出现,则返回值0。请完成该函数。intstr_count(char*substr,char*str)(本题13.0分)

学生答案:

标准答案:intstr_count(char*substr,char*str){intcount=0;char*pChar;if(substr==NULL||str==NULL)returncount;while(*str!='\0'){pChar=substr;while(*pChar==*str){pChar++;if(*pChar=='\0'){count++;break;}elsestr++;}//Matchwhile(*pCh...)statementstr++;}//Matchwhile(*str...)statementreturncount;}

解析:无

得分:2.0

1.(单选题)定义变量:intx=3,y=2;floata=2.5;则表达式(x+y)/2+(int)a的值为()。(本题1.0分)

A.5

B.4

C.3

D.3.5

学生答案:B

标准答案:B

解析:无

得分:1.0

2.(单选题)下列常用转义字符中不正确的是()。(本题1.0分)

A.\\

B.\c

C.\012

D.\t

学生答案:B

标准答案:B

解析:无

得分:1.0

3.(单选题)若有语句“inta=12;”则执行语句“a+=a*=12;”后,a的值是()。(本题1.0分)

A.12

B.144

C.288

D.24

学生答案:D

标准答案:C

解析:无

得分:0.0

4.(单选题)inta=1,b=2,c=4,d=6,m=2,n=3;执行(m=a>b)&&(n=c>d)后n的值为()。(本题1.0分)

A.0

B.1

C.3

D.4

学生答案:C

标准答案:C

解析:无

得分:1.0

5.(单选题)定义如下变量和数组:intj;intx[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。for(j=2;j>=0;j--)printf("%2d",x[j][2-j]);(本题1.0分)

A.159

B.147

C.753

D.369

学生答案:C

标准答案:C

解析:无

得分:1.0

6.(单选题)以下不正确的字符串赋值语句是()。(本题1.0分)

A.char*s;s="abcde";

B.chars[]="abcde";

C.chars[10];s="abcde";

D.char*s="abcde";

学生答案:C

标准答案:C

解析:无

得分:1.0

7.(单选题)假设x,y为整型变量,则执行如下程序段后y的值为()。(本题1.0分)

A.2

B.4

C.6

D.8

学生答案:D

标准答案:C

解析:无

得分:0.0

8.(单选题)下列字符串“a\x21\\\tp\202q”的长度是()。(本题1.0分)

A.7

B.9

C.15

D.16

学生答案:B

标准答案:A

解析:无

得分:0.0

9.(单选题)若有以下定义,则数值为4的正确表达式是()。inta[10]={1,2,3,4,5,6,7,8,9,10};charc=’a’,d,g;(本题1.0分)

A.a[g-c]

B.a[4]

C.a[’d’-’c’]

D.a[‘d’-c]

学生答案:D

标准答案:D

解析:无

得分:1.0

10.(单选题)下列关于函数的叙述正确的是()。(本题1.0分)

A.每个C程序源文件中都必须有一个main()函数

B.C程序中main()函数的位置是固定的

C.C程序中所有函数之间都可以相互调用,与函数所在位置无关

D.在C程序的函数中不能定义另一个函数

学生答案:D

标准答案:D

解析:无

得分:1.0

11.(单选题)以下关于C函数返回值的叙述正确的是()。(本题1.0分)

A.被调函数中只有使用return语句才能返回主调函数

B.使用一个return语句可以返回多个函数值

C.函数返回值类型取决于return语句中的表达式类型

D.函数返回值类型取决于定义该函数时所指定的类型

学生答案:D

标准答案:D

解析:无

得分:1.0

12.(单选题)若有如下宏定义:#defineN2#defineY(n)((N+1)*n),则执行赋值语句z=2*(N+Y(5));后z的值是()。(本题1.0分)

A.表达式有误

B.34

C.70

D.无确定值

学生答案:B

标准答案:B

解析:无

得分:1.0

13.(单选题)以下关于变量的作用域叙述不正确的是()。(本题1.0分)

A.在函数内部定义的变量是局部变量

B.函数中的形式参数是局部变量

C.全局变量的作用范围仅限于其所在的文件

D.局部变量的作用范围仅限于本函数

学生答案:C

标准答案:C

解析:无

得分:1.0

14.(单选题)有以下程序:程序运行后的输出结果是()。(本题1.0分)

A.10

B.11

C.20

D.21

学生答案:D

标准答案:D

解析:无

得分:1.0

15.(单选题)设有定义:a=1,b=2,c=3;以下语句中执行效果与其它三个不同的是()。(本题1.0分)

A.if(a>b)c=a;a=b;b=c;

B.if(a>b){c=a,a=b,b=c;}

C.if(a>b)c=a,a=b,b=c;

D.if(a>b){c=a;a=b;b=c;}

学生答案:A

标准答案:A

解析:无

得分:1.0

16.(填空题)结构化程序设计的三种基本结构是顺序结构、选择结构和___结构。(本题2.0分)

学生答案:循环

标准答案:循环

解析:无

得分:2.0

17.(填空题)C程序的基本构成单位是___。(本题2.0分)

学生答案:函数

标准答案:函数

解析:无

得分:2.0

18.(填空题)写出一个数m既能被3整除又能被4整除的逻辑表达式___。(本题2.0分)

学生答案:无

标准答案:m%3==0&&m%4==0

解析:无

得分:0.0

19.(填空题)在C语言(VC6.0)中,一个int类型的数据在内存中占___字节的存储单元。(本题2.0分)

学生答案:4

标准答案:4

解析:无

得分:2.0

20.(填空题)若有定义:inta[]={1,4,6,5,8,9};则*(a+5)的值为___。(本题2.0分)

学生答案:9

标准答案:9

解析:无

得分:2.0

21.(填空题)设有数组定义:chararray[20]="China";则数组array所占的内存空间为___个字节。(本题2.0分)

学生答案:20

标准答案:20

解析:无

得分:2.0

22.(填空题)未加特别说明static的全局变量是外部的,能被其它文件中的函数使用,在引用它的文件中,需要用关键字___声明。(本题2.0分)

学生答案:extrn

标准答案:extern

解析:无

得分:0.0

23.(填空题)设有定义:则对结构体成员a的引用方法可以是abc.a和___。(本题2.0分)

标准答案:p_abc->a或(*pabc).a

解析:无

得分:2.0

24.(填空题)已知a=10,b=20,c=3,则表达式a>b||c的值为___。(本题2.0分)

学生答案:1

标准答案:1

解析:无

得分:2.0

25.(填空题)下面程序的功能是求1-100间的偶数和,请在()_处填上合适内容,使程序完整。(本题2.0分)

学生答案:sum=sum+n;

标准答案:sum+=n或sum=sum+n

解析:无

得分:0.0

26.(问答题)(读程序,写结果)(本题3.0分)

学生答案:11,16,11,16

标准答案:程序的运行结果是:11,16,11,15

解析:无

得分:3.0

27.(问答题)(读程序,写结果)有以下程序:(本题3.0分)

学生答案:a=2,b=1

标准答案:程序的运行结果是a=2,b=1。

解析:无

得分:3.

温馨提示

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

评论

0/150

提交评论