C语言实验报告_答案.docx

上传人:飞****2 文档编号:56691553 上传时间:2022-11-03 格式:DOCX 页数:28 大小:120.85KB
返回 下载 相关 举报
C语言实验报告_答案.docx_第1页
第1页 / 共28页
C语言实验报告_答案.docx_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《C语言实验报告_答案.docx》由会员分享,可在线阅读,更多相关《C语言实验报告_答案.docx(28页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C语言程序设计实验指导学院:信息科学与技术学院专业:计算机通信学期:20112012学年教师:目录实验1 熟悉C语言程序开发环境11.1 实验目的11.2 实验预习11.3 实验任务11.4 实验报告2实验2 数据描述32.1 实验目的32.2 实验预习32.3 实验任务32.4 实验报告4实验3 顺序结构程序设计53.1 实验目的53.2 实验预习53.3 实验任务53.4 实验报告6实验4 选择结构程序设计84.1 实验目的84.2 实验预习84.3 实验任务84.4实验报告9实验5 循环结构程序设计115.1 实验目的115.2 实验预习115.3 实验任务115.4 实验报告12实验6

2、 函数与编译预处理156.1 实验目的156.2 实验预习156.3 实验任务156.4 实验报告17实验7 数组197.1 实验目的197.2 实验预习197.3 实验任务197.4 实验报告21实验8综合实验248.1 实验目的248.2 实验预习248.3 实验任务24实验1 熟悉C语言程序开发环境院(系):信息科学与技术学院 课程名称:高级语言程序设计日期:班级学号实验室专业姓名计算机号实验名称所用软件教师签名实验操作实验分析实验成绩1.1 实验目的1了解和掌握C语言的主要特点,C语言的程序开发环境,掌握C语言的上机步骤。2熟练掌握源程序的建立、编辑、编译、保存和运行的基本方法。3学习

3、动态调试程序的方法,熟练掌握单步执行程序和设置断点执行程序的操作。1.2 实验预习1熟悉VC+的启动和退出以及VC+中的编辑、编译、连接和运行命令。2了解Turbo C的启动和退出以及Turbo C中的编辑、编译、连接和运行命令。3了解下列命令及函数:include、main、printf、scanf。1.3 实验任务准备工作:首先在D盘建立一个以自己的学号命名文件夹,用来存放所建的文件。1建立第1个源程序,命名为A1.cpp/A1.C。(VC+/Turbo C环境下都可以的) #include stdio.hmain()int a,b,c;a=10,b=5;c=a+b;printf(a=%d

4、 , b=%d, c=%dn,a,b,c);2实验指导书P19【上机题3】,命名为A2.cpp/A2.C。3在VC+环境下,建立第3个C语言源程序,命名为A3.cpp。 #include stdio.hmain() int n,s;n=s=0; while(s500) +n;s+=n; printf(1+2+.+%d=%dn,n-1,s-n);1.4 实验报告1写出【实验任务1】人工分析结果并在实验完成后记录实验结果。表1-1 实验任务1结果记录表人工分析结果实验运行结果a=10,b=5,c=15a=10,b=5,c=152【实验任务2】程序结果记录。表1-2 实验任务2结果记录表原始数据实验

5、运行结果Input x,y :The result is3,531323 58上述实验结果中,是否有错误结果出现?_有_。出现错误的原因是输入格式错误。提示:查找错误的方法在P20上的动态调试程序,请自行学习。3完成【实验任务3】,并记录实验结果。表1-1 实验任务1结果记录表实验运行结果1+2+31=4964在VC中完成C程序编辑完成后,需要编译运行,请简述不同的操作方法。(1)快捷键F7,然后用Ctrl+F5(2)执行“编辑|编译”命令,然后使用“编译|执行”命令(3)使用工具栏中的命令按钮实验2 数据描述院(系):信息科学与技术学院课程名称:高级语言程序设计日期:班级学号实验室专业姓名计

