实验3 结构化程序设计初步
VF实验三 结构化程序设计
实验三结构化程序设计实验目的:(1)熟练掌握程序文件的建立、保存、运行和调试的方法。
(2)重点掌握结构化程序设计的3种基本结构。
实验要求:练习使用命令方式和菜单方式建立、保存和运行下述程序。
若运行出现错误请调试。
(1)编写程序S2-4-1.PRG,为“员工”表添加新纪录。
(2)货物表的单价和库存量需要经常修改,试编写程序S2-4-2.PRG对货物表作数据维护。
(3)分别用顺序查询(编程S2-4-3A.PRG)和SELECT-SQL命令查询(编程S2-4-3b.prg)员工个人完成订单情况。
(4)编程s2-4-4.PRG显示货物库存清单,要求计算出每次货物的库存值和货物库存总值。
实验步骤:(1)建立程序文件:执行命令MODIFY COMMAND S2-4-1,在程序编辑窗口建立如下程序文件。
*程序文件名:S2-4-1.PRG*功能:为“员工”表添加新纪录。
CLEARUSE 员工&&打开员工.dbfAPPEND BLANK &&添加一个空白记录@ 10,5 SAY”添加新纪录”? &&插入一个空行INPUT”请输入工号:”TO ghINPUT “请输入姓名:”TO xmINPUT”请输入电话:”TO dhREPLACE 工号WITH gh,姓名with xm, 电话with dh &&将输入的数据写入表中?INPUT”是否输入照片(Y/N):”TO zpIF UPPER(ZP)=”y”MODIFY GENERAL 照片&&输入照片EDIFINPUT”是否输入备注(y/n):”TO BZIF UPPER(BZ)=”Y”MODIFY MEMORY 备注&&输入备注ENIFDIPLAYUSE上述程序录入后,按ctrl+w保存文件,从而关闭文本编辑窗口。
然后执行命令“DO S2-4-1”运行程序。
若存在录入错误请调试。
实验 顺序结构程序设计
实验三 顺序结构程序设计一、实验目的1.进一步熟悉C 程序的上机过程,积累调试经验。
2.进一步熟悉C 语言的输入、输出函数的使用。
3.增强基本顺序结构程序设计的能力。
4. 加深简单算法设计和分析能力。
二、实验意义通过上机实验,巩固第一章所学的所有基础知识,加入对问题的分析和算法设计能力,进行尝试性的自我程序设计,提高学生对问题的分析理解和C 语言基本知识的应用能力。
三、实验重点1. 算法分析和程序设计2. 继续巩固输入函数scanf ()的使用3. 正确构造算术表达式四、实验难点1. 算法分析和程序设计2. 程序调试五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。
六、实验内容1. 编写程序,输入圆半径r ,求圆周长、圆面积、圆球表面积、圆球体积。
要求:为加强界面的友好,输入数据与输出结果都应有相应的提示信息。
且输出数据取小数点后两位数字显示。
2. 输入一个华氏温度,要求输出摄氏温度。
公式为:()3295-=F c 输出要有文字说明,取2位小数。
3.有三个电阻r1、r2、r3并联,编写程序计算并输出并联后的电阻r 。
已知电阻并联公式为:3121111r r r r ++= 4. 要将”China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。
例如,字母”A”后面第4个字母是”E”,用”E”代替”A”。
因此,”China”应译为”Glmre”。
请编一程序,用赋初值的方法使c1、c2、c3、c4、c5 五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’、,并输出。
①输入事先已编好的程序,并运行该程序。
分析是否符合要求。
②改变c1、c2、c3、c4、c5、的初值为:’T’、’o’、’d’、’a’、’y’,对译码规律作如下补充:’W’用’A’ 代替,’X’用’B’代替,’Y’用’C’代替,’Z’用’D’代替。
实验三---分支结构程序设计实验报告-
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. 理解选择结构在程序设计中的作用和重要性。
2. 掌握基本的选择结构语句,如`if`、`switch`等。
3. 学会使用选择结构解决实际问题。
4. 提高逻辑思维能力和编程实践能力。
实验环境- 编程软件:任意一种支持C/C++/Java等语言的IDE。
- 开发环境:Windows/Linux/MacOS均可。
实验内容1. 基础选择结构- 实验一:使用`if`语句实现一个简单的温度转换程序,将摄氏度转换为华氏度。
```c#include <stdio.h>int main() {float celsius, fahrenheit;printf("请输入摄氏度:");scanf("%f", &celsius);fahrenheit = (celsius * 9 / 5) + 32;printf("%.2f摄氏度等于%.2f华氏度\n", celsius, fahrenheit);return 0;}```- 实验二:使用`if...else`语句设计一个程序,根据输入的分数判断成绩等级。
```c#include <stdio.h>int main() {int score;printf("请输入成绩:");scanf("%d", &score);if (score >= 90) {printf("优秀\n");} else if (score >= 60) {printf("及格\n");} else {printf("不及格\n");}return 0;}```2. 多条件选择结构- 实验三:使用`switch`语句实现一个简单的菜单选择程序。
实验结构化程序方案初步
实验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。
结构化程序设计实训报告
一、实验背景结构化程序设计是一种计算机编程方法,旨在提高程序的可读性、可维护性和可扩展性。
通过使用顺序结构、选择结构和循环结构等基本程序结构,可以使程序更加清晰、易于理解。
本次实训旨在通过实践操作,使学生掌握结构化程序设计的基本思想和方法,提高编程能力。
二、实验目的1. 掌握结构化程序设计的基本思想。
2. 熟练掌握三种基本程序结构:顺序结构、选择结构和循环结构。
3. 学会利用结构化程序设计思想解决数据处理问题。
4. 掌握VF(Visual FoxPro)程序调试的基本方法,能进行基本的程序设计。
三、实验内容及步骤1. 实验内容本次实训主要包括以下内容:(1)顺序结构:编写一个简单的程序,实现数字1到10的累加。
(2)选择结构:编写一个程序,根据用户输入的年龄判断是否成年。
(3)循环结构:编写一个程序,计算1到100的整数之和。
(4)结合以上结构,实现一个简单的学生成绩管理系统。
2. 实验步骤(1)在VFP环境下新建一个程序文件,命名为“结构化程序设计实验.prg”。
(2)编写程序代码,实现实验内容。
(3)保存程序文件。
(4)运行程序,验证程序功能。
(5)对程序进行调试,解决可能出现的问题。
四、实验过程及结果1. 顺序结构实验代码如下:```visual foxpro顺序结构实验clearlocal sum = 0for i = 1 to 10sum = sum + iendfor"1到10的累加和为:" + str(sum) ```运行结果:1到10的累加和为:55 2. 选择结构实验代码如下:```visual foxpro选择结构实验clearlocal age = 18if age >= 18"您已成年"else"您还未成年"endif```运行结果:您已成年3. 循环结构实验代码如下:```visual foxpro循环结构实验clearlocal sum = 0for i = 1 to 100sum = sum + iendfor"1到100的整数之和为:" + str(sum)```运行结果:1到100的整数之和为:50504. 学生成绩管理系统代码如下:```visual foxpro学生成绩管理系统clearlocal score_list = {}local input_scorefor i = 1 to 5"请输入第" + str(i) + "位学生的成绩:"input_score = input("请输入成绩:") aadd(score_list, input_score) endforlocal max_score = score_list[1]local min_score = score_list[1]for i = 2 to len(score_list)if score_list[i] > max_scoremax_score = score_list[i]endifif score_list[i] < min_scoremin_score = score_list[i]endifendfor"最高分为:" + str(max_score)"最低分为:" + str(min_score)```运行结果:请输入第1位学生的成绩:90请输入第2位学生的成绩:85请输入第3位学生的成绩:78请输入第4位学生的成绩:92请输入第5位学生的成绩:88最高分为:92最低分为:78五、实验总结1. 实验收获通过本次实训,我掌握了以下内容:(1)顺序结构、选择结构和循环结构的语句格式、功能及使用方法。
结构化程序设计
结构化程序设计结构化程序设计结构化程序设计是一种软件开发方法,旨在通过模块化和顺序化的方式来设计和编写程序。
它强调程序应该被组织成一系列可重复使用和可维护的模块,以便增强开发效率和代码的可读性。
在结构化程序设计中,程序被划分为多个小的、相对独立的模块。
每个模块执行一个特定的任务,并且可以与其他模块进行通信和交互。
这种模块化的设计使得程序变得更加可靠和易于理解,因为每个模块都是独立的,它的功能可以被单独测试和验证。
,结构化程序设计还鼓励使用顺序、选择和重复等基本的控制结构来组织程序的执行流程。
顺序控制指的是按照代码的顺序依次执行语句,选择控制指的是根据条件选择执行不同的语句块,而重复控制则是通过循环执行一段代码多次。
结构化程序设计的目标是提高程序的可理解性和可维护性。
通过模块化的设计,可以将一个复杂的问题分解成多个简单的子问题,从而减少开发过程中的错误和bug。
结构化程序设计还使得程序的测试和调试变得更加容易,因为每个模块都是相对独立的,可以单独进行测试和调试。
在实践中,结构化程序设计可以通过使用编程语言中的函数、类和模块等概念来实现。
通过将程序划分为多个函数或者类,可以实现程序的模块化和重用。
而通过使用模块化的设计,可以将程序的不同部分放入不同的模块中,从而提高代码的可读性和可维护性。
,结构化程序设计是一种重要的软件开发方法,可以提高程序的可读性、可维护性和可重用性。
通过将程序划分为多个模块,并使用基本的控制结构来组织程序的执行流程,可以更好地管理和开发复杂的软件系统。
结构化程序设计是每个程序员都应该熟悉和掌握的软件开发技术。
第3章程序设计初步第1-7节
第3章程序设计初步第1-7节一、选择题1、C语言中用于结构化程序设计的3种基本结构是( D )A) for,while,do-while B) if,for,continueC) if,switch,break D)顺序结构、选择结构、循环结构2、流程控制语句的基本控制结构有三种,不属于这一种结构的是( D )。
A) 顺序结构 B) 选择结构 C) 循环结构 D) 计算结构3、输入输出格式控制是在哪个头文件中定义的?( B )。
A) iostream B) iomanip C) istream D) ostream4、输入输出时需要包含哪个头文件?( A )。
A) iostream B) iomanip C) istream D) ostream5、对于语句cout<<endl<<x;中的各个组成部分,下列叙述中错误的是( D )。
A)”cout”是一个输出流对象 B) ”endl”的作用是输出回车换行C)”x”是一个变量 D) ”<<”称作提取运算符解析:”>>”称作提取运算符. ”<<”称作插入运算符6、下列有关输入、输出的说法错误的是( C )。
A) C++语言本身没有提供输入、输出语句B) C++语言中输入输出功能是通过输入输出流库中的流对象cin和cout实现的C) 函数putchar()只能用来输出字符型变量的内容D) 函数getchar()一次只能输入一个字符7、在ios中提供控制格式的标志位中,哪个是转换为十六进制形式的标志位?(A )。
A) hex B) oct C) dec D) left8、关系表达式的求值结果为( B )。
A)1或-1 B)1或0 C)任意正整数或0 D)任意负整数或09、设变量a和b的值满足a<b,判断变量x的值是否位于闭区间[a,b]的表达式是(C )。
A)a<x<y B)a<=x<=b C)x>=a&&x<=b D)a<x&&x<b10、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( D )。
结构化程序设计(实验报告)
VFP数据库与程序设计作业与实验报告(第七章结构化程序设计)学号:姓名:专业:教师:第七章结构化程序设计【实验题目】结构化程序设计【实验目的】通过本次实验,让学生掌握程序文件的建立、修改和运行,程序设计常用命令,程序的顺序、选择和循环结构。
【实验准备】1.复习第七章程序设计基础所学知识,预习实验内容,写出相关命令和程序。
2.准备好前次实验所用的文件数据。
3.启动VFP6.0,将“我的VFP实验作业”文件夹设置为默认工作目录。
【实验内容及实验步骤】1.顺序结构程序设计1) 程序功能:显示学生表中前两条记录的学号、姓名、性别和入学成绩。
(将以下程序空格填写完整,建立程序并调试运行,将运行结果截图。
)use xs?”学号姓名性别入学成绩”?xh,xm,xb,rxcj?skip 1 &&移动指针到第二条记录? xh,xm,xb,rxcj &&显示信息use 运行结果(把截图放在此处):2)编写程序,分别统计学生表中男生及女生的总人数。
并分别计算男、女生的入学平均成绩。
(提示:统计人数用COUNT集函数,计算平均成绩用AVG集函数。
请把正确的程序写在此处)clearselect xb,count(*),avg(rxcj) from xs group by xb into array aa?'男生总人数',aa(1,2)?'女生总人数',aa(2,2)?'男生入学平均成绩',aa(1,3)?'女生入学平均成绩',aa(2,3)2. 分支结构程序设计1) 程序功能: 完善下述程序段,计算分段函数的值。
⎪⎩⎪⎨⎧--=,103,13,2X X X Y 5522≥<≤<X X XCLEARINPUT “请输入X 的值:” to XIF X<2Y=2*XELSE IF x>=2.and.x<5Y=3*X-1ELSE Y=3*x-10ENDIFENDIF?”函数值 Y=”,Y2) 程序功能:在成绩(cj)表中查找学号为“0206101”且课程代号为“03”的记录,并给出成绩等级(优90-100;良80-89;中70-79;及格60-69;不及格60分以下)。
C语言实验报告-结构化程序设计
二、实验项目内容(实验题目)
三、源程序(实验过程或算法) #include <stdio.h> #include <math.h> void main() {double Fn,n=1,sum,x,PI=3.1415926; printf("x=") ; scanf("%lf",&x);
x=x*PI/180; for(sum=x,Fn=x;fabs(Fn)>=1e-7;n++) {Fn=-Fn*x*x/(2*n*(2*n+1)); sum=sum+Fn; } printf("sin(x)=%lf\n",sum); }
Hale Waihona Puke 四、源程序调试过程和(或)实验分析 (截图粘贴)
1、Scanf(“%lf\n”,&x);
\n 换行导致输入出现问题,应删除。 Fn 绝对值小于 e-7 输入有误。
2、Fn,sum 初值赋值有误。 PI 的精度不够。 n++输入了两次。
3、符合要求。 实验总结:1、实验问题主要源于对程序设计尚不够熟练,容易出现小 差错。 2、途中对题目方程式理解有误导致设计错误。 3、尚需加大练习力度,加宽题目涉及面。
实验题目 实验时间 实验成绩
结构化程序设计 实验地点 实验性质
□验证性 √设计性 □综合性
教师评价:
√ 算法/实验过程正确; □实验结果正确; 其他: 评价教师签名: √ 源程序/实验内容提交 □语法、语义正确; √ 程序结构/实验步骤合理; □报告规范;
一、实验目的
1.掌握 C 语言中具有逻辑量意义数据的表示方法 2.理解分支程序设计的基本思想,熟练掌握分支程序设计的基本方法 3.理解循环程序设计的基本思想,熟练掌握循环程序设计的基本方法 4.掌握具有迭代思想程序的设计方法
C语言结构化程序设计实验报告
实验2 结构化程序设计一、 实验目的1.了解C/C++语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。
2.学会正确使用逻辑运算符和逻辑表达式。
3.熟练掌握if 语句和switch 语句。
4.熟练掌握while 语句、do ...while 语句和for 语句格式、使用方法以及区别,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。
5.掌握break 和continue 程序控制语句的使用。
6.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。
进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
7.结合程序掌握一些简单的算法。
8.学习调试程序。
二、实验环境PC 微机Windows 操作系统VS 2019 程序集成环境三、实验内容与步骤1.编写程序:根据公式2222213121116n ++++= π ,输出 π的值。
要求:(1)变量π为单精度类型,n 为整型;(2)计算当n 的取值分别为20,50 ,100,200时的π值,说明什么问题?(3)修改程序,不给出n 值,而改为求π值,直到最后一项的数值小于10-4 为止。
(4)对修改后的程序,输出π值以及总的项数n 。
输出格式为:π=值;n=值。
代码①:#include <stdio.h>#include<math.h>int main(){int n,i;float pi;double sum = 0;while ((scanf("%d", &n) != EOF)) {for (i = 1; i <= n; i++) {sum += 1.0 / (i * i);}pi = (float)sqrt(6 * sum);printf("%f\n", pi);sum = 0;}return 0;}代码②:#include<stdio.h>#include<math.h>int main(){int n,i;float pi;double sum = 0;for (i = 1; 1.0 / (i * i) >= 1e-4; i++) {sum += 1.0 /( i * i);}pi = (float)sqrt(6.0 * sum);n = i;printf("pi = %f;n = %d",pi,n);return 0;}结果分析:1.第一问:当n = 20、50、100、200时pi分别为“3.094670、3.122627、3.132077、3.136826”,由此可知当n越大时,pi的精度越高。
实验3 顺序结构程序设计
实验3 顺序结构程序设计实验3顺序结构程序设计班级:学号:姓名:实验3顺序结构编程一.实验目的1.掌握赋值语句的使用。
2.熟练掌握各种类型数据的输入输出方法,能正确使用各种格式转换符。
3.熟练掌握编写顺序结构程序的方法。
4.熟练掌握调试程序的方法。
二、实验要求熟练使用vc集成环境,能利用已学知识设计选择结构程序,并解决实际问题。
三、实验内容1.程序调试与测试《C编程学习指南》p241-249第15章程序调试和测试。
不要写实验报告。
2.程序错误纠正《c程序设计学习辅导》p258-259实验内容部分中的(1)①-④。
3.程序设计3-1从键盘输入一个整数作为半径,以计算圆的周长和面积。
输入输出示例请输入一个整数R:10周长c=62.831853,面积s=314.1592653-2编写一个程序来寻找一元二次型方程AX2?bx?C0的根以及系数a、B和C都是浮点数键盘输入。
(提示:求平方根的函数为sqrt(),所需头文件为math.h)输入/输出示例(需要运行6次)输入一元二次方程的系数a,b,c:000?方程无穷解!输入一元二次方程的系数a、B、C:001,方程没有解!输入一元二次方程的系数a,b,c:021方程有一个根0x=-0.5输入一元二次方程的系数a、B、C:121。
方程有两个相同的实根:X1=x2=-1输入一元二次方程的系数a,b,c:2.18.93.5方程有两个不同的实根:x1=-0.438662,x2=-3.799433输入一元二次方程的系数a,b,c:221方程有两个不同的虚根:X1=-0.5+0.5i,X2=-0.5-0.5i四.实验结果与分析在实验报告中,回答实验内容2的相关问题,列出相应的源程序和实验内容3的程序运行结果截图,分析实验中遇到的问题和解决问题的方法。
(注意:重新翻页。
不要改变实验报告的结构,清楚地写下页码和问题号,源程序应以自己的中文名称命名。
例如,问题3-1可以命名为“Zhang San_3-1.CPP”,其名称和问题号应出现在操作的屏幕截图中)遇到的问题:一开始没有办法很好的输出虚根,总是显示错误,最后运用sqrt(-disc)的方法先计算出来数值,然后用%8.4fi\\n的方式来进行表达。
实验三 顺序结构程序设计实验
实验三顺序结构程序设计实验一、实验目的1.掌握顺序结构程序的基本设计方法;2.掌握数据传送指令和算术运算指令的用法;3.掌握逻辑操作指令和移位操作指令的用法;4.掌握状态标志位操作指令的用法;5.掌握简单的I/O功能调用。
二、实验要求1.熟练掌握DEBUG中的各命令的使用方法;2.学会利用系统功能调用,来实现键盘输入字符、显示字符的方法;3.学会十进制数字与其对应的ASCII码相互转换的方法;4.学会十六进制数字与其对应的ASCII码相互转换的方法;5.学会利用查表的方法实现代码的转换。
三、实验举例【例3.3】 编写程序,完成两个十六进制数的加法运算,要求:从键盘输入被加数和加数,将计算结果保存在RAL内存单元的同时在屏幕上显示。
【解题思路】利用INT 21H的1号功能从键盘上输入一个被加数和加数,将两个数之和的ASCII保存在内存单元和DL寄存器中,然后利用INT 21H的2号功能将其输出到屏幕上。
【步骤一】启动EDIT编辑器,编辑源程序。
程序清单如下:DSEG SEGMENTRAL DB ?DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGSTART: MOV AX,DSEGMOV DS,AXMOV AH,01H ;输入第一个数INT 21HSUB ` AL,30HMOV BL,ALMOV DL,‘+’ ;显示“+”号MOV AH,02HINT 21HMOV AH,01H ;输入第二个数INT 21HSUB AL,30HADD BL,ALMOV RAL,BL ;结果存入RAL单元CMP BL,09HJB AD30ADD BL,07HAD30: ADD BL,30HMOV DL,‘=’ ;显示“=”号MOV AH,02HINT 21HMOV DL,BL ;显示结果MOV AH,02HINT 21HMOV AH,4CHINT 21HCSEG ENDSEND START源程序输入完毕,以EXAM3.ASM为文件名存入磁盘,进行下一步操作。
实验项目三:结构化程序设计(选择结构)
5.由键盘输入3个整数a、b、c,作为三角形的三条边,判断能否构成三角形,若不能构成,请给出提示信息;若能构成三角形,指出构造的是何种三角形(等腰三角形、直角三角形、一般三角形)。
要求:每道题目分别画出程序流程图,书写程序,试运行(如何输入,结果如何)。
【算法提示】
华氏温度f
摄氏温度c
100.25
37.92
0.5
-17.50
23.78
-4.57
1)定义实变量c,f
2)提示输入"Please enter f:"
3)读入f
4)根据公式计算c
5)打印两位精度的结果
2.有一函数
用scanf函输入x的值,求y值。
【算法提示】
1)定义实变量x,y
2)提示输入"Please enter x:"
(4)结合程序掌握一些简单的算法。
(5)学习调试程序。
二、实验设备(环境)及要求
使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤(要求以“学号_姓名_题号”)
1.输入一个华氏温度f,要求输出摄氏温度c。公式为c=5/9(f-32)。
输出要求有文字说明,取2位小数。
1.书读百遍,其义自见2.熟能生巧,坚持到底,就是胜利!
五、教师评语
签名:
日期:
成绩
《程序设计基础I》实验报告
实验项目三:结构化程序设计_选择结构
学 号
姓 名
何峰
专业、班级
计算机类03
实验时间
2016年11月30日星期三
C语言程序设计实验》__实验指导书
实验指导书院系:机电工程学院专业:课程:C语言程序设计编者:丁潇目录实验一 C程序的运行环境及简单C程序设计.......... 错误!未定义书签。
实验二分支结构程序设计.......................... 错误!未定义书签。
实验三循环结构程序设计.......................... 错误!未定义书签。
实验四数组程序设计.............................. 错误!未定义书签。
实验五函数的使用方法............................ 错误!未定义书签。
实验六指针的使用方法............................ 错误!未定义书签。
实验一 C程序的运行环境及简单C程序设计一、实验目的:1、了解Visual C++、Turbo C集成环境,掌握常用的菜单命令和相应的功能。
2、掌握C程序的编辑方法,学会编译、连接和运行等操作步骤。
3、逐步掌握根据编译连接的提示信息和运行后用户屏幕输出来修改程序的技巧;4、掌握数据类型,尤其是基本的数据类型;5、理解变量与常量,懂得其存储结构;6、掌握表达式的构成及运算;7、掌握运算符的种类及运算方法,理解运算符的优先级及结合性;8、掌握不同类型的数据相互转换的规律;9、掌握赋值语句的使用方法;10、熟练掌握输入输出函数;11、了解简单的编程方法。
二、实验条件:Windows环境,VisualC++6.0、Turbo C2.0。
三、实验要求:1、通过上机实验,能了解Visual C++、Turbo C集成环境,初步掌握关于文件、编辑、编译、运行和窗口等方面的命令及相应功能,并能在C程序上机操作中使用这些命令。
2、通过C程序上机操作,能完整地认识和掌握程序的编辑、编译、连接和运行等步骤。
3、在实验中学会阅读有关信息,特别是编译连接的出错信息,学会对程序运行后用户屏幕输出数据(包括格式)对错优劣的评价,然后进一步修改源程序,直至完全正确。
实验三 顺序结构程序设计实验报告
实验三顺序结构程序设计实验报告一、实验目的1.掌握掌握赋值语句的使用方法。
2.各种类型数据的输入输出的方法,能正确使用各种格式转换符。
3.进一步掌握编写程序和调试程序的方法。
二、实验内容(源代码)1. sy3-(1)①#include<stdio.h>int main(){int a,b; //基本整型float d,e; //单精度浮点型char c1,c2; //字符型double f,g; //双精度浮点型long m,n; //长整型unsigned int p,q; //"unsiguld"改成"unsigned" 无符号整型a=61,b=62;c1='a';c2='b'; //'a''b'的"'"不能掉了d=3.56;e=-6.87; //d,e之间用";"隔开f=3157.890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); //"""与"a"之间的","不能掉了,"\"不能写成"/"printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,m,n,p,q); //f后的q改为g}③#include<stdio.h>int main(){int a,b; //基本整型float d,e; //单精度浮点型char c1,c2; //字符型double f,g; //双精度浮点型long m,n; //长整型unsigned int p,q; //"unsiguld"改成"unsigned" 无符号整型a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); //"""与"a"之间的","不能掉了,"\"不能写成"/"printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,m,n,p,q); //f后的q改为g④#include<stdio.h>int main(){int a,b; //基本整型float d,e; //单精度浮点型char c1,c2; //字符型double f,g; //双精度浮点型long m,n; //长整型unsigned int p,q; //"unsiguld"改成"unsigned" 无符号整型a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%d,c2=%d\nd=%d,e=%d\n",sizeof(a),sizeof(b),sizeof(c1),size of(c2),sizeof(d),sizeof(e));printf("f=%d,g=%d\nm=%d,n=%d\np=%d,q=%d\n",sizeof(f),sizeof(g),sizeof(m),sizeof( n),sizeof(p),sizeof(q));}2. sy3-(2)#include<stdio.h>int main(){float h,r,c,s1,s2,v1,v2; //定义float pi=3.1415926; //赋值printf("圆半径r=,圆柱高h=:"); //提示scanf("%f,%f",&r,&h); //输入c=2*pi*r; //计算s1=pi*r*r; //"*"不可省略s2=4*s1;v1=4.0/3.0*s1*r;v2=s1*h;printf("圆周长:c=%6.2f\n",c); //输出printf("圆面积:s1=%6.2f\n",s1);printf("圆球表面积:s2=%6.2f\n",s2);printf("圆球体积:v1=%6.2f\n",v1);printf("圆柱体积:v2=%6.2f\n",v2);return 0;}3. sy3-(3)#include<stdio.h>#include<math.h> //不要忘了数学函数int main(){float p,r5,r3,r2,r1,r0,p1,p2,p3,p4,p5; //定义p=1000; //赋值printf("r5=,r3=,r2=,r1=,r0=:"); //提示scanf("%f,%f,%f,%f,%f",&r5,&r3,&r2,&r1,&r0); //输入p1=p*r5*5; //计算p2=p*(1+2*r2)*(1+3*r3)-p;p3=p*(1+3*r3)*(1+2*r2)-p;p4=p*pow(1+r1,5)-p;p5=p*pow(1+r0/4,20)-p;printf("方案1的利息:p1=%f\n",p1); //输出printf("方案2的利息:p2=%f\n",p2);printf("方案3的利息:p3=%f\n",p3);printf("方案4的利息:p4=%f\n",p4);printf("方案5的利息:p5=%f\n",p5);return 0;}4. sy3-(4)①#include<stdio.h>int main(){char c1='C',c2='h',c3='i',c4='n',c5='a';//定义与赋值c1=c1+4;//计算c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2);putchar(c3);putchar(c4);putchar(c5);printf("\n");//换行不要省略return 0;}②#include<stdio.h>int main(){char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值c1=c1-22;//计算c2=c2-22;c3=c3-22;c4=c4-22;c5=c5-22;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2);putchar(c3);putchar(c4);putchar(c5);printf("\n");//换行不要省略return 0;}③#include<stdio.h>int main(){char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值c1=c1-4;//计算c2=c2-4;c3=c3-4;c4=c4-4;c5=c5-4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2);putchar(c3);putchar(c4);putchar(c5);printf("\n");//换行不要省略return 0;}三、实验体会1.初步掌握了顺序程序设计编程的基本方法:程序框图或N-S图→定义→赋值→(提示)输入→计算→(提示)输出。
【实验指导书】实验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。
实验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<<"Y es"<<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)编写程序从键盘输入一个大写字母,将其转换为小写字母并输出。
实验结构化程序实施方案初步
实验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;elsecout<<"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编程题编写程序从键盘输入一个大写字母,将其转换为小写字母并输出.要求分别用getchar和putchar函数输入和输出字符.(2)编写程序,输入两个非零整数,输出相加、相减、相乘、相除和求模运算地结果.(3)编写程序,输入一个3位正整数,要求逆序输出对应地数,如输入123,则输出321.(4)编写程序解鸡兔同笼问题:已知鸡兔总数为a,鸡兔腿总数为b,计算鸡兔各有多少只?a、b值从键盘输入.(5)从键盘输入一个整数,判断其奇偶性.(6)从键盘输入3个整数,求它们地最大值并输出.(7)从键盘输入一个整数,判断其符号并输出(+表示正整数,0表示0,-表示负整数).假设0-6分别代表星期天—星期六,从键盘输入任意整数,若在0-6内则将相应地星期输出,否则显示“输入数据不在0-6范围内”.(9)编写程序,输入年份与月份,判断该年是否是闰年,并根据给出地月份判断是什么季节和该月有多少天?(10)编写程序,根据用户输入地三角形地三条边长判定是何种三角形,对于有效三角形,求其面积.(11)编写程小计算圆周率.计算方法为:计算355/113地值,该值是我国著名科学家祖冲之计算地圆周率,要求精确到小数点后n位,n值从键盘输入.(13)已知abc+cba=1333,其中a、b、c均为一位数,编写一个程序求出a、b、c分别代表什么数字?百钱买百鸡问题.已知公鸡5元1只,母鸡3元一只,小鸡1元3只,问用100元买100只鸡,各多少只?求出所有地购买方案并输出.小明今年12岁,他母亲比他大20岁.编写一个程序计算出小明地母亲在几年后比小明地年龄大一倍,那时他们两人地年龄各是多少?一位百万富翁遇到一位陌生人,陌生人找他谈一个换钱地计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱……你每天给我地钱是前一天地两倍,直到满一个月(30天),百万富翁很高兴,欣然接受了这个契约.请编写一个程序计算这一个月中陌生人给了百万富翁多少钱,百万富翁给陌生人多少钱?2.3逻辑问题求解题(1)某地刑侦大队对涉及6个嫌疑人地一桩疑案进行分析:(a)A,B至少有1人作案;(b)A,E,F3人中至少有2人参与作案;(c)A,D不可能是同案犯;(d)B,C或同时作案,或与本案无关;(e)C,D中有且仅有1人作案;(f)如果D没有参与作案,则E也不可能参与作案.试编写程序将作案人找出来.(2)4名专家对4款赛车进行评论.A说:2号赛车是最好地.B说:4号赛车是最好地.C说:3号不是最佳赛车.D说:B说错了.事实上只有一款赛车最佳,且只有一名专家说对了,其他3人都说错了.请编程输出最佳车地车号,以及哪位专家说对了.(3)3个人比饭量大小,每人说了两句话.A说:B比我吃得多,C和我吃得一样多.B说:A比我吃得多,A也比C吃得多.C说:我比B吃得多,B比A吃得多.事实上饭量越小地人讲对地话越多.请编程按饭量地大小输出3个人地顺序.(4)5位跳水高手将参加10m高台跳水决赛,有好事者让5人据实力预测比赛结果.A选手说:B第二,我第三.B选手说:我第二,E第四.C选手说:我第一,D第二.D选手说:C最后,我第三.E选手说:我第四,A第一.决赛成绩公布之后,每位选手地预测都只说对了一半,即一对一错.请编程解出比赛地实际名次.(5)我国有4大淡水湖.A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三.B说:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三.C说:洪泽湖最小,洞庭湖第三.D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三.4个人每个人仅答对了一个,请编程给出4个湖从大到小地顺序.A,B,C是小学老师,各教2门课,互不重复.共有如下6门课:语文、算术、政治、地理、音乐和美术.已知:(a)政治老师和算术老师是邻居.(b)地理老师比语文老师年龄大.(c)B最年轻.(d)A经常对地理老师和算术老师讲他看过地文学作品.(e)B经常和音乐老师、语文老师一起游泳.请编程输出A、B、C各教哪两门课.(7)校田径运动会上A,B,C,D,E分获百米、四百米、跳高、跳远和三级跳冠军.观众甲说:B获三级跳冠军,D获跳高冠军.观众乙说:A获百米冠军,E获跳高冠军.观众丙说:C获跳远冠军,D获四百米冠军.观众丁说:B获跳高冠军,E获三级跳冠军.实际情况是每人说对一句,说错一句.请编程求出A,B,C,D,E各获哪项冠军.夏日炎炎,空调机走俏.5家空调机厂地产品在一次质量评比活动中分获前5名.评比前大家就已知道E厂地产品肯定不是第2名和第3名.A厂地代表猜:E厂地产品稳获第1名.B厂地代表猜:我厂可能获第2名.C厂地代表猜:A厂地质量最差.D厂地代表猜:C厂地产品不是最好地.E厂地代表猜:D厂会获第1名.评比结果公布后发现,只有获第1名和第2名地两个长地代表猜对了.请编程给出A,B,C,D,E各是第几名?3.思考题(1)如何从键盘输入空格字符和回车换行符赋给字符变量?(2)整型变量与字符变量是否在任何情况下都可以互相代替?(3)if语句地嵌套中,else与哪个if配对?(4)使用switch语句时要注意哪几个要点?(5)while和do-while循环地主要区别是什么?(6)break语句和continue语句地主要区别是什么?什么是循环嵌套?在两层循环中,假设外循环地循环次数为m,内循环地循环次数为n,则在外循环结束后,内循环体内地语句将被执行多少次?在多重循环中使用break语句时,可跳出哪层循环?4.实验报告(1)实验内容①编写程序解鸡兔同笼问题:已知鸡兔总数为a,鸡兔腿总数为b,计算鸡兔各有多少只?a、b值从键盘输入.②计算圆周率.计算方法为:计算355/133地值,该值是我国著名科学家祖冲之计算地圆周率,要求精确到小数点后n位,n值从键盘输入.(2)实验目地①学会分析问题,并通过程序实现方程地解答;熟悉顺序结构程序地编写.②通过循环结构将整数除法计算机程序化,熟练循环结构地使用.(3)问题分析过程(4)程序代码与运行结果(5)遇到地问题与实验心得版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.0YujC。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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)编写程序从键盘输入一个大写字母,将其转换为小写字母并输出。