一、选择题
1. C++语言属于( C )。
A) 自然语言 B) 机器语言 C)面向对象语言 D) 汇编语言
2. 下面选项中不属于面向对象程序设计特征的是( C ) 。
A)继承性 B)多态性 C)相似性 D)封装性
3. 可用作C++语言用户标识符的一组标识符是( B )。
A) void define +WORD B) a3_b3 _123 YN
C) for -abc Case D) 2a DO sizeof
4. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( A )。
A) 0 B) 4 C) 8 D) 6
5. 下列情况中,哪一种情况不会调用拷贝构造函数 ( B )
A)用派生类的对象去初始化基类对象时
B)将类的一个对象赋值给该类的另一个对象时
C)函数的形参是类的对象,调用函数进行形参和实参结合时
D)函数的返回值是类的对象,函数执行返回调用者时
6. 以下哪一关键字可用于重载函数的区分( C )
A)extern B)static C)const D)virtual
7. 下列有关数组的叙述中,正确的是( B )
A)C++中数组的存储方式为列优先存储
B)数组名可以作为实参赋值给指针类型的形参
C)数组下标索引从1开始,至数组长度n结束
D)数组指针的语法形式为:类型名 *数组名[下标表达式];
8. 下列有关继承和派生的叙述中,正确的是( C )
A)派生类不能访问通过私有继承的基类的保护成员
B)多继承的虚基类不能够实例化
C)如果基类没有默认构造函数,派生类就应当声明带形参的构造函数
D)基类的析构函数和虚函数都不能够被继承,需要在派生类中重新实现
9. 实现运行时多态的机制是( A )
A)虚函数 B)重载函数 C)静态函数 D)模版函数
10. 若有下面的函数调用:
fun(a+b, 3, max(n-1, b));
其中实参的个数是( A )
A)3 B)4 C)5 D)6
11. 下列关于this指针的说法正确的是( B )
A)this指针存在于每个函数之中
B)在类的非静态函数中this指针指向调用该函数的对象
C)this指针是指向虚函数表的指针
D)this指针是指向类的函数成员的指针
12. 在下列关于C++函数的叙述中,正确的是( C )
A)每个函数至少要有一个参数 B)每个函数都必须返回一个值
C)函数在被调用之前必须先声明 D)函数不能自己调用自己
13. 下列运算符中,不能重载的是 ( C )
A)&& B)!= C). D)->
14. 下面程序的输出结果是( B )
#include using namespace std; int i = 0; int fun(int n) { static int a = 2; a++; return a+n; } void main() { int k = 5; { int i = 2; k += fun(i); } k += fun(i); cout << k; } A)13 B)14 C)15 D)16 15. 下面的程序段的运行结果为( D char str[] = \"job\ ) cout << *(p+2) << endl; A)98 B)无输出结果 C)字符’b’的地址 D)字符’b’ 16. 下面程序的输出结果是( C ) #include using namespace std; class A { public: A (int i) { x = i; } void dispa () { cout << x << “,”; }private : int x ; }; class B : public A { public: B(int i) : A(i+10) { x = i; } void dispb() { dispa(); cout << x << endl; } private : int x ; }; void main() { B b(2); b.dispb(); } A)10,2 B)12,10 C)12,2 17. 下面程序的输出结果是( C #include using namespace std; class Base { public: )2,2 ) D Base(int i) { cout << i; } ~Base () { } }; class Base1: virtual public Base { public: Base1(int i, int j=0) : Base(j) { cout << i; } ~Base1() {} }; class Base2: virtual public Base { public: Base2(int i, int j=0) : Base(j) { cout << i; } ~Base2() {} }; class Derived : public Base2, public Base1 { public: Derived(int a, int b, int c, int d) : mem1(a), mem2(b), Base1(c), Base2(d), Base(a) { cout << b; } private: Base2 mem2; Base1 mem1; }; void main() { Derived objD (1, 2, 3, 4); } A)134122 B)123412 C)14302012 18. 下面程序的输出结果是( C )#include using namespace std; class Base { public: )143212 D virtual void f() { cout << “f0+”; } void g() { cout << “g0+”; } }; class Derived : public Base { public: void f() { cout << “f+”; } void g() { cout << “g+”; } }; void main() { Derived d; Base *p = &d; p->f(); p->g(); } A)f+g+ B)f0+g+ C)f+g0+ D)f0+g0+ 19. 下面程序的输出结果是( C ) #include using namespace std; class Sample { friend long fun (Sample s) { if (s.x < 2) return 1; return s.x * fun(Sample(s.x-1)); } public: Sample (long a) { x = a; } private: long x; }; void main() { int sum = 0; for (int i=0; i<4; i++) { sum += fun(Sample(i)); } cout << sum; }A)12 B)16 C)10 D)34 20. 以下程序的输出结果是:( D ) #include using namespace std; int fun(char *s) { char *p=s; while (*p!='\\0') p++; return (p-s); } void main(){ cout< A.0 B. 1 C. 2 D. 3 21. 有如下程序段: int i=1; while(1) { i++; if (i==10) break; if(i%2==0) cout<<’} *’; 执行这个程序段输出字符*的个数是( C ) A. 10 B. 3 C. 4 D.5 22. 下列关于虚基类的描述中,错误的是( C ) A. 使用虚基类可以消除由多继承产生的二义性 B. 构造派生类对象时,虚基类的构造函数只被调用一次 C. 声明 class B:virtual public A 说明类B为虚基类 D. 建立派生类对象时,首先调用虚基类的构造函数 23. 有下类定义 Class A { Char *a; Public: A():a(0){} A(char *aa) {//把aa所指字符串拷贝到a所指向的存储空间 A=___________________; Strcpy(a,aa); ~A() {delete [] a;} }; 正确的选择是( A ) A. new char[strlen(aa)+1] B. char[strlen(aa)+1] C. char[strlen(aa)] D. new char[sizeof(aa)-1] 24. 假定AA为一个类,a为该类私有的数据成员,GetValue( )为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为( )。 A) x.a B) x.a() C) x->GetValue() D) x.GetValue( ) 25. 假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( A )。 A) int AA::a( ) B) int AA:a() C) AA::a() D)26. 有如下程序: #include using namespace std; class Test{ public: Test(){} ~Test(){cout<<'#';} }; AA::int a() int main(){ Test temp[2], *pTemp[2]; return 0; } 执行这个程序输出星号(#)的个数为( A)1 B)2 C)3 D)4 27. 有如下程序: #include using namespace std; class MyClass{ public: )。 B MyClass(int i=0){cout<<1;} MyClass(const MyClass&x){cout<<2;} MyClass& operator=(const MyClass&x){cout<<3; return *this;} ~MyClass(){cout<<4;} }; int main(){ MyClass obj1(1),obj2(2),obj3(obj1); obj1=obj2; return 0; }运行时的输出结果是( A )。 A)1123444 B)11114444 C)121444 D)11314444 28. 有如下程序: #include using namespace std; class point { public: static int number; public: point() { number++;} ~point() {number--;} }; int point::number=0; void main() { point *ptr; point A,B; { point *ptr_point=new point[3]; ptr=ptr_point; } point C; delete[] ptr; cout< 程序结果为( A ) A)3 B)4 C)6 D)7 29. 友元运算符obj++被C++编译器解释为( D A. operator++(obj) B. operator++(obj,0) B. obj.operator++( ) D. obj.operator++(0) 30、求“abc\\\\12\\n”字符串的长度( C ) (A) 5 (B) 6 (C) 7 (D) 8 31、字符串常量 ”\MyNane\\103” 的长度是:( B ) (A) 6 (B) 8 (C) 12 (D) 14 32、设x=7,执行语句y=++x,则y等于( D ) )。 (A) 6 (B) 7 (C) 9 (D) 8 33、下列字符列中,合法的长整型常量是:( D ) (A) 4.18e3 (B) 0.46793 (C) 4L (D) 956738 34、在C++中,char类型数据在内存的存储形式是:( D ) (A) 原码 (B) 反码 (C) 补码 (D) ASCII码 35、以下运算符中,优先级最高的是:( B ) (A) *= (B) –> (C) && (D) >= 36、若有定义“int x”,则下面不能将x的值强制转换成双精度数的表达式( D ) (A)(double) x (B) double(x) (C)(double)(x) (D) x(double) 37、设有变量定义 int i, j; 与表达式 i==0 && j==0 等价的表达式是:( B ) (A) i||j (B) !i&&!j (C) !i==!j (D) i==j 38、下述叙述正确的是( D )。 (A)字符型变量不能赋予整数 (B) 任意整数都能表示字符 (C)字符型变量可存放多个字符 (D) 字符数据的值是整数值 39、设变量int a = 5; 下列哪个表达式计算后,使得变量b的值等于2 (A) b=a/2 (B) b=6-(a--) (C) b=a%2 (D) b=a>3?3:2 40、if…else中为避免嵌套出现二义性,C++规定else子句总与( B (A)其之前最近的if语句 (B)其之前最近且尚未配对的if语句 (C)缩排位置相同的if语句 (D)其之后最近的if语句 41、逻辑运算符两侧运算对象的数据( D ) ( A ) ) ? (A)只能是逻辑型数据 (B)只能是整型数据 (C)只能是整型或字符型数据 (D)可以是任何类型的数据 42、设变量x,y,a,b,c,d的值为1,计算表达式(x=a!=b)&&(y=c!=d)后,变量x,y的值分别是:( B ) (A) 0,0 (B) 0,1 (C) 1,0 (D) 1,1 43、已知 int x=1, y=0; 执行下面程序段后,y的值为( C )。 if(x) { if (x>0) y=1; } else y = -1 ; (A)-1 (B)0 (C) 1 (D)不确定 44、 已知 int x=1, y=0, w ; 执行下面程序段后,w的值为( A )。 if(x) if(y) w=x&&y; else w=y; (A)0 (B)-1 (C)1 (D)不确定 45、语句while(w) … 中的表达式w的等价表示是:( C ) (A) w==0 (B) w==1 (C) w!=0 (D) w!=1 46、语句while(a>b) a--; 等价于( D )。 (A)if(a>b)a--; (B)do{a--}while(a>b); (C)for(a>b)a--; (D) for(;a>b; a--); 47、已知int i=0,x=0; 下面while语句执行时循环次数为( D )。while( x || i ) { x ++ ; i ++ ; }D (A) 3 (B) 2 (C) 1 (D) 0 48、执行语句 x=1; while(++x<7)cout<<’*’; 后输出结果是:( A (A) ***** (B) ****** (C) ******* (D) ******** 49、C++中循环语句while和do …while的主要区别是( A ) (A)do…while的循环体至少无条件执行一次 ) (B)while的循环控制条件和do…while的循环控制条件的控制条件的控制方式是相反的 (C)do …while允许从外部转到循环体内,while不允许 (D)while的循环体不能复合语句 50、若有以下程序段: for(m=1;m<=100;m++) { cin>>y; if(y<0) continue; cout< 则下面正确的说法是( D ) (A)当y<0时整个循环结束 (B)当y>=0时什么也不输出 (C)cout语句永远也不执行 (D)最多输出100个非负整数 51、语句“while(!x)…”等价于( A ) (A)while(x==0)… (B) while(x!=1)… (C) while(x!=0)… (D) while(x==1)… 52、一维数组a正确定义是( D )。 (A)char a(10) (B) int a[] (C)int k=5,a[k] (D)char a[]={‘a’,’b’,’c’} 53、下面不能够判断字符串S是空串的是( D ) (A) if (S[0]==0) (B) if(strlen(S)==0) (C) if(strcmp(S,””)==0) (D)if(S==’\\0’) 、char x[5]={‘a’,’b’,’\\0’,’c’,’\\0’} 输出的结果是( B ) (A)’a’’b’ (B)ab (C) ab c (D)abc 55、设有下面和程序段 char a[3],b[]=\"China\" a=b; cout<则( A ) (A)编译出错 (B)运行后将输出Ch (C) 运行后将输出Chi 56、判断字符串s1是否大于字符s2是空串的是( A ) (A)if(strcmp(s1,s2)>0) (B)if(strcmp(s1,s2)) (C)if(strcmp(s2,s1)>0) (D)if(s1>s2) 57、下面关于C++字符数组的叙述中,错误的是( D )。运行后将输出Chian (D) (A)字符数组可以放字符串 (B)字符数组的字符可以整体输入、输出 (C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 (D)可以用关系运算符对字符数组比较大小 58、以下对一维数组a的正确定义是( D ) (A)char a(10); (B)int a[]; (C)int k=5,a[k]; (D)char a[]={‘a’,’59、若二维数组y有m列,则位于y[i][j]之前的元素个数有( C )个 (A)j*m+i (B)i*m+j (C)i*m+j-1 (D)i*m+j+1 60、非数组、指针或引用型变量做实参时,它和对应虚参之间的数据传递方式是( (A)地址传递(B)单向值传递(C)双向值传递(D)由用户指定传递方式 61、若有数组名作为函数调用的实参,则传递给虚参的是( A ) b’,’c’}; B ) (A)数组的首地址 (B)数组第1个元素的值 (C)数组中全部元素的值 (D)数组元素的个数 62、以下正确的函数原型声明语句是( C ) (A)int fun(int a,b); (B)float fun(int a;int b); (C)double fun( ); (D)int fun(char a[][]); 63、已有定义“int a=5,&ra=a;”则下叙述中,错误的说法是( C )。 (A)ra是变量a的引用 (B)ra的值为5 (C)ra是a的地址值 (D)执行“ra=10;”后变量a的值也变为10 、若有定义“int c[5],*p=c;”,则以下对数组c元素地址的正确引用是( D ) (A)p+5 (B)c++ (C)&c+1 (D)&c[0] 65、设 int x = 1, y = 3 , 能正确表示代数式3x|x-y|的C++表达式是( A )。 (A)abs(x-y)*3*x (B)3x(abs(x-y)) (C)3x||(x-y) (D)3*x*(x-y)|| 3*x*(y-x) 66、有函数原型 void f( int * ); 下面选项中,正确的调用是( C )。 (A) char *s=\" ABCD\"; f(s); (B) int a=15; f(a); (C) int m=100; f(&m); (D) double pi=3.14; f(pi); 67、下面关于new和delete运算的叙述中,错误的说法是( C )。 (A)由new分配的内存空间是连续的 (B)如果当前内存无足够的空间可分配,则new运算符返回NULL (C)由new运算符分配的内存空间,当函数执行结束时系统会自动收回 (D)对于程序中的静态数组占用的存储空间不能使用delete来释放 68、下面判断是否构成重载函数的条件中,错误的判断条件是( D ) (A)参数类型不同 (B)参数个数不同 (C)参数顺序不同 (D)函数返回值不同 69、假设a,b是全局变量,下面设置函数参数默认值的函数原型中,错误的是( C ) (A)int fun(int x,int y=10); (B) int fun(int x=5,int y=10); (C) int fun(int x=5,int y); 70、设有定义: struct data { int i; char ch; double q; double f (D)int fun(int x,int y=a+b); }b; 结构体变量b占用内存的字节数是( D ) (A)18 (B)19 (C)20 (D)21 71、关于结构体概念的叙述中,正确的说法是( C )。 (A)相同类型数据的集合称为结构 (B)不同类型数据的集合称为结构体 (C)数据的集合称为结构体 (D)整数的集合称为结构体 72、设有说明语句 struct abc { int m; float n; } stype; 则下面错误的叙述是( B ) (A) struct 是定义结构体类型的关键字 (B) stype是结构体类型名 (C) m和n都是结构体成员 (D) stype是结构体变量名 73、对枚举类型ee的定义中,正确的这定义是( A )。 (A)enum ee{A,B,C,D}; (B) enum ee{‘A’,’B’,’C’,’D’}; (C) enum ee={A,B,C,D}; (D) enum ee={‘A’,’B’,’C’,’D’}; 74、关于同类型结构体与同类型联合体赋值的叙述中,正确的说法是( (A)联合体变量之间可以直接赋值,结构体变量之间也可以直接赋值 A ) (B)联合体变量之间可以直接赋值,结构体变量之间不可以直接赋值 (C)联合体变量之间不可以直接赋值,结构体变量之间可以直接赋值 (D)联合体变量之间不可以直接赋值,结构体变量之间也不可以直接赋值 75、一个结构体变量所占用的内存字节数是( D ) (A)结构体中第一个成员所需的内存字节数 (B)结构体中最后一个成员所需的内存字节数 (C)结构体中占用内存最大的成员所需的字节数 (D)结构体中各成员所需的内存字节数和 76、当定义一个联合体变量时系统分配给它的内存字节数是( C ) (A)联合体中第一个成员所需的内存字节数 (B)联合体中最后一个成员所需的内存字节数 (C)联合体中占用内存最大的成员所需的字节数 (D)联合体中各成员所需的内存字节数和 77、下面叙述中错误的是(C )。 (A)预处理命令都必须以“#”开始 (B)在程序中凡是以“#”开始的语句行都是预处理命令行 (C)C++程序在程序执行过程中对预处理命令进行处理 (D)一行只能写一条预处理命令 78、下面表达式组中不等价的一组是( C ) (A)a&=b与a=&a (B) a|=b与a=a|b (C) a!=b与a=a!b (D) a^=b与a=a^b 79、设x=0011 01012 ,则下面能使x的高4位取反,低4位不变,则下面能实现此功能的是( ) (A)x=x&0x0f (B) x=x|0x0f (C) x=x^0360 (D) x=x^033 80、设x=0011 01102,则若想通过x&y运算使x中的低4位不变,高4位清零,则下面能实现此功能的是( B ) (A)x=x|0x0f (B) x=x&0x0f (C) x=x|0xf0 (D) x=x&0xf0 81、设a和b是两个结构体变量,下面正确的表达式是( A ) (A)a=b (B)a=b+1 (C)a>b (D)a==b 82、关于结构体变量运算重载中,正确的单目运算符重载语法格式((A)函数类型名 单目运算符 operator(虚参){函数体} (B)函数类型名 operator 单目运算符 (虚参){函数体} (C)函数类型名 单目运算符operator(){函数体} (D)函数类型名 operator 单目运算符(){函数体} 83、后缀—运算符的重载函数语法格式如下: B ) 函数类型 operator--(虚参,int){函数体} 则下面关于第2 个虚参的叙述中,正确的说法是( C ) (A) 第2个参数必须给出参数名称 (B) 第2个参数不能给出参数名称 (C) 第2个参数必须是int型参数,其参数名可有可无 (D) 第2个参数也可以是long型参数 84、设分数的结构体定义如下: struct Fraction { int nume; int deno; } ; 则下面关于取自身的单目运算符“+”的运算符重载函数中,最合适是( A )。 (A) Fraction operator +(Fraction x) {return x;} (B) Fraction operator +(Fraction &x) {return x;} (C) void operator +(Fraction x) {return x;} (D) void operator +(Fraction &x) {return x;} 85、派生类对象只能访问基类中的( A ) (A)公有继承的公有的成员 (B)公有继承的私有成员 (C)公有继承的保护成员 (D)私有继承的公有成员 86、关于派生类叙述中,错误的说法是( B ) (A)派生类中从基类公有继承过来的分有成员的访问权限不变 (B)任何类都有基类 (C)派生类还可作为另一类的基类 (D)基类中的构造函数和析构函数是不可继承的 87、设有类的定义如下: class AAA { int x; char s[12]; } ob; 则在VC++环境下,变量ob所占内存空间字节数是( C )字节 (A)14 (B)15 (C)16 (D)17 88、关于构造函数的叙述中,错误的说法是( D ) (A)构造函数的名称必须为类名 (D)构造函数最多只能有一个 (C)创建对象时自动执行构造函数 (D)构造函数无任何函数类型 、( A )只能访问静态成员变量 (A)静态成员函数 (B)虚函数 (C)构造函数 (D)析构函数 90、C++中类有两种用法,一种是类的实例化,即生成类对象,另一种是通过( B )派生出新的类 (A)复用 (B)继承 (C)重载 (D)封装 91、下面关于类概念的描述中,( D )是错误的。 A)类是抽象数据类型的实现 B)类是具有共同行为的若干对象的统一描述体 C)类是创建对象的样板 D)类就是C语言中的结构体类型 92、面向对象程序设计思想的主要特征中不包括 ( D ) 。 A)封装性 B)多态性 C)继承性 D)功能分解,逐步求精 93、在C++中,函数原型不能标识 ( D ) 。 A)函数的返回类型 B)函数参数的个数 C)函数参数类型 D)函数的功能 94、有关析构函数的说法不正确的是 ( B )。 A) 析构函数有且仅有一个 B) 析构函数和构造函数一样可以有形参 C) 析构函数的功能是用来释放一个对象 D) 析构函数无任何函数类型 95、已知X类.则当程序执行到语句,X array[3];时,调用了( D )次构造函数。 A)0 B)1 C)2 D)3 96、类定义的内容允许被其他对象无地存取是( C )。 A)private 部分 B)protected 部分 C)public 部分 D)以上都不对 97、关于new运算符的下列描述中,( D )是错误的.。 A) 它可以用来动态创建对象和对象数组 B) 使用它创建对象或对象数组,可以使用运算符DELETE删除 C) 使用它创建对象时要调用构造函数 D) 使用它调用对象数组时不许指定初始值 98、对于下面程序段,表达式正确的是( A )。 class Base {public:int b;}; class Base1:public base{ }; class Base2:public base{ }; class Derived:public base1,public base2{public:int fun ( );}; Derived d; A) d. Base1::b B)d. Base ::b C) d.b D) d. Base :: fun( ) 99、可以用p.a的形式访问派生类对象p 的基类成员a其中a是( DA)私有继承的公有成员 B)公有继承的私有成员 C)公有继承的保护成员 D)公有继承的公有成员 100、下列关于C++类的描述中错误的是 ( C ) 。 A)类与类之间可以通过一些手段进行通信和联络 )。 B)类用于描述事物的属性和对事物的操作 C)类与类之间必须是平等的关系, D)类与类之间可以通过封装而具有明确的性 101、下列描述中哪个是正确的( B )。 A)私有派生的子类无法访问父类的成员 B)类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的 C)私有派生类不能作为基类派生子类 D)私有派生类的所有子孙类将无法继续继承该类的成员 102、下列关于构造函数说法不正确的是( C )。 A)构造函数必须与类同名 B)构造函数可以省略不写 C)构造函数必须有返回值 D)在构造函数中可以对类中的成员进行初始化 103、如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是 D )。 A)一元运算符 B)二元运算符 C)选项A)和选项B)都可能 D)重载错误 104、在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是(A)一元成员运算符 B)二元成员运算符 C)一元友元运算符 D)选项B)和选项C)都可能 105、一个类的友元函数能够访问该类的( D )。 A)私有成员 B)保护成员 C)公有成员 D)所有成员 106、下列关于类定义的说法中,正确的是( A )。 A)类定义中包括数据成员和函数成员的声明 B)类成员的缺省访问权限是保护的 )。( D C) 数据成员必须被声明为私有的 D)成员函数只能在类体外进行定义 107、通过运算符重载,可以改变运算符原有的( A )。 A)操作数类型 B)操作数个数 C)优先级 D)结合性 108、在C++语言中,数据封装要解决的问题是( D )。 A) 数据的规范化 B)便于数据转换 C)避免数据丢失 D)防止不同模块之间数据的非法访问 109、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( D )。 A)公有类型 B)私有类型 C)保护类型 D)友元类型 110、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( C )。 A)友元函数 B)虚函数 C)构造函数 D) 析构函数 111、类的析构函数的作用是( D )。 A)一般成员函数的初始化 B)类的初始化 C)对象的初始化 D)删除类创建的对象 112、下列说法正确的是( B )。 A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B) 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C)类的内联函数必须在类体内定义 D)类的内联函数必须在类体外通过加关键字inline定义 113、下列对派生类的描述中,错误的是( D )。 A)一个派生类可以作为另一个派生类的基类 B) 派生类至少有一个基类 C)派生类的成员除了自己的成员外,还包含了它的基类的成员 D)派生类中继承的基类成员的访问权限到派生类保持不变 114、运算符的重载是对已有的运算符赋予多重含义,因此( C )。 A)可以对基本类型(如int 类型)的数据,重新定义“+”运算符的含义 B) 可以改变一个已有运算符的优先级和操作数个数 C)只能重载C++中已经有的运算符,不能定义新运算符 D)C++中已经有的所有运算符都可以重载 115、如果类A被说明成类B的友元,则( D )。 A)类A 的成员即是类B的成员 B) 类B的成员即是类A的成员 C)类A的成员函数不得访问类B的成员 D)类B不一定是类A的友元 116、不能作为重载函数的调用的依据是( D )。 A)参数的个数 B) 参数的类型C)函数的类型 D)函数的名称 117. 能作为C++程序的基本单位是( C )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 118. 程序中主函数的名字为( A )。 A. main B. MAIN C. Main D. 任意标识符 119. 关于C++与C语言的关系的描述中,( D )是错误的。 A. C语言是C++的一个子集; B. C语言与C++是兼容的; C. C++对C语言进行了一些改进; D. C++和C语言都是面向对象的 120. 可用作C++语言用户标识符的一组标识符是( B )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 121、存储以下数据,占用存储字节最多的是( D ) 。 A. 0 B. ‘0’ C. “0” D. 0.0 6. 设int a=12;则执行完语句a+=a*a;后,a的值是( C )。 A. 12 B. 144 C. 156 D. 288 122. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式 的表达式是( D )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 123. 以下说法中正确的是( B )。 A. C++程序总是从第一个定义的函数开始执行 B. C++程序总是从main函数开始执行 C. C++函数必须有返回值,否则不能使用函数 D. C++程序中有调用关系的所有函数必须放在同一个程序文件中 124. 下面有关构造函数的描述中,正确的是( B )。 A. 构造函数可以带有返回值 B. 构造函数的名字与类名完全相同 C. 构造函数必须带有参数 D. 构造函数必须定义,不能缺省 125.在声明类时,下面的说法正确的是( C )。 A. 可以在类的声明中给数据成员赋初值 B. 数据成员的数据类型可以是register C. private,public,protected可以按任意顺序出现 D. 没有用private,public,protected定义的数据成员是公有成员 126.在下面有关析构函数特征的描述中,正确的是(A )。 A. 一个类可以有多个析构函数 B. 析构函数与类名完全相同 C. 析构函数不能指定返回类型 D. 析构函数可以有一个或多个参数 127.构造函数是在( B )时被执行的。 A. 程序编译 B. 创建对象 C. 创建类 D. 程序装入内存 128. 下面有关静态成员函数的描述中,正确的是( B ) A. 在静态成员函数中可以使用this指针 B. 在建立对象前,就可以为静态数据成员赋值 C. 静态成员函数在类外定义是,要用static前缀 D. 静态成员函数只能在类外定义 129.下面有关友员函数的描述中,真确的说法是( A. 友员函数是于当前类的外部函数 B. 一个友员函数不可以同时定义为两个类的友员函数 C. 友员函数必须在类的外部进行定义 A ) D. 在类的外部定义友员函数时必须加上friend关键字 130.友员的作用之一是( A ) A. 提高程序的运行效率 B. 加强类的封装 C. 实现数据的隐蔽性 D. 增加成员函数的种类 131.使用派生类的主要原因是( A ) A. 提高代码的可重用性 B. 提高程序的运行效率 C. 加强类的封装性 D. 实现数据的隐藏 在C++中继承方式有几中( C ) A. 1 B. 2 C. 3 D. 4 132.假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的正确写法是( D ) A. class derived ::student private{ //………….} B. class derived ::student public { //………….} C. class derived ::public student { //………….} D. class derived ::private student{ //………….} 133、派生类的对象对它的基类成员中( C )是可以访问的。 A.公有继承的公有成员; B.公有继承的私有成员; C.公有继承的保护成员; D.私有继承的公有成员。 134. 类中定义的成员默认为( b )访问属性。 A. public B. private C. protected D. Friend 135.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A )合适。 A. 内联函数; B. 重载函数; C. 递归调用; D. 嵌套调用。 136.C++对C语言作了很多改进,下列描述中( D )使得C语言发生了质变,从面 向过程变成了面向对象。 A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数; C. 规定函数说明必须用原型; D. 引进了类和对象的概念; 137.按照标识符的要求,( A )符号不能组成标识符。 A. 连接符 B. 下划线 C.大小写字母 D. 数字字符 138.下列变量名中,( A )是合法的。 A CHINA B byte-size C double D A+a 139.下列各种函数中,( C )不是类的成员函数。 A 构造函数 B析构函数 C 友元函数 D 拷贝构造函数 140.下列( A )是正确的语句。 A ; B a=17 C x+y D cout<<\"\\n\" 141.不能作为函数重载判断的依据的是( B ) A.返回类型 B. const C.参数个数 D. 参数类型 142.通常,拷贝构造函数的参数是( C ) A.某个对象名 B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名 143.下面对静态数据成员的描述中,正确的是( C ) A 类的不同对象有不同的静态数据成员值 B 类的每个对象都有自己的静态数据成员 C静态数据成员是类的所有对象共享的数据 D 静态数据成员不能通过类的对象调用 144、假定AB为一个类,则执行AB x;语句时将自动调用该类( ) B A.有参构造函数 B.无参构造函数C.拷贝构造函数 D.赋值构造函数 145.C++程序从上机到得到结果的几个操作步骤依次是( B )。 A. 编译、编辑、连接、运行 B. 编辑、编译、连接、运行 C. 编译、运行、编辑、连接 D. 编辑、运行、编辑、连接 146.假定一条定义语句为“int a[10], x, *p=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( A )。 A. x=p[3]; B. x=*(a+3); C. x=a[3]; D. x=*p+3; 147.关于封装,下列说法中不正确的是( D )。 A. 通过封装,对象的全部属性和操作结合在一起,形成一个整体 B. 通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见) C. 通过封装,每个对象都成为相对的实体 D. 通过封装,对象的属性都是不可见的 148.预处理命令在程序中都是以( B )符号开头的。 A. * B. # C. & D. @ 149.存储以下数据,占用存储字节最少的是( B )。 A. 0 B. ‘0’ C. “0” D. 0.0 150.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D 分隔符。 A. 空格或逗号B. 逗号或回车 C. 逗号或分号 D. 空格或回车 151.假定变量m定义为“int m=7;”,则定义变量p的正确语句( B )。A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m; 152.下面的哪个保留字不能作为函数的返回类( C ) 。 A. void B. int C. new D. long 153.采用重载函数的目的是( B )。 )符号作为 A.实现共享B.减少空间C.提高速度 D.使用方便,提高可读性 1.假定AB为一个类,则( C )为该类的拷贝构造函数的原型说明。 A. AB(AB x); B. AB(int x); C. AB(AB& x); D. void AB(AB& x); 155、 C++对C语言作了很多改进,下列描述中( D )使得C语言发生了质变,从面向过程变成了面向对象。 A、增加了一些新的运算符B、允许函数重载,并允许设置缺省参数; C、规定函数说明必须用原型; D、引进了类和对象的概念; 156、 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( A )。 A.类 B.对象 C.函数体 D.数据块 157、 关于new运算符的下列描述中,( C )是错误的。 A、 它可以用来动态创建对象和对象数组; B、使用它创建的对象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数; D、使用它创建对象数组时必须指定初始值; 158、 ( D )不是构造函数的特征。 A、构造函数的函数名与类名相同; B、构造函数可以重载; C、构造函数可以设置缺省参数; D、构造函数必须指定类型说明。 159、 假定一个类的构造函数为B(int x,int y){a=x--;b=a*y--;},则执行B x(3,5); 语句后,x.a和x.b的值分别为( C ) A、 3和5 B、 5和3 C、 3和15 D、20和5 160、 关于成员函数特征的下列描述中,( A )是错误的。 A、成员函数一定是内联函数; B、成员函数可以重载; C、成员函数可以设置缺省参数值; D、成员函数可以是静态的; 161、 在公有继承的情况下,基类成员在派生类中的访问权限( B )。 A、受 B、保持不变 C、受保护 D、不受保护 161、 友元的作用是( A )。 A、提高程序的运用效率; B、加强类的封装性; C、实现数据的隐藏性; D、增加成员函数的种类; 162、在C++中,关于下列设置缺省参数值的描述中,( B )是正确的。 A、不允许设置缺省参数值; B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数; C、只能在函数的定义性声明中指定参数的缺省值; D、设置缺省参数值时,必须全部都设置; 163、关于delete运算符的下列描述中,( C )是错误的。 A、它必须用于new返回的指针; B、使用它删除对象时要调用析构函数; C、对一个指针可以使用多次该运算符; D、指针名前只有一对方括号符号,不管所删除数组的维数。 1、const int *p说明不能修改( C )。 A、p指针B、p指针指向的变量C、p指针指向的数据类型D、all 165、当需要打开A盘上的以xxk.dat文件用于输入时,则定义文件流对象的语句为 ( B )。 A、fstream fin(“A:xxk.dat”,1) Bifstreamfin(“A:xxk.dat”,ios::nocreate) C、ofstream fin(“A:xxk.dat”) D、ifstream fin(“A:xxk.dat”,ios::app) 166、派生类的对象对它的基类成员中(A )是可以访问的。 A、公有继承的公有成员; B、公有继承的私有成员; C、公有继承的保护成员; D、私有继承的公有成员; 167、假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为( C )。 A、n-1 B、n C、 n+1 D、n+2 168、 在int a=3; *p=&a;中,*p的值是( D )。 A、变量a的地址值 B、无意义 C、变量p的地址值 169、 下列常量中,( D )不是字符常量。 A、’\\005’ B、’\\n’ C、 ’c’ D、“a” 170、在int a=3,*p=&a;中,*p的值是( D )。 A)变量a的地址值 B)无意义 C)变量p的地址值 171、以下4个选项中,不能看作一条语句的是( B )。A) if(b==0) m=1;n=2; B) a=0,b=0,c=0; C) if(a>0); 、 3 ) 3 D) {;} D D 172、( D )不是构造函数的特征。 A)构造函数的函数名与类名相同 B)构造函数可以重载 C)构造函数可以设置缺省参数 D)构造函数必须指定类型说明 173、以下程序段中与语句k=a>b? 1:0;功能等价的是( D )。 A) if(a>b) k=1; b) if(a>b) k=0C)if(a>b) k=1; D)if(a174、下列常量中,( D )不是字符常量。 A)’\\005’ B)’\\n’ C) ’c’ D)\"a\" 175、表示“x大于1而小于10”的逻辑表达式是( B )。 A)1 176、关于成员函数特征的下列描述中,( A )是错误的。 A)成员函数一定是内联函数 B)成员函数可以重载 C)成员函数可以设置缺省参数值 D)成员函数可以是静态的 177、有以下程序 #include void main( ) { int i,s=0; (E) for(i=1;i<10;i+=2) s+=i; cout< A)自然数1~9的累加和 B) 自然数1~10的累加和 C)自然数1~9中的奇数之和 D) 自然数1~10中的偶数之和 178、设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( ) 。 D A) p=1; B) *q=2; C) q=p; D) *p=5; 179、( A )能正确输出结果:C++。 A) char s[]=\"C++\";cout< int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a,b; b=p[5]; b中的值是( B )。 A)5 B)6 C) 8 ) 9 D 181、有以下程序 #include void main( ) { char *p[10]={\"abc\ cout< } 执行后输出结果是 ( B ) A)dcdbe B) abbd C) abc D)182、下列静态数据成员的特性中,( C )是错误的。 A) 说明静态数据成员时前边要加修饰符static B) 静态数据成员要在类体外进行初始化 abb C) 静态数据成员不是所有对象所共用的 D)引用静态数据成员时,要在其名称前加<类名>和作用域运算符 183下列变量名中,( A )是合法的。 A. CHINA B. byte-size C. double D. A+a 184. 一个函数无返回值时,应选择的说明符是_____C_____。 a. static b. extern c. void d. 无说明符 185. 成员函数可声明为静态的,条件是它不访问 _____C ____类成员。 a. 静态 b. 常数 c. 非静态 d. 公共 186. 一般情况下,内联函数执行起来比标准函数_____ _B________。 a. 更慢 b. 更快 c. 次数更多 d. 以上都不是 187. 对重载函数形参的描述中,错误的是_______C______。 a. 参数的个数可能不同 b. 参数的类型可能不同 c. 参数的顺序可能不同 d. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同 188. 在 C++ 中,混合类型表达式______A_____。 a. 允许存在 b. 为一错误 c. 从 int 到 float d. 从 float 到 int 1. 如果有int x,*p; float y,*q;则下面操作正确的是____C________。 a.p=x b.p=q c.p=&x d.p=&y 190. 静态数据成员的生存期________A______。 a. 与整个程序相同 b. 不长于类的生存期 c. 取决于创建的对象数 d. 以上都不是 191.若数组名作实参而指针变量作形参,函数调用时实参传给形参的是( D ) a. 数组的长度 b. 数组第一个元素的值 c. 数组所有元素的值 d. 数组第一个元素的地址 192、C++是( C )。 A. 面向对象的程序设计语言 B. 面向过程的程序设计语言 C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D. 非结构化的程序设计语言 193、面向对象程序设计思想的主要特征中不包括( D ) A. 封装性 B. 多态性 C. 继承性 D. 功能分解,逐步求精 194、若定义:string str; 当语句cin>>str; 执行时,从键盘输入: Microsoft Visual Studio 6.0! 所得的结果是str=( B )。 A. Microsoft Visual Studio 6.0! B. Microsoft C. Microsoft Visual D. Microsoft Visual Studio 6.0 195、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是( C )。 A. testDefaulParam(5); B. testDefaulParam(5,8); C. testDefaulParam(5,'#'); D. testDefaulParam(0,0,'*'); 196、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。 A. float sum(int x, int y); B. int sum(int a, int b); C. float sum(float x, float y); D. double sum(int y, int x); 197、下列表示引用的方法中,( A )是正确的。 已知:int a=1000; A. int &x=a; B. char &y; C. int &z=1000; D. float &t=&a; 198、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A )。 A. 内联函数 B. 重载函数 C. 递归调用 D. 嵌套调用 199、下列有关C++类的说法中,不正确的是( D )。 A. 类是一种用户自定义的数据类型 B. 只有类中的成员函数或类的友元函数才能存取类中的私有成员 C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的 D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的 200、已知X类,则当程序执行到语句:X array[3];时,调用了( D )次构造函数。 A. 0 B. 1 C. 2 D. 3 201、下面说法中,正确的是( B ) A. 一个类只能定义一个构造函数,但可以定义多个析构函数 B. 一个类只能定义一个析构函数,但可以定义多个构造函数 C. 构造函数与析构函数同名,只要名字前加了一个求反符号(~) D. 构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以 202、已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,( A )是正确的。 A. void print( ) const; B. const void print( ); C. void const print( ); D. void print(const); 203、下面描述中,表达错误的是( B ) A. 公用继承时基类中的public成员在派生类中仍是public的 B. 公用继承时基类中的private成员在派生类中仍是private的 C. 公用继承时基类中的protected成员在派生类中仍是protected的 D. 私有继承时基类中的public成员在派生类中是private的 204、设置虚基类的目的是( B )。 A. 简化程序 B. 消除二义性 C. 提高运行效率 D. 减少目标代码 205、下面( B )的叙述不符合赋值兼容规则。 A. 派生类的对象可以赋值给基类的对象 B. 基类的对象可以赋值给派生类的对象 C. 派生类的对象可以初始化基类的对象 D. 派生类的对象的地址可以赋值给指向基类的指针 206、关于虚函数的描述中,( C )是正确的。 A. 虚函数是一个static类型的成员函数 B. 虚函数是一个非成员函数 C. 基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数 D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型 207、下面关于友元的描述中,错误的是( D )。 A. 友元函数可以访问该类的私有数据成员 B. 一个类的友元类中的成员函数都是这个类的友元函数 C. 友元可以提高程序的运行效率 D. 类与类之间的友元关系可以继承 208、下列关于静态数据成员的说法,不正确的是(C )。 A. 类中定义的公用静态数据成员,可以通过类的对象来访问 B. 类中定义的所有静态数据成员,都必须在类外初始化 C. 静态数据成员不是所有对象所共用的 D. 普通的成员函数可以直接访问类中的静态数据成员 209、如果表达式++i*k中的“++”和“*”都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为( B )。 A. operator*(i.operator++(),k) B. operator*(operator++(i),k) C. i.operator++().operator*(k) D. k.operator*(operator++(i)) 210、下面对模板的声明,正确的是( C )。 A. template C. template 211、下列的各类函数中,( C )不是类的成员函数 A. 构造函数 B. 析构函数 C. 友元函数 D. 复制构造函数 212、关于C++与C语言关系的描述中,( D )是错误的。 A.C语言是C++语言的一个子集 B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进 D.C++语言和C语言都是面向对象的 213、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是( A )。 A.函数的返回值类型 B.参数的类型 C.函数名称 D.参数个数 214、有关析构函数的说法,不正确的是( B )。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型 215、类定义的内容允许被其对象无地存取的是( C )。 A.private 部分 B. protected 部分 C.public 部分 D.以上都不对 216、关于常数据成员的说法,不正确的是( D )。 A.常数据成员的定义形式与一般常变量的定义形式相同,只不过常数据成员的定义必须出现在类体中 B.常数据成员必须进行初始化,并且不能被更新 C.常数据成员通过构造函数的成员初始化列表进行初始化 D.常数据成员可以在定义时直接初始化 217、运用运算符delete删除一个动态对象时( C )。 A.系统首先为该动态对象调用构造函数,再释放其占用的内存 B.系统首先释放该动态对象占用的内存,再为其调用构造函数 C.系统首先为该动态对象调用析构函数,再释放其占用的内存 D.系统首先释放动态对象占用的内存,再为其调用析构函数 218、可以在类外用p.a的形式访问派生类对象p的基类成员a,其中a是( D )。A.私有继承的公用成员 B.公用继承的私有成员 C.公用继承的保护成员 D.公用继承的公用成员 219、在公用继承方式下,有关派生类对象和基类对象的关系,不正确的叙述是( A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用 C.派生类的对象可以直接访问基类中的成员 C )。 D.派生类的对象的地址可以赋给指向基类的指针 220、在C++中,用于实现动态多态性的是( D )。 A.内联函数 B.重载函数 C.模板函数 D.虚函数 221、不能说明为虚函数的是( B )。 A.析构函数 B.构造函数 C.类的成员函数 D.以上都不对 222、如果一个类至少有一个纯虚函数,那么就称该类为( A )。 A.抽象类 B.派生类 C.纯基类 D.以上都不对 223、下面关于友元的描述中,错误的是( D )。 A.友元函数可以访问该类的私有数据成员 B.一个类的友元类中的成员函数都是这个类的友元函数 C.友元可以提高程序的运行效率 D.类与类之间的友元关系可以继承 224、下列运算符中,( C )运算符在C++中不能被重载。 A.&& B.[] C.:: D.new 225、模板的使用实际上是将类模板实例化成一个( C )。 A.函数 B.对象 C.类 D.抽象类 226、假定MyClass为一个类,则该类的拷贝构造函数的声明语句为( C )。 A.MyClass(MyClass x) B.MyClass&(MyClass x) C.MyClass(MyClass &x) D.MyClass(MyClass *x) 227. 关键字 ______C______ 说明对象或变量初始化后不会被修改。 a. static b. public c. const d. inline 228. 如果调用带有默认参数的函数时缺少一个参数,则__B_________参数就作为这一参数。 a. 第一个 b. 最后一个 c. 中间一个 d. 以上都不是 229. 成员函数可声明为静态的,条件是它不访问 ____C______类成员。 a. 静态 b. 常数 c. 非静态 d. 公共 230. 内联函数执行起来比标准函数_____B__________。 a. 更慢 b. 更快 c. 次数更多 d. 以上都不是 231. 默认参数的值由__A______提供。 a. 该函数 b. 调用程序 c. 上述二者 d. 以上都不是 232. 在 C++ 中,混合类型表达式______A_______。 a. 允许存在 b. 为一错误 c. 从 int 到 float d. 从 float 到 int 233. 表达式 long(intVar) 也可表示为 _____C__________。 a. intvar = long; b. intVar(long) c. (long)intVar d. 以上都不是 234. 静态数据成员的生存期________A_________。 a. 与整个程序相同 b. 不长于类的生存期 c. 取决于创建的对象数 d. 以上都不是 235. 要让一个类中的所有对象具有共同的数据,请使用______C____________。 a. 常数成员变量 b. 私有数据成员 c. 静态数据成员 d. 以上都是 二、C++程序阅读分析题 1. #include void main() { char c=’m’; int d=5; cout<<\"d=\"< 请写出输出结果。 2. #include \"iostream.h\" void main() { int x,y,z; x=2/4*7; y=2/4*7.0; z=int(2/4.0*7); cout<<\"x=\"< 请写出输出结果。 0,0,3 3. #include \"iostream.h\" void main() { int x,y,z; x=3; y=++x; z=x; cout<<\"x=\"< 请写出输出结果。 4,4,4 4. #include \"iostream.h\" void main() { int x,y,z; x=3; y=x++; z=x; cout<<\"x=\"< 请写出输出结果。 4,3,4 5. #include \"iostream.h\" void main() { int x,y,z; x=3; y=x++; z=x; cout<<\"x=\"< 请写出输出结果。 6. #include \"iostream.h\" void main() { int x,y,z; x=3;y=5; x=x+y; y=x-y; x=x-y; cout<<\"x=\"< 请写出输出结果。 5,3 7. #include \"iostream.h\" void main() { float a,b,c,t; a=7;b=3;c=15; if (a>b) { t=a;a=b;b=t; } if (a>c) { t=a;a=c;c=t; } if (b>c) { t=b;b=c;c=t; } cout<} 请写出输出结果。 3,7,15 8. #include \"iostream.h\" void main() { float x,y; x=-5; if (x<0) y= -1; else; if (x<=10) y=x; else y=x*x+1; cout<<\"x=\"< 请写出输出结果。 如果有“;” 输出-5 否则-1 9. #include \"iostream.h\" void main() { int m;char a; cin>>m; switch(m/10) { case 1: case 2: case 3: case 4: case 5: a=’C’ ; case 6: case 7: a=’B’; case 8: case 9: case 10: a=’A’; } cout<} 当输入65时,请问输出的内容是( )。 10. #include \"iostream.h\" void main() { int m;char a; cin>>m; switch(m/10) { case 1: case 2: case 3: case 4: case 5: a=’C’; case 6: case 7: case 8: case 9: case 10: } cout<a=’B’; a=’A’; } 当输入25时,请问输出的内容是( )。 11. #include \"iostream.h\" void main() { char c; cin>>c; if(c>=’a’ && c<=’u’) c=c+5; else if(c>=’v’&&c<=’z’) c=c-21; cout< 当输入b时,请问输出的内容是( )。 12. #include \"iostream.h\" void main() { int c; cin>>c; if(c>=8 || c<=3) c=c+5; else c=c-21; cout< 当输入2时,请问输出的内容是( )。 13. #include void main() { int i=0; while(++i) { if(i==10) break; if(i%3!=1) continue; cout<} } 请写出输出结果。 14. #include void main() { int a,b; for(a=1,b=2; b<50;) { cout<a=a+b; b=a+b; } } 请写出输出结果。 15. #include void main() { int x=5; do{ switch(x%2) { case 1:x--; break; case 0:x++; break; } x--; cout< } 请写出do-while循环体的执行次数。 16. #include void main() { for(int i=1,s=0;i<20;i++) { if(i%2==0 || i%3==0) continue; cout<s+=i; } cout< 请写出输出结果。 17. #include void main() { int i=1; do{ i++; cout<<++i<<” ”; if(i= =7) break; }while(i= =3); } 请写出输出结果。 18. #include\"iostream.h\" void main() { int i,t,sum=0; for(t=i=1;i<10;) { sum+=t; ++i; if(i%3==0) t=-i; else t=i; } cout<<\"sum=\"< 请写出输出结果。9 19. #include\"iostream.h\" void main() { int i,n,d[10]={1,2,3,4,5,6,7,8,9,10}; i=n=1; while(i<10) { if(n==1) i+=4; else i-=2; if(i<10) cout< } } 请写出输出结果。 20. #include int a[8]={36,25,20,43,12,70,66,35}; void main() { int s0,s1,s2; s0=s1=s2=0; for(int i=0; i<8; i++) { switch(a[i]%3) { case 0: s0+=a[i];break; case 1: s1+=a[i];break; case 2: s2+=a[i];break; } } cout< 请写出输出结果。 6,4,8,6,10,8 21. #include \"iostream.h\" #include \"string.h\" void main() { int i,n; char s[101]; cin.getline(s,100); cout<<\"处理前:\"; cout< for(i=n-1;i>=0;i--) if (s[i]!='!') break; s[i+1]=0; cout<<\"处理后:\"; cout< 程序运行时,输入字符串“abcdefg”回车并执行到最后,s的内容是( )。 22. #include\"iostream.h\" void main() { int a[]={1,3,5,7,9}; int *p,*q,k; p=&a[0]; q=&a[4]; for(;q-p>0;p++,q--) { k=*p; *p=*q; *q=k; } for(k=0;k<4;k++) cout<cout< 请写出输出结果。 23. #include \"iostream.h\" void main( ) { int a[3][3]={{1,3,5},{7,9,11},{13,15,17}}; int *p; for(p=a[0];pcout<<*p<<\" \"; cout< 请写出输出结果。 24. # include main() { int x[3][3],i,j; for (i=0;i<3;i++) for (j=0;j<3;j++) *(*(x+i)+j)=i-j; for (i=0;i<3;i++) for (j=0;j<3;j++) cout< 请写出输出结果。 25. #include int sum(int n) {int c=0; do{ c+=n%10; n/=10; } while(n); return c; } main() { cout< 10,22 26. #include\"iostream.h\" void main() { int t(int ); int x; x=t(5); cout< int t(int a) { if(a>0) return a*t(a-2); else return 1; } 请写出输出结果。 15 27. #include #include void r(char *s) {int len,i; char c; len=strlen(s); for(i=0;i } void main() { char c[]=\"abcdef\"; r(c); cout< 请写出输出结果。 28. #include #define N 5 void fun(); void main() { for (int i=1;i } void fun () { static int a; int b=2; cout<<(a+=3,a+b)<<\" \"; } 请写出输出结果。 29. #include #define N 5 int f1(int a); void main() { int a(N); cout< int f1(int a) { return(a==0)?1:a*f1(a-1); } 请写出输出结果。 30. #include int fac(int a); void main() { int s(0); for(int i(1);i<=3;i++) s+=fac(i); cout< int fac(int a) { static int b=1; b*=a; return b; } 请写出输出结果。 9 31、#include void main() { int i=1,sum=0; while(i<=10) sum+ = ++i; cout << \"sum=\" << sum << \ } 运行结果: 32、#include void main() { int i; for(i=4 ; i<=10 ; i++ ) { if (i%3==0) continue; cout<} 运行结果: 33、#include void Swap( int &a, int & b); void main() { int x( 10 ), y( 7 ); cout<<\"x=\"< cout<<\"x=\"< void Swap(int & a, int & b) { int temp; temp = a ; a=b ; b=temp ; } 运行结果: 34、#include int add(int a, int b); void main() { extern int x, y; cout< int x(50),y(100); int add(int a, int b) { int s=a+b ; return s; } 运行结果: 35、#include class A{ public: A(); A(int i,int j); ~A(){cout<<\"Donstructor.\\n\";} void print(); private: int a,b;}; A::A() { a=b=10;cout<<\"Default constructor.\\n\";} A::A(int i,int j) { a=i,b=j;cout<<\"Constructor.\\n\";} void A::print() {cout<<\"a=\"<void main() { A m,n(15,18); m.print();n.print(); } 运行结果: 36、#include using namespace std; class A {friend double count(A&); public: A(double t, double r):total(t),rate(r){} private: double total; double rate; }; double count(A& a) { a.total+=a.rate*a.total; return a.total; } int main(void) { A x(80,0.5),y(100,0.2); cout< } 运行结果: 120,120 180 37、 #include using namespace std; class Count{ private: static int counter; int obj_id; public: Count(); //constructor static void display_total(); //static function void display(); ~Count(); //destructor }; int Count::counter; //definition of static data member Count::Count() //constructor { counter++; obj_id = counter; } Count::~Count() //destructor { counter--; cout<<\"Object number \"< void Count::display_total() //static function { cout <<\"Number of objects created is = \"< void Count::display() { cout << \"Object ID is \"< int main(void) { Count a1; Count::display_total(); Count a2, a3,a4; Count::display_total(); a2.display(); a4.display(); return 0; } 运行结果: 38、#include using namespace std; class BASE { char c; public: BASE(char n):c(n){} virtual ~BASE(){cout< class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout< int main(void) { DERIVED('X'); return 0; } 运行结果: 39、 #include int func(int a) { int b=0; static int c=4; b++; c--; return(a+b+c); } void main( ) { int a=2; for(int j=0;j<2;j++) cout< 输出结果为: 6,6 40、 #include class X { public: X(int i) { x=i; cout<<\"int: \"<X(double i) { x=(int)i*2; cout<<\" double: \"<~X() { cout<<\" ~X(): \"< int x; }; void main() { int a=8; double b=11.0; X x1(55), x2(a*5); X x3=X(2*a); X x4=X(b); } 运行结果: 41、#include int a[]={2,4,6,8,10}; int &index(int i) { return a[i]; } void main() { int i; index(3)=12; for (i=0;i<=4;i++) cout<} 运行结果: 42、#include class toy { public: toy(int q, int p) { quan = q; price = p; } int get_quan() { return quan; } int get_price() { return price; } private: int quan, price; }; main() { toy op[3][2]={ toy(10,20),toy(30,48), toy(50,68),toy(70,80), toy(90,16),toy(11,120), }; int i; for (i=0;i<3;i++) { cout< cout<<\"\\n\"; return 0; } 运行结果: 43、#include class example { public: example(int n) { i=n; cout<<\"Constructing\\n \"; } ~example() { cout <<\"Destructing\\n\"; } int get_i() { return i; } private: int i; }; int sqr_it(example o) { return o.get_i()* o.get_i(); } main() { example x(10); cout< } 运行结果: 44、#include class Test { private: int x; public: Test() { cout<<\"构造函数被执行\"< } ~Test() {cout<<\"析构函数被执行\"< void main() { Test obj1,obj2; obj1.print(); obj2.print(); } 运行结果: 46、#include using namespace std; int a[8]={1,2,3,4,5,6,7}; void fun(int *pa,int n); void main( ) { int m=8; fun(a,m);程序执行后的输出结果是( C )。B)char s[3]=\"C++\";cout<C)char s[3]={'C','+','+','\\0'};cout<D)char s[3]={'C','+','+'};cout<180、有以下程序段}n=strlen(s);}}