实验3:分支结构程序设计-推荐下载

合集下载

实验3 结构化程序设计初步

实验3  结构化程序设计初步

实验3 结构化程序设计初步1.实验目的(1)掌握C++赋值语句与输入输出语句的使用方法,区别C语言的输入输出语句(2)掌握关系运算符、逻辑运算符与条件运算符的运算规则并能熟练计算由这些运算符构成的表达式(3)深入掌握C++各种流程控制语句(选择语句、循环语句和跳转语句)的要点和使用方法(4)能够灵活地运用C++各种语句进行综合程序设计2.实验内容2.1程序分析题。

分析下面程序的运行结果,上机运行程序,观察其输出结果与你的分析结果是否相同?(1)有如下程序,从键盘输入123456.78↙后,变量c1、c2、a、b的值分别是多少?#include <iostream.h>void main( ){char c1,c2;int a;float b;cin>>c1>>c2>>a>>b;cout<<c1<<" "<<c2<<" "<<a<<" "<<b<<'\n';}(2)#include <iostream.h>#include <iomanip.h>void main( ){double a=123.456789012345;cout<<a<<endl;cout<<setprecision(9)<<a<<endl;cout<<setprecision(6)<<a<<endl;cout<<setiosflags(ios::fixed)<<a<<endl;cout<<setiosflags(ios::fixed)<<setprecision(8)<<a<<endl;}(3)#include <iostream.h>#include <iomanip.h>void main( ){double a=123.456789012345;cout<<setiosflags(ios::scientific)<<a<<endl;cout<<setiosflags(ios::scientific)<<setprecision(4)<<a<<endl;}#include <iomanip.h>void main( ){int b=123456;cout<<b<<endl;cout<<hex<<b<<endl;cout<<setiosflags(ios::uppercase)<<b<<endl;cout<<dec<<setw(10)<<b<<','<<b<<endl;cout<<setfill('*')<<setw(10)<<b<<endl;cout<<setiosflags(ios::showpos)<<b<<endl;}(5)有如下程序,从键盘输入86 24 75↙后,程序的输出结果为多少,为什么?#include <iostream.h>void main( ){int a,b,c;cin>>a>>oct>>b>>hex>>c;cout<<a<<" "<<b<<" "<<c<<endl;}(6)#include <iostream.h>#include <iomanip.h>void main( ){short a=-1;cout<<dec<<a<<" "<<oct<<a<<" "<<hex<<a<<endl;}(7)#include <stdio.h>void main( ){int a=-1;printf("dec:%d,oct:%o,hex:%x,unsigned:%u\n",a,a,a,a);}(8)以下程序中,为了给整型变量k1,k3赋值为10,给k2,k4赋值为20,如何输入数据?#include <stdio.h>void main( ){int k1,k2,k3,k4;scanf("%d%d",&k1,&k2);scanf("%d,%d",&k3,&k4);printf("k1=%d,k2=%d,k3=%d,k4=%d\n",k1,k2,k3,k4);}void main( ){int a=3,b=4,c=5,d=6,e,f;e=a>b&&(c=8);cout<<c<<" "<<e<<endl;f=a<b&&(e=c<d);cout<<e<<" "<<f<<endl;f=a<b||(d>0?d++:d--);cout<<d<<" "<<f<<endl;}(10)#include <iostream.h>void main( ){int x,y,z,w;z=(x=-1)?(y=-1,y+=x+5):(x=7,y=9);w=y*'a'/4;cout<<x<<" "<<y<<" "<<z<<" "<<w<<endl;}(11)#include <iostream.h>void main( ){int a=5,b=7,c=3,t;if(a= -1) cout<<"Yes"<<endl;else cout<<"No"<<endl;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; }cout<<a<<" "<<b<<" "<<c<<endl;}解析:a被赋值为-1,输出YESIf语句成立则执行,不成立则不执行分析只有b>c成立,=后面的值赋给左边的,顺序从左到右(12)#include <iostream.h>void main( ){ char c='3';switch(c-'1'){case 0:case 1:cout<<c+1<<endl;case 2:cout<<c+2<<" "<<char(c+2)<<endl;default:cout<<c+3<<" "<<char(c+3)<<endl;}}‘3’是字符型,ASCLL码为051,执行Switch时,根据switch表达式的值找到与之匹配的case子句,就从此子句开始执行下去,不再进行判断(13)#include <iostream.h>void main( ){int a=2,b=7,c=5;switch(a>0){case 1:switch(b<0){case 1: cout<<"+";break;case 2: cout<<"-";break;}case 0:switch(c==5){case 0: cout<<"*";break;case 1: cout<<"/";break;default: cout<<"#";break;}default: cout<<"$";}cout<<"\n";}a>0是真,值为1,执行case1,继续下面,b<0是假,不执行其中的case1.case2c==5是真,值为1,执行case1,输出/,其后有break,被中断不再执行分句里其下的命令,default: cout<<"$"前面没有break,则输出$(14)#include <iostream.h>void main( ){int a=10,b=0;do{a+=2;b+=a;cout<<"a="<<a<<",b="<<b<<endl;if(b>20) break;}while(a!=14);}(15)#include <iostream.h>void main( ){int i,j;for(i=10;i<20;i++){for(j=2;j<=i/2;j++)if(i%j==0) break;if(j>i/2)cout<<i<<" ";}cout<<endl;}(16)#include <iostream.h>void main( ){int i,j,m=0;for(i=0;i<5;i++)for(j=0;j<5;j++)if(j>=i) m++;cout<<m<<endl;}(17)#include <iostream.h>void main( ){int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++){ if(j>i) break;cout<<i<<"*"<<j<<"="<<i*j<<" ";}cout<<endl;}}(18)#include <iostream.h>void main( ){int i=1,sum=0;while(i<=100){if(i%2==0){ i++; continue;}sum+=i;i++;}cout<<sum<<endl;}2.2编程题(1)编写程序从键盘输入一个大写字母,将其转换为小写字母并输出。

选择分支结构的实验报告

选择分支结构的实验报告

一、实验背景选择分支结构是程序设计中非常重要的一种结构,它可以根据不同的条件判断,选择执行不同的代码块。

在Java、C、Python等多种编程语言中,选择分支结构都有着广泛的应用。

为了加深对选择分支结构的理解,本次实验通过具体的实例来演示选择分支结构的实现方法。

