c语言 求助

main()
{int a=1,b=0,c=0;
a=(b++)+(++c);
{int b=0;
a+=b;
{int c=0;
a+=b+c;}
a+=b+c;
}
a+=b+c;
printf(“\n%d",a);
}

求大神详细说一下最后的答案是怎么得到的

最内部:
c=0
a=a+b+c
则: a=a+b /*最内部结果*/

次内部:
b=0
a=a+b
则a=a
然后
a=a+b+c=a+b +b+c /*最内部结果利用,由于b是0,因此最内部结果没有影响算术值*/
则:a=a+c /*次内部结果*/

最外部:
a=1,b=0,c=0
a=(b++)+(++c)=0+1=1 /*分解计算,这里是关键,b++时b是0,++c时c是1,这一句结束后b=1,c=1*/
则:a=a+b+c=a+c +b+c /*次内部结果利用*/
这里 a=1,b=1,c=1
结果为4
最后打印a的值,输出为4
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-13
int main()
{
int a=1,b=0,c=0;
a=(b++)+(++c);//=>c +=1;a=b+c;b+=1; =>c=1,a=1,c=1;
{
int b=0;//此b会屏蔽上面的b变量,两个变量不同,只是名字相同
a+=b;//a = 1;
{
int c=0;//此c会屏蔽上面的c变量,两个变量不同,只是名字相同
a+=b+c;//a = a+b+c;==>a=1;
}//里面的c到此结束作用域
a+=b+c;//a = 1+0+1 = 2;
}
a+=b+c;//a = 2+1+1 = 4;
printf("\n%d",a);//a=4;
}

外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,即全局变量不起作用。本回答被提问者和网友采纳
第2个回答  2020-01-13

C语言求助,有图,基础比较差,希望过程详细一些?
px 被定义为my_s结构的指针,并被初始化 指向x的地址( *px=&x )答案C: (*px).a px是指针,*px 就是间接寻址 等同于 x 答案D:x->a 因为x 是结构指针所以不能使用->访问结构变量的成员。struct my_s{ int a;char c;}x,*px=&x;以上代码等同于 struct my_s{ int a;char c;};...

C语言啊。。。求助。。帅哥美女们,大哥大姐们会的帮下忙。无限感激...
include<stdio.h> int main(){ int a[3];int i,max;int n;scanf("%d",&n);while(n--){ for(i=0;i<3;i++)scanf("%d",&a[i]);max=a[0];for(i=0;i<3;i++)if(a[i]>=max)max=a[i];printf("%d\\n",max);} return 0;} ...

C语言求助求助求大佬救命
第一空:int MAX,MIN;int input_function(int *);int sorting_function(int *);int output_function(int *);第二空:array_data 第三空:array_data[i]=value;第四空:array_data[j-1]>array_data[j]第五空:(i+1)%5==0 另每一个函数最后一个}前加一句return 0;或把函数名前的int...

C语言作业求助,十分感谢
C代码和运行结果如下:输如10个数,成功输出了它们的最大值、最小值和平均值,望采纳~附源码:include <stdio.h> int main() { int max, min, sum, num, i;scanf("%d", &num); \/\/ 先输入一1个数 max = min = sum = num;for (i = 0; i < 9; i++) { \/\/ 再输入剩下9...

c语言求助代码该怎么写,能附带讲解说明最好。
include <stdio.h>void fun() { printf("Smile! ");}int main() { \/\/ 需要打印 3 行, 所以从 0 遍历到 3 for (int i = 0; i < 3; i++) { \/\/ 每行需要打印 "Smile! " 的个数为 3 - i for (int j = 0; j < 3 - i; j++) { fun(); }...

C语言习题求助,编译通过,运行错误,高分求解
你可以参考我下面提供的类型,希望能够对你有些帮助。Warning 警告类型错误有很多种。例如:(1)、虽然定义了某个变量,但是没有对其是否成功初始化就使用、(2)、把赋值符号的等于(=)写成了逻辑相等(==),等等。例如对于(1)而言:include <stdlib.h> \/* malloc( ) 函数原型在此头文件中...

c语言代码求助
代码文本:include "stdio.h"int main(int argc,char *argv[]){ char a[80];int i,j,k;while(1){ printf("Please enter a string(Length<80)...\\n");if((a[0]=getchar())==EOF)break;for(i=1;i<80;i++)if((a[i]=getchar())=='\\n')a[i]='\\0',i=79;for(i=j=...

C语言求助,题目有图,希望过程详细一些? 。。
C不完全正确,不能像结构体那样对所有成员初始化,共用体的成员地址不是独立的,共享同一段内存。(但是可以用一个常量来初始化)下面我写的代码演示上面的特殊使用情况:include <stdio.h> union data{ int n;char c;short s;};define M 5 int main(){ void fun(union data a);\/\/共用体做...

C语言作业求助?
define M 3 \/\/假设有3位选手 define N 5 \/\/假设有5位评委 int main(){ int i,j;double score[M][N],avg[M];for (i = 0; i < M; i++){ double sum = 0;printf("Please Input No.%d's scores:\\n",i+1);for (j = 0; j< N; j++){ scanf("%lf", &score...

c语言编程求助,越多越好我可以加,一题也行,感谢大神!
1#include<stdio.h>int prime(int n){ int flag=1; if(n<=1) return 0; for(int i=2;i*i<=n;i++){ if(n%i==0){ flag=0; break; } } if(flag) return 1; else return 0;}int main(){ int t; scanf("%d",&t); if(prime(t...

相似回答