一、单选题
1、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为 。
A. main B. MAIN C. name D. function 2、设x和y均为bool量,则x&&y为真的条件是 。
A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 3、下面的哪个保留字不能作为函数的返回类型? 。
A. void
B. int C. new D. long
4、假定a为一个整型数组名,则元素a[4]的字节地址为 。
A. a+4 B. a+8 C. a+16 D. a+32
5、假定AB为一个类,则执行“AB a(4) , b[3] , * p[2] ;”语句时,自动调用该类构造函数的次数为 。
A. 3
B. 4
C. 6
D. 9
6、假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: 。 A. AB operator+(AB & a , AB & b) C. operator+(AB a)
B. AB operator+(AB & a) D. AB & operator+( )
7.由C++目标文件连接而成的可执行文件的缺省扩展名为 。 A. cpp C. obj
B. exe D. lik
8.在下面的一维数组定义中,哪一个有语法错误。 A. int a[ ]={1,2,3} B. int a[10]={0} C. int a[ ]
1
D. int a[5]
-
9.在下面的函数声明中,存在着语法错误的是 。 A. void BC(int a , int) B. void BD(int , int) C. void BE(int , int=5) D. int BF(int x ; int y) 10. 设x和y均为bool量,则x||y为真的条件是 。
A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 11.对于结构中定义的成员,其隐含访问权限为 。 A. public C. private
B. protected D. static
12.假定AB为一个类,则该类的拷贝构造函数的声明语句为 。 A. AB &(AB x) B. AB(AB x) C. AB(AB &) D. AB(AB * x)
二、填空题(每题 2 分,共 24分)
1、程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用 或 符号作为分隔符。
2、执行“cout < 3a 5、执行“int x=45,y=16;cout< - 6、假定一个一维数组的定义为“char * a[8] ;”,则该数组所含元素的个数为 ,所占存储空间的字节数为 。 7、变量分为全局和局部两种, 变量没有赋初值时,其值是不确定的。 8、假定a是一个二维数组,则a[i][j]的指针访问方式为 。 9、假定一个结构类型定义为“struct D { int a ; union { int b ; double c ; } ; D * d[2] ; } ;” ,则该类型的大小为 字节。 10、对一个类中的数据成员的初始化可以通过构造函数中的 实现,也可以通过构造函数中的 实现。 11、假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为 。 12、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为 。 13.假定x=10,y=6,则表达式2+x+ +和+ +y*3的值分别为 和 。 14.已知’A’~’Z’的ASCII码为65~90,当执行“char ch=14*5+2; cout < 3 - 18.执行“typedef int ABC[10];”语句把ABC定义为具有10个整型元素的 。 19.假定p所指对象的值为25,p+1所指对象的值为46,则执行“(*p)++;”语句后,p所指对象的值为 。 20.假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为 。 21.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为 。 22.设px是指向一个类动态对象的指针变量,则执行“delete px;”语句时,将自动调用该类的 。 23.若需要把一个函数“void F( );”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句: 。 24.假定一个类AB中有一个静态整型成员bb,在类外为它进行定义并初始化为0时,所使用写法为 。 三、给出下列程序运行后的输出结果(每题 6分,共36分) 1、# include <> void SB(char ch) { switch(ch){ case 'A': case 'a': cout <<\"well!\"; break; 4 - case 'B': case 'b': cout <<\"good!\"; break; case 'C': case 'c': cout <<\"pass!\"; break; default: cout <<\"nad!\"; break; } } void main() { char a1='b',a2='C',a3='f'; SB(a1);SB(a2);SB(a3);SB('A'); cout < char *a[5]={\"student\ char *p1,*p2; p1=p2=a[0]; for (int i=0; i<5; i++) { if (strcmp(a[i],p1)>0) p1=a[i]; if (strcmp(a[i],p2)<0) p2=a[i]; } cout < 5 - int a=5; void main() { int a=10,b=20; cout <for (int i=1; i<6; i++) { a+=i; b+=a; } cout <cout <4、# include <> int LB(int *a,int n) { int s=1; for (int i=0; i int a[]={1,2,3,4,5,6,7,8}; int b=LB(a,5)+LB(&a[3],3); cout <<\"b=\"<5、# include <> # include <> 6 - struct Worker{ char name[15]; 从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a:”中。 2.编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素个数并返回。 int Count(double a[],int n); # include <> int Count(double a[],int n) { double m=0; int i; for (i=0; i 7 因篇幅问题不能全部显示,请点此查看更多更全内容