实验3 分支结构程序设计.doc_第1页
实验3 分支结构程序设计.doc_第2页
实验3 分支结构程序设计.doc_第3页
实验3 分支结构程序设计.doc_第4页
实验3 分支结构程序设计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.3 实验3 选择结构程序设计2.3.1 实验学时:2学时2.3.2实验目的1. 掌握C语言关系表达式和逻辑表达式的运算和使用。2. 正确使用条件控制语句(if语句、switch语句)进行选择结构程序设计。2.3.3 预习要求1.关系运算符和关系表达式、逻辑运算符和逻辑表达式。2.if语句的三种形式(单分支、双分支、多分支),以及if语句的嵌套。3.switch语句的形式。2.3.4实验内容1. 阅读程序,分析结果,并上机验证。(1) 阅读下面的程序,理解逻辑运算的短路特性。/* ex3-1 */#include stdio.hint main( )int a = 3, b = 5, c = 8;if(a+ 3 & c- != 0) b = b + 1;printf(a=%dtb=%dtc=%dn, a, b, c);return 0;程序运行后a、b、c的值分别是 。(2) 根据下面两个程序的运行结果,理解case语句中break语句的作用。/* ex3-2-1方法1 */ /* 不含break的switch */ #include stdio.hint main( ) int a, m = 0, n = 0, k = 0;printf(Please input an integer:);scanf(%d, &a);switch(a)case 1:m+;case 2:case 3:n+;case 4:case 5:k+;printf(m=%d,n=%d,k=%dn, m, n, k);return 0; /* ex3-2-2 方法2 */* 含break的switch */#include stdio.hint main( )int a, m = 0, n = 0, k = 0;printf(Please input an integer:);scanf(%d, &a);switch(a)case 1:m+; break;case 2:case 3:n+; break;case 4:case 5:k+;printf(m=%d,n=%d,k=%dn, m, n, k);return 0;分别从键盘上输入1、3、5,两个程序运行的结果分别是 、 。注意:case语句中如果包含break则执行后,将跳出switch,否则将顺次执行后续的case语句。(3) 阅读下面的程序,理解switch语句中多个case共用一组执行语句的方法。/* ex3-3 */#include stdio.hint main( ) int j, p = 10;printf(Please input an integer:);scanf(%d, &j);switch(j) case 1:case 2:printf(%d , p+); break;case 3:printf(%d , -p);return 0;分别输入3,2,1,输出结果是 。注意:这个程序要运行3次,第一次输入3,第二次输入2,第三次输入1。输入1和2的结果是一样的,分析为什么?(4) 阅读下面程序,理解多分支语句嵌套的使用方法。/* ex3-4 */#include stdio.hint main( )int x, y = 1, z;if(z = y) 0)x = 4;else if (y = 0) x = 5;else x = 6;printf(x=%d, y=%dn, x, y);return 0;程序的运行结果是 。(5) 阅读下面程序,理解分支语句嵌套的使用方法。/* ex3-5 */#include stdio.hint main( ) int x = 8, y = -7, z = 9;if(x y)if(y y)printf(xy);elseprintf(x b)/*/a = t;a = b;b = t;printf(a=%d,b=%dn, a, b);return 0;(4) 下面程序当a等于100时输出字符串“a = 100”,否则输出字符串“a不等于100”。根据if语句条件表达式的含义和输出字符串的格式规定改正程序。/* ex3-10.c */#include stdio.hint main( )int a = 100;/*/if(a = 100)printf(%sn, a=100);else/*/printf(%dn, a不等于100);return 0;注意:%s为字符串格式字符。(5) 下面程序的功能是如果x能被3和7整除,输出“yes”,否则,输出“no”。根据变量scanf函数的功能和格式、if语句的书写格式规定改正程序。/* ex3-11 */#include stdio.hint main( )int x;printf(Please input an integer:);/*/x = scanf(%d);/*/if(x / 3 = 0 & x / 7 = 0)printf(yesn);else printf(non );return 0;3. 阅读程序,在程序中提示行/*/的下一行填写正确内容,将程序补充完整,并上机验证。(1) 根据a、b值的大小,输出不同的结果。若a b则输出b、a及a与b的积,否则输出a、b及a与b的商。请完善程序。/* ex3-12 */#include stdio.hint main( ) int a = 5, b = 60, c;/*/ (1) c = a * b;printf(b=%d,a=%d,a*b=%dn, b, a, c);elsec = a / b;printf(a=%d,b=%d,a/b=%dn, a, b, c);return 0;(2) 从键盘上输入x的值,按下式计算y的值。请完善程序。 exx1y = 2x-11x 99)p = 3;i = num / 100;j = (num - i * 100) / 10;k = num % 10;else if(num 9)p = 2;j = num / 10;k = num % 10;/*/ (1) p = 1;k = num;switch(p) case 3:printf(%d%d%dn, k, j, i);break;/*/ (2) case 1:printf(%dn, k);return 0;(5) 下面是一个估值游戏程序,使用者从键盘输入一个数存入g中,若与设置值m相同,输出Right,若不相等先给出错信息Wrong,并进一步判断。若大于m,则显示Too high,否则显示Too low。/* ex3-16 */#include stdio.hint main( )int m = 123;int g;printf(Please input an integer:);scanf(%d, &g);/*/ (1) printf(*Right*); elseprintf(*Wrong*);/*/ (2) printf(Too high*);if(g m)printf(Too low*);return 0;4. 按要求编写程序,并上机调试(请在提示行 /*/ 之间填写代码,完善程序)。(1) 从键盘上输入任意三个数,首先输出这三个数,然后找出三个数中最大数并输出。编程提示: 输出这三个数 将最大值存入max中 将max与a比较,若maxa,把a赋给max。 将max与b比较,若maxb,把b赋给max。 将max与c比较,若max0)y= 0(x=0)-1(x= y ? x : y )计算并输出z的值。/* ex3-20 */#include stdio.hint main( )float x, yprintf(Please input two real numbers:);scanf(%f%f, &x, &y);/*/*/return 0;(5) 从键盘上输入一个字符,若为元音字母,则显示“YES”,否则显示“NO”。编程提示:使用switch语句,检查变量c是否等于A、E、I、O、U、a、e、i、o、u。/* ex3-21 */#include stdio.hint main( )char c;printf(Please input a character:);c = getchar( );/*/*/return 0;2.3.5实验注意事项1. C程序中表示比较运算的等号用“=”表示,赋值运算符用“=”表示,不能将赋值号“=”用于比较运算。2. 控制表达式是指任何合法的C语言表达式(不只限于关系或逻辑表达式),只要表达式的值为“非零”,则为“真”,“零

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论