6、算机号实验名称所用软件教师签名实验操作实验分析实验成绩2.1 实验目的1认识C语言,熟悉C语言的语法结构。2掌握C语言中4种基本数据类型的特点、数据类型变量的定义及使用。3掌握不同数据类型运算时,数据类型的转换规则。4熟练掌握赋值语句。5掌握C语言中表达式语句以及不同运算符的运算规则和优先级。2.2 实验预习1各种数据类型变量的定义形式;熟悉下列标识符的含义:int、short (int)、long (int)、unsigned (int)、float、double、char、void2各种数据类型的取值范围。3各类运算符的优先级和结合规则。4常量与变量的区别和联系。2.3 实验任务1实验指导

7、书P22【上机题3】。2实验指导书P23【上机题6】。3实验指导书P24【上机题8】。4实验指导书P24【上机题9】。5分析程序,并上机验证运行结果。#include void main()int a=10,x=5,y=6;a+=a*=6;x=y+;y=+x;a=x+y;printf(%d,%d,%dn,a,x,y);6实验指导书P25【上机题12】。2.4 实验报告1预习【实验任务1】,阅读程序并上机调试程序记录运行结果。表2-1实验结果记录表人工分析结果实验运行结果25+4=2925-4=2125*4=10025/4=425%4=125+4=2925-4=2125*4=10025/4=42

8、5%4=12预习【实验任务2】,阅读程序并上机调试程序记录运行结果。表2-2 实验任务2结果记录表人工分析结果11实验运行结果113预习【实验任务3】,填空并上机调试程序记录运行结果。表2-3 实验任务3结果记录表人工分析结果91,90实验运行结果91,904预习【实验任务4】,填空并上机调试程序记录运行结果。表2-4 实验任务4结果记录表人工分析结果12,104,0,12实验运行结果12,104,0,125预习【实验任务5】,填空并上机调试程序记录运行结果。表2-5 实验任务5结果记录表人工分析结果14,8,7实验运行结果14,8,76预习【实验任务6】,填空并上机调试程序记录运行结果。表2

9、-6 实验任务6结果记录表人工分析结果c=78,d=1156实验运行结果c=78,d=1156实验3 顺序结构程序设计院(系):信息科学与技术学院 课程名称:高级语言程序设计日期:班级学号实验室专业姓名计算机号实验名称所用软件教师签名实验操作实验分析实验成绩3.1 实验目的1熟悉printf/scanf函数及printf/scanf函数的各种格式控制符。2比较printf函数和scanf函数格式控制符的相同点和不同点。3掌握顺序结构程序设计方法及执行过程。4掌握一些简单的算法。5能设计简单的顺序结构程序。3.2 实验预习1熟悉下列函数:putchar、getchar、printf、scanf。

10、2了解顺序结构程序的执行过程。3了解程序的跟踪调试和变量值的监视并能够熟练操作。4了解顺序结构程序的一般构成。3.3 实验任务1实验指导书P28【上机题4】。2实验指导书P28【上机题6】。3输入一个华氏温度,要求输出摄氏温度,公式为:C=。要求输出结果保留到小数点后两位。(提示:已知程序段中有三处错误,由注释语句/*found*/提示下一条语句有错误),请修改程序中的错误并记录程序运行结果。#include main()float f,c;/*found*/scanf(%d,f);/*正确语句是:_*/*found*/c=5/9(f-32);/*正确语句是:_*/*found*/printf

11、(f=%f,c=%fn,c,f);/*正确语句是:_*/4 程序填空。实验指导书P30【上机题12】。提示:从键盘输入两个实数a和x,按公式计算并输出y的值。 #include #include main()float a,x,y;scanf(_(1)_,&a,&x); y=_(2)_;printf(y=%fn,y);5.程序填空。在已知a=3.5,b=5.4,c=4.3,编程求以a,b,c为边长的三角形的面积。在程序的相应位置填写语句,运行程序并记录实验结果。提示:,其中。#include _(1)_/*需要添加头文件*/main()float a,b,c,s,area;scanf(%f,%

