C实验报告1参考答案

改正后的程序:

#include main() {

char ch,c1,c2;

printf(\ ch=getchar();

if((ch>='a')&&(ch<='z')) ch-=32; c1=ch-1; c2=ch+1; if(ch=='A') c1=ch+25; else if(ch=='Z') c2=ch-25; putchar(c1); putchar(ch); putchar(c2); putchar('\\n'); }

(2)下列程序的功能为:输入3个整数后,输出其中最大值。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_2.c保存。

#include \

该程序的运行结果: main()

请输入3个整数: {

5 2 7 int a,b,c,max;

3个数中最大者为:7 printf (\请输入3个整数:\\n\

scanf (\

max=a; if (c>b)

{ if (b>a) max=c;} /* c>b>a */ else /* b>c */ {if (c>a) max=b;} /* b>c>a */ printf(\个数中最大者为:%d\\n\}

改正后的程序:

#include \main() {

int a,b,c,max;

11

printf (\请输入3个整数:\\n\scanf (\max=a; if (c>b)

{ if (c>a) max=c;} else {if (b>a) max=b;} printf(\个数中最大者为:%d\\n\}

(3)下列程序的功能为:输入1-4月份号,输出该月份对应的英语表示法。例如,输入“3”,则输出“Mar”。纠正程序中存在错误,以实现其功能。程序以文件名sy4_3.c保存。 #include \main() {

char m;

printf(“input the month number:\\n”); 该程序的运行结果: scanf (“%c”,&m); input the month number: switch (m) 2 { Feb case 1:printf (“Jan”); case 2:printf (“Feb”); case 3:printf (“Mar”); case 4:printf (“Apr”); } }

改正后的程序:改法一

#include \main() {

char m;

printf(\ scanf (\%d\ switch (m) {

case 1:printf (\break; case 2:printf (\break; case 3:printf (\;break; case 4:printf (\ } }

改法二

12

#include \main() {

char m;

printf(\ scanf (\ switch (m) {

case ?1?:printf (\break; case ?2?:printf (\break; case ?3?:printf (\;break; case ?4?:printf (\ } }

2.程序填空

(1) 下列程序的功能为:判断从键盘上输入的一个字符,并按下列要求输出。

若该字符是数字 输出字符串\若该字符是大写字母 输出字符串\若该字符是小写字母 输出字符串\

若该字符是其他字符 输出字符串\,@,?\

补充完善程序,以实现其功能。程序以文件名sy4_4.c保存。 #include main() 该程序的运行结果: { char c; d scanf(___\ _________); a-z if('0'<=c&&c<='9')

_____ printf(\______

else if(___c>='A' && c <='Z'______) printf(\

____ else if _______('a'<=c&&c<='z') printf(\

____ else __________________ printf(\,@,?\\n\

}

(2)下列程序的功能为:实现加、减、乘、除四则运算。补充完善程序,以实现其功能。程序以文件名sy4_5.c保存。

#include 该程序的运行结果: main() Please input a expression:2*6 { 2*6=12 int a,b,d; char ch;

printf(\

13

scanf(\ &a,&ch,&b ); switch(ch) {

case '+':d=a+b; printf(\ break;

case '-':d=a-b; printf(\ break;

case '*':d=a*b; printf(\ break; case '/': if( b==0 ) printf(\ else printf(\ float )a/b); /*强制类型转换*/ break; default: printf(\ } }

(3)下列程序的功能为:猜价格,用户输入自己估计的价格,程序判断其正确性。请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_6.c保存。

#include \main() {float a,b;

printf(\请主持人输入时尚手机的实际价格\\n\该程序的运行结果: scanf(\请主持人输入时尚手机的实际价格 printf(\请观众猜时尚手机的价格\\n\1500 scanf(\ if( ab )

printf(\高了\\n\}

3.编程题

(1)从键盘输入三个整数,输出这三个整数的和、平均值(保留2位小数)、积、最小值以及最大值。程序以文件名sy4_7.c保存。

参考源程序

14

#include main() {

int sum=0, a, b, c, max, min; long ji=0; float ave;

printf(\输入三个整数:(a=? b=? c=?)\\n\ scanf(\ sum=a+b+c; ave=sum/3.0; ji=a*b*c;

max=((a>b?a:b)>c)?(a>b?a:b):c; min=a; if (b

printf(\ a*b*c=%ld ave=%.2f\ printf(\ min=%d\\n\}

(2)有一分段函数如下,要求用scanf函数输入x的值,求y值并在屏幕上输出。程序以文件名sy4_8.c保存。 0 x<5 y = x-1 5≤x<15 6x2-1 x≥15

参考源程序

#include void main() { float x,y;

scanf(\ if(x<5) y=0;

else if(x<15) y=x-1; else y=6*x*x-1; printf(\}

(3)从键盘输入一个数字0~6,输出相应星期几的英文单词,其中数字0对应Sunday,数字1~6对应Monday~Saturday,如果输入的不是0~6的数字,则显示错误信息。程序以文件名sy4_9.c保存。

参考源程序

15

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4