test1

发布时间 : 星期二 文章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 #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 #include using namespace std; func (char str []) {

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 using namespace std; class MyClass{ public:

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

联系合同范文客服:xxxxx#qq.com(#替换为@)