; //此处循环为空循环,当y--表达式为0时,跳出循环;y=-1.
printf(\ } 3.10
#include
printf(\ return 0; } 3.11
#include
{ int a=6, b=0, c=0;
1○4 for ( ;a&&(b==0); ) ○
//将a+b替代x再计算3.5*a+b*a+b = 7.5
{
2 b += a; ○3 a -= c++;○
}
printf(\
}
16&&(0==0)为真,进入循环. ○
2b=0+6=6 ○3a=6-c++=6-0=6, c=1 ○
46&&(6==0)为假,跳出循环,输出结果。 ○
3.11
#include
main()
{ int a=1,b=2,c=3,d=0;
1(1==1 && 2==2) 成立,b=3,执行语句 ○2 if (a==1 && b++==2) //○
23!=2 表达式为真,造成||短路,执行语句○3. if (b!=2||c--!=3) ○
printf(\
else
3 printf(\○
else
printf(\
} 3.12
#include
{ int a=1,b=2,c=3,d=4;
if ((a=2) || (b=1)) //a=2表达式为真,造成||短路,即不对b赋值1。
c=2;
if ((c==3) && (d=-1) //2==3假.造成&&短路,即不对d赋值-1.
a=5;
printf(\
} 3.13
#include
{ int a=1,b=2,c=3,d=4;
1 if ((a=2) && (b=1)) //a=2真,b=1真,执行语句○
1 c=2; ○
2 if ((c==3) || (d=-1)) //2==3假 d=-1 真,执行语句○
2 a=5; ○
printf(\
}
3.14
func(a,b) int a,b;
{ static int m=0,i =2;
2○5 i+=m+1;○3 m=i+a+b;○
return(m); } main()
1 { int k=4,m=1,p;○
4 p=func(k,m); ○
printf(“%d”,p);
6 p=func(k,m); ○
printf(“%d\\n”,p); }
1k=4,m=1 ○2i=i+m+1=2+0+1=3 ○3m=3+4+1=8 ○4p=8,输出 ○
5i=i+m+1=3+8+1=12 ,m=12+4+1=17○6p=17,输出. ○
3.16
#include
gets(ss);
for( i=0; ss[i]!='\\0'; i++)
if( ss[i]>='A' && ss[i]<='Z') //将大写字母替换为对应的小写字母 ss[i] = ss[i]+32 ; puts(ss);
} 3.17
#include
{ int a[10]={78,89,98,66,54,76,45,82,62,95 }; int ka, ki, j; ka = ki = 0; for(j=1; j<10; j++) {
if ( a[ki]>a[j] ) ki=j ; // a[ki]存储的是最小值
if (a[ka] printf(“%d, %d\\n %d, %d\\n”, ki, a[ki], ka, a[ka] );//2,98,6,45 } 6.1 # include 6.2 /* 2.采用do??while语句实现计算并输出s=1+2+3+??+100 */ # include int i,s; i=100; s=0;