12、f,%f,&a,&b,&c);_(2)_;area=sqrt_(3)_;/*库函数sqrt的功能是开平方*/printf(area=%fn,area);3.4 实验报告1完成【实验任务1】,阅读程序并上机调试程序记录运行结果。表3-1实验任务1结果记录表人工分析结果实验运行结果a=11,b=23.a=11,b=23.a=1,b=123.a=1,b=123.a=123,b=457.a=123,b=457.2完成【实验任务2】,阅读程序并上机调试程序记录运行结果。表3-2 实验任务2结果记录表实验运行结果123, 123123., 123.,1.e+002, 1.e+002,123.567,123

13、.567 123.56700, 123.57,124,123.57abcde3完成【实验任务3】,填空并上机调试程序记录运行结果。表3-3 实验任务3结果记录表第一处修改scanf(“%f”,&f);第二处修改c=5.0/9.0*(f-32);第三处修改printf(“f=%.2f,c=%.2fn”,f,c);实验运行结果80f=80.00,c=26.674预习【实验任务4】,填空并上机调试程序记录运行结果。(1)scanf( %f,%f ,&a,&x); (2) pow(a,5)+sin(a*x)+log(a+x)+exp(a*x) ;(3)当a=6.4,x=3.4时,y=. 。 5完成【实

14、验任务5】,填空并上机调试程序记录运行结果。表3-4 实验任务5结果记录表第一处填空#include 第二处填空s=(a+b+c)/2 ;第三处填空(s*(s-a)*(s-b)*(s-c) ;实验运行结果7.实验4 选择结构程序设计院(系):信息科学与技术学院 课程名称:高级语言程序设计日期:班级学号实验室专业姓名计算机号实验名称所用软件教师签名实验操作实验分析实验成绩4.1 实验目的1掌握C语言的逻辑运算符和逻辑表达式,学会表示逻辑值的方法。2掌握正确使用关系运算符和关系表达式。3熟练掌握条件语句,学习选择结构程序设计的方法及应用。4熟悉多分支选择的switch语句。5进一步学习跟踪调试程序

15、,熟悉选择结构程序段中语句的执行过程。4.2 实验预习1熟悉逻辑运算符和逻辑表达式、关系运算符和关系表达式。2熟悉下列语句:if、if-else、switch、break。4.3 实验任务1阅读程序,上机调试并记录程序结果。#include main( ) int x=3; if(x=0) printf(x=%dn,x); else printf(x=%dn”,x+1); 2阅读程序,上机调试并记录程序结果。#include void main() int a,b; scanf(%d,&a); /*键盘输入一个整数a*/ if(a%2!=0) /*判断a是否是奇数*/ b=a*a; print

16、f(b=%dn,b); 3. 实验指导书P32【上机题4】,分析程序并运行结果。 4程序填空。阅读程序,运行并记录实验运行结果。#include main( )char x,y; printf(Please input a upper letter:); scanf(%c,&x); if( 1 ) /*表达式功能:判断输入的数据是否是大写字母*/ 2 ; /*语句功能:将输入的大写字母转换成小写,赋值给y*/ printf(The lower letter is:%cn,y); 5计算符号函数的值,要求用switch语句实现。程序填空,并记录实验运行结果。-1x0#include main(

17、)int x,y; printf(Please input the data:); scanf(%d,&x); switch( 1 ) /*表达式功能:用条件表达式完成判断*/ case 0: 2 /*语句功能:根据符号函数定义,y赋值为0*/ case 1: 3 /*语句功能:根据符号函数定义,y赋值为1*/ default: 4 /*语句功能:根据符号函数定义,y赋值为-1*/ printf(y=%dn,y); 4.4实验报告1完成【实验任务1】,在实验完成后记录实验结果。表4-1 实验任务1结果记录表实验运行结果x=4 2. 完成【实验任务2】,写出人工分析结果并在实验完成后记录实验结果

