




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.第一次实验C语言程序设计 实验报告专业 计算机科学与技术 班级 信安1302班 日期 2014.3.22 成绩 实验组别 第 1 次实验 表达式和标准输入与输出实验 指导教师 周时阳 学生姓名 学号 同组人姓名 实验名称 表达式和标准输入与输出实验 2.1实验目的1.熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。2.掌握getchar, putchar, scanf和printf等函数的用法。3.掌握简单的C程序(顺序结构程序)的编写方法。4.完成老师布置的习题及课程设计上的题目。2.2实验内容(一)输出“王”字源程序如下:shangji1chengxu1#include int main() puts(*); puts( * ); puts( * ); puts(*); puts( * ); puts( * ); puts(*); return 0;实验步骤:步骤一:计算输出过程中应控制的空格数,选择星号作为输出的标记。步骤二:采用puts函数实现对字符串的输出。调试及编译过程:试验中出现的不足及修改:无。调试:实现对王字的输出。(二)编程将华氏温度转换为摄氏温度源程序如下:shangji1chengxu2#include int main() double x,y; printf(请输入华氏温度:); scanf(%lf,&x); y=(5*(x-32)/9; printf(%.2lf(F)=%.2lf(C),x,y); return 0;编辑步骤:步骤一:定义两个浮点型变量,分别用来存放华氏温度和摄氏温度步骤二:用输入函数输入一个华氏温度值并存入命名为x的单元中。 步骤三:进行华氏温度与摄氏温度之间的转换,将得到的摄氏温度值存入命名为y的单元中。步骤四:输出得到的摄氏温度值。调试及编译过程:输入数据100进行测试 出现的不足及修改:调试时发现输出为0 ,经推断得出原因为5/9为整型得出的结果为0 将5/9*(x-32)改为(5*(x-32)/9,于是得出正确结果。 (三)分别用三种方法实现对两个数据的转换源程序如下:shangji1chengxu3.1shangji1chengxu3.2shangji1chengxu3.3#include int main() int a,b,t; printf(enter numbers:); scanf(%d%d,&a,&b); t=a;a=b;b=t; printf(a=%d,b=%d,a,b); return 0;程序3 2#include int main() int a,b; printf(enter numbers:); scanf(%d%d,&a,&b); a=a+b;b=a-b;a=a-b; printf(a=%d,b=%d,a,b); return 0;程序3.3#include int main() int a,b; printf(enter numbers:); scanf(%d%d,&a,&b); a=ab;b=ab;a=ab; printf(a=%d,b=%d,a,b); return 0;实验步骤(实验一): 步骤一:定义三个变量,其中两个用来存放将要进行转换的数据。 步骤二:将其中一个变量的值赋给中间变量,再将另一个变量的值赋给这个变量,最后将中间变量的值赋给另一个变量。实验步骤(实验二): 步骤一:通过单纯的计算关系,得知a=a+b;b=a-b;a=a-b可以得出最后的结果。 步骤二:定义变量,进行计算,输出结果。实验步骤(实验三): 步骤一:查资料得知通过位运算也可以完成要求。 步骤二:通过位运算计算得出需进行的计算过程,上机完成并输出。调试及编译过程:测试数据:12,23(第一个比第二个小)测试数据:12,12(第一个和第二个一样大)测试数据:23,12(第一个数据比第二个大)出现的不足及修改:无 调试结果:出现预期的结果。(四)将输入的数反向输出。源程序如下:shangji1chengxu4#include int main() int x; printf(input :); scanf(%d,&x); do putchar(x%10+0); while(x/=10)!=0); printf(n); return 0;实验步骤:步骤一:画出流程图,首先输入一个数,选择将它的各位数以字符的形式输出。 步骤二:实现输出它的个位数字,即可取此数除以10后的余数。 步骤三:将其余各位数字按这种方式进行输出。并控制循环条件为除以10后的余数为0时退出循环,循环过程中将该数已输出的位数上的数字抛去,即令x=x/10. 步骤四:循环结束后,由输出的字符组成的数字即为所求。调试及编辑过程:测试数据:12(两位数)测试数据:123(三位数)测试数据:1234(四位数)出现的不足及修改:本来将x=x/10写在循环过程中且用while循环 ,后来改成do while,使得第一次的输出更方便简洁,并且将控制x/=10写进控制循环的括号中,既完成了循环的控制,又实现了对x值的修改,是程序简洁易懂。(五)用两种方法输出三个数中的最大者程序5.1shangji1chengxu5.1shangji1chengxu5.2#include int main() int a,b,c,max; printf(inter numbers:); scanf(%d%d%d,&a,&b,&c); max=(ab)?(ac)?a:c):(bc)?b:c); printf(max=%d,max); return 0;程序5.2include int main() int a,b,c,max; printf(enter numbers:); scanf(%d%d%d,&a,&b,&c); if(a=b) if(a=c)max=a; else max=c; else if(b=c)max=b; else max=c; printf(max=%d,max); return 0;实验步骤(实验一): 步骤一:首先用条件语句判断出其中两个数的大小。 步骤二:在条件语句的选择结果中再嵌套地用另外两个条件语句分别表示出前面两个数中较大的那个于第三个数的比较结果。实验步骤(实验二): 步骤一:准备用两层if语句实现实验一中的过程。 步骤二:将实验一中的条件语句转换为if语句。调试及编译过程:测试数据:1,2,3(按从小到大顺序)测试数据:1,3,2(第二种顺序)测试数据:2,1,3测试数据:2,3,1测试数据:3,1,2测试数据:3,2,1出现的不足及修改:无 运行结果:输出预期的结果。(六)输出三个数中的居中的数源程序如下:shangji1chengxu6#include int main() int a,b,c; printf(enter numbers:); scanf(%d%d%d,&a,&b,&c); if(a=b)&(b=c)|(b=a)&(c=b) printf(居中的数为:%d,b); else if(b=a)&(a=c)|(c=a)&(a=b) printf(居中的数为:%d,a); else printf(居中ta的数为:%d,c); return 0;实验步骤: 步骤一:输入三个数,选择划分的类型。 步骤二:判断处在中间的数需要满足的条件,来运用条件语句完成对所有情况的划分,判断输入的三个数属于哪一种类型,进而得出居中的数为多少。调试及编译过程:测试数据:1,2,3(第一种排列顺序)测试数据:1,3,2(第二种排列顺序)测试数据:2,1,3(第三种排列顺序)测试数据:2,3,1(第四种排列顺序)测试数据:3,1,2(第五种排列顺序)测试数据:3,2,1(第六种排列顺序)出现的不足及改正:一:刚开始出现了a=b=c的写法,是很典型的没有弄清楚数学符号和机器语言之间差别的错误,报错后改为(a=b)&(b=c) 二:之前没有把等于号包括进去,导致条件语句不能涵盖所有的情况,导致错误。(七)输入一元二次方程的三个系数,输出方程的根。源程序如下:shangji1chengxu7#include #include int main() int a,b,c; float t,x1,x2; printf(enter numbers:); scanf(%d%d%d,&a,&b,&c); if(b*b-4*a*c)0) printf(该方程无实根); else t=sqrt(b*b-4*a*c); x1=(t-b)/(2*a); x2=(-t-b)/(2*a); printf(x1=%.2lf,x2=%.2lf,x1,x2); return 0;实验步骤: 步骤一:分析输入三个系数以后可能出现的两个根,无实根的情况 步骤二:将每种情况出现的条件及结果写出,其中二次项系数不为0时情况较复杂,要用到math中的函数,可定义一个变量用来存放特征根。 步骤三:将各种情况的结果输出,验证。调试及编译过程:测试数据:1,-2,2(无实根的情况)测试数据:1,-2,1(两相同实根的情况)测试数据:1,-5,6(两不同实根的情况)出现的不足及修改:无 运行的结果:出现预期的结果。(八)输入三角形三边的边长,通过海伦公式计算三角形的面积并输出。源程序如下:shangji1chengxu8#include #include int main() double a,b,c,t,s; printf(enter 3 numbers:); scanf(%lf%lf%lf,&a,&b,&c); if(a+b)c)&(a+c)b)&(b+c)a) t=(a+b+c)/2; s=sqrt(t*(t-a)*(t-b)*(t-c); printf(s=%.2lf,s); else printf(error!); return 0;实验步骤: 步骤一:输入三边的边长,判断能否围成三角形,若不能,提示错误。 步骤二:若可以围成,则设置一个中间变量用来存放周长的一半,以更方便地使用海伦公式。 步骤三:计算并输出面积值。调试及编译过程:测试数据:3,4,5(比较好计算正确答案)测试数据:1,2,3(不能围成三角形)出现的不足及修改:刚开始的时候没有考虑到可能不能围成三角形的情况,但这是不科学的,因为在某些输入错误的情况下,或是调试者没有考虑充分的情况,有可能输入三个不能围成三角形的数。 因此在计算前加上了检验的过程并对不满足条件的过程进行报错。(九)课程设计教材41面第二题输入十个整数计算其和shangji1jiaocai41(2)#include #define N 10int main() int sum(int x,int n); int aN,i,total; printf(input %d numbers:n,N); for(i=0;i=N-1;i+) scanf(%d,&ai); total=sum(a,N); printf(the total is %d,total); return 0;int sum(int x,int n) int i,s; for(i=0;i=n-1;i+) s+=xi; return s;实验步骤: 步骤一:定义一个字函数,其中一个形式参数为数组,另一个为该数组中包含的数的个数,此子函数用来计算数组中所有数的和。 步骤二:在主函数中,采用循环控制的方式分别给实际参数数组中的每个变量进行赋值。调用子函数计算所有数的值,并输出。调试及翻译过程:测试数据:1到10 出现的不足及修改:无 运行的结果:输出预期的结果。(十)课程设计教材51面第一小题输入一个字符,若为大写字母则转换为相应的小写字母,否则不变,输出shangji1jiaocai51(1)#include int main() char c; c=getchar(); if(c=A&c=Z) putchar(c-A+a); else putchar(c); return 0;实验步骤: 步骤一:定义整型变量c,并通过输入端给它赋值。 步骤二:判断它是不是大写字母,是则转换为小写字母对应的ASCII码值,否则不改变c的值。输出c。调试及编译过程:测试数据:A(大写字母)测试数据:t(不是大写字母)出现的不足及修改:无 运行结果:输出预期的结果。(十一)课程设计教材51面第二小题 输入无符号短型整数x,m,n,取出它从m位开始向左的n位 shangji1jiaocai51(2)#include int main() unsigned short x,m,n,f; printf(input numbers:); scanf(%hd%hd%hd,&x,&m,&n); f=x(m-n+1)(15-n+1); printf(%d,f); return 0;实验步骤: 步骤一:定义短整数x,m,n用位运算达到要求的数。调试及编译过程:测试数据:5,3,2出现的不足及修改: 无 运行结果:输出预期的结果。(十二)课程设计教材51面第三小题(处理IP地址的输出)#include shangji1jioacai51(3)int main() long unsigned int x; int x1,x2,x3,x4; printf(input); scanf(%lu,&x); x1=x&0x000000ff; x2=(x&0x0000ff00)8; x3=(x&0x00ff0000)16; x4=(x&0xff000000)24; printf(%d.%d.%d.%d,x1,x2,x3,x4); retur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑方案设计找工作简历
- 国庆酒店充值活动方案策划
- 商场健康服务咨询方案
- 福建洁净车间施工方案
- 咨询方案策划
- 药厂企业安全培训课件
- 学校管理经验交流会校长发言:匪性、雅性、刚性、柔性
- 广州开业活动方案咨询
- 天心区营销方案设计
- 2025年英语四六级阅读理解真题模拟试卷:下半月备考攻略
- 设计经理招聘笔试题与参考答案(某大型央企)2024年
- 土方出土合同模板
- 水库周边绿化养护方案
- 井下皮带运输机事故专项应急预案
- 北师大版六年级数学上册《百分数的认识》教学设计
- 2023八年级数学上册 第七章 平行线的证明4 平行线的性质教案 (新版)北师大版
- NB-T32042-2018光伏发电工程建设监理规范
- 博士高校面试答辩模板
- 深圳市劳动法律法规参考手册模板
- 在线网课知道知慧《战舰与海战》单元测试答案
- 2017一级建造师考试港口与航道工程实务真题及答案
评论
0/150
提交评论