c语言的高手,帮个忙啊,本人现在没有财富值了,呜呜。。

1.若int a,b=9,d=8;表达式:a=(--b==d++)?d++:--b;则a的结果是( )2.已知有定义:int a=1,b=2,c=3,d=4,m=1,n=1,k;则语句:k=(m=a>b)&&(n=c>d);运算结束后,m的值为( ),n的值为( ),k的值为()3.已知有定义:char *p[]={"Chinese","France","America","Russia"};则语句printf("%s",p[1]);printf("%c",p[1][2]);的输出结果分别是( ),( )希望给出详细的解释过程啊,谢谢,给高分哦!!!!
最新回答
风起半山

2024-11-28 06:34:18

1、先进行括号内运算,--b就是8,d++值没有变,所以(--b==d++)为真,即a=1,所以执行真的条件d++
2、先进行两个括号内的运算a>b为假,m=0。c>d为假,n=0。然后0交0为0所以k为0
3、char *p[] 其实是一个二维数组 其中p[0]存储的是“Chinese”,p[1]=“France",p[2]=“America”,p[3]=“Russia”。
%s输出的是一个字符串,输出p[1]存储的内容:France,
%c输出的是一个字符,所以输出的是p[1][2]的那个字符:a。
中华一样的高傲

2024-11-28 06:42:17

1:a结果为8 这个不用多说吧?
2:m=0;n=1;k=0 因为(n=c>d)这里没有被执行 所以n=1;
3:输出Francea p[1]就是第二个串啦"France" p[1][2]就是第二个串的第三个字母'a'
追问
为什么(n=c>d)这里没有被执行??还有,第一题a答案是9,也不知道为什么。第三题是A
追答
&&这前面为假后面就不会执行了 (n=c>d)是不会被执行的
第一题a答案是9这里我错了 我忘了了前面的d++

第三题是A我不同意 谁说的是A你让他给你解释明白!(其实你可以写个程序看看倒底是什么)
编程就是要实践 不经过实践什么都是瞎扯 尽信书不如无书
清风不语

2024-11-28 06:49:55

只回答第三题,前面两题优先级问题,自己上机试试就行了,不应该问。
p是指针数组,p[1]指向France,p[1][2]指向a(France里的a)。
*p[]是指针数组,里面有4个指针,每个指向一个字符串,即p[1]指向France(下标从0开始);p[1][2]就相当于把p[1]看做一个数组,取下标2就是第三个元素a;p[1]==>(char p[]=“abcd”)
追问
还是不对啊,我们学校的试卷答案是指向A
追答
指向A什么意思?哪个指向A
夏日薄雪

2024-11-28 07:33:59

a=10;m=0;n=0;k=0
p[1]为France
p[1][2]为a
等待__经年

2024-11-28 06:06:55

1.1
2.0;1;0
3. Chinese; Chinese,France