资源预览内容
第1页 / 共55页
第2页 / 共55页
第3页 / 共55页
第4页 / 共55页
第5页 / 共55页
第6页 / 共55页
第7页 / 共55页
第8页 / 共55页
第9页 / 共55页
第10页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验1简单判定性问题求解一、实验学时完成本实验需4学时。二、实验目的1、阅读程序题(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法;(2)掌握不同的类型数据之间赋值的规律;(3)掌握数据在内存中的存储方式;(4)学会输入、输出函数的基本格式和使用方法;(5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。2、编程题(1)如何运用if-else判定性结构进行程序设计;(2)如何运用switch判定性结构进行程序设计。3、调试题(1)熟悉C程序的编辑、编译、连接和运行的过程。三、实验指导为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。四、实验内容1、阅读程序题(1)main( ) /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf(%c %cn,c1,c2); /*以字符形式输出*/ printf(%d %dn,c1,c2); /*以整数形式输出*/该程序的输出结果是 a b(换行)97 98 。思考:可否改成int c1,c2;输出结果是? 相同(2)main() int a=7,b=5; printf(%dn,b=b/a);该程序的输出结果是 0 。思考:若将printf语句中%d变为%f,可否输出分式的值? 可以(3)main() int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf(%dn,a);该程序的输出结果是 -18 。思考:赋值表达式aaaa的求解步骤?第一步:a=a-(a+a)=-9 第二步a=a+a=18(4)main() int k=-1; printf(%d,%un,k,k);该程序的输出结果是 -1 4294967295 。思考:1在内存中的存储形式? 取反加一 11111111111111111111111111111111(32个)(5)main() unsigned x1; int b=-1; x1=b; /*有符号数据传送给无符号变量*/ printf(%u,x1);该程序的输出结果是 4294967295 。思考:不同类型的整型数据相互赋值时,规则是什么?http:/blog.csdn.net/happymawolf/article/details/6342937(有符号赋值给无符号)(6)main() int a=3,b=4,c=5; printf(%dn,(!(ab)&(c=c+1); printf(%d,c);该程序的输出结果是 0(换行)5 。思考:若将第一个printf语句中&变为| ,结果将如何?1(换行)6(7)main() int a=1,b=2,c=3;if(c=a) ; printf(%dn,c);else printf(%dn,b);该程序的输出结果是 1 。2、编程序并上机调试运行(包括题目及要求、流程图、程序清单、测试数据及结果)(1)将一个百分制成绩转换成等级制成绩,百分制与等级制的对应关系如下表:百分制90-10080-8970-7960-6960等级制优良中差劣具体要求如下:1) 用switch语句实现该功能;2) 用键盘输入百分制成绩,输入前要有提示信息,对于不合理的数据应输出错误信息;3) 输出结果应包含百分制成绩和成绩等级;4) 分别输入成绩-10,30,60,68,75,83,95,102,查看记录运行结果。#include#includevoid main()float score;int level;printf(请输入成绩:n);scanf(%f,&score);if (score100|score0)printf(成绩输入错误!n);elselevel=(int)(score-50)/10);switch(level)case 5: printf(优n);break;case 4: printf(优n);break;case 3: printf(良n);break;case 2: printf(中n);break;case 1: printf(差n);break;default: printf(劣n);break;程序代码流程图见下页测试数据:100,50,-20输出结果:优,劣,成绩输入错误(2)银行整存整取存款不同期限的月息利率分别为:月息利率 程序代码输入存款的本金和年限,求到期时能从银行得到的利息与本金的合计。(利息的计算公式为:利息本金月息利率12 存款年限。#include#includevoid main()int year;double input,out;printf(输入存储年份:n);scanf(%d,&year);printf(输入本金数额:n);scanf(%lf,&input);if (inputb)&(ac)if(bc)printf(min=%dn,b);elseprintf(min=%dn,c);if(ab)&(ac)printf(min=%dn,a);程序中包含有一些错误,按下述步骤进行调试。1)设置断点。2)通过单步执行,观测变量,发现程序中的错误。程序调试记录1、程序出现的错误及改正第四行,abc前都加&,在%d%d%d中两个%d之间加空格; 括住六到九行;把第十行if改成else if;2、程序的改进1.每个后加一个=;2.在程序末尾添加如下指令else if(a=c)|(a=b)&(a=c)if (b=c)printf(min=%dn,b);elseprintf(min=%dn,c);- 1 -实验2 循环结构及其应用一、实验学时完成本实验需4学时。二、实验目的1、熟练掌握while,dowhile,for语句实现循环的方法,包括如何正确地设定循环条件,如何控制循环的次数。2、掌握break语句与continue语句的使用方法。3、熟悉循环的嵌套以及从循环体内退出循环的处理。4、理解什么是循环程序结构。三、实验指导为了达到最佳的实验效果,以下提供几条适于模块化编程的指导意见,可供参考。1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意循环语句的一般使用方法,以及复合运算符的使用。2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,以面向过程的、模块化设计方法完成程序设计。【例题解析】编写一个程序,输出半径为1到10的圆的面积,若面积在40到90之间则予以输出,否则,不予输出。1)解题分析:解决问题的关键算法为求圆的面积并按要求输出。循环求圆的面积area,若area90,则用break语句跳出循环。2)算法流程图如图2-1:3)综合分析需要从循环体中提前跳出循环,或者在满足某种条件下,不执行循环中剩下的语句而立即从头开始新的一轮循环,这时就要用到break和continue语句。开始r=1输出area结束是ir11?否否否r=r+1是area=3.14*r*rarea90.0?图2-1 输出半径为1到10且面积在40 到90之间的圆面积的流程图4)程序代码#include st
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号