《C语言编程》实验报告.doc
C语言编程上机实验报告班 级: 2011级电子商务一班 学 号: 姓 名: 实验日期: 2012 年 10 月 24 日实验题目实验二 选择结构程序设计实验环境Turbo C+ 3.0 实验目的1.掌握关系运算符和关系表达式的使用方法。2.掌握逻辑运算符和逻辑表达式的使用方法。3.掌握if语句、switch语句、条件运算符(?:)的使用方法。4.掌握选择结构程序的设计技巧。实验内容 1.改错题 (1)下列程序的功能为:输入1个字母后,输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出fgh;输入a,则输出zab;输入M,则输出LMN;输入Z,则输出YZA。请纠正程序中存在错误,使程序实现其功能。#include<stdio.h>main() char ch,c1,c2; printf(“Enter a character:”); 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个整数后,输出其中最大值。请纠正程序中存在错误,使程序实现其功能。#include “stdio.h”main() int a,b,c,max; printf(“请输入3个整数:n”); scanf(“%d%d%d”,&a,&b,&c); 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(“3个数中最大者为:%dn”,max);(3)下列程序的功能为:输入1-4月份号,输出该月份对应的英语表示法。例如,输入“3”,则输出March”。请纠正程序中存在错误,使程序实现其功能。#include “stdio.h”main() char m; printf(“input the month number:n”); scanf(“%c”,&m); switch(m) case 1:printf(“Jan”); case 2:printf(“Feb”); case 3:printf(“Mar”); case 4:printf(“Apr”); 2.程序填空 (1)下列程序的功能为:判断从键盘上输入的一个字符,并按下列要求输出。若该字符是数字 输出字符串“0-9”若该字符是大写字母 输出字符串“A-Z”若该字符是小写字母 输出字符串“a-z”若该字符是其他字符 输出字符串“!,” 请填写适当的符号或语句,使程序实现其功能。#include<stdio.h>main() char c; scanf("%c",&c); if(0<=&&c<=9) printf("0-9n"); else if('A'<=c&&c<='Z') printf(“A-Zn”); else if (a<=&&c<=z) printf(“a-zn”); else Printf(“!,n”); (2)下列程序的功能为:实现加、减、乘、除四则运算。请填写适当的符号或语句,使程序实现其功能。#include<stdio.h> main() int a,b,d; char ch; printf(“Please input a expression:”); scanf(“%d%c%d”,&a,&ch,&b);switch(ch) case +:d=a+b; printf(“%d+%d=%dn”,a,b,d); break; case -:d=a-b; printf(“%d-%d=%dn”,a,b,d); break; case *:d=a*b; printf(“%d*%d=%dn”,a,b,d); break; case /: if(b=0) printf(“Divisor is zeron”); else printf(“%d/%d=%fn”,a,b,(float)a/b); /*强制类型转换*/ break; default: printf(“Input Operator error!n”); (3)下列程序的功能为:猜价格,用户输入自己估计的价格,程序判断其正确性。请填写适当的符号或语句,使程序实现其功能。#include “stdio.h”main() float a,b; printf(“请主持人输入时尚手机的实际价格n”); scanf(“%f”,&b); printf(“nn 请观众猜时尚手机的价格n”); scanf(“%f”,&a); if(a<b) printf(“低了n”); if(a=b) printf(“猜对了!n”); if(a>b) printf(“高了n”);3编程题(1)编写一个程序实现如下功能:从键盘输入三个整数,输出这三个整数的和、平均值(保留2位小数)、积、最小值以及最大值。(包括算法说明:用文字或流程图说明;程序清单;运行结果:原始数据、相应的运行结果和必要的说明。)实验过程及结果1.改错题1. if(ch>=a)|(ch<=z)改为if(ch>='a')&&(ch<='z')if(ch=A)改为if(ch=A)else if(ch=Z)改为else if(ch=Z)2. if(b>a)改为if(c>a)if(c>a)改为if(b>a)3. scanf("%c",&m);改为scanf("%d",&m);case 1:printf(“Jan”); case 2:printf(“Feb”); case 3:printf(“Mar”); 改为 case 1:printf("Jan");break; case 2:printf("Feb");break; case 3:printf("Mar");break;2.程序填空1-(1) "%c",&c (2) printf("0-9n"); (3) 'A'<=c&&c<='Z' (4) else if (5) else2-(1) &a,&ch,&b (2) b=0 (3) float3-(1) a<b (2) a=b (3) a>b3.编程题: 1.程序代码:#include<stdio.h>main()int sum=0,a,b,c,max,min;long ji=0;float ave;printf("输入三个整数:(a=? b=? c=?)n"); scanf("a=%d b=%d c=%d",&a,&b,&c); 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<min) min=b; if(c<min) min=c;printf("a+b+c=%d a*b*c=%1d ave=%.2f",sum,ji,ave);printf("nmax=%d min=%dn ",max,min);2.运行结果:输入三个整数:(a=? b=? c=?)a=1 b=2 c=3a+b+c=6 a*b*c=6 ave=2.00max=3 min=1 Press any key to continue分析与思考(调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会)1.对于float类型的数据,一般涉及到精确度的问题,需要保留一或二位小数。2.程序编译过程中必须注意输入法。成绩