二、实验目的1. 理解选择分支结构的原理和语法;2. 掌握if-else语句、switch-case语句等选择分支结构的用法;3. 能够运用选择分支结构解决实际问题。

三、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse四、实验内容1. 实验一:if-else语句(1)实验目的:掌握if-else语句的基本用法。

(2)实验内容:编写一个Java程序,根据用户输入的年龄,判断用户是青少年、中年还是老年人。

(3)实验步骤:① 创建一个名为AgeDemo的Java类;② 在主函数中,声明一个变量age,用于存储用户输入的年龄;③ 使用Scanner类获取用户输入的年龄;④ 使用if-else语句判断年龄,并输出相应的结果。

(4)实验代码:```javaimport java.util.Scanner;public class AgeDemo {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入您的年龄:");int age = scanner.nextInt();if (age >= 18 && age <= 30) {System.out.println("您是青少年。

");} else if (age >= 31 && age <= 60) {System.out.println("您是中年人。

分支结构程序设计(精)

分支结构程序设计(精)

深圳大学实验报告课程名称: 学院:信息工程学院
班级:
实验时间:
实验报告提交时间:
教务处制
实验结论: 1.从范例 4 中演示的 C++输入输出易出错的地方,发现在输入数据时,若不指定数据的类型,程序会自动当做十进制数进行处理。

因此涉及到其他进制的输入输出时,一定要在输入输出前加上其进制类型,例如八进制是 oct,十六进制是 hex 等。

在输入字符串时,若直接用 cin,则程序会忽略掉其中的空格,若要空格也作为输入,则必须使用 cin.getline 或 cin.get 函数。

2.对于这次的实验,使用 switch 比使用 if-else 结构简单,因为 switch 结构特别适用于某个整型或字符型表达式的值与一组常量的匹配的情况。

不过 if-else 的适用范围更加广泛。

指导教师批阅意见:成绩评定:指导教师签字:年月日备注:注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。

2、教师批改学生实验报告时间应在学生提交实验报告时间后 10 日内。

实验3:分支结构程序设计

实验3:分支结构程序设计

实验3:分⽀结构程序设计实验2 顺序程序结构程序设计⼀、实验⽬的1.进⼀步掌握关系表达式和逻辑表达式的使⽤。

2.熟悉选择结构程序设计。

3.熟练使⽤if语句进⾏程序设计。

4.使⽤switch语句实现多分⽀选择结构。

⼆、实验要求1.复习关系表达式、逻辑表达式、条件表达式的相关内容;2.复习if语句、if…else语句、switch语句的执⾏流程;3.完成各项实验任务及问题讨论。

三、实验内容(⼀)程序改错题说明:给出的程序可能存在语法或算法上的问题或需要补充完整,但需要修改的地⽅肯定在/*******Found*******/下的第⼀⾏上且每⾏仅有⼀个(类)错误,不能修改其它地⽅,不能修改或删除/*******Found*******/本⾝,遵循最少修改、保持⼀⾏⼀条语句及{与}单独⼀⾏的原则。

考试时由于是计算机⾃动阅卷,修改时不能增加⾏或删除⾏,哪怕是⼀个空⾏都不⾏,否则可能得0分。

1.程序D7.c的功能是判断x和y是否相等,相等则显⽰x=y,不等则显⽰x<>y。

(序号:7)#includeint main(void){/*********Found************/char x, y;x = 39270;y = 41001;/*********Found************/if (x != y){printf("x=y");}/*********Found************/else;;{printf("x<>y\n");}}2.程序D1000.c的功能是从键盘输⼊3个浮点数a,b,c(输⼊时abc之间以空格相隔),⾸先按照输⼊顺序显⽰在屏幕上,然后按从⼩到⼤顺序把它们输出到屏幕上。

(序号:20)#include#includeint main(void){float a, b, c, t;printf("please input three numbers:\n");/*********Found************/scanf("%f%f", &a, &b, &c);printf("before sort:a=%g,b=%g,c=%g\n", a, b, c);if (a > b){t = a;a = b;/*********Found************/b = a;}if (a > c){t = a;a = c;c = t;}if (b > c){t = b;b = c;c = t;}printf("after sort:a=%g,b=%g,c=%g\n", a, b, c);return 0;}#includeint main(void){long int i = 79870, j = 23;/*****Found*****/scanf("%f", &i);/*****Found*****/if (j == i);{printf("Equal!");}else{printf("Not equal!");}return 0;}4.程序D1007.c的功能是使⽤getchar⽅式从键盘读⼊⼀个字符,判断该字符是否⼤写字符.(序号:27)#includeint main(void){char ch;/****Found****/getchar(ch);/*****Found*****/if ('A' <= ch, ch <= 'Z'){printf("yes");}else{printf("no");}}5.程序D1008.c的功能是判断⽤户是不是输⼊的整数0。

实验3汇编语言分支结构程序设计指导书

实验3汇编语言分支结构程序设计指导书

实验三 汇编语言分支结构程序设计一、实验目的1、掌握分支结构程序设计的基本方法。

2、掌握无条件转移指令和条件转移指令的使用。

3、掌握分支结构程序设计的两种基本结构的使用二、实验内容1、编写计算下面函数值的程序:⎪⎩⎪⎨⎧<-=>=0,10,00,1x x x y设数据段中存放一个数据为X ,通过上述函数,得出的Y 的值放在X的后面,皆为字节变量,使用Debug 查看X 、Y 两个变量的数据。

2、分类统计字数组data 中正数、负数和零的个数,并分别存入内存字变量Positive 、Negative 和Zero 中。

三、实验步骤(一)首先利用记事本编写好汇编语言程序(二)用汇编程序MASM 将ASM 文件汇编成目标程序文件(OBJ 文件)当源程序建立以后,仍以ABC.ASM 程序为例,我们用汇编程序MASM 对ABC.ASM 源程序文件进行汇编,以便产生机器码的目标程序文件ABC.OBJ ,其操作步骤如下:C>MASM ABCMicrosoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981–1985,1987. All rights reserved. Object filename [ABC.OBJ]:Source listing [NUL.LST]:ABCCross-reference [NUL.CRF]:ABC50674 + 450574 Bytes symbol space free0 Warning Errors0 Severe Errors(三) 用连接程序LINK 生成可执行程序文件(EXE 文件)经汇编后产生的二进制的目标程序文件(OBJ 文件)并不是可执行程序文件(EXE 文件),必须经连接以后,才能成为可执行文件。

连接程序并不是专为汇编语言程序设计的。

如果一个程序是由若干个模块组成的,也可通过连接程序LINK 把它们连接在一起。

实验三 编制分支结构的程序实验

实验三 编制分支结构的程序实验

实验三 编制分支结构的程序实验一、实验目的掌握各种分支语句的使用。

二、实验性质和课时验证性,2个课时三、实验内容或原理(1)IF 语句编写单分支、两个分支和多分支的程序;(2)用SWITCH 语句编写多分支程序;四、主要仪器及试材主要仪器设备:微型计算机;软件环境:WINDOWS2000/XP 操作系统;Visual C++6.0。

五、实验方法与步骤1.编写如下程序,并调试。

(1)21(110)311(10)x x y x x x x <⎧⎪=-≤<⎨⎪-≥⎩多次运行程序,输入不同x 的值,看输出结果,把输出结果填写到实验报告上。

2.给出一个百分制的成绩,要求输出成绩等级‘A ’,‘B ’,‘C ’,‘D ’,‘E ’。

90分以上为‘A ’,80~89分为‘B ’,70~79分为‘C ’,60~69分为‘D ’,60分以下为‘E ’。

要求:2.1 用if 语句编写程序2.2 用switch 语句编写程序3.输入四个整数,要求按由小到大顺序输出。

4.企业发放奖金根据利润i 提成。

标准如下:(1)低于等于10万 提成10%(2)10万~20万(含20万) 10万以内提成10%,超出部分提成7.5%(3)20万~40万(含40万) 超出20万部分提成5%,低于部分按(2)提成(4)40万~60万(含60万) 超出40万部分提成3%,低于部分按(3)提成(5)60万~100万(含100万) 超出60万部分提成1.5%,低于部分按(4)提成(6)100万以上 超过100万部分提成1%,其余按(5)提成要求: 3.1 用if 语句编写程序3.2 用switch 语句编写程序(2,3,4自选一题写到实验报告上)5.输入任意年份,判断该年份是否为闰年。

提示:若该年份能被4整除但不能被100整除则是闰年,或者该年份能同时被100和400整除则是闰年。

6. 水仙花数指的是一个3位数,其各个位数数字立方和等于该数本身,求所有的水仙花数。

汇编语言--分支结构程序设计实验

汇编语言--分支结构程序设计实验

汇编语言--分支结构程序设计实验汇编语言实验报告实验6 汇编语言分支结构程序设计学院:计算机学院班级:姓名:梁建辉学号: [1**********]72019年12月1日1. 实验目的:(1)(2)(3)(4)掌握汇编语言顺序结构设计方法熟悉常用汇编指令的用法学会用debug输入、运行小程序,并检查运行情况的方法学会在pc机上建立、汇编、连接、调试和运行80x86汇编语言程序的过程2. 实验内容:(1)调试程序1:将存储单元DAT+1中的两个压缩的bcd码拆成2个非压缩的不承担码(高位bcd码放在DAT+1单元,地位bcd码放在DAT+2单元)。

程序如下:DATA SEGMENTDAT DB 0A5H,2 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX, DATAMOV DS, AXMOV AL, DATMOV BL, ALMOV CL, 4SHL BL, CLMOV DAT+1, BLAND AL, 0FHMOV DAT+2, ALMOV AH, 4CHINT 21HCODE ENDSEND START上机运行该程序并检查运行结果是否正确。

3.实验运行结果:(1)1401:0000 B80014 MOV1401:0003 8ED8 MOV DS,AX1401:0005 A00000 MOV AL,[0000]1401:0008 8AD8 MOV BL,AL1401:000A B104 MOV CL,041401:000C D2E3 SHL BL,CL1401:000E 881E0100 MOV [0001],BL1401:0012 240F AND AL,0F1401:0014 A20200 MOV [0002],AL1401:0017 B44C MOV AH,4C1401:0019 CD21 INT 211401:001B FE8946F6 DEC BYTE PTR [BX+DI+F646]1401:001F EB06 JMP 0027段首地址为:1400运行前的结果:-d 1400:0,F1400:0000................运行后的结果:-gProgram terminated normally-d 1400:0,f1400:0000.P..............单步运行结果:BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=13F0 ES=13F0 SS=1400 CS=1401 IP=0003 NV UP EI PL NZ NA PO NC 1401:0003 8ED8 MOV DS,AX-tAX=1400 BX=0000 CX=002B DX=0000 SP=0000 BP=0000SI=0000 DI=0000 DS=1400 ES=13F0 SS=1400 CS=1401 NV UP EI PL NZ NA PO NCMOV AL,[0000]DS:0000=A5 -tBX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 CS=1401 NV UP EI PL NZ NA PO NCMOV BL,AL-tAX=14A5 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 CS=1401 NV UP EI PL NZ NA PO NCMOV CL,04-tAX=14A5 BX=00A5 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 CS=1401 NV UP EI PL NZ NA PO NCSHL BL,CL-AX=14A5 CX=0004 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 CS=1401NV UP EI PL NZ NA PE NCMOV [0001],BLDS:0001=50 -tBX=0050 CX=0004 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1400 ES=13F0 SS=1400 CS=1401NV UP EI PL NZ NA PE NC 1401:0012 240F AND AL,0F-tBX=0050 CX=0004 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1400 ES=13F0 SS=1400 CS=1401 NV UP EI PL NZ NA PE NCMOV [0002],ALDS:0002=05 -tAX=1405 BX=0050 CX=0004 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 CS=1401 NV UP EI PL NZ NA PE NC MOV AH,4C-AX=4C05 BX=0050 CX=0004 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000SS=1400 CS=1401 NV UP EI PL NZ NA PE NC INT 21程序2:DATAX Y SEGMENT DB 20H DW ?ENDSSEGMENTMOV AX,DATA;把X的值转移到AL ;清零AH ;定义X为字类型并赋值20H ;定义Y为字节类型 DATA CODESTART: ASSUME CS:CODE,DS:DATA MOV MOV DS,AX AL,X XOR AH,AH SHL AX,1 MOV MOV ;将目的操作数向左移动1位 ;移位大于1,需用CL ;将目的操作数向左移动2位 ;把AX与BX中的值相加 ;返回DOS状态下 BX,AX CL,2 SHL AX,CL ADD AX,BX MOV MOV Y,AX AH,4CH INT 21H ENDS END START CODE运行结果:1401:0000 B80014 MOV AX,14001401:0003 8ED8 MOV DS,AX1401:0005 A00000 MOV AL,[0000]1401:0008 32E4 XOR AH,AH1401:000A D1E0 SHL AX,11401:000C 8BD8 MOV BX,AX1401:000E B102 MOV CL,021401:0010 D3E0 SHL AX,CL1401:0012 03C3 ADD AX,BX1401:0014 A30100 MOV [0001],AX1401:0017 B44C MOV AH,4C1401:0019 CD21 INT 211401:001B FE8946F6 DEC BYTE PTR [BX+DI+F646]1401:001F EB06 JMP 0027-首地址:1400运行前结果:-d 1400:0,f1400:0000...............-t运行后结果:Program terminated normally-d 1400:0,f1400:0000@..............单步调试:-tAX=-tAX=-tAX=1400 BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=13EB ES=13EB SS=1400 CS=13FC IP=0003 NV UP EI PL NZ NA PO NC 13FC:0003 8ED8 MOV DS,AX-tAX=1400 BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1400 ES=13EB SS=1400CS=13FC NV UP EI PL NZ NA PO NCMOV AL,[0000] DS:0000=20BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13EB SS=1400 CS=13FC NV UP EI PL NZ NA PO NCXOR AH,AH-tBX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13EB SS=1400 CS=13FC NV UP EI PL ZR NA PE NCSHL AX,1-gBX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=13EB ES=13EB SS=1400 CS=13FC IP=0003 NV UP EI PL NZ NA PO NC 13FC:0003 8ED8 MOV DS,AX-tAX=1400 BX=0000 CX=002B DX=0000 SP=0000 BP=0000SI=0000 DI=0000DS=1400 ES=13EB SS=1400 CS=13FC NV UP EI PL NZ NA PO NCMOV AL,[0000]DS:0000=20-tBX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13EB SS=1400 CS=13FC NV UP EI PL NZ NA PO NCXOR AH,AH-tBX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13EB SS=1400 CS=13FC NV UP EI PL ZR NA PE NCSHL AX,1-gBX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=13EB ES=13EB SS=1400 CS=13FC IP=0003 NV UP EI PL NZ NA PO NC 13FC:0003 8ED8MOV DS,AX-tAX=13FB BX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=1400 ES=13EB SS=13FB CS=13FC NV UP EI PL NZ NA PO NCMOV AL,[0000]DS:0000=20-tBX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13EB SS=1400 CS=13FC NV UP EI PL NZ NA PO NCXOR AH,AH-tBX=0000 CX=002B DX=0000 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13EB SS=1400 CS=13FC NV UP EI PL ZR NA PE NCSHL AX,1-g程序3:DATA SEGMENTORG 1000HBIN DB ?HEX DB 6BhORG 1030HDB 00H, 01H,02H,03H,04H,05H,06H,07H,08H,09H ORG 1040HDB 0AH,0BH,0CH,0DH,0EH,0FHDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,HEXMOV BX,OFFSET BINSUB AH,AHADD BX,AXMOV DL,[BX]MOV CL,4SHL DL,CLMOV AL,HEX+1MOV BX,OFFSET BINXOR AH,AHADD BX,AXMOV Ax,BXOR Al,DLMOV BIN,ALMOV AH,4CHINT 21HCODE ENDSEND START运行结果:1505:0000 B80014 MOV1505:0003 8ED8 MOV DS,AX1505:0005 A00110 MOV AL,[1001] 1505:0008 BB0010 MOV BX,1000 1505:000B 2AE4 SUB AH,AH1505:000D 03D8 ADD BX,AX1505:000F 8A17 MOV DL,[BX]1505:0011 B104 MOV CL,041505:0013 D2E2 SHL DL,CL1505:0015 A00210 MOV AL,[1002] 1505:0018 BB0010 MOV BX,1000 1505:001B 32E4 XOR AH,AH1505:001D 03D8 ADD BX,AX1505:001F 8BC3 MOV AX,BX首地址:1400-运行前结果:-d 1400:0,f1400:0000.....................-运行后结果:-d 1400:0,f1400:0000...........单步调试:BX=0000 CX=107A DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=13F0 ES=13F0 SS=1400 CS=1505 IP=0003 NV UP EI PL NZ NA PO NC 1505:0003 8ED8 MOV DS,AX-TAX=1400 BX=0000 CX=107A DX=0000 SP=0000 BP=0000SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 CS=1505 NV UP EI PL NZ NA PO NCMOV AL,[1001]DS:1001=6B-TBX=0000 CX=107A DX=0000 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13F0 SS=1400 NV UP EI PL NZ NA PO NCMOV BX,1000-TAX=146BCX=107A DX=0000 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13F0 SS=1400 CS=1505 NV UP EI PL NZ NA PO NCSUB AH,AH-TBX=1000 CX=107A DX=0000 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13F0 SS=1400 CS=1505 NV UP EI PL ZR NA PE NC ADD BX,AX-AX=006B CX=107A DX=0000 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13F0 SS=1400 CS=1505 NV UP EI PL NZ NA PO NC MOV DL,[BX]DS:106B=32-tAX=006B BX=106B CX=107A SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13F0 SS=1400 CS=1505 NV UP EI PL NZ NA PO NC MOVCL,04-tAX=006B BX=106B CX=1004 DX=0032 SP=0000 BP=0000SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 NV UP EI PL NZ NA PO NCSHLDL,CL-tAX=006B BX=106B CX=1004 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 CS=1505NV UP EI PL NZ NA PO CYMOV AL,[1002]DS:1002=00-tBX=106B CX=1004 DX=0020 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13F0 SS=1400 CS=1505NV UP EI PL NZ NA PO CYMOVBX,1000-AX=0000 CX=1004 DX=0020 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13F0 SS=1400 CS=1505 NV UP EI PL NZ NA PO CYXORAH,AH-tAX=0000 BX=1000 CX=1004 DX=0020 SP=0000 BP=0000SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 CS=1505 NV UP EI PL ZR NA PE NCADD BX,AX-tAX=0000 BX=1000 CX=1004 DX=0020 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 CS=1505NV UP EI PL NZ NA PE NCMOV AX,BX-tBX=1000 CX=1004 DX=0020 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13F0 SS=1400 NV UP EI PL NZ NA PE NCOR AL,DL-tBX=1000 CX=1004 DX=0020 SP=0000 BP=0000 SI=0000DI=0000DS=1400 ES=13F0 SS=1400 CS=1505 NV UP EI PL NZ NA PO NCMOV [1000],ALDS:1000=20--tAX=1020 BX=1000 CX=1004 DX=0020 SP=0000 BP=0000 SI=0000 DI=0000DS=1400 ES=13F0 SS=1400 CS=1505 NV UP EI PL NZ NA PO NCMOV AH,4C-心得体会:写程序时,对于有些特定的指令不太熟,有时还得借助于课本,不能脱离课本编程。

实验三 分支程序设计

实验三 分支程序设计

实验三 分支程序设计一、实验目的1) 掌握汇编语言程序开发的过程;2) 熟悉调试程序DEBUG 的用法;3) 掌握汇编语言的编写与调试过程。

二、实验内容根据某数X 的值,给Y 进行赋值。

⎪⎩⎪⎨⎧<-=>=0,10,00,1x x x y ,调试程序后,使用DEBUG中指令检查结果的正确性。

三、编程提示查平方表:data segment ;数据段的定义,段名为datax db 12hy db ?data endsstack segment stack 'stack' ;堆栈段的定义,段名为stackdb 16 dup('stack')stack endscode segment ;指令段的定义,段名为codeassume cs:code,ds:data,ss:stackstart: mov ax,datamov ds,ax(此处自己编写)mov ah,4chint 21hcode endsend start四、实验步骤:(1)进入汇编环境,输入上述程序段;点击file-save 保存文件,文件名后缀为.asm;(2)点击file-exit 退出至DOS 界面,输入指令:--masm 文件名.asm; (编译文件,生成目标文件.obj)--link 文件名.obj; (链接文件,生成可执行文件.exe)--debug 文件名.exe (调试程序,查看结果)使用的Debug 指令有:u(反汇编,查看程序指令、指令机器码及所存放位置) 注意:找出所写程序的起止位置,并记下:g (程序执行指令,格式一般为:g=起始地址 终止地址)d (内存查看指令,格式一般为:d 内存地址 L 字节数)e (内存修改指令,格式一般为:e 内存地址 回车,之后显示此地址单元内容,在光标所指示位置输入修改后内容即可)另外用于单步执行的指令:t ;退出指令q五:实验要求:(1) 编写完整程序;(2) 任意修改X 的值,使用DEBUG 中指令调试并查看结果的正确性;(3) 扩展,任意两数进行比较,并赋结果给Y 。

python程序设计程序的分支结构实验报告

python程序设计程序的分支结构实验报告

【实验报告】Python程序设计中的分支结构摘要本实验报告旨在深入探讨Python程序设计中的分支结构,包括if 语句、if-else语句和if-elif-else语句的使用方法、逻辑思维以及在实际应用中的案例分析。

通过对分支结构的全面评估,我们可以更加深入地理解Python程序设计的关键概念,并加深对代码逻辑和条件判断的理解。

本报告将从简到繁、由浅入深地探讨分支结构的理论和实际应用,以便读者全面、深刻地理解这一主题。

1. 理论基础在Python程序设计中,分支结构是一种非常重要的控制结构,用于根据条件判断来执行不同的代码逻辑。

最常见的分支结构包括if语句、if-else语句和if-elif-else语句。

通过合理运用分支结构,我们可以编写出更加灵活和智能的程序,满足不同条件下的不同需求。

2. if语句的基本用法在Python中,if语句可以用来执行一条语句或一组语句,只有在满足指定条件的情况下才会执行。

其基本语法为:if condition:# 执行语句其中,condition是一个条件表达式,如果其值为True,则执行下面的语句块;如果为False,则跳过。

if语句的应用使得程序能够根据条件做出相应的处理,提高了程序的灵活性和智能化。

3. if-else语句的灵活运用除了if语句外,我们还经常使用if-else语句来处理条件判断。

其基本语法为:if condition:# 执行语句1else:# 执行语句2在这种结构中,如果条件满足,则执行第一条语句块;如果条件不满足,则执行第二条语句块。

if-else语句的灵活运用使得程序能够根据不同的情况执行不同的逻辑,增加了程序的可操作性和适用性。

4. if-elif-else语句的高级应用在一些复杂的情况下,我们需要多个条件进行判断和处理。

这时,就需要使用if-elif-else语句来进行高级的条件控制。

其基本语法为:if condition1:# 执行语句1elif condition2:# 执行语句2else:# 执行语句3在这种结构中,程序会按照从上到下的顺序依次检查条件,如果某个条件满足,则执行对应的语句块;如果所有条件都不满足,则执行最后的else语句。

实验三 简单分支结构程序实验

实验三 简单分支结构程序实验

实验3 简单分支结构程序实验一、实验目的1.掌握条件转移指令的使用方法;2.掌握指令对标志寄存器中各标志位的影响情况;3.掌握标志位和转移指令之间的关系;4.初步掌握利用设置断点调试程序的方法.二、实验内容1.编写一个程序,显示AL寄存器中的两位十六进制数2.编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符<CR>(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。

三、实验要求1.仔细阅读汇编语言教材相关内容。

2.熟练掌握DEBUG中的G命令。

3.在DEBUG下执行程序,利用跟踪命令检查指令对标志位的影响情况。

4.掌握对INT指令的跟踪方法。

四、实验报告要求1.总结DEBHG中P、G命令的功能2.写出程序清单,并记录执行结果.五、参考程序(1)显示AL中两位十六进制数程序:;DISPHEX.ASMCODE SEGMENTASSUME CS:CODESTART: MOV AL,3EHMOV BL,ALMOV DL,ALMOV CL,4SHR DL,CLCMP DL,9JBE NEXT1ADD DL,7NEXT1: ADD DL,30HMOV AH,2INT 21H ;显示高位ASCII码MOV DL,BLAND DL,0FHCMP DL,9JBE NEXT2ADD DL,7NEXT2: ADD DL,30HMOV AH,2INT 21H ;显示低位ASCII码 MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START(2)显示键入字符程序;DISPKEY.ASMCODE SEGEMENTASSUME CS:CODESTART: MOV AH,1INT 21H ;等待键入字符,送AL CMP AL,0DH ;是否是回车符?JZ DONE ;是则转DONE退出程序 CMP AL,’0’JB NEXTCMP AL,’9’JA CHARUPMOV DL,ALMOV AH,2INT 21HJMP STARTCHARUP: CMP AL,41HJB NEXTCMP AL,5AHJA CHRDNDISPC: MOV DL,’C’MOV AH,2INT 21HNEXT: JMP START CHRDN: CMP AL,61H JB NEXTCMP AL,7AH JA NEXTJMP DISPC DONE: MOV AH,4CH INT 21H CODE: ENDSEND START。

分支程序设计实验精简版

分支程序设计实验精简版

分支程序设计实验
分支程序设计实验
介绍
分支程序设计是计算机程序设计中的一种常见结构,用于根据特定条件执行不同的代码块。

在本实验中,我们将学习如何使用分支程序设计来解决实际问题。

实验背景
在实际的软件开发过程中,我们经常会遇到需要根据条件执行不同的代码块的情况。

这些条件可以是用户输入、系统状态或其他变量的值。

为了解决这些问题,我们可以使用分支程序设计。

实验目标
本实验的目标是让学生掌握如何使用分支程序设计来解决实际问题。

具体来说,我们将学习以下内容:
分支程序设计的基本概念和用法
如何根据条件执行不同的代码块
如何处理多个条件
实验内容
在本实验中,我们将使用一个简单的示例来说明分支程序设计的应用。

假设我们要编写一个程序,根据用户的输入判断一个数是奇数还是偶数。

我们可以使用以下伪代码来实现:
1. 读取用户输入的数
2. 如果数 mod 2 等于 0,则输出\。

分支结构程序设计(汇编语言)

分支结构程序设计(汇编语言)

汇编语言实验报告实验名称:分支结构程序设计姓名:学号:班级:一、实验内容1.将程序1输入、汇编、连接并通过Debug调试和检查运行结果。

2.修改程序1完成将其中的最小数存入MIN单元。

3.将编写好的程序2输入、汇编、连接并通过Debug调试和检查运行结果。

4.将编写好的程序3输入、汇编、连接并通过Debug调试和检查运行结果。

二、实验目的1. 掌握分支程序的结构。

2. 掌握分支程序的设计、编写及调试方法。

三、实验原理1、汇编语言源程序编制完成后,在计算机上的操作过程分为四个阶段:编辑、汇编、连接、运行调试(如图1)。

2、上机实验步骤:1)确定源程序的存放目录2)编辑ASM源程序3)用MASM.EXE汇编程序产生OBJ目标文件4)用LINK.EXE产生EXE可执行文件5)执行程序3、程序执行过程的跟踪可以用Debug来跟踪一个程序的运行过程,这通常是必须要做的工作。

我们写的程序在逻辑上不一定总是正确,对于简单的错误,仔细检查一下源程序就可以发现;而对于隐藏较深的错误,就必须对程序的执行过程进行跟踪分析才容易发现。

为了观察程序的运行过程,可以使用Debug。

Debug可以将程序加载入内存,设置CS:IP 指向程序的入口,但Debug并不放弃对CPU的控制,这样,我们就可以使用Debug的相关命令来单步执行程序,查看每一条指令的执行结果。

4 分支结构汇编语言中的分支结构式一种很常用的结构,就像我们高级语言中的if结构一样。

对一些需要判断的很有用。

四、实验过程1、实验环境汇编语言程序设计的实验环境如下:(1). 硬件环境微型计算机(Intel x86系列CPU)一台(2). 软件环境Windows98/2000/XP操作系统任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)汇编程序(MASM.EXE或TASM.EXE)调试程序(DEBUG.EXE或TD.EXE)文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。

分支结构程序设计 C语言 (麦)

分支结构程序设计  C语言   (麦)

实验三分支结构程序设计班级:学号:xxxxxx 姓名:麦华锋评分:一.【实验目的】1、熟练掌握关系表达式和逻辑表达式的使用。

2、熟练掌握用嵌套的if语句和switch语句实现多分支结构程序设计。

3、熟练掌握switch语句中break语句的作用。

4、掌握使用断点调试程序的方法。

二.【实验内容和步骤】1、程序调试题A.目标:进一步学习掌握程序调试的方法和技巧。

B.内容:参照《实验指导》教材P31“1.调试示例”,改正程序中的错误,使其实现程序的功能。

(注:程序文件保存在“调试示例”文件夹中,文件名为error03_1.cpp)①调试正确的源程序清单#include <stdio.h>#include <math.h>int main(void){double a, b, c,d;printf("Enter a, b, c \n");scanf("%lf%lf%lf", &a, &b, &c);d = b * b - 4 * a * c;if(a==0){if(b = 0){if(c == 0)printf("参数都为零,方程无意义!\n");elseprintf("a和b为0,c不为0,方程不成立\n");}elseprintf("x = %0.2f\n", -c/b);}elseif(d >= 0){printf("x1=%0.2f\n", (-b+sqrt(d))/(2*a));printf("x2=%0.2f\n", (-b-sqrt(d))/(2*a));}else{printf("x1=%0.2f+%0.2fi\n", -b/(2*a), sqrt(-d)/(2*a));printf("x2=%0.2f-%0.2fi\n", -b/(2*a), sqrt(-d)/(2*a));}return 0;}②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。

实验3 分支结构程序设计

实验3 分支结构程序设计

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,两个程序运行的结果分别是、。

【实验指导书】实验3:分支结构程序设计

【实验指导书】实验3:分支结构程序设计

实验三:分支结构程序设计一、实验目的:1. 熟练掌握关系表达式和逻辑表达式的使用;2. 熟练掌握用嵌套的if语句和switch语句实现多分支结构程序设计;3. 熟练掌握switch语句中break语句的作用;4. 掌握简单的调试程序方法,包括:单步调试和运行到光标。

二、实验要求:1.编写程序,计算分支函数。

要求:输入为任意实数,输出结果保留小数点后2位。

输入输出示例:Enter x:227.00提示:实现x n可以标准库函数pow(x,n),此数学函数已在头文件math.h中说明。

2.编写程序。

根据一个年份,判断是否是闰年。

要求:输入为一个整数,表示一个年份;输出:如果是闰年,输出"Y es",否则输出"No"。

输出单独占一行。

输入输出示例:Enter year:2012Yes3. 编写程序。

给你三个正整数,判断用这三个整数做边长是否能构成一个三角形。

要求:输入为三个正整数,中间有一个空格隔开;输出:如果能构成三角形,输出"Yes",否则输出"No"。

提示:在一个三角形中,任意两边之和大于第三边。

输入输出示例:3 4 5Yes4.输入五级制成绩(A~E),输出相应的百分制(0~100)区间。

要求用switch语句。

五级制对应的百分制成绩区间为:A(90~100)、B(80~89)、C(70~79)、D((60~69))、E(0~59)。

输入输出示例:Input Grade:BB对应的百分制成绩区间是80~895.编写程序,输入月薪salary,输出应交的个人所得税tax(保留2位小数)。

按照2011年开始实行的新的个人所得税法,计算公式为:tax=rate*(salary - 3500)- deduction当salary ≤3500时,rate = 0、deduction = 0;当3500 <salary ≤5000时,rate = 3%、deduction = 0;当5000 <salary ≤8000时,rate = 10%、deduction = 105;当8000 <salary ≤12500时,rate = 20%、deduction = 555;当12500 <salary ≤38500时,rate = 25%、deduction = 1005;当38500 <salary ≤58500时,rate = 30%、deduction = 2755;当58500 <salary ≤83500时,rate = 35%、deduction = 5505;当83500 <salary时,rate = 45%、deduction = 13505。

C -分支结构程序设计

C -分支结构程序设计

实训三分支结构程序设计班级:学号:姓名:一、实训目标熟练掌握分支结构程序的编程思路、设计、调试和测试方法。

1、掌握C的逻辑运算符和关系运算符的使用方法,能够正确描述各种关系。

2、真正理解else-if和switch语句的语法和执行流程。

3、能够分析一般性多选择结构的需求,熟练绘制多分支程序的流程图。

4、掌握多分支程序的设计方法。

5、进一步熟悉VC集成环境,快速排除语法错误。

6、初步掌握分支程序的调试和测试方法,能够快速定位和排除逻辑错误。

7、能够根据已有程序,构建固定循环次数的循环程序(for循环)。

二、语法练习1.写出判断1个字符是大写字符的逻辑表达式:2.按优先级顺序列出你所学过的C语言运算符:3.对于else-if语句,其一般形式如左下所示,请画出对应的流程图。

if(表达式1){ 语句块1; }else if(表达式2){ 语句块2; }::else if(表达式n-1){ 语句块n-1; }else{ 语句块n; }4.在C语言中,{}应用于、和switch语句中。

5.switch语句中,case 后面只能是,不能是一个范围。

6.switch语句中,break语句的作用是,如果没有default,则当所有case都不相等时,程序。

7.switch语句的一般形式如下,请画出它的执行流程图。

switch(){case 常量表达式1: 语句段1;break;case 常量表达式2: 语句段2;break;::case 常量表达式n: 语句段n;break;default: 语句段n+1;}8.体会switch语句中break的作用,请画出如下switch语句的执行流程,此题若不会,可在实训时,试一下再完成。

switch(){case 常量表达式1: 语句段1;case 常量表达式2: 语句段2;break;case 常量表达式3:case 常量表达式4:case 常量表达式5: 语句段5;}三、实训内容和步骤1、输入1个英文字符,均以小写字符的形式输出。

C分支结构程序设计

C分支结构程序设计

实训三分支结构程序设计班级:学号:姓名:一、实训目标熟练掌握分支结构程序的编程思路、设计、调试和测试方法。

1、掌握C的逻辑运算符和关系运算符的使用方法,能够正确描述各种关系。

2、真正理解else-if和switch语句的语法和执行流程。

3、能够分析一般性多选择结构的需求,熟练绘制多分支程序的流程图。

4、掌握多分支程序的设计方法。

5、进一步熟悉VC集成环境,快速排除语法错误。

6、初步掌握分支程序的调试和测试方法,能够快速定位和排除逻辑错误。

7、能够根据已有程序,构建固定循环次数的循环程序(for循环)。

二、语法练习1.写出判断1个字符是大写字符的逻辑表达式:2.按优先级顺序列出你所学过的C语言运算符:3.对于else-if语句,其一般形式如左下所示,请画出对应的流程图。

if(表达式1){ 语句块1; }else if(表达式2){ 语句块2; }::else if(表达式n-1){ 语句块n-1; }else{ 语句块n; }4.在C语言中,{}应用于、和switch语句中。

5.switch语句中,case 后面只能是,不能是一个范围。

6.switch语句中,break语句的作用是,如果没有default,则当所有case都不相等时,程序。

7.switch语句的一般形式如下,请画出它的执行流程图。

switch(){case 常量表达式1: 语句段1;break;case 常量表达式2: 语句段2;break;::case 常量表达式n: 语句段n;break;default: 语句段n+1;}8.体会switch语句中break的作用,请画出如下switch语句的执行流程,此题若不会,可在实训时,试一下再完成。

switch(){case 常量表达式1: 语句段1;case 常量表达式2: 语句段2;break;case 常量表达式3:case 常量表达式4:case 常量表达式5: 语句段5;}三、实训内容和步骤1、输入1个英文字符,均以小写字符的形式输出。

分支程序设计实验

分支程序设计实验

分支程序设计实验[文档标题][目录]1. 引言1.1 目的1.2 背景1.3 范围2. 实验准备2.1 硬件要求2.2 软件要求2.3 数据准备3. 实验方案3.1 设计思路3.2 算法分析3.3 代码实现4. 实验步骤4.1 步骤一4.2 步骤二4.3 步骤三5. 实验结果与分析 5.1 实验结果展示5.2 分析与讨论6. 实验总结6.1 完成情况6.2 实验心得7. 参考文献8. 附件8.1 附件一:实验数据8.2 附件二:代码清单[1. 引言]1.1 目的本实验旨在通过设计和实验分支程序,加深对分支程序设计的理解,并掌握分支程序设计的基本方法和技巧。

1.2 背景分支程序是计算机程序中常见的一种控制结构,用于根据条件选择不同的执行路径。

了解和掌握分支程序设计对于开发高质量的软件至关重要。

1.3 范围本文档详细介绍了分支程序设计实验的准备工作、实验方案、实验步骤、实验结果与分析以及实验总结等内容。

[2. 实验准备]2.1 硬件要求(列出实验所需的硬件设备,如计算机、开发板等)2.2 软件要求(列出实验所需的软件环境,如IDE、编程语言等)2.3 数据准备(描述实验所需的测试数据、输入样例等)[3. 实验方案]3.1 设计思路(说明实验的设计思路和方法)3.2 算法分析(对所采用的算法进行分析和解释)3.3 代码实现(展示实验的代码实现)[4. 实验步骤]4.1 步骤一(详细描述实验的第一步骤)4.2 步骤二(详细描述实验的第二步骤)4.3 步骤三(详细描述实验的第三步骤)[5. 实验结果与分析]5.1 实验结果展示(展示实验运行的结果)5.2 分析与讨论(对实验结果进行分析和讨论)[6. 实验总结]6.1 完成情况(总结实验的完成情况)6.2 实验心得(总结实验中获取的经验和教训)[7. 参考文献](列出本文档中所引用的参考文献)[8. 附件]8.1 附件一:实验数据(列出附件内容,如实验数据)8.2 附件二:代码清单(列出附件内容,如代码清单)[本文档涉及附件]本文档涉及的附件包括实验数据和代码清单。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 顺序程序结构程序设计一、实验目的1.进一步掌握关系表达式和逻辑表达式的使用。

2.熟悉选择结构程序设计。

3.熟练使用if语句进行程序设计。

4.使用switch语句实现多分支选择结构。

二、实验要求1.复习关系表达式、逻辑表达式、条件表达式的相关内容;2.复习if语句、if…else语句、switch语句的执行流程;3.完成各项实验任务及问题讨论。

三、实验内容(一)程序改错题说明:给出的程序可能存在语法或算法上的问题或需要补充完整,但需要修改的地方肯定在/*******Found*******/下的第一行上且每行仅有一个(类)错误,不能修改其它地方,不能修改或删除/*******Found*******/本身,遵循最少修改、保持一行一条语句及{与}单独一行的原则。

考试时由于是计算机自动阅卷,修改时不能增加行或删除行,哪怕是一个空行都不行,否则可能得0分。

1.程序D7.c的功能是判断x和y是否相等,相等则显示x=y,不等则显示x<>y。

(序号:7)#include<stdio.h>int main(void){/*********Found************/char x, y;x = 39270;y = 41001;/*********Found************/if (x != y){printf("x=y");}/*********Found************/else;;{printf("x<>y\n");}return 0;}2.程序D1000.c的功能是从键盘输入3个浮点数a,b,c(输入时abc之间以空格相隔),首先按照输入顺序显示在屏幕上,然后按从小到大顺序把它们输出到屏幕上。

(序号:20)#include<stdio.h>#include<stdio.h>int main(void){float a, b, c, t;printf("please input three numbers:\n");/*********Found************/scanf("%f%f", &a, &b, &c);printf("before sort:a=%g,b=%g,c=%g\n", a, b, c);if (a > b){t = a;a = b;/*********Found************/b = a;}if (a > c){t = a;a = c;c = t;}if (b > c){t = b;b = c;c = t;}printf("after sort:a=%g,b=%g,c=%g\n", a, b, c);return 0;}3. 程序D1006.c的功能是判断输入的数据是否与已经给出的数据j相等。

(序号:26)#include<stdio.h>#include<stdio.h>int main(void){long int i = 79870, j = 23;/*****Found*****/scanf("%f", &i);/*****Found*****/if (j == i);{printf("Equal!");}else{printf("Not equal!");}return 0;}4.程序D1007.c的功能是使用getchar方式从键盘读入一个字符,判断该字符是否大写字符.(序号:27)#include<stdio.h>int main(void){char ch;/****Found****/getchar(ch);/*****Found*****/if ('A' <= ch, ch <= 'Z'){printf("yes");}else{printf("no");}return 0;}5.程序D1008.c的功能是判断用户是不是输入的整数0。

(序号:28)#include<stdio.h>int main(void){int n;scanf("%d", &n);/****Found****/switch (n);{/****Found****/case0:printf("Zero\n");break;default:printf("Non-Zero");break;}return 0;}6.程序D1009.c的功能是输入一个整数,如果为1时输出100,为2时输出200,其它输出0。

(序号:29)#include<stdio.h>int main(void){int x, y;scanf("%d", &x);switch (x){/*********Found************/case x == 1:y = 100;break;/*********Found************/case x == 2:y = 200;break;default:/*********Found************/y = 500;break;}printf("%d\n", y);return 0;}(二)编程题说明:程序的输出格式和运行界面要求完全一样1. 编写一程序P7-710.C实现以下功能(查点:字符变量输入、输出函数的正确使用 )(序号:42)输入一个小写英文字母,首先输出它及其ASCII码,然后输出其对应的大写字母及其ASCII码。

编程可用素材:printf("Input a lowercase letter: ")...、printf("\n...(...)...。

程序的运行效果应类似地如图1所示,图1中的y是从键盘输入的内容图12.编写一程序P7-712.C实现以下功能(考查点:简单双分支结构程序)(序号:44)判断输入的正整数是否既是5又是7的整倍数,若是,则输出“Yes.”;否则输出“No.”。

程序的运行效果应类似地如图1和图2所示,图1中的75和图2中的105是从键盘输入的内容。

图1图23. 编写一程序P7-713.C实现以下功能(序号:45)用scanf输入某年某月某日,判断这一天是这一年的第几天?以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份≥3时需考虑多加一天。

注:判断年份是否为闰年的方法——为400的倍数为闰年,如2000年;若非100的倍数,而是4的倍数,为闰年,如1996年。

编程可用素材:printf("Please input: year-month-day\n")...、printf("\nIt is the ...th day.\n"...。

程序的运行效果应类似地如图1所示,图1中的2000-3-1是从键盘输入的内容#include <stdio.h>void main(){int year,month,day,x;printf("Please input :year-month-day");scanf("%d-%d-%d",&year,&month,&day);switch(month){case 1: x=day;break;case 2: x=31+day;break;case 3: x=59+day;break;case 4: x=90+day;break;case 5: x=120+day;break;case 6: x=151+day;break;case 7: x=181+day;break;case 8: x=212+day;break;case 9: x=243+day;break;case 10: x=273+day;break;case 11: x=304+day;break;case 12: x=334+day;break;}if(month>2&&(year%400==0||(year%4==0&&year%100!=0)))x+=1;printf("It is the %dth day.\n",x);}图1四、问题讨论1.对于多分支选择结构何时使用if语句的嵌套,何时使用switch语句?2.编程题,给出源程序清单或程序流程图。

相关文档
最新文档