C/C++语言程序设计单元测试(一)
班级: 学号: 姓名: 得分: 一、选择题
1.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( C ) A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母,数字和下划线中任一种字符 2.以下4组用户定义标识符中,全部合法的一组是(A) A._main enclude sin1 B.If -max turbo C.txt REAL 3COM D.int k_2 _001 3. 下列不是C++语言合法的关键字是( D )
A. swicth B. char C. sizeof D. cin 4.下面正确的字符常量是( C ) A.\ B.'\\\\'' C.'W' D. ' ' 5.下面不正确的字符串常量是( A ) A.'abc' B.\ C.\ D.\ 6. 字符串“cp”存放在内存中占用字节数为( C ) A.2 B.4 C. 3 D. 1
7.设有数组定义:char array[ ]=\则数组所占的空间是 ( C )。
A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节 8. 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;功能是( D ) A. 把x和y按从大到小排列 B. 把x和y按从小到大排列 C. 无确定结果 D. 交换x和y中的值
9.字母A的ASCII码为65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( B ) A.D B.68 C.不确定的值 D.C
10.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(B) A.2.500000 B.2.7500OO C.3.500000 D.0.000000
11.设有说明: char w; int x; f1oat y; double z;则表达式w* x+z一y值的数据类型为( D ) A.float B.char C.int D.double 12.若有以下定义,则能使值为3的表达式是(D ) int k= 7,x =12; A.x%=(k%=5) B.x%=(k-k%5) C.x%=k- k%5 D.(x%=k)-(k%=5)
12.若希望当A的值为奇数时,表达式的值为\真\,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( C ) A. A%2= =1 B.!(A%2 = =0) C.!(A%2) D.A%2 13.设有 int a = 1,b=2,c =3, d =4, m=2, n=2; 执行(m= a>b)&&(n=c>d)后n的值为(B) A.1 B.2 C.3 D.4 14.若w=1,x = 2,y= 3,z=4,则条件表达式w 1 15.若s是int型变量,则表达式s=17/3%3的值为( C )。 A.25 B.1 C.2 D.3 16. 设有程序段int m=0; while (m=2) m=m++;则下面描述中正确的是( D )。 A. while 循环执行2 次 B. 循环体语句执行1次 C. 循环体语句1次也不执行 D. 循环是无限循环 17. 若已定义int a[10];则在下列表达式中不表示a[1]的地址的是( A ) A.a++ B.a+1 C.&a[0]+1 D.&a[1] 18. 面有关C语言函数的叙述正确的是( B ) 。 A.可嵌套定义 B.嵌套调用和递归调用均可 C.不可以嵌套调用 D.可嵌套调用但不可递归调用 19.定义int a=10; int *p=&a; 下列描述( D )是正确的。 A.&a和&p的值相同; B.&a和*p的值相同; C.a和p的值相同; D.&a和p的值相同; 20.下列关于结构体描述中,错误的是( C)。 A.结构体可以包括基本数据类型变量 B.结构体可以包含其他已定义的结构体变量 C.结构体可以包含自身类型的变量 D. 结构体可以包含自身类型的指针变量 21. 下面对于友元函数描述正确的是( C )。 A. 友元函数是类的成员函数 B. 友元函数的实现必须在类的内部定义 C. 友元函数破坏了类的封装性 D. 友元函数不能访问类的私有成员 15. 公有继承时,子类函数只可访问父类中的( B )和子类自己的公有成员。 A.非私有成员; B.公有成员; C.私有成员; D.保护成员; 二、程序分析题 1. 以下程序的运行结果 10-9 #include int x=1, y=0, a=10, b=10; switch(x) { case 1: switch(y) { case 0: a--; break; case 1:b++; break; } case 2:a++;b--;break; }