C++考试题求解答

好几道题不会想请大家讲一下:
2、若有以下类型标识符定义: ( D)为啥最后是DOUBLE
int x=2; char w='a'; float y=23.45f; double z=45.6712;
则表达式w*x+y-z的结果类型是
A. float B. char C. int D. double
3、若有int x=10,y=20,z=30; 则执行下面语句后,x的值是B
if(x>y)
z=x;
x=y;
y=z;
A. 10 B. 20 C. 30 D. 0 x明明小于Y都不满足IF的条件 怎么还能执行IF语句?
4、循环语句whlie(int i=0 )i--;的循环次数是A 疑问:这题没初始值吧?怎么判断?
A. 0 B. 1 C. 5 D. 无限
7、以下能正确定义数组并正确赋初值的语句是d
疑问点:d选项第一个数组应赋3个值,若不填,有默认的实参赋值?
A. int N=5,b[N][N];
B. int a[2]={{1},{3},{4},{5}};
C. int c[2][]={{1,2},{3,4}};
D. int d[3][2]={{1,2},{3,4}};
8、下列给字符数组进行的初始化中,不正确的是d
疑问点:C选项和A选项,若数组不说明参数的个数,则可以按任意参数的个数赋值?
A. char s1[]="abcd";
B. char s2[3]={'x','y','\0'};
C. char s3[]={'a','x','y','\0'};
D. char s4[6]={"xyz","mnp"};
??? 15、若有函数说明void fA(int m, int n); 和指针变量的定义 void (*p)(int,int);并且有p= fA则下列操作不正确的是
A.(*p)(3,4); B.p(3,4);
C.fA(3,4); D.*p++;
我的理解是A为指向对象成员的指针并赋2个实参的值,C为直接给外联函数FA给2个形参赋值。至于B和D就不懂了。

第1个回答  2013-09-09
2.几个类型转换的时候默认的转换是小的转化成大的。这里double最大。(因为大的转小的会丢失,小的转大的只是浪费一点空间)
3.if条件判断执行的是这样的if( ……) { ……}如果是这样的形式,if条件满足时执行{}内的内容 如果没有{} 则if条件所影响的之后if条件语句后紧跟着的一句话而已。也就是说此题目中if影响的只有z=x这一句而已。
4.while的退出是因为while内部的条件为false 此时第一次执行到while这条话的时候我们初识设定了int i=0 然后看一下while(int i=0) 此种0即为false 所以while条件为false 不执行while内语句 即不循环
7.额 我看你的理解好像二维数组有点问题吧。二维数组d[3][2]其中我们赋值的时候默认两两一起赋值 也就是说他就好像是3个大小为2的一维数组,此题中的赋值方式就好像是a[10]={0};这种赋值。
8.你的理解是正确的,如果定义和初始化数组在一起的时候是可以这样写的,此时相当于你=后面的数据告诉了前面大小。
15.是函数指针的问题吧。函数指针的问题我也解释不太明白,总之好像是d的错误吧。
希望对你有所帮助。
第2个回答  2013-09-09
2 简单地说 double可以兼容全部类型
3 值得注意的是if语句后面没有括号,说明if语句仅仅包含第一句z=x; 而后面并不是if语句的范围
4 whlie(int i=0 )i--; 这里面定义i的同时赋值0 然后while(0) 直接退出了循环。所以运行次数是0
7 若初始化个数不足且有赋初值,则补0; 若没有赋初值则全部随机
8数组不说明参数的个数,则可以按任意参数的个数赋值 这句话是对的,最终数组的元素个数由赋值的初始值决定,字符串多一个‘\0’。
15 实际上 这种情况下 fa跟p是等价的 ABC都是一样的 而D答案是无意义的,并且是错误的本回答被提问者采纳
第3个回答  2013-09-09
2 只有有比较高等级的参数参加运算,结果就为最高等级的
3 if语句后面的z=x;没有执行,但是x=y;执行了,所以x值最后为20
4 会执行0次的
7 不填没有关系,系统会胡乱给它赋值
8 d内是两个字符串,但是给定的只有一个字符串,如果去掉逗号还是可以
15 只有d不行,b相当于a,仍然是合法的
第4个回答  2013-09-09
2.不同类型的参数做运算的时候,自动转换为较长字节的参数类型
3.if的判断因为没有加{},所以只有下面第一句z=x是判断成立才进行的,之后两句与判断无关。
4.while()里的语句是判断为真才进行循环,为真条件中其中一种就是不为0,这边设定i=0,就为假了,不进行循环。
7.未赋初值默认为0。
8.没说明参数个数的情况下,以初始值的个数自动分配。
15.*p++中++的优先级高于*,意思是先指针地址+1后再取值,地址变了自然没法取到这个值fa了
第5个回答  2013-09-09
C++ 以前学的 , 忘记了不少了

