湛江海洋大学2005年第二学期
《C++程序设计》课考试题(A卷)
使用班级:信息与计算科学 信计1041—1042
班级:题 号 各题分数 实得分数 一 36 二 20 三 20 四 9 五 15 总分 100 一、选择题(每题2分,共36分)
1、由C++目标文件连接而成的可执行文件的缺省扩展名为________。 A cpp B exe C obj D lik
2、在下面的函数声明中,存在着语法错误的是________。
A void BC(int a, int); B void BD(int, int); C void BE(int, int=5); D int BF(int x; int y); 3、假定AB为一个类,则该类的拷贝构造函数的声明语句为________。
A. AB&(const AB x); B. AB(const AB x) ; C. AB(const AB& x); D. AB(const AB* x); 4、对于结构中定义的成员,其隐含访问权限为________。 A public B protected C private D static 5、在下列表示引用的方法中,________是正确的。 已知:int m=10;
A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m;
6、对于C/C++语言的函数,下列叙述中正确的是________。 A .函数的定义不能嵌套,但函数调用可以嵌套 B.函数的定义可以嵌套,但函数调用不能嵌套 C.函数的定义和调用都不能嵌套 D.函数的定义和调用都可以嵌套
7、在一个被调用函数中,关于return语句使用的描述,________是错误的。
第 1 页 共 8 页
姓名: 学号: 加白纸一张 A.被调用函数中可以不用return语句 B.被调用函数中可以使用多个return语句
C.被调用函数中,如果有返回值,就一定要有return语句 D.被调用函数中,一个return语句可以返回多个值给调用函数
8、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用________。
A.内联函数 B.重载函数 C.递归调用 D.嵌套调用 9、下列的各类函数中,________不是类的成员函数。
A.构造函数 B.析构函数 C.友元函数 D.拷贝构造函数 10、________不是构造函数的特征
A.构造函数的函数名与类名相同 B.构造函数可以重载 C.构造函数可以设置缺省参数 D.构造函数必须指定类型说明 11、已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,________
是正确的。
A.void print( ) const; B.const void print( ); C.void const print( ); D.void print(const); 12、关于new运算符的下列描述中,________是错的。 A.它可以用来动态创建对象和对象数组
B.使用它创建的对象和对象数组可以使用运算符delete删除 C.使用它创建对象时要调用构造函数 D.使用它创建对象数组时必须指定初始值 13、下列for循环的次数为_______。 for(i=0, x=0; !x&&i<=5; i++) A.5 B.6 C.1 D.无限
14、对于\;\的描述中,_______是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素 B.pa是一个指向某数组中第5个元素的指针,该元素是int型变量
第 2 页 共 8 页
C.pa[5]表示某个元素的第5个元素的值
D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针 15、有以下程序段:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[6];则b中值是______。 A、10 B、6 C、8 D、9
16、设正x、y均为整型变量,且x=10, y=3,则以下语句的输出结果是______ 。
printf(\
A、10,4,11 B、11,4,11 C、10,4,10 D、9,4,10 17、下面的程序,输出结果为 _______。
#include
if (*p!='\\0') {t=*p++; fun(p);
if (t!='\\0') printf(\ }
void main() { char *a; a=\ fun(a);}
A、运行出错 B、1324 C、4231 D、4321 18、下面的程序,输出结果为 _______。
#include
int a[]={2, 6, 8, 7, 9}; p=a; i=2;
printf(\}
A、8 6 6 6 8 B、8 2 2 8 8
C、8 2 6 8 8 D、8 6 8 6 8
二、填空(后3题每空2分,其余每空1分,共20分)
第 3 页 共 8 页
1、已知‘A' ?‘Z'的ASCII码为65?90,当执行“int x=‘D'+5;”语句后x的值为________。 2、表达式float(25)/4和int(14.6)%5的值分别为________和________。 3、关系表达式x+y>5的相反表达式为____________________。
4、举出C++中两种用户自定义的数据类型:___________、____________
5、执行“typedef int ABC[10];”语句把ABC定义为具有10个整型元素的________, 那么语句“ABC a;”等价的语句是:________。
6、当一个类对象离开它的作用域时,系统将自动调用该类的____________。
7、在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象
程序设计的____________特性。
8、使用const语句定义一个标识符常量时,则必须对它同时进行__________。 9、设变量均为int型,则表达式(b=51,i=b++)的值是__________。
10、全局变量和_______________若不显示初始化,则自动初始化为0。
11、若需要把一个函数“void F();”定义为一个类AB的友元函数,则应在类AB的定
义中加入一条语句:________________________。
12、假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为________。 13、假定 AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类构造函数的次
数为________。
14、假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态
数组,则使用的语句为____________________________。
三、读程题(每小题5分,共20分)
1、#include
for(int i=1;i<=5;i++) s+=i*i; cout<<\ }
该程序的运行结果是:__________________________________________ 2、#include
double SD(int a, int b, char op) {double x;
switch(op)
{ case '+': x=double(a)+b; break;
case '-': x=double(a)-b; break; case '*': x=double(a)*b; break; case '/': if(b) x=double(a)/b;
第 4 页 共 8 页
else exit(1); break; default: exit(1); } return x; }
void main() { int x=20,y=8; cout< } 该程序的运行结果是: 3、#include {char name[15]; //姓名 int age; //年龄 float pay; //工资 }; void main() { Worker x; char *t=\ int d=45; float f=1235; strcpy(x.name,t); x.age=d; x.pay=f; cout< 该程序的运行结果是: 4、 #include void LG(int*& a, int& m) { a=new int[m]; int* p=a; for(int i=0;i 第 5 页 共 8 页
相关推荐: