C语言程序设计第三次作业的部分答案及分析
三、写出下列每个程序运行后的输出结果
1. #include
void SB(char ch) {
switch(ch) {
case 'A': case 'a': //相当于if(ch==’A’||ch==’a’)
printf("WW "); break;
case 'B': case 'b':
printf("GG "); break;
case 'C': case 'c':
printf("PP "); break;
default:
printf("BB "); break;
}
}
void main() {
char a1='b',a2='C',a3='f';
SB(a1);SB(a2);SB(a3);SB('A');//4次调用SB,实际参数分别为b、C、f和A
printf("\n");
}
GG PP BB WW
2. #include
#include
double SD(int a, int b, char op) {
double x;
switch(op) {
case '+': x=a+b; break;
case '-': x=a-b; break;
case '*': x=a*b; break;
case '/': if(b) x=(double)a/b;
else exit(1);
break;
default: {printf("运算符错!\n");exit(1);}
}
return x;
}
void main() {
int x=20,y=8;
printf("%3.2lf ",SD(x,y,'-')); //以浮点形式输出x和y 的差
printf("%3.2lf ",SD(x,y,'*')); //以浮点形式输出x和y 的积
printf("%3.2lf\n",SD(x+y,y,'/')); //以浮点形式输出x+y和y 的商
} //小数点后保留2位。
12.00 160.00 3.50
3. #include
void WF(int x, int y) {
x=x+y;
y=x+y;
printf("subs: x,y=%d, %d\n",x,y);
}
void main() {
int x=18, y=23;
printf("main: x,y=%d, %d\n",x,y);
WF(x,y); //注意:调用WF后,x,y不会改变原有的值
x=2*x;
printf("main: x,y=%d, %d\n",x,y);
}
main: x,y=18, 23
subs: x,y=41, 64
main: x,y=36, 23
4. #include
#include
void fun(char ss[]);
void main( ) {
char s[15]="567891234";
fun(s);