C语言 分析下列程序的运行结果

1. 程序输出结果:
main()
{
int a;
if (3 && 2)
a=1;
else
a=2;
printf("%d",a);
}
2. 程序输出结果:
main()
{
int a,b;
a=1;
switch(a)
{
case 1: a=a+1,b=a;
case 2: a=a+2,b=a;
case 3: a=a+3,b=a;break;
case 4: a=a+4,b=a;
}
printf("\n%d",b);
}

3.程序输出结果:
main()
{
int i,a=0;
for(i=0;i<10;i++)
a++,i++;
printf("%d",a);
}
4. 程序输出结果:
main()
{
int a=0,j=0;
while(j<=100)
{
a+=j;
j++;
}
printf("%d",j);
}
5. 程序输出结果:
main()
{
int a=0,j=1;
do
{
a+=j;
j++;
} while(j!=5);
printf("%d",a);
}

1、输出为:1
if条件语句中,当()中的值为零时,条件为假,非零时条件为真;
由于逻辑运算2&&3结果为1,故条件为真,程序执行a=1语句;
最终输出为1
2、输出为:7
运行switch(1)时,将执行case(1)语句,并接着往下执行直至遇到break,或者整个switch语句结束
所以最终b=1+1+2+3=7
3、输出为:5
实际上for循环中 i 有两次自加运算,故步长为2,;即当 i 增加2时,a加1;当 i >=10时,跳出循环
最终循环一共进行了5次,所以结果a=5
4、输出为;101
for循环中,每循环一次 j 加1,j 的初值为0,当 j >100时跳出循环
故循环一共进行了101次,当 j =101时退出循环,此时 j =101
5、输出为:10
这是一个do—while循环语句,当while中 j 不等于5时进行循环,当 j =5时循环结束
该语句中一共循环了5次
a=0+1+2+3+4=10

这些程序都很简单,估计你是初学的吧,所以我写的详细点,有啥不懂的都可以再问。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-14
第二个没有break所以一直执行
第三个计算10以内有几个偶数吧包括0
第四个貌似是计算1到100的和吧
第2个回答  2012-10-13
1.输出1
2.输出7
3.输出5
4.输出101
5.输出10
第3个回答  2012-10-16
1
7
5
101
10

C语言 分析下列程序的运行结果
由于逻辑运算2&&3结果为1,故条件为真,程序执行a=1语句;最终输出为1 2、输出为:7 运行switch(1)时,将执行case(1)语句,并接着往下执行直至遇到break,或者整个switch语句结束 所以最终b=1+1+2+3=7 3、输出为:5 实际上for循环中 i 有两次自加运算,故步长为2,;即当 i 增加2时,...

C语言 42.下列程序的运行结果是( ) void fun(int *a,int *b) {int *...
答案选B.函数 fun(int* a,int* b)的两个参数类型都是int*型.也就是说,参数变量a, b本身的值不会变.当传入两个实参int* x , int* y后.尽管fun里面作了交换操作,这种交换不会影响到原来的x,y变量值.要象这样定义FUN函数,才有意义.void fun(int *a,int *b){int k;�k=*a...

C语言,以下程序运行的结果是什么,麻烦详细解释一下
int main(){ union b { int k;char c[2];}a;a.k=-7;printf("%d,%d\\n",a.c[0],a.c[1]);return 0;} 解释 :联合体共用存储空间。int型占4个字节,char型占一个字节,因此a的内存分布如下图 整型数-7的十六进制表示为0xfffffff9 char[0] = 0xf9 \/\/转为十进制-7 char[1]...

C语言问题:下面程序的运行结果是
看看程序逐步运行跟踪结果:i=1;[i=1] i<5成立,开始循环: i%2为真, printf输出[*], printf累计输出[*#]i++;[i=2] i<5成立,继续循环: i%2为假, continue;i++;[i=3] i<5成立,继续循环: i%2为真, 累计输出[*#*], 累计输出[*#*#]i++;[i=4] i<5成立,继续循环: i%2为...

c语言,以下程序运行后的输出结果是
c=(a+=a-=5)是一个表达式,(a=b,b+3)是另一个表达式。a=0,a=a-5=-5,a=a+a=(-5)+(-5)=-10,将值赋给c,c=-10,此时,a=-5 a=b,将b的值赋给a,a=0,执行b+3=0+3=3,这个3不对任何变量赋值。因此最终结果a=0,b=0,c=-10 输出a、b、c的值,输出0,0,-10...

C语言 在线等下列程序运行结果?新人,实在没财富值了,求各位高手帮帮忙...
=*(a+j); *(a+j)=t; i++;j--;\/*楼主这里的J应该是小写*\/ } for(i=0;i<5;i++) { printf("%d",*(a+i));\/*楼主这里少了个双引号,而且为了便于可读最好重起一行,不过楼主的也可以*\/ }}运行结果:25463 ...

C语言,写出下列程序运行结果及解释。
int x=12,y=8;printf("\\n%5d%5d%5d", !x, x|| y, x && y);\/\/(!x,x||y,x&&y) 相当于(!12,12||8,12&&8)\/\/ !x:当x=0,!x就等于 1 就是对x 取非 \/\/ ||:两边只要有一个为真,结果就为真 \/\/ &&:两边都为真,结果才为真,否则为0 } 输出结果: 0 1 1 ...

c语言 下列程序执行后的输出结果是(小数点后只写一位)
选A 20\/3中,20和3都是整型常量,所以20\/3==6。d=20\/3,那么d==6.000000,f也是一样。但是,如果这么写:d=20.0\/3,那么d==6.666667。i==l==6。希望对你有帮助。有不明白的可以练习我。

C语言,以下程序的运行结果是?
define sw(x,y) {x^=y;y^=x;x^=y;} 这个宏的作用就是在不借助第三变量的情况下,交换x和y的值,^是位异或运算符,x^=y相当于x=x^y,具体什么是位异或运算,可以在网上轻意找到相关教材。b=01代表8进制数的1,1在任何进制计数系统中都相等。

c语言。下面程序运行的结果是。答案是d,但为啥
!的优先级最高,但是它的结合方向是从右至左,所以上式等价与: !( 4&& ( !(5|| (!0) ) ) ).

相似回答