执行了以下程序段后x,w的值为???急需啊,本人是C语言菜鸟,求详细指导

作者&投稿:夏哄 (若有异议请与网页底部的电邮联系)
执行以下程序员段后,w的值为() Int w = 'A', x = 14, y = 15; W = ((x || y) && (w < 'a' )); -1 B.NUL~

x || y=14||15 = 1
w<'a' = 'A'<'a' = 1
W=1&&1=1
所以最终W值为1

x的值是9,指针q变量含有x变量的地址,*q等于存储在q中的地址的值,即存储在x中的值8,所以x是8+1等于9

#include <stdio.h>
#include <stdlib.h>
int main()
{
int x=0, y=1, z=2, w;
if (x++) //相当于if(0)
//上一语句执行后,此时x的值为1
{
w = x;
}
else if (x++ && y >= 1) //相当于else if(1 && y>=1) ,此时if条件是满足的,所以w=y=1
//此时x的值为2
{
w = y;
}
else if (x++ && z > 1) //因为上一个条件已经满足,这个语句将不被执行
{
w = z;
}
printf("x=%d, w=%d", x, w);
system("pause");

return 0;
}
正确结果,x=2, w=1
歆聆雨露,关于这样的表达式if(x++){}
相当于
int y;
if(x)
{
y=x;
x=x+1;
...
}
if(y==x)
x=x+1;

x=2,y=1,z=2,w=1
解答:先看if(x++),先判断x!=0,然后执行x++。所以等同于if(false),然后x++,即x=2了。
if(flase)之后,要执行else if(x++ && y >= 1),此时,if 判断的是 x!=0 && y>=1,随后x++。由于先前x=1,所以if(true) ,并且x++,即x=2了。再执行w=y,所以w=1;执行了这个else if之后,就不执行下面的一个else if了。所以结果是x=2,y=1,z=2,w=1。

if (x++)
{
w = x;
}
x++是先赋值 后自加 这句不执行
else if (x++ && y >= 1)
{
w = y;
}
x++ && y >= 1 为真 执行w = y;
后面的不再执行
结果:x2,w=1

if(x++)第一次见过这样的逻辑表达式

调试下就可以看到值了啊


下述程序段的输出结果是 int x=10; int y=x++; printf(“%d,%d...
先放张图,规律很容易看出来吧 首先,逗号运算符是取右边 这里涉及到参数的求值顺序,即确定最右侧y++输出是5后,自增1,导致下一步中间y++输出是6,之后再自增1,最后y的输出自然就是7。是不是眼熟,这不就是栈嘛,后进先出,这题不太会考察,出题人估计都没想到这一层,只是单纯想考逗号和...

第五届全国ITAT教育工程就业技能大赛C语言程序设计预赛试题及答案谁有...
20. 若k为int型变量,以下语句段执行后的输出结果是___。(知识点5.3)k=-3;if(k<=0) printf(“###”)else printf(“***”);A) ### B) *** C) ###*** D) 有语法错误 ,不能执行21. 当a=2,b=3,c=4,d=5时, 执行下面一段程序后x的值为___。(知识点5.3)if(a>b)if(c<d)x=1 ...

C语言选择题求解 快
7. 执行以下程序段后,w的值为___。int w='A',x=14,y=15;w=((x||y)&&(w<'a'));A NULL B -1 C 1 D 0 解析: 因为(x||y)&&(w<'a'))正确,所以赋给W的值为1(表示正确),如果前面的式子错误则返回的值为0(表示错误) 。9. 以下列出C语言常量中,...

c程序循环练习题
6、执行下列程序段后,I值是( )。int I,x;for(I=1,x=1;I<=20;I++){ if(x>=10) 语句1 break;if(x%2==1) 语句2 { x+=5;continue;} x-=3;} 第一次循环:语句1为假,语句2为真执行 x+ = 5 x值变成6 重新循环 第二次循环:语句1为假,语句2为假执行 x...

有没有操作系统的试卷?有的话给我提供一下
13、分别输入6和5,程序运行结果正确的是___。 main( ){ int x ;scanf ("% d", & x);if (x - - > 5) printf (" % d", x);else printf (" % d", x); }A、5 5 B. 6 6 C. 6 4 D. 5 414、执行下列程序段后,结果为___。 n = 0;while ( + + n < 4)prindtf ( " %...

C语言基础题,帮忙做下 谢谢
29 已知 int x=1,y=1,z=1;表达式"x+++y+++z++"的值是__C__。A) 3 B) 4 C) 5 D) 表达式错误 30 用十进制表示表达式"12|012"的值是___D_。A) 1 B) 0 C) 12 D) 14 31 已知以下程序段:int a=3,b=4;a=a^b;b=b^a;a=a^b;则执行以上语句后...

