CC++复习题.docx
- 文档编号:23557966
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:44
- 大小:33.09KB
CC++复习题.docx
《CC++复习题.docx》由会员分享,可在线阅读,更多相关《CC++复习题.docx(44页珍藏版)》请在冰豆网上搜索。
CC++复习题
C/C++复习题
一、选择题
1.下列符号常量中,合法的C常量是()
A)0xB)‘WT’
C)1.7E+2.1D)‘W’
2.为避免嵌套选择语句ifelse的二义性,C语言规定else与()配对。
A、缩排位置相同的ifC、其之前最近的且没有配对的if
C、其之后最近的ifD、同一行上的if
3.用scanf()函数输入字符串型数据时,用()格式。
A、%cB、%dC、%sD、%f
4.C语言存储字符串时,用特殊的字符()表示字符串的结束。
A)‘\t’B)‘\n’
C)‘\0’D)回车符
5.定义函数时,若函数没有返回值,则返回值类型应设为()
A)NULLB)voidC)intD)不给出返回值类型
6.若x,y已正确定义且x=2,y=x>=1,则y的值为()。
A、2B、0C、1D、不确定
7.若有定义:
inta[20],*p=a;则p+10表示()
A)a[10]B)a[9]C)&a[10]D)&a[9]
8.以下叙述不正确的是()
A、一个C程序可由一个或多个函数组成。
B、一个C程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,main函数的位置必须在程序的最开始。
9.在嵌套if-else的语言中,else总是与()配对。
A)第一个ifB)其之前最近的if
C)其之前最近的且不带else的ifD)缩进位置相同的if
10.若有以下语句,则下面()是正确的。
charx[]=”12345”;
chary[]={‘1’,‘2’,‘3’,‘4’,‘5’};
A、x,y完全相同B、x数组长度大于y数组长度
C、x数组长度小于y数组长度D、x,y字符串长度相等
11.C语言由主函数组成,它的()
A)主函数必须在其它函数之前,函数内可以嵌套定义函数
B)主函数可以在其它函数之后,函数内不可以嵌套定义函数
C)主函数必须在其它函数之前,函数内不可以嵌套定义函数
D)主函数可以在程序的任何位置,函数内可以嵌套定义函数
12.以下叙述正确的是()
A、C语言中用1表示“真”,0表示“假”
B、C语言中用0表示“真”,1表示“假”
C、C语言中用true表示“真”,false表示“假”
D、C语言中用false表示“真”,true表示“假”
13.表达式!
x||a==b等效于()
A)!
((x||a)==b)B)!
(x||y)=bC)!
(x||(a==b))D)(!
x)||(a==b)
14.若a=3,b=4,c=5,则表达式a&&b+c||b==c/2的值为()
A、1 B、0 C、2 D、 -1
15.字符变量ch=‘A’,int类型变量k=25,printf(“%d%d%d\n”,ch,k,ch>k);输出()
A)65,25,1B)65252C)65,25,fD)6525f
16.若inta=6;则执行表达式a-=a*a后,a的值为()。
A、0 B、-30 C、30 D、 1
17.下列各语句定义数组,其中哪一个是正确的()
A)ints1[5],s2[4,2]B)intn,a[n]
C)charst[5]=“A”D)intx(10),y(10)
18.假设所有变量均为整型,则表达式(a=2,b=5,a++,b+1,a+b)的值为()
A、6 B、7 C、8 D、 9
19.对以下程序段,while循环执行的次数是()
intk=0;
while(k=1)k++;
A)无限次B)有语法错误,不能执行
C)一次也不执行D)执行一次
20.C语言的循环语句有while,dowhile还有()。
A、.ifB、switchC、forD、continue
21.关于指针变量的引用,下列说法中错误的是()
A)“指针变量”可以出现在赋值表达式的左边,也可以出现在右边。
B)“*指针变量”可以出现在赋值表达式的左边,也可以出现在右边。
C)指针变量的前面可以出现指针运算符“*”。
D)指针变量的前面不可以出现取地址运算符“&”。
22.若有说明inta[10];则对a数组元素的正确引用是()。
A、a(5)C、a[10]C、a[2.5]D、a[2+3]
23.面向对象的系统设计中最突出的特点是:
()
A、封装性B、继承性C、多态性D、以上都是
24.下面有关for循环的正确的描述是()
A)for循环只能用于循环次数已经确定的情况。
B)for循环是先执行循环体语句,后判断表达式。
C)在for循环中,不能用break语句跳出循环体。
D)for循环的循环体语句中,多条语句,但必须用花括号括起来。
25.若有定义:
inta[20],*p=a;则p+5表示()
A、a[5]B、a[4]C、&a[5]D、&a[4]
26.以下描述中正确的是()
A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B)do-while循环由do开始,由while结束,在while()后面不能写分号。
C)在do-while循环体中,一定要有使while后面表达式的值变为0的操作。
D)do-while循环中,根据情况可以省略while。
27.能正确表示“当x的取值在[110]和[200210]范围内为真,否则为假”的表达式是()
A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B)(x>=1)||(x<=10)||(x>=200)||(x<=210)
C)(x>=1)||(x<=10)&&(x>=200)||(x<=210)
D)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)
28.以下scanf函数调用中对结构变量成员的错误引用是()
structstudent
{charname[20];
intage;
intsex;
}stud[5],*p;
p=stud;
A、scanf(“%s”,stud[0].name);B、scanf(“%d”,&stud[0].age)
C、scanf(“%d”,p->age);D、scanf(“%d”,&(p->sex));
29.利用函数参数传递数据时,下列说法中错误的是()
A)形参是一般变量,实参也是一般变量时,采用的是值传递方式。
B)形参是一般变量,实参是表达式时,采用的是值传递方式。
C)形参是数组,实参也是数组时,采用的是值传递方式。
D)形参是指针变量,实参是数组名时,采用的是地址传递方式。
30.某程序中对myfun函数有如下说明:
voidmyfun();
此说明的含义是()。
A、myfun函数无法反回值
B、myfun函数的返回值可以是任意的数据类型
C、myfun函数的返回值是无值型的指针类型
D、指针myfun指向一个函数,该函数无返回值
31.C语言的循环语句有while,dowhile还有()。
A)ifB)switchC)forD)continue
32.在函数说明前,若冠以关键字“inline”,则函数就被声明为()
A、静态B、友员函数C、内置函数D、以上都不是
33.用scanf()函数输入双精类型数据时,用()格式。
A)%cB)%dC)%lfD)%f
34.下面关于构造函数和析构函数的说法正确的是()
A、构造函数不能带参数,而析构函数可以带参数
B、析构函数和构造函数的调用顺序相反
C、在创建对象后,构造函数不一定被调用
D、构造函数的动议必须放在类的内部。
35.若x,y已正确定义且x=2,y=x>=1,则y的值为()。
A)2B)0C)1D)不确定
36.若有定义constinta=20;constintb=30;则下列正确的是()
A)constint*pi=&a;*pi=58;
B)constint*pi=&a;pi=&b;
C)int*constpi=34;pi=89;
D)int*constpi=&34;pi=&89;
37.以下叙述正确的是()。
A、float(a)将a转换成float型
B、(float)a将a转换成float型
C、(float)(x+y)将x转换成float型
D、(float)x+y将x+y的值转换成float型
38.对于输入语句“scanf(“%f,%f”,&a,&b);”,要有使变量a,b的值分别为1.78和4.48,则正确的输入是()
A)1.78,4.48B)1.784.48C)1.784.48D)1.78;4.48
39.运算对象必须是整型数的运算符是()
A、/B、!
C、%D、*
40.执行以下程序后,a的值为()
int*p,a=10,b=1;
p=&a;a=*p+b;
A)12B)10C)11D)编译出错
41.若有定义:
inta[20],*p=a;则p+10表示()
A)a[10]B)a[9]C)&a[10]D)&a[9]
42.下面函数声明,哪个是正确的重载函数声明()
A、voidfun(int);intfun(int);
B、intfun(int);intfun(double);
C、voidfun(int);voidfun(INT);
D、intfun(int);doublefun(INT);
43.关于类和对象不正确的说法是( )
A) 类是一种类型,它封装了数据和操作
B) 对象是类的实例
C) 一个类的对象只有一个
D) 一个对象必属于某个类
44.以下说法正确的是()
A、protected和private用法上没有区别。
B、protected和private在只有一个类时,用法上没有区别。
C、protected和private在有基类和派生类时,用法上没有区别。
D、以上说法都不是。
45.对下列程序段的解释,正确的是()
voidmain()
{
inta1,a2;
a1=23;
:
:
a2=10;
}
A、a1是局部变量a2是全局变量
B、a1是全局变量a2是局部变量
C、a1a2都是局部变量
D、a1a2都是全局变量
46.以下默认参数中的函数调用说法正确的是()
intdeep(intx=5,floaty=5.3);
voidmain()
{
deep(25);
}
A、传递的参数x=25,y=5.3B、传递的参数x=25,y=0
C、传递的参数x=5,y=25D、传递的参数x=0,y=25
47.声明一个类的对象时,系统自动调用()函数,撤消对象时,系统自动调用( )函数
A)成员函数 B)构造函数 C)析构函数 D)普通函数
48.()不是构造函数的特征。
A)构造函数的函数名与类名相同;B)构造函数可以重载;
C)构造函数可以设置缺省参数;D)构造函数必须指定类型说明。
49.()是析构函数的特征。
A)析构函数可以有一个或多个参数;B)析构函数名与类名不同;
C)析构函数的定义只能在类体内;D)一个类中只能定义一个析构函数;
50.new函数的返回值是()类型
A、整型B、字符型C、指针型D、无类型VOID
51.关于成员函数特征的下列描述中,()是错误的。
A)成员函数一定是内联函数;B)成员函数可以重载;
C)成员函数可以设置缺省参数值;D)成员函数可以是静态的;
52.类默认其成员是()
A、publicB、protectedC、privateD、public或private
53.下列静态数据成员的特性中,()是错误的。
A)说明静态数据成员时前边要加修饰符static;
B)静态数据成员要在类体外进行初始化;
C)静态数据成员不是所有对象所共用的;
D)引用静态数据成员时,要在其名称前加<类名>和作用域运算符;
54.当一个派生类私有继承一个基类时,基类中的所有仅有成员和保护成员成为派生类的( )
A)public成员 B)private成员 C)protected成员 D)友元
55.在创建派生类对象时,构造函数的执行顺序是( )
A) 对象成员构造函数、基类构造函数、派生类本身的构造函数
B) 派生类本身的构造函数、基类构造函数、对象成员构造函数
C) 基类构造函数、派生类本身的构造函数、对象成员构造函数
D) 基类构造函数、对象成员构造函数、派生类本身的构造函数
56.关于this指针的说法错误的是( )
A)this指针必须显示说明 B)当创建一个对象后,this指针就指向该对象
C)成员函数拥有this指针 D)静态成员函数不拥有this指针
57..下列十六进制的整型常数表示中,()是错误的。
A.OxafB.OX1bC2fxD.0xAE
答案:
C。
58.下列字符常量表示中,()是错误的。
A.'\105'B.'*'C.'\4f'D.'\a'
答案:
C。
59.下列变量名中,()是合法的。
A.CHINAB.byte-sizeC.doubleD.A+a
答案:
A。
60.在inta=3,*p=&a;中,*p的值是()。
A.变量a的地址值B.无意义C.变量p的地址值D.3
答案:
D。
61.对于int*pa[5];的描述,()是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素
B.pa是一个指向某数组中第5个元素的指针,该元素是int型变量
C.pa[5]表示某个数组的第5个元素的值,每个元素是一个int型的变量
D.pa是一个具有5个元素的指针数组。
答案:
D
62.下列关于指针的运算中,()是非法的。
A.两个指针在一定条件下,可以进行相等或不等的运算
B.可以用一个空指针赋值给某个指针
C.一个指针可以加上两个整数之差
D.两个指针在一定条件下,可以相加
答案:
D。
63.下列各表达式中,()有二义性。
已知:
inta(5),b(6);
A.a+b>>3E.++a+b++Cb+(a=3)D.(a=3)-a--
答案:
D。
64.预处理命令在程序中都是以()开头的。
A.*B.#C.:
D./
答案:
B。
65.下列()是语句。
A.;B.a=17C.x+yD.cout~<”\n”
答案:
A。
66.下列for循环的次数为()。
for(inti(0),x=0;!
x&&i<=5;i++)
A.5B.6C.1D.无限
答案:
B。
67.下列while循环的次数是()。
while(inti=0)i--;
A.0B.1C.5p.无限
答案:
A。
68.下列for循环的循环体执行次数为()。
For(inti(0),j(10);i=j=10;i++,j--)
A.0B.1C.10D.无限
答案:
D。
69.下述关于循环体的描述中,()是错误的。
A.循环体中可以出现break语句和continue语句
B.循环体中还可以出现循环语句
C.循环体中不能出现goto语句
D.循环体中可以出现开关语句
答案:
C。
70.下述关于break语句的描述中,()是不正确的。
A.break语句可用于循环体内,它将退出该重循环
B.break语句可用于开关语句中,它将退出开关语句
C.break语句可用于if体内,它将退出if语句
D.break语句在一个循环体内可以出现多次
答案:
C。
71.当一个函数无返回值时,定义它时函数的类型应是()。
A.voidB.任意CintD.无
答:
A。
72.在函数说明时,下列()项是不必要的。
A.函数的类型B.函数参数类型和名字
C.函数名字D.返回值表达式
答:
D
73.在函数的返回值类型与返回值表达式的类型的描述中,()是错误的。
A.函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的
B.函数返回值的类型就是返回值表达式的类型
C.函数返回值表达式类型与函数返回值类型不同时,表达式类型应转换成函数返回值类型
D.函数返回值类型决定了返回值表达式的类型
答:
B。
74.在一个被调用函数中,关于return语句使用的描述,()是错误的。
A.被调用函数中可以不用return语句
B.被调用函数中可以使用多个return语句
C.被调用函数中,如果有返回值,就一定要有return语句
D.被调用函数中,一个return语句可返回多个值给调用函数
答:
D。
75.下列的()是引用调用。
A.形参是指针,实参是地址值
B.形参和实参都是变量
C.形参是数组名,实参是数组名
D.形参是引用,实参是变量
答:
D。
76.在传值调用中,要求()。
A.形参和实参类型任意,个数相等
B.实参和形参类型都完全一致,个数相等
C.实参和形参对应的类型一致,个数相等
D.实参和形参对应的类型一致,个数任意
答:
C。
77.重载函数在调用时选择的依据中,()是错误的。
A.参数个数B.参数的类型C.参数的顺序D.函数的类型
答:
D。
78.在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()合适。
A.内联函数B.重载函数C.递归调用D.嵌套调用
答:
A。
79.采用函数重载的目的在于()。
A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性
答:
D。
80.在下列关键字中,用来说明类中公有成员的是()。
A.publicB.privateC.protectedD.friend
答:
A。
81.下列的各种函数中,()不是类的成员函数。
A.构造函数B.析构函数C.友元函数D.拷贝初始化构造函数
答:
C。
82.()不是构造函数的特征。
A.构造函数的函数名与类名相同
B.构造函数可以重载
C。
构造函数可以设置默认参数
D.构造函数必须指定类型说明
答:
D
83.()是析构函数的特征。
A.一个类中只能定义一个析构函数
B.析构函数名与类名不同
C.析构函数的定义只能在类体内
D.析构函数可以有一个或多个参数
答:
A。
84.关于成员函数特征的下述描述中,()是错误的。
A.成员函数一定是内联函数
B.成员函数可以重载
C.成员函数可以设置参数的默认值
D.成员函数可以是静态的
答:
A。
85.友元的作用()。
’
A.提高程序的运用效率
D.加强类的封装性
C.实现数据的隐藏性
D.增加成员函数的种类
答:
A。
86.运算符->*的功能是()。
A.用来表示指向对象指针对指向类成员指针的操作
B.用来表示对象对指向类成员指针的操作
C.用来表示指向对象指针对类成员的操作
D.用来表示对象类成员的操作
答案:
A。
87.已知类A中一个成员函数说明为voidSet(A&a);其中,A&a的含意是()。
A.指向类A的指针为a
B.将a的地址值赋给变量Set
C.a是类A的对象引用,用来作函数Set()的形参
D.变量A与a按位相与作为函数Set()的参数
答案:
C。
88.关于new运算符的下列描述中,()是错的。
A。
它可以用来动态创建对象和对象数组
D.使用它创建的对象或对象数组,可以使用运算符delete删除
C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值
答案:
D。
89.关于delete运算符的下列描述中,()是错的。
A.它必须用于new返回的指针
B.它也适用于空指针
C.对一个指针可以使用多次该运算符
D.指针名前只用一对方括号符,不管所删除数组的维数
答案:
C。
90.下列对派生类的描述中,()是错的。
A.一个派生类可以作为另一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员外,还包含了它的基类的成员
D.派生类中继承的基类成员的访问权限到派生类保持不变
答:
D。
91.派生类的对象对它的基类中()是可以访问的。
A.公有继承的公有成员
B.公有继承的私有成员
C.公有继承的保护成员
D.私有继承的公有成员
答:
A。
92.对基类和派生类的关系描述中,()是错的。
A.派生类是基类的具体化
B.派生类是基类的子集
C.派生类是基类定义的延续
D.派生类是基类的组合
答:
B。
93.关于多继承二义性的描述中,()是错的。
A.一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性
B.解决二义性的最常用的方法是对成员名的限定法
C.基类和派生类中同时出现的同名函数,也存在二义性问题
D.一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性
答:
C。
94.设置虚基类的目的是()。
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码
答:
B。
95..对定义重载函数的下列要求中,()是错误的。
A.要求参数的个数不同
B.要求参数中至少有一个类型不同
C.要求参数个数相同时,参数类型不同
D.要求函数的返回值不同
答:
D。
96.下列函数中,()不能重载。
A.成员函数
B.非成员函数
C.析构函数
D.构造函数
答:
C。
97.下列对重载函数的描述中,()是错误的。
A.重载函数中不允许使用默认参数
B.重载函数中编译系根据参数表进行选择
C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC 复习题