顺序和分支程序设计
一、实验目的
1.熟悉C语言的基本词类和表达式的构成及计算。
2.熟悉输入/输出函数、赋值语句的使用,掌握顺序程序设计的一般方法。
3.熟悉if、if-else、switch语句的使用,掌握分支程序设计的一般方法。
4.掌握在Turbo C集成环境下,输入、修改、编译连接、运行C程序的操作步骤和方法。
二、预习要求
1.复习C语言的基本数据类型(char、int、short、long、unsigned int、unsignedshort、unslgnedlong、float、double等)、基本运算符、基本类型的表达式构成与运算。
2.复习C语言程序的基本结构。
3.复习输入输出函数(getchar、putchar、scanf、printf)的调用格式与功能。
4.复习赋值语句、表达式语句if、if-else、switch语句的格式和功能。
5.复习Turbo-C的下列基本操作方法:
(1)启动。
(2)输入新的源程序。
(3)编辑修改已存在的源程序。
(4)源程序存盘。
(5)编译和连接源程序。
(6)运行目标程序及查阅运行结果。
(7)了解系统如何提示有关语法错误的信息。
三、实验准备
【问题一】表达式计算
假设有关变量的数据类型和初值如下:
字符型变量:c1='a', c2='A', c3='1'
整型变量:i1=13, i2=23,i3=33,i4=43,i5=53
短整型变量: si1=13,si2=23, si3=33
无符号短整型变量: usi1=13,usi2=23
单精度型变量: f1=13.0,f2=23.0,f3=33.0,f4=43.0
双精度型变量: d1=13.0,d2=23.0,d3=33.0,d4=43.0
手工计算下列各表达式的值,并指出运算后参加运算的各变量的值。编写程序并在计
算机上验证答案。
1.算术表达式的计算
(1)i1+ i2* i3/i4%i5;(2)c1+++c2; (3)i1--%i2--;
(4)i2++*--i1; (5)(++i2)/(--i1); (6)d1*d2+d2/d3-d3+d4。
2.关系表达式的计算
(1)f1>=f2>=f3>=f4; (2)i1+i4==i2+i3; (3)(c1=c1+2)!=(c3=c3+1)。
3.逻辑表达式的计算
(1)100¦¦i1; (2)!!!!0; (3)!c1;
( 4)usi1¦¦~usi2; (5)~i1¦¦!i2&&i3; (6)f1>f2¦¦f3==f4。
4.条件表达式的计算
(1)c1>i1?c2:c3; (2)i1>=0?1:-1; (3)c1==c2+32?1:0;
(4)c1>64?c1-=32:c1;(5)i2<0?-12:+i2;(6)0?1:0?2:0?3:4。
5.赋值表达式的计算
(1)si1=si2=si3; (2)i5=i3^i4; (3)usi2=-usi1>>10;
(4)c3=c1&c2; (5)i1%=i2-20; (6)i1-=i2+=i3*=i4/=i5;
(7)si3%=si2/=si1/=2;(8)c1&=c2; (9)i5=(i1=1,i2=2,i3=3)。
6.逗号表达式的计算
(1)c1=1,(c2=2,(c3=3));(2)i5=i1=1,i2=2,i3=3;(3)usi1=1,2,3,4,5
【源程序参考清单框架】
main()
{ char c1='a',c2='A',c3='1';
int i1=13,i2=23,i3=33,i4=43,i5=53;
short si1=13,si2=23,si3=33;
unsigned short usi1=3,usi2=23;
float f1=13.0,f2=23.0,f3=33.0,f4=43.0;
double d1=13.0,d2=23.0, d3=33.0, d4=43.0;
合适的数据类型符x;/*选取表达式对应的数据类型符*/
x=(表达式);
printf("格式符\n",x);
printf("格式符1,格式符2,···\n",变量1,变量2,…);
}
【问题二】顺序结构的程序设计
编写一个C程序,按下列公式计算并输出S的值。其中a和b的值由键盘输入。
S=2ab/(a+b)2
【待调试的源程序参害清草】
main()
{ int a,b;
float x;
scanf("%d,%d",a,b);
x=2ab/(a+b)(a+b);
printf("x=%d\n",x);
}
【问题三】选择结构的程序设计(一)
编一个C程序,判断从键盘上输入的一个字符,并按下列要求输出。
若该字符是数字 输出字符串"0-9"
若该字符是大写字母 输出字符串"A-Z"
若该字符是小写字母 输出字符串"a-z"
若该字符是其他字符 输出字符串"!,@,…"
【待填充的源程序参考清草】
main()
{ char c;
scanf(_____________________);
if('0 '<=c && c<='9')
__________________________
else if(________________________)
printf("A-Z\n");
_________________('a'<=c&&c<='z')
printf("a-z\n");
_____________________________
printf("!,@,…\n");
}
【问题四】选择结构的程序设计(二)
编一个C程序,计算下列函数的值,其中的flag(整数)和x(实数)由键盘输入。
x+1, flag=1,
2x2+x+1 flag=2,
3x3+2x2+x+1 flag=3,
y(flag,x)= 4x4+3x3+2x2+x+1 flag=4,
5x5+4x4+3x3+2x2+x+1 flag=5,
6x6+5x5+4x4+3x3+2x2+x+1 flag=6,
0, flag=其他。
【自己编写的原程序清单】
方法一:用switch语句实现多分支结构。
方法二:用嵌套的if-else语句实现多分支结构。
四、实验步骤
【启动 Turho-C,开始实验】
1.启动计算机,进入DOS操作系统,启动Turbo-C,进入主菜单。
2.选取“File”菜单条的下拉菜单项“New”,进入源程序的编辑状态。
【问题一程序的调试与运行】
3.输入问题一中给出的源程序清单。
4.按照下列方法,修改源程序清单中的汉字部分:
修改定义变量x的语句,将数据类型符改为表达式的数据类型;
修改赋值语句,将其中的表达式修改为要求计算的某个表达式;
修改输出语句,填写输出函数中的格式控制符和有关的变量名。
5.直接接热键<Ctrl>+<F9>,运行目标程序。
6.直接技热键<Alt>+<F5>,查看运行结果(表达式值和有关变量的值)。
看清后按任一键返回Tutbo-C的主菜单。
验证表达式和有关变量的值,重复第4步第6步,计算其他表达式的值。
问题一中所有表达式值全部计算结束后,转下一步。
【问题二程序的调试与运行】
7.选取“File”菜单条的下拉菜单项“New”,进入源程序的编辑状态。
8.输入问题二中给出的待修改调试的源程序参考清单。
9.选取“File”菜单条的下拉菜单项“Save”,将源程序存盘。
【热键】<F2>
10.选取“Compile”菜单条的下拉菜单项“Compile to OBJ”,对源程序进行编译。
【热键】<Alt>+<F9>
11.查阅并分析系统给出的语法错误信息,重新编辑修改源程序,转第9步。
反复执行,直到源程序语法没有错误,转下一步。
12.选取“Compile”菜单条的下拉菜单项“Make EXE file”,对源程序进行连接。
【热键】<F9>
若连接中有错误,重新编辑修改源程序,转第9步。
若没有错误,转下一步。
13.选取“Run”菜单条的下拉菜单项“Run”,运行目标程序。
【热键】<Ctrl>+<F9>
14.选取“Run”菜单条的下拉菜单项“User Screen”,查看运行结果。
【热键】<Alt>+<F5>
看后接任一键返回Turbo-C的主菜单。
若运行结果有错,分析错误原因,重新编辑修改源程序,转第9步。
若运行结果正确,转下一步。
15.记录正确的程序清单。
【问题三程序的调试与运行】
16.选取“File”菜单条的下拉菜单项“New”,进入源程序的编辑状态。
17.输入问题三中给出的。实验准备阶段已经填充好的源程序参考清单。
18.重复前面的第9步到第14步,编译、连接、运行、调试问题三的程序。
19.记录正确的程序清单。
【问题四(法一)程序的调试与运行】
20.选取“File”莱单条的下拉菜单项“New”,进入源程序的编辑状态。
21.输入自己编写的、解决问题四(法一)的源程序清单。
22.重复前面的第9步一第14步,编译、连接、运行、调试问题四(法一)的程序。
23 .记录正确的程序清单。
【问题四(法二)程序的调试与运行】
24.选取“File”菜单条的下拉菜单项“New”,进入源程序的编辑状态。
25.输入自己编写的、解决问题四(法二)的源程序清单。
26.重复前面的第9步到第14步,编译、连接、运行、调试问题四(法二)的程序。
27.记录正确的程序清单。
【退出TurbO-C,结束本次实验】
28.选取“File”菜单条的下拉菜单项“Quit”,退出Turbo-C,返回操作系统。
【热健】<Alt>+ x
29.分析实验过程,总结实验结果。