版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计与问题求解I实验指导书计算机科学与工程学院刘洪波唐麟
实验一熟悉上机环境和顺序结构编程一、实验目的熟悉VC6编程环境掌握C语言中的输入输出掌握顺序结构程序设计二、实验内容和步骤1.键盘输入与屏幕输出练习问题1要使下面程序的输出语句在屏幕上显示1,2,34,则从键盘输入的数据格式应为以下备选答案中的。#include<stdio.h>main(){ chara,b; intc; scanf("%c%c%d",&a,&b,&c); printf("%c,%c,%d\n",a,b,c);}A)1234 B)1,2,34C)’1’,’2’,34 D)1234问题2在与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示1234(注:数字1、2之间用空格分开,2跟34之间也有空格,3、4之间没有任何分隔符),则应修改程序中的哪条语句?怎样修改?问题3要使上面程序的键盘输入数据格式为1,2,34(注:逗号隔开),输出语句在屏幕上显示的结果也为1,2,34,则应修改程序中的哪条语句?怎样修改?问题4要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为'1','2',34,则应修改程序中的哪条语句?怎样修改?[提示:利用转义字符输出字符单引号字符。]问题5要使上面程序的键盘输入无论用下面哪种格式输入数据,程序在屏幕上的输出结果都为'1','2',34,则程序应修改程序中的哪条语句?怎样修改?第1种输入方式:1,2,34↙(以逗号作为分隔符)第2种输入方式:1234↙(以空格作为分隔符)第3种输入方式:1234↙(以Tab键作为分隔符)第4种输入方式:1↙2↙34↙(以回车符作为分隔符)提示:使用scanf("%c%*c%c%*c%d",&a,&b,&c);其中,scanf后的*表示本输入项在读入后不赋给相应的变量。简单的说可以利用%*c跳过任意的字符而不读入2.计算定期存款本利之和设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由键盘输入提示1:银行定期存款为复利,计算公式为:提示2:使用函数pow,具体见如下从帮助文档中的摘录doublepow(doublex,doubley);Parametersx:Base.y:Exponent.Example//crt_pow.c#include<math.h>#include<stdio.h>intmain(void){doublex=2.0,y=3.0,z;z=pow(x,y);printf("%.1ftothepowerof%.1fis%.1f\n",x,y,z);}Output2.0tothepowerof3.0is8.0三、实验结果与分析将源程序、运行结果和分析以及实验中遇到的问题和解决问题的方法,写在实验报告上。实验二选择结构程序设计一、实验目的正确使用关系表达式和逻辑表达式表示条件掌握选择语句if和switch语句的使用方法学会用选择语句构成的选择结构程序设计二、实验内容1.身高预测每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。设faHeight为其父身高,moHeight为其母身高,身高预测公式为男性成人时身高=(faHeight+moHeight)×0.54cm女性成人时身高=(faHeight×0.923+moHeight)/2cm此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。编程从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好),利用给定公式和身高预测方法对身高进行预测。编程要求:有用户输入输出提示信息。2.简单的计算器用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1运算符op操作数2计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。编程要求:程序能进行浮点数的算术运算,有用户输入输出提示信息。提示:因为除法中的除数不能为0,因此关键在于如何比较浮点变量data2和常数0是否相等。作为整型变量跟0的比较,简单的==就可以解决。而浮点型等实型变量需要用if(fabs(data2)<=1e-7)进行判断(即判断其是否足够小)。若使用函数fabs,需要包含头文件math.h三、实验结果与分析将源程序、运行结果和分析以及实验中遇到的问题和解决问题的方法,写在实验报告上。实验三循环结构程序设计(1)一、实验目的1.学习循环语句的使用方法2.学习用循环语句编写程序二、实验内容(1)请用三种结构实现从1到100之间的偶数累加,奇数相乘,并将偶数累加的结果输出,奇数相乘的结果输出。(2)求,n的值从键盘输入(3)编写程序,打印99乘法表三、实验结果与分析将源程序、运行结果和分析以及实验中遇到的问题和解决问题的方法,写在实验报告上。
实验四循环结构程序设计(2)一、实验目的1.学习循环语句的使用方法2.学习用循环语句编写实际应用程序二、实验内容猜数游戏在这个实验中,我们将尝试编写一个猜数游戏程序,这个程序看上去有些难度,但是如果按下列要求循序渐进地编程实现,会发现其实这个程序是很容易实现的。那么,现在就开始吧,先编写第1个程序,然后试着在第1个程序的基础上编写第2个程序,……程序1编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则计算机然后结束游戏。要求每次运行程序时机器所“想”的数不能都一样。程序2编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。程序3编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏。程序4编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。编程要求:1.有用户输入输出提示2.仅仅需要编写出程序4的代码并上机调试运行成功,前面的程序1至程序3是引导如何编写出程序4的代码。在程序4中要用到二重循环,如果实在无法直接编写出程序4,可按上面的步骤循序渐进的进行代码的编写。编程提示:随机数序列的生成在这个程序的编写中,需要产生随机数。附录中是一个生成随机数的帮助文档,需要自己看懂。简单提一下,生成一个从1到100的随机数的代码如下:magic=rand()%100+1;但要注意,在一段程序使用rand()函数前,需要有且仅仅有一条语句进行随机数初始值的设置。比如使用srand(time(NULL));这里是用系统时间进行随机数初始值的设置。函数time()返回以秒计算的当前时间值,该值被转换为无符号整数并用作随机数发生器的种子。作为一个随机数实际上是一个伪随机数,并不是实际意义上的随机,仅仅是通过一定的数学方法(不同的数学方法产生满足不同分布的随机数序列),从一个初始值生成的一个序列,因此这个初始值如果雷同的话,生成的随机数也是相同的。因此在第一次使用rand函数前,需要使用srand函数。randRequirementsRoutineRequiredheaderCompatibilityrand<stdlib.h>ANSI,Win98,WinMe,WinNT,Win2000,WinXPGeneratesapseudorandomrand(void);ReturnValuerandreturnsapseudorandomnumber,asdescribedabove.Thereisnoerrorreturn.RemarksTherandfunctionreturnsapseudorandomintegerintherange0toRAND_MAX.Usethesrandfunctiontoseedthepseudorandom-numbergeneratorbeforecallingrand.RequirementsRoutineRequiredheaderCompatibilityrand<stdlib.h>ANSI,Win98,WinMe,WinNT,Win2000,WinXPExample//crt_rand.c/*Thisprogramseedstherandom-numbergenerator*withthetime,thendisplays10randomintegers.*/#include<stdlib.h>#include<stdio.h>#include<time.h>intmain(void){inti;/*Seedtherandom-numbergeneratorwithcurrenttimesothat*thenumberswillbedifferenteverytimewerun.*/srand((unsigned)time(NULL));/*Display10numbers.*/for(i=0;i<10;i++)printf("%6d\n",rand());}SampleOutput194302822297101207075139501176726041118724097三、实验结果与分析将源程序、运行结果和分析以及实验中遇到的问题和解决问题的方法,写在实验报告上。
实验五控制结构综合程序设计一、实验目的1.熟练掌握分支结构、循环结构的综合应用。2.掌握结构化程序设计的思想及方法。二、实验内容1.输入一行字符(以#结束),统计其中英文字母、空格、数字和其它字符的个数。2.输入2个1—1000之间的正整数m和n,输出m—n之间的所有完数,完数就是因子和与它本身相等的数。例如,factorsum(12)的返回值是16(1+2+3+4+6)。输入输出示例Inputm:1Inputn:100Output:1,6,282.输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。输入输出示例Inputwords:ThesumoftheoddnumbersCount=6三、实验结果与分析将源程序、运行结果和分析以及实验中遇到的问题和解决问题的方法,写在实验报告上。
实验六数组的使用一、实验目的1.掌握数组的定义、赋值和输入输出方法2.学习使用数组实现相关算法二、实验内容1.编写程序,输入一个正整数(),再输入n个整数(存入数组a中),输出a中的最大值,最小值及平均值(保留两位小数)注释:这里要定义数组中的元素个数至少为10个,即inta[10];2.餐饮服务质量调查打分在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图的形式显示出来。例如,一个公司的主管可能需要了解一年来公司的营业状况,比较一下各月份的销售收入状况。如果仅给出一大堆数据,这显然太不直观了,如果能将这些数据以条形图(直方图)的形式表示,将会大大增加这些数据的直观性,也便于数据的分析与对比。下面以顾客对餐饮服务打分为例,练习这方面的程序编写方法。假设有40个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。GradeCount Histogram1 5 *****2 10 **********3 7 ******* ...提示:定义数组score存放打的分数定义数组count为计数器(count[0]不用)计算统计结果:设置一个循环,依次检查数组元素值score[i],是1则将数组元素count[1]加1,是2则将数组元素count[2]加1,依此类推 for(i=0;i<STUDENTS;i++) { count[score[i]]++; }打印统计结果,设置一个循环,按count数组元素的值,打印相应个数的符号’*’提示:输入40个数据太多,进行测试的时候,可以让计算机生成随机数代替手工输入数据。3.检验并打印魔方矩阵在下面的5×5阶魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。17241815235714164613202210121921311182529三、实验结果与分析将源程序、运行结果和分析以及实验中遇到的问题和解决问题的方法,写在实验报告上。
实验七函数的使用一、实验目的1.掌握函数的定义和调用方法2.掌握通过参数在函数间传递数据的方法二、实验内容1.编写简单程题(1)输入两个数,输出其中较大的数。要求定义和调用函数intmax(inta,intb);找出并返回a,b中较大的数(2)求,其中n的值由键盘输入。要求:定义和调用函数doublefact(inta);求取a!并返回结果。注:此题仅作为自定义函数练习使用,这个程序用函数实现效率会很低。2.给小学生出加法考试题编写一个程序,给学生出加法运算题,然后判断学生输入的答案对错与否,可以按下列要求以循序渐进的方式编程。程序4连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Notcorrect!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题数。编程要求:1.较好的用户输入输出提示2.使用子函数实现两个数相加的测试。此函数的输入参数是两个加数,返回值是用户运算的正确与否(用1或者0表示)。在此函数中首先读入用户输入的加法结果,并与正确结果进行比较。intAddTest(inta,intb)
;3.仅仅要求完成程序4的编写调试运行工作,程序1至程序3是对编写程序4的引导。若可以直接编写出程序4,可以直接编写,如果不能一步编写成功,可以根据引导一步步编写。选做附加题通过计算机随机产生10道四则运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Notcorrect!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数。三、实验结果与分析将源程序、运行结果和分析以及实验中遇到的问题和解决问题的方法,写在实验报告上。
实验八数组和函数综合编程练习一、实验目的1.复习数组和函数的相关知识2.掌握利用数组存储数据和进行编程的方法3.进一步掌握函数的编写二、实验内容1.学生成绩统计从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:(1)统计不及格人数并打印不及格学生名单;(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;(3)统计各分数段的学生人数及所占的百分比。注:将成绩分为六个分数段,60分以下为第0段,60~69为第1段,70~79为第2段,80~89为第3段,90~99为第4段,100分为第5段。编程要求:1.较好的用户输入输出提示信息2.使用子函数来实现上述各个功能3.最好不要使用全局变量提示:1.用num[i]存放第i+1个学生的学号,用score[i]存放第i+1个学生的成绩。设置计数器count,当score[i]<60分时,计数器count计数一次,并打印num[i]和score[i]。2.先计算全班平均分aver,当第i个学生的成绩score[i]>=aver时,打印num[i]和score[i]。3.各分数段的学生人数保存在数组stu中,用stu[i]存放第i段的学生人数。对于每个学生的成绩,先计算出该成绩所对应的分数段,然后将相应的分数段的人数加1,即stu[i]++。供参考的函数原型如下:/*函数功能:从键盘输入一个班学生某门课的成绩及其学号 当输入成绩为负值时,输入结束函数参数:长整型数组num,存放学生学号实型数组score,存放学生成绩函数返回值:学生总数*/intReadScore(longnum[],floatscore[]);/*函数功能:统计不及格人数并打印不及格学生名单函数参数:长整型数组num,存放学生学号实型数组score,存放学生成绩 整型变量n,存放学生总数函数返回值:不及格人数*/intGetFail(longnum[],floats
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 62083:2025 FR Medical device software - Requirements for the safety of radiotherapy treatment planning systems
- 2025年高职计算机网络技术(网络安全防护)试题及答案
- 2025年大学运动生理学(肌肉力量训练)试题及答案
- 励志实拍大学生自我介绍开学个人简历
- 工程机械培训课件
- 工程技术类培训课件
- 工程土建类培训课件
- 2026年安全生产隐患排查治理安全培训管理考试题库及答案
- 2026年工程建设领关于开展工程建设领域突出问题专项治理工作
- 成本效益分析与优化策略
- 《软件定义与网络安全》全套教学课件
- 期末模拟测试卷(试卷)2025-2026上学期五年级语文上册(统编版)
- 港澳大桥隧道部分施工方案
- 家具设计方案
- 政府演出申请书范文
- 露天矿山安全隐患排查检查表范例
- DB31T+1545-2025卫生健康数据分类分级要求
- A-Level生物课件教学课件
- 充电桩电量销售合同范本
- 设备售后服务方案(3篇)
- 电厂输煤卫生管理制度
评论
0/150
提交评论