一道C++的函数选择题 要求详细解答
首先 答案是B 为什么?因为,c++的规定就是,当函数的参数是值类型的时候,传递的是值,而不是地址,所以会为这个传来的值 新分配一个地址单元。在这里的实际参数a本来已经有一个地址单元了,然后根据上面这个c++的规定,所以会为a的值另外分配一个地址单元,变量名是w。不过 这个“&”符号你要去学...

C++问题,需要详细解答过程,详细!!!
问题一:a=10,b=0 分析:b%=b++||++a可以看成b%=((b++)||(++a)),由于b++为非零,所以表达式=((b++)||(++a))肯定为真,即1,所以程序就不判断++a了,因此a仍然为10,b%=1当然为0了。问题二:d=1 分析:char最大为127,unsigned char最大为255,所以256显然溢出了,所以ch...

C++考试题 求解答
2. 答案是C c.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数(这个不懂)这个就是虚函数的特性,只要派生类的函数与基类的函数同名、同原型,自动为虚函数,d.派生类的虚函数与基类的虚函数具有不同的参数个数和类型(这个求解释)这个如果同名不同参数(不同原型),这个是重载...

C\\C++问题(基础),望高手解答,(回答完整者额外加20~50币),具体在下面...
问题1:1、一串数据怎么强制转换?可以将一串数据的起始地址 强制转换为结构体的指针。2、(int)a+6-c是强制转换a还是a+6-c ? (int)(a+6-c)是不是转换a+6-c?(int)a+6-c是强制转换a。 (int)(a+6-c)是转换a+6-c,转换计算结果 问题2:这7个字符的地址是强制固定的, 编译器在编...

C++问题求解答
第一题,p,q是指针,开始的时候p指向j,q指向k,然后p=q也就是p指向了q指向的内存,也就是说p和q这时都指向了q指向的k,然后(*p)++是p指向的数值加1,也就是k+1.所以输出的*q和*p是相同的,也就是k的值,也就是2 所以应该选B 第二题,先看B,字符串是不能直接这么赋值的,除了...

c++习题 求解答
一、选择题 1、下列选项中能用于输入数据的是(A)。A、scanf B、printf C、cin D、cout 2、设有int i=1, b=2; 则下列语句正确的是(D)。A、cin.get(i); B、cin.get(b); C、cin(i); D、cin>>i;3、设有语句 int i=1; char c; cin>>i>>c; 若输入 Af...

C++程序题,求大神解答,谢谢
随机个种子,随机显示1-6的数字;每次的点数,存在数组中;求总和。从字面上理解,你这个x ,应该是1-6间的数字。那就如果点数大于x时,i+1;最后用i\/n 是所求概率

c++问题,求结果和详细解答!!
do{ i--; \/\/ i的值是9 num++; \/\/ num=1}while(--i); \/\/这个时候的i要再减1,等于8一次循环的结束 i从10到8 说明每次循环i都减少2程序运行的次数是I的值除以2 :10\/2=5次,说明程序执行了5次,第5次i的值为零 while循环 如果遇到0,条件为假就退出循环 程序执...

C++考试题目求解答解析,小白求解,30分送上!
第5题:char** s 是定义了一个变量s,这个s的类型是char指针的指针。因此,*s就是char*,只有它能指向一个字符串字面常量"computer"。第6(姑且就算6吧)题:!x&&i<=5; 分解是这样的 (!x) && (i<=5),!x是逻辑取非,x真则!x为假;x假则!x为真。i<=5就是i小于等于5的判断。&&...

c++ 题目不会!大佬求解答!
多余的数:该数组中其他的数通过加法计算出来,换个解释其实就是,这个数对数组中的某个数求余,余数仍在该数组中。如数组{3,4,5} 其中任何一个数都不能由其他数相加得出 如数组{7,10,12,22,25} 其中22对12求余后,结果是10,而10存在数组中,则22是多余的数 建议先对数组进行排序,由小...

相似回答