《C/C++程序设计》练习题(1)
一、选择题
1. 关于C++与C语言的关系的描述中,( )是错误的。
A. C语言是C++的一个子集;
B. C语言与C++是兼容的;
D. C++和C语言都是面向对象的
C. C++对C语言进行了一些改进;
2. 在int b[][3]={{1},{3,2},{4,5,6},{0}};b[2][2]的值是( )。 A. 0;
B. 2; C. 5;
D. 6
3. 下列各运算符中,()优先级最高。
A. +(双目); B. *(单目); C. <=; D. *= 4. 下列for循环的次数为( )。
for(int i(0),x=0;!x&&i<=5;i++)
A. 5; B. 6; C . 1; D. 无限; 5. 下述关于break语句的描述中,( )是正确的。
A. break语句可用于循环体内,它将退出该重循环; B. break语句可用于开关语句中,它将退出开关语句。 C. break语句可用于if体内,它将退出if语句; D. break语句在一个循环体内可以出现多次。
6. 在一个被调用函数中,关于return语句使用的描述,( )是错误的。
A. 被调用函数中可以不用 return语句; B. 被调用函数中可以使用多个return语句;
C. 被调用函数中,如果有返回值,就一定要有return语句; D. 被调用函数中,一个return语句可返回多个值给调用函数。 7. 在C++中,关于下列设置参数默认的描述中,( )是正确的。
A. 不允许设置参数的默认值;
B. 设置参数默认值只能在定义函数时设置;
C. 设置参数默认值时,应该是先设置右边的再设置左边的; D. 设置参数默认值时,应该全部参数都设置;
第 1 页 共 9页
8. 下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()合适。 A. 内联函数;
B. 重载函数; C. 递归调用; D. 嵌套调用。
9. 下列的各类函数中,( )不是类的成员函数。
A. 构造函数; B. 析构函数; 10. ( )不是构造函数的特征
A. 构造函数的函数名与类名相同; B. 构造函数可以重载;
C. 构造函数可以设置缺省参数; D. 构造函数必须指定类型说明。
11. f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用( )是正确的。
A. p=f1; B. p=A::f1; C. p=A::f1(); D. p=f1(); 12. 下列定义中,( )是定义指向数组的指针p。
A. int *p[5]; B. int (*p)[5]; C. (int *)p[5]; D. int *p[ ]; 二、判断题
1. C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。( ) 2. 数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。( ) 3. 隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。( ) 4. 宏定义命令是以分号结束的。( )
5. While循环语句的循环体至少执行一次。( )
6. 返回值类型、参数个数和类型都相同的函数也可以重载。( ) 7. 函数形参的作用域是该函数的函数体。( ) 8. 静态类标识符在它的作用域之外是不存在的。( )
9. 对象成员的表示与结构变量成员表示相同,使用运算符.或->。( ) 10. 某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。( ) 11. 对象数组的元素可以是不同类的对象。( )
12. const char *p说明了p是指向字符串的常量指针。( ) 三、读程题,写出程序的运行结果。 1、 #include
C . 友元函数;
D. 拷贝初始化构造函数;
void main() {
int i(1),sum=0; do{
第 2 页 共 9页
sum+=i++; }while(i<=6);
cout<<\
}
2、#include
void main() {
int x=3,y=3; switch(x%2) {
case 1: switch (y) { case 0:cout<<\
case 1:cout<<\ default: cout<<\ }
case 2:cout<<\ } }
3、#include
void main()
{ for(int i=0;++i;i<5) {
if(i==3)
{ cout<<++i< 4、#include int a[8]={1,2,3,4,5,6,7}; void fun(int b[ ],int n); void main( ) { int m=8; fun(a,m); cout< void fun(int b[ ],int n) { for (int I=0;I 5、#include #include 第 3 页 共 9页 void main( ) { char s1[]=\ char s3[30]; int ns1=strlen(s1); int nc=strcmp(s1,s2); strcpy(s3,s1); strcat(s3,s2); cout<<\cout<<\cout<<\ } 6、#include class AA { public: AA(int i,int j) {A=i;B=j;cout<<\ AA(AA &obj) {A=obj.A+1;B=obj.B+2;cout<<\ ~AA() {cout<<\ void print() {cout<<\ private: int A,B; }; void main() { AA a1(2,3); AA a2(a1); a2.print(); AA *pa=new AA(5,6); pa->print(); delete pa; } 四、综合应用题(10分) 编写一个简单程序,要求:1)从键盘上输入6个整数放入数组a[6]中(用for循环实现);2)求出数组元素的最大值及数组的平均值并输出。 第 4 页 共 9页 《程序设计语言C/C++》练习题(2) 一、填空题 1. C++语言的头文件与源程序文件扩展名分别是( ① )和( ② )。 2. 在C++程序中使用基本输入与输出流时需要包含的头文件名是( ③ )。 3. 在C++语言中,惟一的一个三目运算运算符是( ④ )。 4. 在C++语言中,数值常量59、为0123及0x9f对应的十进制值分别是( ⑤ )、( ⑥ )、( ⑦ )。 5. 假定int x=4,y=8;则x<<2和y>>2的值分别是( ⑧ )、( ⑨ )。 6. 设对数组赋初值如下:int a[ ]={2,7,9,6,5,7,10},则a[2]=( ⑩ ),a[5]= ( 11 )。 7. 若变量y是变量x的引用,则对变量y的操作就是对变量( 12 )的操作。 8. 一个二维字符数组s[10][20]能够存储( 13 )个字符串,每个字符串的长度至多为( 14 )。 9. C++中当一个函数无返回值时,则函数的类型是( 15 )。 10. 一个类中可以有( 16 )个构造函数,只能有( 17 )个析构函数。 11. 在字长为32位的机器中,sizeof(char)=( 18 )字节,sizeof(unsigned int)=( 19 )字节. 12. C++语法规定,任何变量在使用前必须先( 20 );变量有两个值,一个是变量( 21 )值,另一个是变量的( 22 )值。 二、选择题 1、关于C++与C语言的关系的描述中,( )是错误的。 A. C语言是C++的一个子集; B. C语言与C++是兼容的; D. C++和C语言都是面向对象的 C. C++对C语言进行了一些改进; 2、下列各运算符中,()优先级最高。 A. +(双目); B. *(单目); C. <=; D. *= 3、下列for循环的次数为( )。 for(int i(0),x=0;!x&&i<=6;i++) A. 5; B. 6; C . 7; D. 无限; 第 5 页 共 9页