… _…__…__…__…__…__…__…:业…专… 线 _…__…__…__…__…__…__…_:级封年…… _…__…__…__…__…_:密.号…学… …__…__…__…__…:名…姓….… …
河南师范大学物理与信息工程学院2010――2011学年度第二学期期末考试《C++程序设计》B卷
题号 一 二 三 四 总分 得分 (注意:请将答案填写在答题纸中相应位置上,否则将视为无效答案。) 得分 评卷人 一、选择题(每题1分,共30分)
1.C++语言是从早期的C语言发展演变而来的。与C语言相比,它在求解问题方法上进行的最大改进是( )。
A) 面向过程 B ) 面向对象 C) 安全性 D ) 复用性 2.C++源程序文件的扩展名是( )。 A).cpp B).c C).dll D).exe 3.在对变量命名时中,下面( )是合法的。 A)CHINA B)byte-size C)double D)A+a
4.若x,a,b和c均是int型变量,则执行表达式x=a=b=2后x的结果是( )。 A)1 B)2 C)3 D)x无确定值。
5.设有数组定义: char array[]=\,则数组 array所占的空间为( )。 A)4个字节 B)5个字节 C)6个字节 D)7个字节 6.编写C++程序一般需经过的几个步骤分别是( ) A. 编译、编辑、构建(连接)、调试 B. 编辑、编译、构建(连接)、调试 C. 编译、调试、编辑、构建(连接) D. 编译、调试、编辑、构建(连接)
7.当一个函数无返回值时,函数的类型定义为( )。 A)void B)任意 C)int D)无
8.C++中注释“∥”的有效范围是( ) A.从“∥”开始到行尾
B.从“∥”开始到下一个“∥” C.“∥”及其后一个字符 D.从“∥”开始到程序尾
9.定义字符型数据的关键词是( ) A.bool B.char C.int D. stuct
10.设x和y都是bool型的变量,则x&&y为真的条件是( ) A.它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假
11.设有定义: int a=12, 则执行完语句 a+=a*a后,a的值为( ) A. 12 B. 144 C. 156 D. 288
12.循环语句for(int i=0;i 13. 循环体至少被执行一次的语句是( ) A. for 循环 B. while 循环 C. do while循环 D. 任一种循环 14. 从下面各选项中,选择合法的if语句(设有int x,a,b,c;)。( ) A)if(a= =b) x++; B)if(ab) x++; D)if(a=>b x++;) 15.假定一个二维数组的定义为int a[3][4]={{3,4},{2,8,6}},则元素a[2][1]的值为()A.2 B. 4 C. 6 D. 8 16.以下说法正确的是() A.C++程序总是从第一个定义的函数开始执行 B.C++程序总是从main函数开始执行 C. C++函数必须有返回值,否则不能使用函数 D.C++程序中函数的定义可以嵌套。 17.函数重载是指() A.两个或者两个以上的函数去相同的函数名,但形参的个数或类型不同 B.两个以上的函数取相同的函数名和相同的参数个数,但返回值的类型不同 C.两个以上的函数名字不同,但形参的个数或类型相同 D.两个以上的函数取相同的名字,并且函数的返回值类型相同。 18.以下正确的函数声明语句(包括标点符号)是 ( ) A.double fun(int x,int y) B.double fun(int x ; int y) ; C.double fun(int ,int ); D.double fun(int x,y) ; 19.假定有变量s的定义为: int s=3;要使指针变量p指向s相同的单元,定义的方法是() A.int *p=s; B.int *p=&s; C.int *p;p=*s D.int *p;p=s; 20.switch语句能够改写为( ) A. 复合 B. if C. do D. while 21.假定变量x定义为:int x=5;要使rx成为x的引用(别名),rx应定义为() A.int rx=x; B.int rx=&x; C. int *rx=&x ; D. int *rx=x ; 22.下面的循环语句中,循环体执行的次数为:( ) int n=9; for(int i=0;i C.6 D.7 23. 使用如setw()的操作对数据进行格式输出时,包含( )文件。 A)iostream.h B)fstream.h C)iomanip.h D)string.h 24. 对于重载的函数,不允许它们的( )。 A)参数的个数、类型、顺序都相同,而函数的返回类型不同 B)参数的类型不同 C)参数的顺序不同 D)参数的个数不同 25.设有以下变量定义,并已经赋确定的值: char w;int x;float y;double z;则表达式w*x+z-y所求得的数据类型为( )。 A.char B.int C.float D.double 26. 在关键词public后面定义的成员为类的( )成员 A.私有 B.公有 C.保护 D.任何 27.假定AA为一个类,a为该类公用的数据成员,x为该类的一个对象,则访问该对象中数据成员的格式为() A. x(a) B. x[a] C. x->a D. x.a 28.对于公用继承,基类的私有成员在派生类中将( ) A.仍然直接使用成员名访问 B.能够通过成员运算符访问 C.仍然是基类的私有成员 D.变成派生类的私有成员 29.以下有关类和对象的描述中,错误的是:( ) A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型和变量的关系。 30.假定一个类的构造函数为B(int ax,int bx){a=ax;b=bx;},执行B x(1,2),y(3,4); x=y;后,a.x的值为( ) A.1 B.2 C.3 D.4 得分 评卷人 二、程序填空题(每空2分,共30分) 1. #include cout< void main() { fun(5); } 该程序的运行结果为 【1】 ; 2. 如果有字符数组定义:char str[]=”hello world!”; 从将数组输出的语句是 【2】 3. 假定对数组的a[]进行初始化的数据为:{2,9,6,5,7,10},则a[2]的值为 【3】 ; 4.若x=5,y=10,则x>y和x<=y的逻辑值分别为 【4】 和 【5】 。 5.若要在程序中进行输入输出,如cin或者cout,则必须在开始的#inlude命令中使用 【6】 头文件。 6.要访问一个对象x中的由a指针成员所指向的变量,方法为 【7】 。 7.下面是使用递归函数求n的阶乘的函数定义,请补充 Int fac(int n) { int z; if(n==1) z=1; else z= 【8】 return z; } 8. 有结构体类型的定义为: Struct A{ int a;};按顺序完成下面的要求 1) 定义一个A类型的变量s1的语句是: 【9】 2)将s1中的a赋值为5的语句: 【10】 9.下面是时间类的定义和调用过程,其中包括3个私有变量hour,minute,second,和两个公用函数settime用来设置时间和showtime用来输出时间,请补充之 【11】 Int hour,minute,second; 【13】 void settime(int ,int ,int ); void showtime(): }; void 【14】 settime(int h,int m,int s) { hour=h; 【15】 ; second=s; } Void Time::showtime() { Cout< int main() { Time t; t.settime(12,0,0) t.showtime(); return 0; } 得分 评卷人 三、读程序,给出运行结果(每空2分,共20分) 1. #include void main() { int a[9]={2,4,6,8,10,12,14,16,18}; for(int i=0;i<9;i++) { cout<<*(a+i)<<’ ‘;