关于c++的题目

来源:百度知道 编辑:UC知道 时间:2024/05/11 16:59:30
各位高手,下面几个题目我不怎么懂,谁能给我详细解释下,小弟感激不尽!!
(3)for(int x=0,y=o;!x& &y<=5;y++)语句执行循环的次数是(c)
A)0 B)5 C)6 D)无次数

(4)考虑函数原型void test(int a,int
b=7,char="*"),下面的函数调用中,属于不合法调用的是(c)
A)test(5); B)test(5,8); C)test(6,"#") D)test(0,0."*");

6.
#include <iostream>
class BASE{
char c;
public:
BASE(char n):c(n){}
virtual~BASE(){cout<<C;}
};
class DERIVED:public BASE{
char c;
public:
DERIVED(char n):BASE(n+1),c(n){}
~DERIVED(){cout<<C;}
};
int main()
{ DERIVED("X");
return 0;
}
执行上面的程序将输出(a)
A)XY B)YX C)X D)Y

我说说看看
3)
for循环,!x&&y<=5这是一个判断循环执行的条件,因为初值x=0,所以
!x当然为1,也就是真,然后判断y<=5,因为y的初值为0,每次自身加1,到=5,到增到6的时候
就结束循环(不满足条件),总共6次|
4)
实参赋给形参一定要按顺序依次赋值,而四个选项中你看看C,如果按他那样赋值的话
相当于char类型赋给了第二个形参的的int类型,明显不对,其他选项中都没问题,有的只传一个或两个,但形参实参都对应,没问题,不传实参的,就按他默认的参数。
6)
主函数调用类DERIVEN的构造函数,把X赋给形参n,然后因为类DERIVEN是继承于类BASE,
所以要先调用类BASE的构造函数初始化它的数据成员,得到c=Y,然后再初始化类DERIVEN的数据成员
,得到c=X,当构造函数结束后,你看主函数,程序结束,就调用析构函数,它与构造函数的调用顺序是相反的,所以先输出类DERIVEN的析构函数的值X,然后是类BASE的值Y,所以结果就是XY

这样清楚了吧

3。for循环里的判断条件是不等于x 并且y小于等于5 此条件为0时停止循环(0为假 )x初值是0说明!x永远成立 y初值=0 循环停止的条件是y大于5 所以循环6次 在y=5的时候循环停止
4。此函数的接口有3 第一个和第二个都是整形的接口 第3硌接口是字符型接口 下面的4各答案中 c中第2个实参与行参中定义的类型不符 所以选c (接口中实参可以为空)