18、。表4-2 实验结果记录表输入数据人工分析结果实验运行结果3b=9b=945b=25b=2563.完成【实验任务3】,记录实验结果。表4-3实验结果记录表输入数据人工分析结果实验运行结果3 6 86+8=146+8=146 18 918/9=218/9=27 10 134完成【实验任务4】,填空并在实验完成后记录实验结果。表4-4 实验任务4结果记录表填空位置填空语句输入数据实验运行结果1xA&xZDd2x=x+32d5完成【实验任务5】,填空并在实验完成后记录实验结果。表4-5 实验任务5结果记录表填空位置填空语句输入数据实验运行结果1512y=0;break;-5-13y=1;break;

19、004y=-1;break;实验5 循环结构程序设计院(系):信息科学与技术学院 课程名称:高级语言程序设计日期:班级学号实验室专业姓名计算机号实验名称所用软件教师签名实验操作实验分析实验成绩5.1 实验目的1熟练掌握while、do-while和for语句实现循环的方法。2掌握循环程序设计中一些常用算法(如穷举、迭代、递推等)。3掌握常用的无条件控制语句在循环中的控制作用。4理解循环嵌套及嵌套的执行过程。5.2 实验预习1熟悉语句:while、do-while、for。2熟悉三种语句之间的关系和区别。3熟悉语句:break、continue、goto。4循环结构常见的算法。5.3 实验任务1

20、编写程序,输入一个正整数,计算该数据各位数字之和。 运行4次,分别输入:123、0、-8、32769,请分析结果,并上机调试程序记录运行结果。#include main( )int n,r,s=0; printf(Please input the data:);/*填空位置(1),语句功能:从键盘输入任意的正整数n*/ if(_) /*填空位置(2),表达式功能:判断输入的数据n是否合法*/ while(n0) r=n%10; /*填空位置(3),语句功能是: */ s=s+r; n=n/10; /*填空位置(4),语句功能是: */ printf(sum=%dn,s); else print

21、f(The data is wrong!n);2实验指导书P34第4题。3实验指导书P35第6题。4编写程序完成计算。数列表达式s=1+,当n=10时,求s的近似值。已知程序段中有两处错误,由注释语句/*found*/提示下一条语句有错误,请修改程序中的错误并记录程序运行结果。#include main( )float s=0;int n;/*found*/ for(n=1,n=10,n+) /*found*/ s=s+1/n; printf(s=%fn,s);5阅读程序,分析程序功能,并将非结构化程序改写为结构化程序。#include main()float s=0; int n,i=1;

22、printf(Please input the number:); scanf(%d,&n); loop: if(i00The data is wrong!The data is wrong!(3)取n的最低位数字-8The data is wrong!The data is wrong!(4)保留取走最低位数字的n32769The data is wrong!The data is wrong!2完成【实验任务2】,阅读程序并上机调试程序记录运行结果。表5-2 实验任务2结果记录表实验运行结果3完成【实验任务3】,填空并上机调试程序记录运行结果。表5-3 实验任务3结果记录表人工分析结果实验

23、运行结果* * * * *4完成【实验任务4】,修改程序中的错误并记录程序运行结果。表5-4 实验任务4结果记录表错误位置正确语句形式实验运行结果(1)for(n=1;n=10;n+)s=2.(2)s=s+1.0/float(n)5完成【实验任务5】的程序并分析程序功能,运行并记录实验结果。(1)该程序的功能是:1/2+3/4+5/6+7/8+(2*n-1)/2*n 。(2)运行程序,输入数据10,程序运行结果为:s=3.85333 。(3)将非结构化程序设计方式改写的结构化程序。代码如下:#include main()float s=0; int n,i=1; printf(Please i

24、nput the number:); scanf(%d,&n);for(;i=n;i=i+2) s=s+(float) (i)/(i+1); printf(s=%fn,s); 6完成【实验任务6】,分析并记录实验结果。表5-5 实验任务6结果记录表人工分析结果实验运行结果9191将“break”改为“continue”后的结果是: -1 。7完成【实验任务7】,编写程序代码。#inlcude#includevoid main()int i,j; for(i=1;i=5;i+) for(j=1;j=fabs(i-3);j+)printf(“ “); for(j=1;j=5-2*fabs(i-3)

