以下程序的运行结果是 100
# include”stdio.h“
main()
{
int a,b,c,d,e;
a=c=1;
b=20;d=100;
if(!a)d=d+1;
else if(!b)
if(d)d=--d;
else d=d--;
printf("%d\n\n",d);
}
把你的代码规范下是下面这样的:
#include "stdio.h"看明白了么,最后一个else匹配的是if(d)这一句的if。
从头解释,a、b、c、d、e赋值就不用说了,到if(!a),因为a=1,所以!a=0,就是逻辑假,d=d+1不执行,接着到else if(!b),b是20,!b同样是0,所以下面的
if(d)这一段都不执行,最后printf("%d\n\n",d)的结果是100,因为从头到尾d的值都没有变
但是 if(d)
d=--d;
else
d=d--;
它没有加括号啊,else if(!b)逻辑假,但是它不是只管到它后面的一句么??为什么else d=d--; 也管到了??
望解释 谢谢
你要了解else匹配最近的if,而if...else if...else这种格式在没有括号的情况下都是只包含下一句。这一段就是:else if(!b),它的下一句被自动包含进来,也就是if(d)属于else if(!b)。下面接着是d=--d,这句包含在if(d)里面。再接着到了else,它匹配最近的if,匹配到了if(d),所以它属于if(d)这个判断语句的体系。d=d--这句是else下一句,所以else自动包含这一句。
整理一下,else if(!b)包含if(d),else和if(d)属于一体,自然也被包含进else if(!b),你可以理解为
if(d)
d=--d;
else
d=d--;
其实是一句话(因为它们是一体的,是一家人),相当于else if(!b)的下一句,自然都属于else if(!b)
c语言菜鸟求帮忙,跪求跪求 我需要解释 谢谢啦
从头解释,a、b、c、d、e赋值就不用说了,到if(!a),因为a=1,所以!a=0,就是逻辑假,d=d+1不执行,接着到else if(!b),b是20,!b同样是0,所以下面的 if(d) d=--d;else d=d--;这一段都不执行,最后printf("%d\\n\\n",d)的结果是100,因为从头到尾d的值都没有变 ...
c语言菜鸟求帮忙,跪求跪求,54和55两道题求大神解答 要解释 谢谢
54. 选D。55. 题目有错:应该是“并有以下输入数据”而不是“并有以下输出数据”。除此之外D正确。具体是这样的:第1个&s1接收了2后面的回车,第2个&s1接收了字符U;第1个&s2接收了U后面的空格,第2个&s2接收了字符V;第1个&s3接收了V后面的空格,第2个&s3接收了字符W。
C语言菜鸟求高手解答...
第一个问题只能说是一个判定条件,不知道你要的结果是什么。。2.m++>5这个判定是先取值后运算,m=5>5这个是不成立的,所以结果为假,然后m自增m=6,接着运行else printf("%d\\",m--);同样先取值运行,m=6所以输出6,之后再自减m=5但这是没有输出的,如果运行这个 main(){ int m=5;i...
C语言问题,菜鸟求答
x[2][0]=7,x[2][1]=8,x[2][2]=9 再看你的循环语句for(i=0;i<3;i++)这句话可以解释为i从0递增到2时执行循环体 所以当i=0时,输出x[0][2] 的值,即3 当i=1时 ,输出x[1][1]的值,即5 当i=2时,输出x[2][0] 的值,即7 即为答案C ...
菜鸟跪求高手解读c语言错误提示,
比如:提示错误:c(5) : error C2146: syntax error : missing ';' before identifier 'printf',其中before identifier‘printf'的意思是:在printf这句之前的语句少了一个‘;’,这是有英文提示的!c(6)表示第六句无法执行,你可以双击c(6) : error C2143: syntax error : missing ';' 在...
C语言问题我是菜鸟求步骤解释 题在下边图里 输出一下图案那到
h>void main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf(" ");for(k=0;k<=2*i;k++)printf("*");printf("\\n");}for(i=0;i<=2;i++){for(j=0;j<=i;j++)printf(" ");for(k=0;k<=4-2*i;k++)printf("*");printf("\\n");} } ...
C语言菜鸟去求高手帮助
i=3是赋值表达式,换句话说你if括号里的值是3,这时候无论对错都是对的,if 后面语句会一直被执行 i==3是关系表达式,当i==3时为1当不等时为0,所以只有等于三的时候if 后面的语句才被执行 我前几天刚刚问过教我们C语言的加拿大副教授!哈哈,你多走运 ...
C语言的菜鸟问题,大家帮帮忙 我是自学的
1.变量必须先声明后使用,并且变量的声明要放在开头。我不明白int x=a的本意,你是想直接定义个整形变量x,且值为a吗?如果是,有如下问题:如问题1所述,声明放在前面。x=a;a是浮点类型、x是整形,这样的赋值,浮点数的小数部分会丢失,就是说x中只有a的整数部分。看看我改的程序是不是你想...
菜鸟求c语言编辑高手解析错误啊!希望能将每条错误用汉语解释一下下...
(1)编译错误,#include 命名中需要文件名 (3)编译错误,TYPE语法错误 (4)编译错误,未定义的标识符FLOAT (4)编译错误,丢失AVG标识符 ;符号 (4)编译错误,未定义的标识符 AVG (5)未定义SCANF (5)未定义的标识符 B (5)未定义标识符C (7)类型转换从浮点型转到整形,数据可能丢失...
c语言的基础问题菜鸟啊明天要教高手帮忙在线等啊~~
include <stdio.h> void main(){ int x,i;printf("please input a int number:");\/\/请输入一个数字:scanf("%d",x);\/\/输入数字 for (i=1,i<=9,i++){ printf("%d*%d=%d ",x,i,x*i);if(i mod 2 ==0)\/\/自动换行 printf("\/n");} } ...