66问答网
所有问题
C语言的一个问题
若有以下程序
main()
{ int p,a=5;
if(p=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
执行后输出结果是什么?请解释谢谢
举报该问题
其他回答
第1个回答 2008-01-04
输出为1
因为
!=(不等于运算符)
=(赋值运算符)
前者的优先级要高于后者,且!=结合方向自左向右,=自右向左,所以p=a!=0其实先计算优先级高的,即a!=0,这个表达式计算后得到一个布尔型的值,之前a被赋值为5(5!=0),所以前面那个布尔型的值就为1(1表示真,0表示假),计算完后接下来计算赋值的表达式,即把1赋值给p,又因为p!=0,所以执行上面的if语句。即输出p的值为1
第2个回答 2008-01-04
(p=a!=0)的执行顺序如下:
(p = (a != 0))
a等于5,因此a!=0为true,转化为整数后为1,因此p被赋成了1,此时(p = 1)的表达式的值就是最后的值,也为1,而1转化为布尔值为ture,因此走第一个分支,输出1本回答被提问者采纳
第3个回答 2008-01-04
1
相似回答
C语言的一个问题
答:
答案选D else没有与之配对的if,编译的话编译器会提示你else位置有错。不过据我估计你的if那一句应该是if(a=
1
){ b=1;
c
=2} 如果是这样的话答案为
C
if(a=1)中=为赋值号,意思是把1赋给a并检查a的值是否是非零的,如果非零,就执行if语句 ...
c语言的一个问题
答:
原题中声明了两个k,
一个
是全局变量,一个是函数中的局部变量 局部变量会屏蔽掉全局变量 (5)每次进函数,都会输出局部变量k的值,而每次进去k的值都为1,所以函数中的输出是(k=1,k=1),主程序里面输出全局变量k的值1,所以结果为A(k=1,k=1,k=1)(6)修改之后,局部变量k的生存周期...
一个
关于
C语言的问题
,求教!!
答:
C 语言的
最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给编程人员留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对初学
C语言的
人来说,经常会出一些连自己都不知道错在哪里的错误。看着有错的程序,不知该如何改起,本人通过对...
一个C语言的
基础
问题
答:
解答:1、
c语言
是以分号做为语句的结束。for循环是
一个
语句所以就必须得有分号,不然编译无法通过,出现语法错误。for语句是循环条件和循环体的组合。你这里给出了循环条件,但是没有循环体。循环体为空。然后以分号表示这个for语句的结束。如果你的循环体有多个语句可以用{}来括起来。2、i++,存在...
C语言问题
答:
1) 变量的指针,其含义是指该变量的 B 。A. 值 B. 地址
C
. 名 D.
一个
标志 2) 若需要建立如图所示的存储结构,且已有声明float *p, m=3.14;则正确的赋值语句是 B 。A. p=m; B. p=&m; C. *p=m; D. *p=&m;3) 有如下语句int a=10, b=20,...
发现了
一个
有趣的
c语言问题
,请各位大神帮忙解释一下。
答:
2.scanf("%d",20000)这句合法并没有什么难以理解的地方,因为指针归根到底也只是
一个
地址值罢了,直接用地址值和直接用指针,这没有任何区别,最多就是编译器会警告你一下。不知道你说的“”自己定义一个函数比如f(*pointer);然后在用这种方法就会报错“”是什么意思 看下面代码 include <stdio.h...
大家正在搜
你必须知道的495个C语言问题
c语言的一些基本问题
关于c语言提问的问题
关于C语言的问题
c语言中出现的问题
常见的c语言问题
c语言问题大全
c语言排序问题
c语言程序问题