C语言作业3-多分支结构程序
- 格式:doc
- 大小:1.09 MB
- 文档页数:3
实验4 多分支程序
一、实验目的
1.了解程序的多分支结构。
2.了解多分支结构程序的编程方法。
二、实验内容
在多分支结构的程序中,能够按调用号执行相应的功能。
三、实验说明
多分支结构是程序中常见的结构,若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序,完成指定操作。
基本实验要求:根据A里面的值给相应的片内RAM单元赋值,A的值范围为0~3,要给对应的30H~33H赋相应A的值。
四、硬件设计
利用以下元件:A T89C51、CAP、CAP-ELEC、CRYSTAL、RES。
设计出如下的硬件电路。
晶振频率为12MHz。
五、参考程序框图
多分支参考程序框图
六、思考
1)请分别采用不同的跳转指令(AJMP 、LJMP )并调试参考。
2)设变量x 的值存放在内部RAM 的50H 单元中,求y 并存于40H
10
1010100
10100x x y x x x x +<⎧⎪=≤≤⎨⎪+>⎩。
5分钟学会c语言多分支结构C语言中的多分支结构通常是通过使用if-else if-else语句来实现的。
这种结构允许根据不同的条件执行不同的代码块。
下面我将从多个角度来解释如何在C语言中使用多分支结构。
首先,让我们来看一个简单的例子,假设我们想根据用户输入的成绩等级来输出不同的评语。
我们可以使用if-else if-else结构来实现这一点,代码如下:c.#include <stdio.h>。
int main() {。
int score;printf("请输入成绩,");scanf("%d", &score);if (score >= 90) {。
printf("优秀\n");} else if (score >= 80) {。
printf("良好\n");} else if (score >= 70) {。
printf("中等\n");} else if (score >= 60) {。
printf("及格\n");} else {。
printf("不及格\n");}。
return 0;}。
在这个例子中,我们使用了if-else if-else结构来根据不同的条件输出不同的评语。
当用户输入一个成绩后,程序会依次检查该成绩属于哪个范围,并输出相应的评语。
除了嵌套使用if-else if-else结构外,我们还可以使用switch语句来实现多分支结构。
下面是一个使用switch语句的例子:c.#include <stdio.h>。
int main() {。
char grade;printf("请输入成绩等级,");scanf(" %c", &grade);switch (grade) {。
XXX大学软件类实验报告
课程名称:C语言程序设计学号:
姓名:
班级:
指导教师:
开课学期:
学院:
XXX大学教务处
4.switch语句。
四、实验过程及内容:(运行结果请抓图到对应题目的下方)
1. 先分析以下程序,写出运行结果,再上机检验。
实验结果:
2.先分析以下程序,写出运行结果,再上机检验。
实验结果:
3.先分析以下程序,写出运行结果,再上机检验。
实验结果:
4. 程序改错题。
以下程序的功能是将a、b、c三个数从小到大进行排序,即使得a≤b≤c.。
程序中有一些错误,试将其改正并上机验证。
实验结果:
5. 程序填空题。
以下程序的功能是:从键盘接收一个字符,如果是小写英文字母,则将其转换为相应的大写字母;如果是大写英文字母,则将其转换为相应的小写字母;如果是其他字符,则不做转换。
填空将程序补充完整并上机验证。
实验结果:
6. 编程题。
根据以下分段函数计算y的值,x的值由键盘输入。
保留两位小数
输入格式:-2
输出格式:y=-2.00
实验代码:
实验结果:
7.输入一个正整数作为年份,编程判断该年是否为闰年。
若是输出“Yes”,否则输出“No”。
提
示:能被4整除,但不能被100整除的年份;或者能被400整除的年份。
实验代码:
实验结果:。
实验三 选择结构程序设计一、实验目的与要求1. 理解C 语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。
2. 掌握利用if 结构实现选择结构的方法。
3. 掌握利用switch 结构实现多分支选择结构。
4. 结合程序掌握一些简单的算法,学习调试程序5. 实验4学时二、实验内容1.程序改错题改正下面程序中的错误。
输入实数x ,计算并输出下列分段函数f(x)的值(保留1位小数)。
)100(1=x x==)(x f y)100(≠x x输入输出示例1(改正后程序的运行结果)Enter x :100f )=输入输出示例2(改正后程序的运行结果)Enter x :23f )=源程序(有错误的程序)#include<>#include<>void main(void){double x;printf("Enter x: \n");scanf("=%f", x);if (x = 100) {y = 1/sqrt(x)}else (x != 100) {y = x;}printf("f(%.2f) = %.1f\n",x,y);}答:#include<>#include<>void main(void){double x,y;printf("Enter x:\n");scanf("%lf",&x);if (x=100)y = 1/sqrt(x);elsey= x;printf("f(%.2lf)=%.1lf\n",x,y);}2.一般编程题编程题1输入任意三个整数a,b,c ,求3个数中的最大值和最小值。
答:#include <>void main(){int a,b,c;printf("请输入三个整数:");scanf("%d %d %d",&a,&b,&c);if (a>=b)t=a,a=b,b=t;if (a>=c)t=a,a=c,c=t;if (b>=c)t=b,b=c,c=t;printf("最小值为:%d\n",a);printf("最大值为:%d\n",c);}编程题2输入x ,计算并输出下面分段函数f(x)的值(保留2位小数)。
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.h"int main( ){int a = 3, b = 5, c = 8;if(a++ < 3 && c-- != 0) b = b + 1;printf("a=%d\tb=%d\tc=%d\n", a, b, c);return 0;}程序运行后a、b、c的值分别是。
(2) 根据下面两个程序的运行结果,理解case语句中break语句的作用。
/* ex3-2-1方法1 *//* 不含break的switch */#include "stdio.h"int 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=%d\n", m, n, k);return 0;}/* ex3-2-2 方法2 *//* 含break的switch */#include "stdio.h"int 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=%d\n", m, n, k);return 0;}分别从键盘上输入1、3、5,两个程序运行的结果分别是、。
21.htm01. 从键盘输入一个字符,如果是大写字母,就转换成小写;如果是小写字母,就转换成大写,如果是其他字符原样保持并将结果输出。
#include <stdio.h>void main(){ char c;scanf("%c",&c);if(c>='A'&&c<='Z') c=c+32;else if(c>='a'&&c<='z') c=c-32;printf("%c",c);}02. 从键盘输入一个数,判断其是否是5的倍数而不是7的倍数。
如果是,输出Yes,否则输出No。
#include <stdio.h>void main(){ int a;scanf("%d",&a);if(a%5==0&&a%7!=0) printf("yes");else printf("no");}03. 从键盘输入一个4位正整数,求其逆序数,并输出。
例如:若输入1234,则输出应该是4321。
#include <stdio.h>void main(){ int n,g,s,b,q,m;scanf("%d",&n);q=n/1000; b=n/100%10; s=n/10%10; g=n%10;m=g*1000+s*100+b*10+q;printf("%d\n",m);}22.htm01. 从键盘输入一个字符,如果是字母,就输出其对应的ASCII码;如果是数字字符,就转换成对应整数并输出。
#include <stdio.h>void main(){ char c;scanf("%c",&c);if(c>='a'&&c<='z'||c>='A'&&c<='Z')printf("ASCII:%d",c);else if(c>='0'&&c<='9') printf("数字:%d",c-'0');}02. 从键盘输入一个数,判断其是否能同时被3和5整除。