几道C语言的选择题,大家帮忙看看

1、设intx=1,y=1;表达式"!x||y"的值是()A、0B、1C、2D、-12、如果已定义intb[10],*p=b;并在以后语句中未改变p的值,不能表示b[1]... 1、设 int x=1,y=1;表达式 "!x||y" 的值是()
A、0 B、1 C、2 D、-1

2、如果已定义 int b[10],*p=b; 并在以后语句中未改变p的值,不能表示
b[1]的地址的表达式是()
A、p+1 B、b++ C、b+1 D、++p

3、假定a和b为int型变量,则执行下面语句组后b的值为()

a=1;b=10;
do{
b-=a;a++;
}while(b--<0);

A、9 B、-2 C、-1 D、8

4、若有以下定义和语句,则输出的结果是()
char c1='b',c2='f';printf("%d\n",c2-c1);

A、2 B、3 C、4 D、5

5、已知:char a[3][10]={"zhang","li","wang"},*pa=a; 不能正确显示字符串"li"的语句是()
A、printf("%s",a+1); B、printf("%s",*(a+1));
C、printf("%s",*a+1); D、printf("%s",&a[1][10]);

希望能做一下简单的说明,多谢了
展开
 我来答
忘至白葬不情必0T
2009-04-20 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
1.B
!比||优先级高,所以||最后算.而y=1,||左边不管是什么,最终结果都是1

2.B
数组名是常量,不允许改变.

3.D
b-=a,b变成9,然后a++,a变成2.再判断b-->0,条件不成立,结束循环,再是b--后面的--起作用,b变成8

4.C
不用多说了,b,c,d,e,f

5.CD
*a+1指向的是zhang的第2个字符,所以输出 hang
&a[1][10]指向的是wang
如果是&a[0][10]的话,倒是指向li
百度网友9a26793
2009-04-20 · TA获得超过1110个赞
知道小有建树答主
回答量:927
采纳率:0%
帮助的人:840万
展开全部
B:x=1, y=1, !1=0, 0||1=1
B:b++, b为指针常量,而且b++返回值为b
D:a:1, b:10 //a=1, b=10;
a:1, b:10//do{
a:1, b:9//b-=a;
a:2, b:9//a++;
a:2, b:8//}while(b--<0);
b=8
C:'b', 'c'('b'+1), 'd'('b'+2), 'e'('b'+3), 'f'('b'+4)
C&D:运行得
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaosanbo1987
2009-04-20 · TA获得超过164个赞
知道答主
回答量:134
采纳率:0%
帮助的人:107万
展开全部
1.B,因为逻辑非(!)远算符优先级比逻辑或(||)高,
!x||y应该为(!x)||y
!x为0(假),和y作逻辑或远算,就为1(真)
2.B,因为b++是先使用b的值,再改变b的值,使b的值加1
3.D,因为b=b-a=10-1=9,而while(b--<0)中又使b的值自动减1,故为8
4.C,char c1='b'=98,c2='f'=102,c2-c1后输出整数型为4
5.A,printf("%s",a+1);输出的是第一行的第一列字符,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gamesman
2009-04-20 · 超过14用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:0
展开全部
1、设 int x=1,y=1;表达式 "!x||y" 的值是(B)
A、0 B、1 C、2 D、-1
PS: !x不是1,就是假的意思 y是真 中间的||或的意思。所以0或1,整个就是1了。

2、如果已定义 int b[10],*p=b; 并在以后语句中未改变p的值,不能表示
b[1]的地址的表达式是(C)
A、p+1 B、b++ C、b+1 D、++p
PS: 数组标量名的指针地址为a[0]是常量指针,因而是错误的。

3、假定a和b为int型变量,则执行下面语句组后b的值为(D)

a=1;b=10;
do{
b-=a;a++;
}while(b--<0);

A、9 B、-2 C、-1 D、8

PS:

4、若有以下定义和语句,则输出的结果是(C)
char c1='b',c2='f';printf("%d\n",c2-c1);

A、2 B、3 C、4 D、5

5、已知:char a[3][10]={"zhang","li","wang"},*pa=a; 不能正确显示字符串"li"的语句是(C)
A、printf("%s",a+1); B、printf("%s",*(a+1));
C、printf("%s",*a+1); D、printf("%s",&a[1][10]);

PS:a是地址,所以前面要加指针或者取指操作符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
人生如幻亦如梦
2009-04-20 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:62.5万
展开全部
C.非X=0.或Y=1
A.地址好像不能P+1。
A.b--=9.由于是先循环后判断,所以只做了一次b=b-a,所以=9
C.字符b和f的ASCII码之间相差了4,输出的是%d,应该是4
A.

好长时间没用C了。仅供参考。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cgiggle
2009-04-20 · TA获得超过1957个赞
知道大有可为答主
回答量:1996
采纳率:0%
帮助的人:1258万
展开全部
B
B
D
C
CD
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式