CPP练习题(1)

本文是一组关于C++的编程练习题,涵盖了关系运算符的优先级、数据类型的使用、派生类与基类成员的访问、函数特性和数组长度等方面的问题,每个题目后附有正确答案和详细的解析。
摘要由CSDN通过智能技术生成

1.关系运算符<= 与 == 的优先级相同。请问这句话的说法是正确的吗?

A.正确    B.错误

正确答案: B

解析:==的优先级小于<=。

2.以下数据中,不正确的数值或字符常量是()。

A.c    B.66    C.0xaa    D.50

正确答案: A

解析:带单引号才是字符常量,A应为'c'。

3.派生类对象可以访问基类成员中的()?

A.公有继承的私有成员

B.私有继承的公有成员

C.公有继承的保护成员

D.以上都错

正确答案: D

解析:

A.公有继承的私有成员不被继承,所以不能访问
B.私有继承的公有成员可以被类的方法访问,不能被对象访问,属于私有属性
C.公有继承的保护成员具有保护属性,只能被类的方法访问,不能被对象访问

4.以下描述错误的是()。

A.函数的形参在函数未调用时不分配存贮空间

B.若函数的定义出现在主函数之前且仅被主函数使用,则可以不必再说明

C.若一个函数(非主函数)没有return语句,返回类型是void

D.一般来说,函数的形参和实参的类型应该一致

正确答案: C

解析:构造函数和析构函数都没有返回类型,也没有return语句。

5.已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的。

A.void print( ) const;

B.const void print( );

C.void const print( );

D.void print(const);

正确答案: A

解析:const在后面,是用来修饰对象中的this,表明这个成员函数不能修改this指向的值,即不能修改对象的值。

6.定义函数模板add,以下说法正确的有()。(多选)

A.pfun2 = add失败,需要显示定义为pfun2 = add<int>

B.pfun1 = add

C.pfun3 = add失败,add无法正确推导

D.pfun4 = add<int>失败,函数指针不可赋值

正确答案: BC

解析:

A:pfun2 = add的错误提示不是pfun2 = add,而是 no matches converting function 'add' to type 'const int (*)(int&, int&);

B:pfun1的参数和返回值一致,可以自动推导,正确赋值;

C:pfun3 = add赋值失败,失败原因和A一样;

D:pfun4 = add显示的指定类型T为int型,赋值正确。

7.给出以下定义, 则对两个数组的strlen正确的叙述为()
1
2
char x[]= "abcdefg" ;
char y[]={ 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' };

A.数组X和数组Y等价

B.数组X和数组Y长度相同

C.数组X的长度大于等于数组Y的长度

D.数组X的长度小于等于数组Y的长度

正确答案: D

解析:strlen函数以'\0'为结尾判断符,char x[]="abcdefg";定义x数组默认追加结尾符'\0',char y[]={'a','b','c','d','e','f','g'};没有结尾符,strlen(y)的结果是遇到第一个'\0',是一个未定值,因此答案是数组x的长度小于等于y的长度

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值