25、;j+)printf(“*”); printf(“n”); 实验6 函数与编译预处理院(系):信息科学与技术学院 课程名称:高级语言程序设计日期:班级学号实验室专业姓名计算机号实验名称所用软件教师签名实验操作实验分析实验成绩6.1 实验目的1熟悉函数的一般形式以及函数的定义与调用。2掌握函数实参与形参的对应关系以及“值传递”的方法。3掌握自定义函数的编写。4掌握函数的嵌套调用和递归调用方法。5掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。6.2 实验预习1函数的概念、定义格式、声明格式、调用规则及调用过程中数据传递方法过程,寒暑的嵌套调用和递归调用。2宏定义和文件包含等编译预处理

26、指令。6.3 实验任务1实验指导书P37【上机题1】。2程序填空。阅读程序,将程序改写成函数调用形式,在相应位置填写合适的语句完成程序设计。(提示:定义函数int f(int x),判断x是否为奇数,若是则函数返回1,否则返回0。) #include stdio.hvoid main()int data;scanf(%d,&data);if(data%2!=0) printf(%d,YES!n,data);else printf(%d,NO!n,data); #include stdio.hvoid main()int data,flag;_(1)_; /*填空位置1,声明函数*/scanf(

27、%d,&data);flag=_(2)_; /*填空位置2,调用函数,并将返回值赋给变量flag*/if(flag=1) printf(%d,YES!n,data);else printf(%d,NO!n,data);int f(int x)int z;If(x%2!=0) z=1;else z=0;_(3)_; /*填空位置3,带回返回值*/3实验指导书P38【上机题3(2)】。4实验指导书P38【上机题3(3)】。5阅读以下程序,运行并记录实验结果。#include”stdio.h”int a, b;void fun() a=100; b=200; void main( ) int a=5

28、, b=7; fun(); printf(“%dd n”, a,b); 6实验指导书P40【上机题5】。7实验指导书P41【上机题7】。8阅读程序,调试程序并记录实验运行结果。#include stdio.h#define M 3void main()int v;v=M*M;printf(mul=%dn,v);9已知定义如下:f(1)=1,f(2n)=f(n),f(2n+1)=f(n)+f(n+1)。编写递归函数,并计算f(100)和f(151)的值。#include stdio.hint f(int n)/*补充函数体部分*/ void main()printf(f(100) = %dn,f

