(含答案)程序设计基础与语言_复习提纲2014-2015-2- 下载本文

2. (double)9 / 2 为小数除以整数,结果为小数,为4.5

3. (int) ( (double)9/2 ) 即(int) (4.5),强制转化为整型,结果为 4 4. (9)%2 取余数,结果为1 5. 4 -1 结果为3

第25题:25.若有定义语句:int x=5;,则表达式x+=x-=x*x的值为 -40 。

先计算x*x = 5*5 =25,存入临时变量 x还是5

再执行 -= 操作, x-= 25, 执行 x= 5-25 = -20 再执行+= 操作, x+=-20, 执行 x=-20-20 = -40 结果 x 变为 -40

32.函数调用语句:fun( ( exp1, exp2 ), ( exp1, exp2, exp3) ); 含有的实参个数是 2 。

:分别是exp2和exp3.

逗号表达式,它将以逗号为界,从左到右计算每个表达式的值,最后返回最右边的表达式的值

3.1

#include main() { int s;

1 scanf(“%d”,&s); ○

while(s>0) {switch(s)

9○10 {default :printf(“%d”,s+4);break; ○

3 case 1:printf(“%d”,s+1); break; ○5 case 2:printf(“%d”,s+2);break;○7 case 3:printf(“%d”,s+3); ○

}

2○4○6○8○9 scanf(“%d”,&s); ○

}

}

1输入1 2 3 4 5 0 ○

2读入s=1,s>0 ○3输出s+1;即2 ○

4读入s=2;s>0 ○5输出s+2;即4 ○

6读入s=3;s>0 ○7输出s+3;即6 ○

8读入s=4;s>0 ○9输出s+4;即8 ○

9读入s=5;s>0 ○10输出s+4;即9 ○

3.2

#include void main() {

char s[]=\int i,n=0;

for(i=0;s[i]!=’\\0’;i++) //用以计算字符串中数字的个数, if(s[i]>='0'&&s[i]<='9')

n++;

//字符串中一共有9个数字,即n=9;

printf(\}

3.3

#include void main()

{ char b,c; int i;

b='C';c='c'; for(i=0;i<6;i++)

{if(!(i%2)) //当i等于偶数时执行输出i+b putchar(i+b); else

//反之,输出i+c;

putchar(i+c); }

printf(\}

3.4

#include void main() { int k, s;

3○5○7 for(k=2, s=1; k<20; k+=3) ○

8 if (s>k) break ; ○2○4○6 else s+=k; ○

printf(\}

1k=2,s=1 ○2s+=2,即s=3 ○

3k=2<20;k+=3,即k=5 ○4s+=5,即s=8 ○

5k=5<20;k+=3,即k=8 ○6s+=8,即s=16 ○

7k=8<20;k+=3,即k=13 ○8 s>k break结束循环 ○

输出结果 结果 k=11,s=16

3.5

int i=0;

char s1[10]=\;

1 strcat(s1,s2); ○

2○4○6○8○10○12○14 while (s1[i++]!='\\0') ○3○5○7○9○11○13 s2[i]=s1[i]; ○

puts(s2);

1将s2加到s1末尾,即s1:“456def” ○

2s1[0]=4,s1[0]!='\\0'成立,i=1 ○3 s2[1]=s1[1],s2[1]=5,即s2:“d5f” ○

4s1[1]=5,s1[1]!='\\0'成立,i=2 ○5 s2[2]=s1[2],s2[2]=6 即s2:“d56” ○

6s1[2]=6,s1[2]!='\\0'成立,i=3 ○7 s2[3]=s1[3],s2[3]=d 即s2:“d56d” ○

8s1[3]=d,s1[3]!='\\0'成立,i=4 ○9 s2[4]=s1[4],s2[4]=e 即s2:“d56de” ○

10s1[4]=e,s1[4]!='\\0'成立,i=5 ○11 s2[5]=s1[5],s2[5]=f 即s2:“d56def” ○

12s1[5]=f,s1[5]!='\\0'成立,i=6 ○13 s2[6]=s1[6],s2[6]=’\\0’ 即s2:“d56def\\0” ○

14s1[6]=’\\0’,s1[6]!='\\0'不成立; ○

输出字符串s2:“d56def\\0”

3.6

#include main()

{int x, y, z; x=y=1;

z=x++,y++,++y; //逗号运算符运行级别最低,按从左到右执行。z=x++=1,x=2,y=3 printf(\,%d,%d\\n\,x,y,z); } 3.7

#include main()

{ int a=0,b=0,c=0,d=0;

(a++ && b++) ? c++ : d++;

/* a++表达式值为0造成&&短路,b++不执行,a=1 (a++ && b++)表达式为假,执行d++,d=1 */

printf(\} 3.8

#include main()

{ int a=-1, b=-1;

while(++a) //++a表达式值为0,不进行循环,a=0 ++b;

printf(\} 3.9

#include main() { int y=10; while(y--)