已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上机实验题目实验一 熟悉上机环境和顺序结构编程练习1键盘输入与屏幕输出练习问题1:要使下面程序的输出语句在屏幕上显示1,2,34,则从键盘输入的数据格式应为以下备选答案中的哪一个? #include main()char a,b; int c; scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);A) 1 2 34 B) 1, 2, 34 C) 1,2,34 D) 12 34问题2:与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示1 2 34,则应修改程序中的哪条语句?怎样修改? 问题3:要使上面程序的键盘输入数据格式为1,2,34,输出语句在屏幕上显示的结果也为1,2,34,则应修改程序中的哪条语句?怎样修改?问题4:要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为1,2,34,则应修改程序中的哪条语句?怎样修改?问题5:要使上面程序的键盘输入无论用下面哪种格式输入数据,程序在屏幕上的输出结果都为1,2,34,则程序应修改程序中的哪条语句?怎样修改?第一种输入方式:1,2,34(以逗号作为分隔符)第二种输入方式:1 2 34(以空格作为分隔符)第三种输入方式:1 2 34(以Tab键作为分隔符)第四种输入方式:1234(以回车符作为分隔符)实验授课提示:熟悉常用标准输入输出函数的使用方法,函数getchar()和putchar()用于字符输入输出操作,而函数scanf()和函数printf()则用于格式输入输出操作,即在程序设计者的控制下,以各种格式进行任意类型数据的读写操作,其中,函数printf()是向屏幕写数据,函数scanf()是从键盘读数据。函数printf()和scanf()对输入输出数据的格式控制问题(尤其是scanf()函数)较难掌握,需要读者在使用过程中去慢慢体会,初学者常常在使用scanf()函数时出错,要熟练%d、%f、%c、%s这四种格式符以及忽略输入修饰符*和宽度等附加格式说明符。其中问题4可利用转义字符输出字符单引号字符。问题5可利用忽略输入修饰符*或者1s%解决。 2计算定期存款本利之和设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由键盘输入。实验授课提示:通过这个实际例子熟悉顺序结构程序设计的方法,以及TC集成环境的程序编辑、编译、链接、运行和调试方法。实验二 选择结构编程练习1身高预测每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。设faHeight为其父身高,moHeight为其母身高,身高预测公式为:男性成人时身高 = (faHeight + moHeight) * 0.54(cm)女性成人时身高 = (faHeight * 0.923 + moHeight) / 2(cm)此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。编程从键盘输入你的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示喜爱,输入字符N表示不喜爱),利用给定公式和身高预测方法对你的身高进行预测。实验授课提示:通过这个实际例子熟悉选择结构程序设计的方法,以及if语句,进一步熟悉TC集成环境的程序编辑、编译、链接、运行和调试方法。2 简单的计算器程序要求用switch语句编程设计一个简单的计算器程序。要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数2计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。本实验程序是在例4.8基础上,增加如下要求:(1)如果要求程序能进行浮点数的算术运算,程序应该如何修改? 如何比较实型变量data2和常数0是否相等?(2)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多空白符,那么程序如何修改?(3)(选作题)如果要求连续做多次算术运算,每次运算结束后,程序都给出提示:Do you want to continue(Y/N or y/n)?如果用户输入Y或y时,程序继续进行其它算术运算,否则程序才退出运行状态。那么,程序如何修改?实验授课提示:通过这个实际例子熟悉选择结构程序设计的方法,以及switch语句,进一步熟悉TC集成环境的程序编辑、编译、链接、运行和调试方法。对于第(3)题,可利用%1s格式符输入用户回答,利用do-while语句实现反复运算直到用户键入N或n。实验三 循环结构编程练习猜数游戏在这个实验中,我们将尝试编写一个猜数游戏程序,这个程序看上去有些难度,但是如果你按下列要求以循序渐进方式进行编程实现,你就会发现其实这个程序是很容易实现的。那么,现在就开始吧,现编写第一个程序,然后试着在第一个程序的基础上编写第二个程序,。程序1:编程先由计算机“想”一个1到100之间的数请人猜,如果人猜对了,则计算机给出提示:“Right!”, 否则提示:“Wrong!”,并告诉人所猜的数是大(Too high)还是小(Too low),然后结束游戏。要求每次运行程序时机器所“想”的数不能都是一样的。程序2:编程先由计算机“想”一个1到100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。程序3:编程先由计算机“想”一个1到100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则结束游戏。程序4:编程先由计算机“想”一个1到100之间的数请人猜,如果人猜对了,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏,否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。实验授课提示:通过这个实际例子熟悉选择结构程序设计的方法,以及各种循环语句。while、do-while和for语句则用于循环结构,其中,while和for语句是在循环顶部进行循环条件测试,如果循环条件第一次测试就为假,则循环体一次也不执行,而do-while语句是在循环底部进行循环条件测试,因此,do-while循环至少执行一次。因此,除非循环条件第一次测试就为假,否则,这三种循环语句可以相互替代。其中,更为常用、也更为灵活的是for语句,do-while语句适合于构造菜单子程序,因为菜单子程序至少要执行一次,用户键入有效响应时,菜单子程序采取相应动作,键入无效响应时,则提示重新输入。实验四 函数编程练习 给小学生出加法考试题编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进方式编程:程序1:通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”;程序2:通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct! Try again!”,直到做对为止;程序3:通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,最多给三次机会,如果三次仍未做对,则显示“Not correct. You have tried three times! Test over!”程序结束;程序4:连续做10道题,通过计算机随机产生两个110之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题目数量。程序5:通过计算机随机产生10道四则运算题,两个操作数为110之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题目数量。实验授课提示:通过这个实际例子熟悉函数的编程与使用方法,进一步熟悉含有选择、循环结构的程序的设计方法。实验五 数组编程练习1 检验并打印魔方矩阵在下面的55魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后,检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。17241815235714164613202210121921311182529实验授课提示:通过这个实际例子熟悉数组类型的应用场合以及数组的编程与使用方法,进一步熟悉含有选择、循环结构的程序的设计方法。2 餐饮服务质量调查打分在商业和科学研究中,人们经常需要对数据进行分析并将结果以直方图的形式显示出来。例如,一个公司的主管可能需要了解一年来公司的营业状况,比较一下各月份的销售收入状况,如果仅给出一大堆数据,这显然太不直观了,如果能将这些数据以条形图(直方图)的形式表示,那么将会大大增加这些数据的直观性,也便于数据的分析与对比。下面以顾客对餐饮服务打分为例,练习一下这方面的程序。假设现在有40个学生被邀请来给自助餐厅的食品和服务质量打分,分数为从110的10个等级(1意味着最低分,10表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。Grade CountHistogram1 5*2 10*3 7* .实验授课提示:熟悉数组的编程以及使用方法,掌握基本的统计问题的程序设计方法。定义一个含有40个元素的数组score,40个学生打的分数存放在这个数组中,再定义一个含有11个元素的数组count,作为计数器使用(count0不用)。第一步是计算统计结果,设置一个循环,依次检查数组score中的元素值,是1则将数组元素count1加1,是2则将数组元素count2加1,依此类推,将各等级分数的统计结果存放在count数组中。然后第二步是打印统计结果,设置一个循环,按数组count中的元素值的大小,依次打印相应个数的符号*。计算统计结果时,既可以用switch语句,也可以不用switch语句,请分别考虑这两种编程方法。实验六 一维数组和函数综合编程练习 学生成绩统计从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别统计下列内容:(1)统计不及格人数并打印不及格学生名单;(2)统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单;(3)统计各分数段的学生人数及所占的百分比;实验授课提示: 熟悉一维数组和函数的综合编程方法,进一步熟悉统计问题的程序设计方法。数组的一个重要的应用是用数组作函数变元,当数组作函数变元使用时,与普通变量作函数变元的区别在于,传入函数的是数组的首地址,此时,函数中的代码是对实参数组操作的,如果发生修改,则修改的是实参数组的实际内容。本题编程提示:(1)用numi存放第i+1个学生的学号,用scorei存放第i+1个学生的成绩。设置计数器count,当scorei=aver时,打印numi和scorei。(3)将成绩分为六个分数段,60分以下为第0段,6069为第1段,7079为第2段,8089为第3段,9099为第4段,100分为第5段,因此,成绩与分数段的对应关系为:各分数段的学生人数保存在数组stu中,用stui存放第i段的学生人数。对于每个学生的成绩,先计算出该成绩所对应的分数段,然后将相应的分数段的人数加1,即stui+。实验七 二维数组、函数和常用算法综合编程练习成绩排名次某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。考试后要求:(1)计算每个学生的总分和平均分;(2)按总分成绩由高到低排出成绩的名次;(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。实验授课提示:熟悉二维数组和函数的综合编程方法,进一步熟悉排序、查找等基本算法。本题编程提示:用二维数组score存放每个学生各门课程的成绩,用一维数组num存放每个学生的学号,用一维数组sum存放每个学生的总分,用一维数组aver存放每个学生的平均分。(1)用函数编程实现计算每个学生的总分;(2)用函数编程实现按总分由高到低对学生成绩排序,注意:排序时,一维数组sum元素的变化应连同二维数组score和一维数组num和aver一起变化;(3)用函数编程实现查找学号为k的学生在班级中的排名名次及相关成绩等信息,找不到时返回-1值。实验八 数组、指针和函数综合编程练习打印最高分和学号假设每班人数最多不超过40人,具体人数由键盘输入,试编程打印最高分及其学号。程序1:用一维数组和指针变量作函数参数,编程打印某班一门课成绩的最高分和学号。 程序2:用二维数组和指针变量作函数参数,编程打印3个班学生(假设每班4个学生)的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。程序3:用指向二维数组第0行第0列元素的指针作函数参数,编写一个能计算任意m行n列的二维数组中的最大值,并指出其所在的行列下标值的函数,利用该函数计算3个班学生(假设每班4个学生)的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。 程序4:编写一个能计算任意m行n列的二维数组中的最大值,并指出其所在的行列下标值的函数,利用该函数和动态内存分配方法,计算任意m个班、每班n个学生的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。 实验授课提示:熟悉数组、指针和函数的综合编程方法。初学者通常都会对指针望而生畏,其实只要从原理上掌握了指针的概念,它就会变得如此简单而易用。首先,指针不过是C语言提供的一种比较特殊的数据类型而已,定义为指针类型的变量与其它类型的变量相比,主要差别在于指针变量的值是一个内存地址。其次,在C语言中,指针和数组之间有着密不可分的关系,不带下标的数组名就是一个指针,它代表数组元素的首地址,只要让声明为相同基类型的指针变量指向数组元素的首地址,那么对数组元素的引用,既可以用下标法,也可以用指针法,用指针法存取数组比用数组下标存取数组速度快一些。反之,任何指针变量也可以取下标,可以像对待数组一样来使用。虽然多维数组的地址概念稍微麻烦些,但只要知道它的元素在内存中是如何存放的,使用也就不难了,由于C语言中的多维数组都是按列存放的,因此,用指针法引用时,必须知道数组的一行有多长(即列的维数)。在某种意义上,二维数组类似于一个由指向行数组的指针构成的一维指针数组。多于二维的数组可以通过类似方法进行降维处理。指针的一个重要应用是用指针作函数参数,为函数提供修改调用变元的手段。当指针作函数参数使用时,需要将函数外的某个变量的地址传给函数相应的指针变元,这时,函数内的代码可以通过指针变元改变函数外的这个变量的值。指针的另一个重要应用是同动态内存分配函数联用,使得定义动态数组成为可能。本题程序1中,用到了一维数组作为函数参数,程序2用到了指向二维数组的行指针作函数参数,程序3用到了指向二维数组的列指针作函数参数,程序4用到了动态内存分配实现动态数组。实验九 结构体编程练习在屏幕上模拟显示一个数字式时钟按如下方法定义一个时钟结构体类型:struct clockint hour;int minute;int second;typedef struct clock CLOCK;然后,将下列用全局变量编写的时钟模拟显示程序改成用CLOCK结构体变量类型重新编写。已知用全局变量编写的时钟模拟显示程序如下:#include #include int hour, minute, second; /*全局变量定义*/*函数功能:时、分、秒时间的更新 函数参数:无 函数返回值:无*/void Update(void) second+;if (second = 60) /*若second值为60,表示已过一分钟,则 minute值加1*/second = 0;minute+; if (minute = 60) /*若minute值为60,表示已过一小时,则 hour值加1*/minute = 0;hour+;if (hour = 24) /*若hour值为24,则hour的值从0开始计时*/hour = 0;/*函数功能:时、分、秒时间的显示 函数参数:无 函数返回值:无*/void Display(void) /*用回车符r控制时、分、秒显示的位置*/printf(%2d:%2d:%2dr, hour, minute, second); /*函数功能:模拟延迟1秒的时间 函数参数:无 函数返回值:无*/void Delay(void) longt;for (t=0; t50000000; t+) /*循环体为空语句的循环,起延时作用*/ /*主函数*/main()longi;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年乌海辅警招聘考试真题及答案详解1套
- 2023年防城港辅警协警招聘考试真题含答案详解(新)
- 2025年江苏省连云港市锦屏高级中学高一生物第一学期期末质量检测模拟试题含解析
- 甘肃省武威市第五中学2025年高一上生物期末考试模拟试题含解析
- 黔南市重点中学2026届生物高一上期末质量跟踪监视试题含解析
- 宁波城市职业技术学院《纺织科学前沿讲座》2024-2025学年第一学期期末试卷
- 2026届河南省安阳市安阳县一中化学高二第一学期期末统考试题含解析
- 福建师范大学《食品工厂设计课程设计》2024-2025学年第一学期期末试卷
- 上海杨浦高级中学2025年高二化学第一学期期末质量跟踪监视试题含解析
- 河北省衡水中学滁州分校2025年数学高二上期末预测试题含解析
- 2025福建厦漳泉城际铁路有限责任公司筹备组社会招聘10人考试参考题库及答案解析
- 中国数学知识典故
- 2025重庆辅警考试笔试必刷题
- 财务报表审计流程模板精准审查版
- 冲压车间考试题目及答案
- 高压电设备操作规程与安全要点
- 物流课件仓储
- 书法考试三级试卷及答案
- 英语·第五册(五年制高职)课件 Unit4 Customer Interactions
- 糖尿病肾脏病早期筛查与管理专家共识解读
- 学前教育毕业论文设计
评论
0/150
提交评论