C语言的一道题。 这题为什么选a,怎么算都是b?

作者&投稿:贾放 (若有异议请与网页底部的电邮联系)
一道简单的C语言选择题为什么选B?~

m=a>b先算,
>比=优先级高,先算a>b,结果为假,用0表示,
所以m=0,
所以(m=a>b) 这个表达式值为0,
0和任何值进行&&运算结果都为0,因此编译器会对运算过程进行优化,&&右边的表达式不再计算,所以n的值没有变.

1 整型常数, 默认是int类型。 要写长整型, 必须在结尾加L
所以 只有A对。
2 赋值的时候 如果多个=符号。 那么左边的 都必须是变量
D选项 相当于
b+c=1
a=b+c;
明显 b+c=1这个是不合法的。
而C选项 是
k=i==j
根据优先级 等效于 k=(i==j)
即判断i j是否相等。 如果相等, k为1. 否则为0

首先你看reverse函数完成得功能是啥,就是把数组倒置嘛
reverse(b, 8)是什么意思?
就是把数组b的前8个元素倒置
调用这个函数之后
数组b中的元素为8,7,6,5,4,3,2,1,9,10
然后你在看main函数中下面的那个for循环完成什么操作
很明显是求b中下标为6到9的这几个元素的和

即2+1+9+10 所以s = 22嘛

你注意到调用revers函数的参数了吗,是8,而不是10
所以只是把1-8逆置了一下
最后求和=2+1+9+10 = 22

数组有10个数,但是只是翻转了8个数,翻转后的结果是8,7,6,5,4,3,2,1,9,10
下标6到9的数是2,1,9,10 和为22

主函数调用函数reserve(b,8),把8传递给函数中n。并不是像你想的那样把数组完全逆置。运算后数组应该是8 7 6 5 4 3 2 1 9 10.所以结果是2 +1 +9 +10=22

把代码往机器一敲就行了


孝南区15610491552: C语言这道题为什么选a? -
牧厕重组: 1 整型常数, 默认是int类型. 要写长整型, 必须在结尾加L 所以 只有A对. 2 赋值的时候 如果多个=符号. 那么左边的 都必须是变量 D选项 相当于 b+c=1 a=b+c; 明显 b+c=1这个是不合法的. 而C选项 是 k=i==j 根据优先级 等效于 k=(i==j) 即判断i j是否相等. 如果相等, k为1. 否则为0

孝南区15610491552: c语言.这题为什么选a啊! -
牧厕重组: 宏展开.#define ADD(x) x*x d=ADD(a+b)*c; 宏展开之后就是:d=a+b*a+b*c; 答案自然是70.要想a+b被当成一个整体,宏定义要加括号#define ADD(x) ((x)*(x)) 展开后就是:d=((a+b)*(a+b))*c;

孝南区15610491552: 一道C语言题目:下面对函数形式参数声明正确的是A.int a[]B int a[][]C.int a[]={0};D.int a[2][]为什么选择A? -
牧厕重组:[答案] 根据数组的定义:数组定义是必须初始赋值或定义数组的长度. 根据这个定义可知1、2是错的,D选项中只说明了数组为2行并没有说明数组的列数,所以也是错的.而C选项中一维数组有初始赋值0,是符合的,最终答案就只能是C了. 所以答案为:C

孝南区15610491552: C语言这题为什么选A -
牧厕重组: A.1/2*(x+y)*z ,优先级问题,先计算( )1/2*13*z 又因为这是乘除,自左向右计算 又因为1与2 属于int型,所以1/2=00*13*z=0 所以A不符

孝南区15610491552: c语言第11题为什么是a -
牧厕重组: 因为你变化的是指针,而不是数据,char c1 = "A",c2 = "a",*p1,*p2;p1 = &c1,p2 = &c2,即c1的地址存到p1,c2的地址存到p2,调用函数的时候,即a=p1,b=p2,执行第一步a=b,即...

孝南区15610491552: c语言题目,帮解释一下如下题目为什么选A?
牧厕重组: 这是个有关转义字符的题目,在C语言中,%具有特殊意义(比如%d表示所对应的变量以整数输出,%c表示所对诮的变量应该是字符型变量),当我们想单独输出一个%时,计算机无法马上识别它是转义字符,还是要输出一个%,或是编程者的输入错误,为了解决以上问题,规定当想输出一个%号时,需要同时写两个%. 这就是选A的原因.

孝南区15610491552: 一道很简单的 C 语言考试选择题,为什么答案是A? -
牧厕重组: 翻一下常用字符与ASCII对照表就可以咯.

孝南区15610491552: c语言中逻辑表达式的值不是0或1吗,这题为什么是10 -
牧厕重组: 是选a,因为i||(i=12)这个表达式是个或表达式,或表达式的左边如果为真就不执行右边的,而i非0,所以左边卫真,不执行右边的表达式,而整个表达式的值为1,但是i没有被赋值,所以i的值并没有改变,i还是10.不懂继续问.

孝南区15610491552: 一道C语言程序题 -
牧厕重组: 若有下面的说明和定义struct test{ int ml; char m2; float m3;union uu {char ul〔5〕; int u2〔2〕;} ua;} myaa;则sizeof(struct test )的值是A)12B)16C)14D)9正确答案: A 为什么选A呢,请指教,麻烦说详细点,谢谢

孝南区15610491552: C语言习题 急求助 选A 为什么 -
牧厕重组: c因为p获取了b的首地址,point()使得p移动了3个单位,*p打印的是第三个地址的值!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网