做了一套C++的题,有下面这几道题不懂。请c++达人指教:

1.若有char a[3]={‘A’,‘\0','D'},*p=a,i=2,j=4;则下列表达式不是1的有(C)
A.strlen(a) B.j&&j C.*(p+1) D--i
(PS:整型占2个字节)

2.假定AB为一个类,则执行“AB a(4),b[3],*p[2];"语句时,自动调用该类构造函数的次数是(B)
A 3 B 4 C 6 D 9

3.对于结构中定义的成员,其隐含访问权限为(public)
这个题很经典,但是我一直不懂这句话的意思,请高手解释一下。

1. strlen这个函数遇到'\0'就返回 在'\0'前有一个A所以返回1 排除 &&运算符返回1或者0,当两者都为非0返回1,否则返回0, 排除 ,i==2 执行--i自然为1 所以答案为c 因为p目测是指向数组的指针,(p+1)操作是表示指针指向下一个单元及时指向了‘\0’的单元,在用*(p+1)取值自然得到的不是1

2.当然这个题可能有歧义,前提应该是这个类包含默认的构造函数和接收一个参数的构造函数,构造函数的调用是当类需要创建对象的时候,这里 创建对象a的时候以及创建类的数组的时候都需要创建对象,而创建类指针则不用创建对象 所以构造函数调用4次

3.就是说在c++中结构体其实也是被当做类的,与类不同的是里面的成员默认访问权限为public,(类的默认访问权限是private,除非你用private标记)

还有不明白么
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-16
例如:
struct A

{
int a;

char b;

}

这样定义的结构体的成员变量,a、b外界都是可以直接访问的。
再例如
struct A
{
public:

int a;
private:

char b;
}
这样定义的结构体中,a是公共的,b 是私有的外界无法直接访问。
也就是定义结构
struct A
{
int a;
char b;
}
隐含了
struct A
{
public:

int a;
char b;
}
第2个回答  2013-04-16
第一个,C:p指向a,也是a[0],p+1,就是a[2],是\0,ascii是0;A:strlen函数在遇到\0时结束判断,故只算了1个;B &&(与),0和任何值与,结果是0,非0与非0,结果为1.
隐含访问权限默认应该是protected啊,咋会是public呢。第2个不是很明白意思
第3个回答  2013-04-16
第一题,用排除法,A:“\0”为字符串结束标志,所以a的长度为1。B:任何数与自身相与为真,即为1。D:i=2,--后自然为1

做了一套C++的题,有下面这几道题不懂。请c++达人指教:
当两者都为非0返回1,否则返回0, 排除 ,i==2 执行--i自然为1 所以答案为c 因为p目测是指向数组的指针,(p+1)操作是表示指针指向下一个单元及时指向了‘\\0’的单元,在用*(p+1)取值自然得到的不是1

C++ 第三题不懂 求指教
首先你要明白&&的优先级高于||优先级,剩下的你就明白了吧。&&符号表示它的左右边都要同时成立。||表示或者,表示它的左右两边有一个表达式成立即可。表达式就等价于x==0&&y!=0或者x!=0&&y==0成立,两者有一个成立就行 所以答案就是A ...

这是一个C++二级考试的题,请高手指教一下
答案是B 首先你要明白逗号表达式的含义才能掌握。逗号表达式:比如(表达式1,表达式2),它最终返回的是第二个表达上也就是表达式2的值。因此,在A中,首先先执行括号里面的语句y=z=8,得到y==8,z==8,接着执行4*6,得到24,并且该表达式返回第二个表达上的值,也就是24,因此x==24。同理可...

请教大学C++中一道题,我没明白这道题,没有思路,是要算字符个数吗?字符...
答案是B。这个题的意思确实是要计算这个字符串的长度,但是有一个陷阱,就是里面的\\045,这个被转义成了%,也就是说\\045其实是一个字符,即%,故这个字符串的真正长度是8.

求c++大佬解答 这几个题
int a=2;int b=1; 表达式 a || b的结果为(A)。A.1 B.3 C.0 D.4 A——||是逻辑或,只要有一边为"真"结果就为1,2||1两边都为"真",所以是1。真就是不为0 int a=1;int b=2; 表达式 a|b的结果为(B)。A.1 B.3 C.0 D.2 B——|是按位或,对应的二进制位只要...

我编了一个C++程序,有错,请大师们指点指点
PS:看这样好像是死循环了 方法:例如在C语言程序中,语句“while(1)printf("*");”就是一个死循环,运行它将无休止地打印*号。不存在一种算法,对任何一个程序及相应的输入数据,都可以判断是否会出现死循环。因此,任何编译系统都不做死循环检查。在设计程序时,若遇到死循环,我们可以通过按下...

C++问题,请高手指教
(‘E’-‘A’):表示两个大写字母的ASCII码的值相减:(A的ASCII码是65,E的ASCII码是69)X*(‘E’-‘A’):表示上面减得的结果和X相乘。a*=x*(‘E’ - ‘A’):表示上面乘得到的结果和a相乘后再赋给a。

C++问题:求解下面这个题目的意思,请高手帮助,根据什么输出的
数据3,2,3,8,8,2,3 分组1,2,3,2,1,3,1 对应分组为1的数据中,有0个2,2个3,1个8。对应分组为2的数据中,有1个2,0个3,1个8。对应分组为3的数据中,有1个2,1个3,0个8。

c++问题求详细解释谢谢,第二道我看不懂题目意思...
3,选C,因为当x和y中只要有一个值为0,那么 x==0 || y==0便为真,所以不能用于判断“x和y不同时为零”。5。选择D,因为当i的值为3,1的时候,跳过s+=i;进入下一个循环,当i的值为4,2的时候,执行s+=i;,因此s的值为6!有什么不理解的,请继续提问。。

c++问题,可能题目有点错误,也希望指出,感谢
x=0的时候会出现除以0的错误,x=1时,y=1,x=2时y=0 结合还有一个else的情况,可能答案可以是这样的:[1] x>2 [2] 0 > -1 \/\/使得条件不会成功,随意怎么写 [3] y = x \/\/去掉x > 2或是x<=-1的情况只有-1<x<=2 但这么写非常的奇怪。。出题人不知道怎么想的。。

相似回答