您的当前位置:首页正文

C++程序设计试题

2021-08-23 来源:步旅网


一、判断题(每小题1分,共10分) ( )1、说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。 ( )2、所有的表达式都有值。 ( )3、程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。 ( )4、类的静态数据成员需要在定义每个类的对象时进行初始化。 ( )5、基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。 ( )6、当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员。 ( )7、当函数的返回值是数组类型的,传递的是数组第一个元素的地址。 ( )8、如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。 ( )9、字符串’hello,world”在内存中存放时,占用11个字节的空间。 ( )10、用new动态申请的内存空间,必须用delete来释放 。 二、单项选择题:(每小题2分,共30分) 1.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为______。 A.main B.MAIN C.name D.function 2.设x和y均为bool量,则x && y为真的条件是______。 A.它们均为真 B.其中一个为真 C.它们均为假 D.其中一个为假 第 1 页

3.下面的哪一个保留字不能作为函数的返回类型?_______。 A.void B.int C.new D.1ong 4.假定a为一个整型数组名,则元素a[4]的字节地址为_______。 A.a十4 B.a十8 C.a十16 D.a十32 5.C++源程序文件的缺省扩展名为_______。 A. cpp B. exe C. obj D. lik 6.在下面的二维数组定义中,正确的是( )。 A. int a[5][]; B. int a[][5]; C. int a[][3]={{1,3,5},{2}}; D. int a[](10); 7. 以下正确的说法是_______。 A. 用户调用标准库函数前,必须重新定义 B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C. 系统不允许用户重新定义标准库函数 D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中 8. 文件包含命令中被包含的文件的扩展名_______。 A. 必须是.h B. 不能是.h C. 可以是.h或.cpp D. 必须是.cpp 9. 要使语句“p=new int[10][20];”能够正常执行,p应定义为_______。 A. int *p; B. int **p; C. int *p[20]; D. int(*p)[20]; 10. 有关构造函数的说法不正确的是_______ 。 A、构造函数名字和类的名字一样。 B. 构造函数无任何函数类型。 C. 构造函数有且只有一个 D. 构造函数在说明类对象时自动执行。 11. 假定AA为一个类,a为该类私有的数据成员,若要在该类的一个成员函数中访问它,则书写格式最好为_______。 A. a B. AA::a C. a() D. AA::a() 12、下列关键字中,_______不是类定义中使用的关键字。 A.class B.switch C.private D.public 13. 当类中的一个整型指针成员指向一块具有n*sizeof(int)大小的存储空间时,它最多能够存储_______。个整数。 A. n B. n+1 C. n-1 D. 1 14. 假定AB为一个类,则执行 “AB a, b(3), *p;”语句时共调用该类构造函数的次数为_______。 A. 2 B. 3 C. 4 D. 5 15. 在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是_______。 A. 作为友元函数重载的1元运算符 B. 作为成员函数重载的1元运算符 C. 作为友元函数重载的2元运算符 D. 作为成员函数重载的2元运算符 第2页

三、填空题:(每空2分,共20分) 1、从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______个参数。 2、 假定x是一个逻辑量,则x || false的值为__________。 3、作为语句标号使用的C++保留字case和defaule只能用于________语句的定义体中。 4、若多个基类及其派生类中都定义了同名函数成员,要访问相应函数时,就需要在函数名前加上______和__________ 5、C++支持两种多态性:_________时的多态性和__________时的多态性。 6、假定用户为类AB定义了一个构造函数“AB(int aa, char *bb=NULL):a(aa),b(bb){}”,则该类中至少包含有__________个数据成员。 7、类是用户定义的类型,具有类类型的变量称作_______________。 四、程序填充,对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面(每小题6分,共18分) 1. 打印出2至99之间的所有素数(即不能被任何数整除的数)。(每空2分) #include #include void main() { int i,n; for(n=2; ___(1)___; n++) { int temp=int(sqrt(n)); //求出n的平方根并取整 for(i=2; ___(2)___; i++) if(n%i==0) ___(3)___; if(i>temp) cout<int low=0, high=n-1; //定义并初始化区间下界和上界变量 int mid; //定义保存中点元素下标的变量 while(low<=high) { mid=___(1)___; if(x==a[mid]) ___(2)___; else if(x class Add { private: int x,y; public: Add(int a,int b) { x=a;y=b; cout<<\"调用构造函数1。\"<~Add() { cout<<\"调用析构函数。\"< class A{ private: //„其它成员 public: virtual void func(int data){cout<<”class A:”<int main(int argc,char *argv[]) { A *pA; B b; pA=&b; pA->func(1); pA->func(“haha”); return 0; } 输出结果为: 六、编程题(共12分) 求满足不等式22+42+...+n2<1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程。 第6页

因篇幅问题不能全部显示,请点此查看更多更全内容