这个程序的败启输出结果是9。
这个程序相当于下面的程序,省略掉③和④一对花括号:
程序分析
③句和④不会被察培如执行,所以,z的值是9。
判断③和④隐含一个花括号的中指方法是,else与最近的if语句配对。
有什么问题请留言。
额……要是非要选的话当然是选D,意思是先将p2指向的字符串拼接到p1指向的字符串的结尾,得到“abcABC”,然后将这个字符串再复制到str+2(str指向首地址“x”,str就指向了“z”,所以将"z"用"cdBCD"进行字符串拷贝) 但是,这个程序是错误的,strcpy(str+2,strcat(p1,p2))这句中,strcat(p1,p2)的p1指向的是一个常量字符串, 常量字符串是不能修改的。将程序修改如下:#include<stdio.h>#include<string.h>
main()
{ char p1[10]="abc",*p2="ABC",str[50]="xyz"
strcpy(str+2,strcat(p1,p2))
printf("%s\n", str)}//输出结果是xyabcABC
该程序的输出结果是:11 1 2 1
解析如下:
首先分键渗析第一个表达式:x = -3 + 4 * 5 - 6,根颤态据运算符的优先级,先计算乘法,然后是加法和减法,所以 x = -3 + 20 - 6 = 11。
接着分析第二个表达式:x = 3 + 4 % 5 - 6,% 运算符的优先级高于加减法,所以先计算 4 % 5,结果为 4,稿洞脊然后再计算加法和减法,所以 x = 3 + 4 - 6 = 1。
再分析第三个表达式:x = -3 * 4 % -6 / 5,先计算乘法和取模运算,然后再计算除法,所以 x = (-12) % (-6) / 5 = -2 / 5 = 0(注意负数的取模运算)。
最后分析第四个表达式:x = (7 + 6) % 5 / 2,先计算括号内的加法,然后计算取模和除法,所以 x = 13 % 5 / 2 = 3 / 2 = 1。注意取模运算的结果为非负数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)