29、(100);printf(f(151) = %dn,f(151);10 编写程序代码。已知某一正整数,其各位数字均为素数,而且各位数字之和也为素数。比如235,各位数字2、3、5以及各位数字之和2+3+5=11也为素数。编程找出11000中满足条件的所有正整数,并将结果按每行5个输出。6.4 实验报告 1.完成【实验任务1】,并记录实验结果。表6-1 实验任务1 结果记录表人工分析结果实验运行结果Turbo_ C 2.0Turbo_ C 2.0 2程序填空。将程序改写成函数调用形式,并补充完整。表6-2 实验任务2 结果记录表填空位置(1)int f(int x);填空位置(2)f(data)

30、 ; 填空位置(3)return z; 3.完成【实验任务3】,并记录实验结果。表6-3 实验任务3结果记录表人工分析结果实验运行结果(1)x=2 y=3 z=0(2)x=2 y=3 z=0(3)x=10 y=9 z=5(4)x=2 y=3 z=0(1)x=2 y=3 z=0(2)x=2 y=3 z=0(3)x=10 y=9 z=5(4)x=2 y=3 z=0分析:程序中函数调用中的形参是否后会影响实参的结果?不会 。如果不会的原因是:实参向形参进行的是单向“值传递”,形参改变不会影响实参的值。 4完成【实验任务4】,并记录实验结果。表6-4 实验任务4 结果记录表填空位置(1)c=0填空位置

31、(2)return c填空位置(3)&x 5.完成【实验任务5】,并记录实验结果。表6-5 实验任务5 结果记录表人工分析结果实验运行结果5757人工分析结果和实验运行结果是否有差异?。若有差异,分析产生差异的原因是:主函数中输出的实际上是主函数中定义的局部变量a和b,全局变量a和b的值在子函数fun中分别被赋值为100和200,但是当局部变量和全局变量同名时,局部变量屏蔽全局变量。 6完成【实验任务6】,并记录实验结果。表6-6 实验任务6结果记录表人工分析结果实验运行结果(1)a=2(2)a=4(3)a=64(4)a=64(1)a=2(2)a=4(3)a=64(4)a=64说明:“stat

32、ic int a=6;”语句表示对外部静态整型变量初始化。外部变量是全局变量,变量在程序全程中有效。在mian()函数内,a的初始值为2,调用函数p1()时,a被赋值为4,再调用函数p2()时,a被赋值为64。根据变量说明位置,可将变量分为局部变量和全局变量。局部变量和全局变量的作用域不同,同时可使用的存储类型也不同,二者区别如下表所示。类型说明位置可使用的存储类型作用域局部变量程序函数内auto、static、register自动义位置起到函数结束全局变量函数外static自定义起到程序结束当局部变量和全局变量同名时,在局部变量的作用范围内,起作用的是局部变量。7完成【实验任务7】,并记录实

33、验结果。表6-7实验任务7结果记录表人工分析结果实验运行结果100+2+1=103110+2+2=114120+2+3=125130+2+4=136140+2+5=147100+2+1=103110+2+2=114120+2+3=125130+2+4=136140+2+5=147 8阅读程序,调试程序并记录实验运行结果。(1)实验运行结果:mul= mul=9。(2)若宏定义改为:#define M 3+2,实验运行结果为: mul=11 。(3)若宏定义改为:#define M (3+2),实验运行结果为: mul=25 。 9完成【实验任务7】,补充函数体部分int f(int n) in

34、t fun; if(n=1) fun=1; else if(n%2=0) fun=f(n/2);else if(n!=1&n%2!=0) fun=f(n-1)/2)+f(n+1)/2);return fun;10编写的程序如下:#include stdio.h#include math.hint prime(int x)int i;for(i=2;i=x;i+) if(x%i=0) break;return i=x;void main()int i,j,n=0,t;printf(15000, prime is in the below list.n);for(i=1;i=1000;i+) j=

35、i;t=0; while(j!=0&prime(j%10) t=t+j%10;j=j/10; if(j=0&prime(t) if(n%5=0) printf(n);printf(“%5d”,i); n+;实验7 数组院(系):信息科学与技术学院 课程名称:高级语言程序设计日期:班级学号实验室专业姓名计算机号实验名称所用软件教师签名实验操作实验分析实验成绩7.1 实验目的1熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。2熟练掌握字符数组和字符串函数的使用。3熟练掌握一维数组以及一维数组元素的存储关系。4熟练掌握一维数组和二维数组的使用以及在函数中的传递。5通过上级实践掌握与数组有关的

36、算法。7.2 实验预习1熟悉循环语句与数组处理语句结合的方法。2复习一维数组、二维数组的定义、初始化和数组元素的引用。3复习数组的应用:批量处理数据、查找、排序和矩阵的处理。4复习字符数组的定义和使用。5复习字符串的含义、存储和字符串函数的功能。6复习函数调用时参数的传递过程。7.3 实验任务 1.调试并运行以下程序,完成相应实验任务。main() int i,sum,a5,b5,c5; /*变量说明,数组说明*/ int d=5,8,4,6,4,3,8,2,4,5,6; /*数组元素初始化*/ sum=0; a0=2,a1=6,a2=4,a3=8,a4=9; b0=2,b1=7,b2=9,b3=5,b4=3;for(i=0;i=4;i+) ci=ai*bi; printf(c%d=%dn,i,ci); for(i=0;i=10;i+) sum+=di; /*求数组元素之和*/printf(sum=%dn,sum); 2.实验指导书P43【上机题3】。 3程序填空,在有序数据序列中插入一个数据,插入后仍然保证数据序列的有序性。原始数据序列为:5,8,12,15,26,78,92,93,102,需要插入的数据值为25。算法思想:(1)通过比较,确定需要插入的位置。(2)从插

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com