当前位置:首页 > test1
一·c++
一、选择题(40分,每题2分) (1) 以下叙述中错误的是A
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意” C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识 (2) 以下叙述中错误的是C A)C++语句必须以分号结束
B)复合语句在语法上被看作一条语句
C)空语句出现在任何位置都不会影响程序运行 D)赋值表达式末尾加分号就构成赋值语句 (3) 在C++语言提供的合法的关键字是 D
A)swicth B)cher C)Case D)default (4) 在C语言中,合法的字符常量是B
A)'\\084' B)'\\x43' C)'ab' D)\ (5) 下列变量定义中合法的是 C A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3;
(6) 以下能正确定义且赋初值的语句是B A)int n1=n2=10; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5;
(7) 以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。 main()
/* Beginning */ { int r; float s; cin>>r; s=*π*r*r;
cout<<\}
出错的原因是D
A)注释语句书写位置错误 B)存放圆半径的变量r不应该定义为整型 C)输出语句中格式描述符非法 D)计算圆面积的赋值语句中使用了非法变量 (8) 合法的数组定义是 D
A) int a[]=\ B) int a[5]={0,1,2,3,4,5}; C) char s=\ D) char a[]={0,1,2,3,4,5};
(9) 若有以下定义:
char s[20]=\ 则不能代表字符o的表达式是 A
A)ps+2 B)s[2] C)ps[2] D)ps+=2,*ps (10) 若有以下定义和语句:A
char *s1=\
1
cout< int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a数组元素的表达式是 A)*p B)a[10] C)*a D)a[p-a] (12) 若有以下的定义: D int a[]={1,2,3,4,5,6,7,88,9,10}, *p=a; 则值为3的表式是 A)p+=2, *(p++) B)p+=2,*++p C)p+=3, *kp++ D)p+=2,++*p (13) 若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是 C A)1 B)2 C)2.0 D)2.5 (14) 设a为整型变量,不能正确表达数学关系:10 A)10 C)a>10&&a<15 D)!(a<=10)&&!(a>=15) (15) 若t为double类型,表达式t=1,t+5,t++的值是C A)1 B)6.0 C)2.0 D)1.0 (16) 在以下一组运算符中,优先级最高的运算符是 C A)<= B)= C)% D)&& (17) 设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为 C A) 4 B) 16 C) 32 D) 52 (18) 若i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是 A for (i=5;i;i--) for(j=0;j<4;j++){……} A)20 B)25 C)24 D)30 (19) 下面程序的输出是 C main() { char *s=\ int k=0, a=0, b=0; do {k++; if(k%2==0) {a=a+s[k]-'0';continue;} b=b+s[k]-'0'; a=a+s[k]-'0'; }while (s[k+1]); cout<<\ } A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 (20) 以下程序的输出结果是 B #include D)k=2 a=2 b=3 2 using namespace std; void sub1(char a,char b) {char c; c=a;a=b;b=c;} void sub2(char* a,char b) {char c; c=*a;*a=b;b=c;} void sub3(char* a,char*b) {char c; c=*a;*a=*b;*b=c;} int main(int argc, char* argv[]) { char a,b; a='A';b='B';sub3(&a,&b);cout.put(a);cout.put(b); a='A';b='B';sub2(&a,b);cout.put(a);cout.put(b); a='A';b='B';sub1(a,b);cout.put(a);cout.put(b); return 0; } A) ABABAB B) BABBAB C) BABABA D) ABBAAB (21) 以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为 C #include int num =0; while (*(str+num )!='\\0')num ++; return(num); } int main(int argc, char* argv[]) { char str [10]=\ cout<< func(p); return 0; } A) 8 B) 7 C) 6 D) 5 (22) 下列情况中,不会调用拷贝构造函数的是 。B A)用一个对象去初始化同一类的另一个新对象时 B)将类的一个对象赋予该类的另一个对象时 C)函数的形参是类的对象,调用函数进行形参和实参结合时 D)函数的返回值是类的对象,函数执行返回调用时 (23) 在 C++中,编译系统自动为一个类生成缺省构造函数的条件是( C)。A)该类没有定义任何有参构造函数 B)该类没有定义任何无参构造函数 3 C)该类没有定义任何构造函数 D)该类没有定义任何成员函数 (24) 下列有关继承和派生的叙述中,正确的是 。 A)如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员 A B)派生类的成员函数可以访问基类的所有成员 C)基类对象可以赋值给派生类对象 D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类 (25) 在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编 译。这说明(A )。 A)f()是基类的私有成员 C)派生类的继承方式为私有 B)f()是基类的保护成员 D)派生类的继承方式为保护 (26) 下列运算符函数中,肯定不属于类 Value 的成员函数的是(B )。 A)Value operator+(Value); B)Value operator-(Value, Value); C)Value operator*(int); D)Value operator/(Value); (27) 有如下程序:A #include 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); return 0: } 4
共分享92篇相关文档