您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C程序设计第2次上机内容
《C语言程序设计》第2次上机内容(第6~7周)说明:同第1次上机内容的说明一样。1、编写程序,输入三个整数,首先把三个数输出,再找出三个数中的最小数,并把该最小数输出。(说明:找最小数时可以用if语句)算法提示:(1)定义3个int类型变量a、b、c存放输入的3个数,再定义1个int类型变量min用于存放最小的数;(2)输入3个数存放在a、b、c变量中;(3)首先把a变量中的数存放到min变量中(认为a中的数值当前最小);(4)再用if结构判断min和b的大小,如果bmin则将b变量中的数存放到min变量中;(5)再用if结构判断min和c的大小,如果cmin则将c变量中的数存放到min变量中;(6)最后输出min变量中的数就是三个数中的最小数。2、编写程序,首先输入一个字符,当输入字符是A时,输出America;输入字符是B时,输出Britain;输入字符是C时,输出China;输入的是其它字符时,输出France。(说明:要求用switch语句实现。)算法提示:(1)定义1个char类型变量ch存放输入的1个字符;(2)用getchar()函数输入一个字符存入ch变量中;(3)用switch结构进行判断,然后输出相应的字符串。3.编写程序:该程序功能是输入三角形的三条边,如果能构成三角形,则用海伦公式计算该三角形的面积,并输出(保留2位小数)。如果不能构成三角形则要输出“不能构成三角形!”的提示信息。说明:(1)海伦公式为:))()((clblallS,其中2/)(cbal(a,b,c为三条边的值)。(2)开方用sqrt函数,该函数包含在“math.h”文件中(函数用法可参考附录)。算法提示:(1)定义5个float类型的变量a、b、c、s、l,其中前3个变量用于存放三条边的值,s变量用于存放面积的值,l变量用于存放(a+b+c)/2的值;(2)输入三条边的值存放于a、b、c变量中;(3)用if结构判断三条边是否能构成三角形,如果能构成三角形,则用海伦公式计算该三角形面积并输出;如果不能构成三角形则输出“不能构成三角形!”的提示信息。(能否构成三角形的判断表达式:a+bc&&a+cb&&b+ca)4.编写程序:该程序功能是输入一个日期(含年、月、日),输出该日期是该年度中的第几天。(注意区分是否闰年,闰年的二月份是29天,否则是28天)。说明:闰年必须符合以下两个条件中的一个:(1)年份能被400整除。(2)年份能被4整除,但不能被100整除。判断闰年的条件表达式:y%400==0||y%4==0&&y%100(思考一下为什么?)算法分析如下:(1)日期用三个变量(分别是y,m,d)保存年、月、日的值,均为整型。算出的天数用变量days保存。再用一个变量flag作为是否闰年的判断标志,初值为0(先认为不是闰年)。(2)输完日期后,首先要判断输入的年份的值是否符合闰年要求,如果满足闰年条件,则将flag赋值1(flag为1表示闰年)。(3)再判断输入的月和日的值是否符合要求(例如月的值必须在1~12之间,日的值是否符合要求要根据月来判断,2月份还要根据是否闰年分别判断)。如果符合要求才能进行下一步操作,否则提示“输入数据有错”而强制结束程序,强制结束程序可用exit(0);语句(该函数包含在“process.h”文件中)。判断部分的程序片段如下:if(m1||m12){printf(输入月份有错!\n);exit(0);}else{if(!flag&&m==2&&(d1||d28)){printf(输入日有错\n);exit(0);}if(flag&&m==2&&(d1||d29)){printf(输入日有错\n);exit(0);}if((m==4||m==6||m==9||m==11)&&(d1||d30)){printf(输入日有错\n);exit(0);}if(……)(该部分是判断1、3、5、7、8、10等月份的天数是否符合要求,{……}……部分请同学们填写)}(4)用switch结构按月份求出该月之前的天数,其中2月按28天计算。程序片段如下:switch(m){case1:days=0;break;case2:days=31;break;case3:days=31+28;break;case4:days=31+28+31;break;……(……部分请同学们填写)case12:……}(5)用第(4)步求出的天数加上日对应的天数。(6)利用flag判断是否闰年,是闰年而且月份大于2则天数加1天。(7)最后输出所输入的日期本身以及所算出的天数。(8)运行界面如下图所示。注:该程序也可以用多分支选择结构(if……elseif)实现,此时可不需要使用exit(0)强制结束程序。5.编程实现以下计算功能:某人在银行存了1000元钱,按年利率5.36%计算,该人需多少年才能取出10000元钱。算法提示:(1)定义一个double类型的变量sum用于存放累加和,其初值为1000;再定义一个整型变量n用于存放年数,其初值为0;(2)用while循环结构或do-while循环结构实现年数计算;(想一想循环条件应为什么?)(3)循环体为求累加和,语句为:累加和变量=累加和变量*(1+年利率);另外每循环一次n变量加1。(4)循环结束最后输出所需年数。运行结果如下图所示:6.编写程序:程序功能是输入一串字符串(以#号结束),将其中的大写英文字符变成小写英文字符,小写英文字符变成大写英文字符,非英文字符保持不变(例如:输入AbCD123fg#,输出则为:aBcd123FG,将转换的结果输出。算法提示:(1)定义一个字符型变量ch,接受输入的字符。(2)输入字符串时可用getchar()函数一个一个输入字符(最后输入一个“#”),输出时可用putchar()函数一个一个输出。(2)用while循环结构或do-while循环结构实现字符串的输入,循环条件只要判断输入的字符是否为“#”,如果不是“#”则执行循环体,否则结束循环结构。(3)循环结构之前首先用getchar()函数输入一个字符存放到ch变量中。(4)循环体中的操作为:首先判断ch变量中的字符是否为大写字母,如果是大写字母则转换为小写字母;如果不是大写字母再判断是否为小写字母,如果是小写字母则转换为大写字母(用if语句的多分支结构形式判断)。用putchar()函数输出ch中的字符。再输入一个用getchar()函数输入一个字符存放到ch变量中。(思考一下如果该步不做,会产生什么逻辑错误)(5)大写变小写只要将字符变量ch的值加32,小写变大写只要减32(思考一下为什么?)。程序运行结果如下图所示:
本文标题:C程序设计第2次上机内容
链接地址:https://www.777doc.com/doc-4638681 .html