一、填空题(每题3分)
1. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__________和__________。 2. float和double类型的数据分别占用_________和________个字节。
3. 当在程序中执行到________语句时,将结束本层循环类语句或switch语句的执行。 4. 在C++中,声明构造函数和析构函数时, ______使用const或volatile关键词。
5. const放在函数前面使常量成员返回 ______ 。如果定义一个const对象,则只能访问 该对
象的const 成员函数。
6.析构造函数是和______同名的函数。
7.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字 .
8.逻辑表达式x>3&&x<10 的相反表达式为 . 9.逻辑表达式a>b ||b = =5的相反表达式为 .
10.假定一个二维数组的定义为”char a[5][6];”,则该数组所含元素的个数为 ,所占存储空间的字节数为 .
二、单选题(每题2分,在下列各题的备选答案中,选出一个正确答案,并将其号码填写在题目后面的括号内。)
1.设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( )。 A. 12 B. 144 C. 156 D. 288
2. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式
1abc的表达式是( )。
A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c
3. x>0 || y==5的相反表达式为( )。
A. x<=0 || y!=5 B. x<=0 && y!=5 C. x>0 || y!=5 D. x>0 && y==5
4.设x和y均为bool量,则x && y为真的条件是( )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假
5. 假定下列x和y均为int型变量,则不正确的赋值为( )。
A. x+=y++ B. x++=y++ C. x=++y D. ++x=++y 6. switch语句能够改写为( )语句。
A. for B. if C. do D. while 7. 在下面的字符数组定义中,哪一个有语法错误。( )。
A. char a[20]=”abcdefg”; B. char a[]=”x+y=55.”; C. char a[15]; D. char a[10]=’5’; 8. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( )。
A. 0 B. 4 C. 8 D. 6
9. 若定义了函数 double *function(), 则函数function的返回值为( )。 A. 实数型 B.实数的地址 C.指向函数的指针 D.函数的地址
10. 函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( )个。 A.1 B.2 C. 4 D. 5
11. 设有如下函数定义
int f(char *s) { char *p=s;
while(*p!=‟\\0‟) p++; return(p-s); }
在主函数中用cout< A. char s1[]=”abcdef”; B. char s2[4]=”abcd”; C. char s3[2][3]={“abc”,”xyz”}; D. char s4[4][]={„a‟,‟x‟,‟s‟,‟t‟}; 14. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为( )。 A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m; 15. 假定p指向的字符串为”string”,则cout< 三、问答题(每题10分) 1. 多重继承的构造顺序一般可分为4步,下面给出这4个步骤: 2. 下面的程序的正确的输出结果是什么? #include }; char * base::fun(void)const {return \"base\";} class derived1:virtual public base{ public: char * fun(void)const{ return \"derived1\"; } }; class derived2:virtual public base{ public: char * fun(void)const{ return \"derived2\"; } }; class subderived:public derived1,public derived2{ public: char * fun(void)const{ char * pch; pch=new char[strlen(derived1::fun())+strlen(derived2::fun())+1]; strcpy(pch,derived1::fun()); strcat(pch,derived2::fun()); return pch; } }; void main(void){ base * pb; pb=new derived1; cout< 3. 下面这一程序是关于多重继承时构造函数的调用顺序问题,给出正确的输出结果并说明原因。 #include class divide1:virtual public base{ int b1; public: divide1(){b=10;} }; class divide2:virtual public base{ int b2; public: divide2(){b=20;} }; class subdivide:public divide1,public divide2{ int d; }; void main(void){ subdivide d; int i=d.b; cout<4.大学里有这样几类人员:学生、教师、职员和在职读书的教师。给出这几类人员的类描述。 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务