各位大侠们,二级C语言考证笔试和机试一般是考哪些题型的,基础题占分...
while (x--); printf(“%d\\n”,x);}2、以下程序的运行结果是 。 main(){ int m=5; if (m++ > 5) printf(“%d\\n”,m); else printf(“%d\\n”, m――);}3、当执行以下程序段后,i的值为 、j的值为 、k的值为 。int a,b,c,d,i,j,k;a=10; b=c=d=5; i=j=k=0;for( ; ...

求一些c编程题
34、若有定义:int x,y;char a,b,c;并有以下输入数据(此处< CR> 代表换行符,\/u代表空格): 1u2 AuBuC 则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是 A) scanf("x=%d y+%d",&x,&y);a=getchar();b=getchar();c=getchar(); B) scanf("%d %d",&x...

急求!四川省二级C语言模拟题、复习资料、考点!
1.下面程序段的输出结果是【 】。int k=10;float a=3.5,b=6.7,c;c=a+k%3*(int)(a+b)%2\/4;2.表达式5%(-3)的值是【 】,表达式-5%(-3)的值是【 】。3.已知:int a=5;则执行a+=a-=a*a;语句后,a的值为【 】。4.下面程序的运行结果是x=【 】,y=【 】。main( ){ float x=4.9;...

FANUC 数控车床 编程
G71U_R_;(注解:U:X单边的背吃刀量;R:退刀量)G71P_Q_U_W_F_;(注解:P:循环程序段的开始;Q:循环程序段的结束;U:X方向的预留精车量;W:Z方向的预留精车量;F:粗车时的走刀量)程序:O0001;G99G97G21;N1;T0101;M03S600;M08;G00X36.;Z2.0;G71U1.5R0.5;G71P10Q...

米泉市15255797849: 执行了以下程序段后,x,w的值为( ). int x=0,y=1,z=2,w; if(x++)w=x; else if(x++&&y>=1)w=y; else if(x++&&z>1)w=z; -
盈尚爱西:[选项] A. 0,1 B. 1,1 C. 2,1 D. 3,2

米泉市15255797849: 执行了以下程序段后x,w的值为???急需啊,本人是C语言菜鸟,求详细指导 -
盈尚爱西: x=2,y=1,z=2,w=1 解答:先看if(x++),先判断x!=0,然后执行x++.所以等同于if(false),然后x++,即x=2了. if(flase)之后,要执行else if(x++ && y >= 1),此时,if 判断的是 x!=0 && y>=1,随后x++.由于先前x=1,所以if(true) ,并且x++,即x=2了.再执行w=y,所以w=1;执行了这个else if之后,就不执行下面的一个else if了.所以结果是x=2,y=1,z=2,w=1.

米泉市15255797849: 执行以下程序段后,x,w的值为多少? -
盈尚爱西: x=2,y=1,w=1,z=2 if(x++)w=x;这句,不会执行条件语句时由于x++是自增后置,所以在判断后才加1, 于是else if(x++&&y>=1)这句被判断为真,且x又后置加了一个1,所以w=1;x=2,y=1,z=2

米泉市15255797849: 执行以下程序段后,x,w的值为—— int x=0,y=1,z=2,w; if(x++)w=x; else if(x++&&y>=1)w=y; else if(x++&&z -
盈尚爱西: 应该是X=2,w=1.

米泉市15255797849: 18) 执行以下程序段后,w的值为 -
盈尚爱西: 结果是C) 1 int w='A',x=14,y=15; //W中的值是65(因为W是整型,所以'A'取其ASCII码值) x||y //两个数都是非0,进行或运算结果为真,即为1 w<'a' //w的值是65,a的ASCII的值是96,w<'a'成立,所以结果也为真,即为1 w=( (x||y) && (w<'a') ) 真与真的结果还是真,所以w=1, 所以结果选择 C

米泉市15255797849: 执行下面的程序段后,x的值为 -
盈尚爱西: 选C、100 for 循环中 i 的值是从 1 开始 每循环一次 +2 所以 就相当于 x =x +1 +3 +5 +7 +9 +11 + 13 + 15 +17 +19 所以 结果 是100

米泉市15255797849: 执行以下程序员段后,w的值为() Int w = 'A', x = 14, y = 15; W = ((x || y) && (w < 'a' )); - 1 B.NUL -
盈尚爱西: 答案为1.x||y为或的关系,由于x,y 都不为0,所以这部分值为1.w<'a',因为在ascii码中'A'<'a,所以此表达式值为1,&&是与的关系,由于两者都是1,所以与 的结果也是1.

米泉市15255797849: 以下程序段运行结束后,变量x的值为多少?(详解步骤) -
盈尚爱西: x=2*4=8 实际没有进行循环,只是进行了x=x*y y=y+1

米泉市15255797849: 运行下面程序后的w值为 - ---- - . main() { int w=2,k; for(k=1;k<3;k++) w=f(w); printf("%d\n",w); -
盈尚爱西: k=1,w=f(2)=2+2+4=8 k=2,w=f(8)=8+2+5=15 static z=3;将会在发f()结束后保留z的值

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