C语言问题。。

作者&投稿:镇骅 (若有异议请与网页底部的电邮联系)
~ 第一题,*s+2, 运算符优先级决定了先算 (*s), 再加2,再按 %c 格式输出。
(*s) 得到的是 s[0]的 ASCII 编码值,等于字符常量 'N' ,再加2 就是 字母 N 后面2位那个 P,它 等于字符常量 'P', 按 %c 格式输出 为 P. 答案 选 A. P
第二题,最后一个选项: (2*x,x+=2) 这叫逗号表达式,逗号表达式的结果,等于最右边一个式子的结果。这里程序先计算 2*x 得 4,但不使用它的结果,再算最右边一个式子x+=2, 由于 x 当前值等于2,那么 x=x+2 得 4, 使用 "最右边一个式子的结果", 就是 4。 它不等于 6,故选它。
至于 (x++,x*=2) 也是 逗号表达式,逗号表达式的结果,等于最右边一个式子的结果。程序先计算 x++,这是后缀加加,表达式中不自增,出了表达式自增,x变3。最右边x*=2 是 x=x*2=3*2=6. 不选。
(x*=x+1) 不用解释, x=2*(2+1)=6. 不选。

程序输出结果是P,选择答案A。
*s+2代表的不是s[2],是*(s+2)代表s[2]。
*s+2代表的是(*s)+2
------------------
x=2; 2*x,x+=2; 的结果是 4。
因为2*x的值是4(但是没有赋值),x+=2的值是4

注意运算符优先级,*的优先级高于+
所以*s+2实际是(*s)+2,即s[0]+2
第二题D选项错误原因如你所说,左侧表达式2*x没有改变x的值,x依旧是2,所以x+=2后,x值为4

关于C语言的问题
答:A.goodabc B.abcd C.abc D.abcgood 解:简单的说就是以“w(写生成)”打开的文件,文件内的原始数据将被删除。这东西不是一两句就能解释清楚。同学,你的C要好好加油啊,这都是些很基本的问题。

关于几道C语言的问题
答:p=a;*p=a[0],这是没有问题的,第二条,*(++p),先算前加加p指向a[1],在算*p,自然输出2,第三条一样,*取值和++的优先级是一样的但是它们的结合性事从右向左,所以还是先算前加加p=a[2],自然有输出了...

C语言关于数组的问题
答:include <stdio.h> //载入标准输入输出库 main() //主函数,作为c程序的入口函数,从这里开始。{ char *s,c[80]; //创建一个字符型的指针,一个字符型的数组 s=c; //将指针指向这个数组的开头。(数组名等于...

几道C语言的入门问题,给过程,在线等
答:1、C A选项表示8进制的1;B选项表示十六进制的1;C选项错误,0开头的表示八进制的整数常量,范围是0-7,08显然超过了8进制的表示范围;D选项表示十进制的8;2、B f表示单精度,不写的话默认都是双精度;3、0X10;...

关于C语言基础的问题,要求解过程8
答:1.以下程序运行的结果是多少?main(){int a=0,b=0,c;if(a>b)c=1; //0>0假,不执行 else if(a=b)c=0; //b附值给a,因为b是0,所以a也是0。附值语句返回a,也就是0,所以条件判断也假,不执行 else ...

有关于大学c语言问题
答:第一题:int x=0,y=20,z=30 if(x||(y=50)>z)printf("y=%d",y);//x是0,||是短路径求值的,即如果||的左边已经为true,那么是不会执行右边的表达式的,如果左边表达式是false,则会执行右边的表达式,因此...

C语言题目
答:首先说第一个问题:简单地说%e为科学计数法输出,在计算机上表示为:数字e+n、数字e-n(10的n次方或负n次方)。至于%与e之间的内容为对输出的控制。此处:-6.2 -代表左对齐,6代表整个数字占六个格(若占不满...

C语言编程初学问题
答:(1)程序输出:c1=a;c2=b;c1=97;c2=98;因为:你用%c,就是你要输出一个字符,97的ascii码就是小写字母a,98为b;(2)如果你把c1=197,c2=198,应该会提示隐式转换吧,如果定义char c1,c2,默认为有符号的...

C语言基本问题,%5d 是什么意思?
答:C语言中,“%5d”是的意思是以整形来格式化参数,并且当整数字符数少于5个情况下,多格式化一定数量空格来填充,以使得空格和整数所用字符数的总和达到至少5个。C语言中,“%5d”一般用于printf函数和sprintf函数。它们格式化...

C语言有关问题。以下程序的输出结果是:(并且给出解释)
答:输出结果:c language 解释:if LETTER if(c>='a'&&c<='z') c=c-32;else if(c>='A'&&c<='Z') c=c+32;endif 这段是指当LETTER的值为真(非零)时执行第一个程序段if(c>='a'&&c<='z') c=c-32...