C语言实验报告.docx

上传人:b****5 文档编号:6898644 上传时间:2023-01-12 格式:DOCX 页数:26 大小:97.94KB
下载 相关 举报
C语言实验报告.docx_第1页
第1页 / 共26页
C语言实验报告.docx_第2页
第2页 / 共26页
C语言实验报告.docx_第3页
第3页 / 共26页
C语言实验报告.docx_第4页
第4页 / 共26页
C语言实验报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C语言实验报告.docx

《C语言实验报告.docx》由会员分享,可在线阅读,更多相关《C语言实验报告.docx(26页珍藏版)》请在冰豆网上搜索。

C语言实验报告.docx

C语言实验报告

C语言本科实验报告

实验项目名称:

熟悉编辑环境

实验日期:

2015年9月9日评阅成绩:

实验目的及要求

1.熟悉计算机中的TurboC的DOS开发环境,掌握快捷键操作。

2.学会如何编辑、编译和运行一个完全的C语言程序,在用户屏幕上查看运行结果

3.初步掌握调试程序的方法和技巧。

实验内容

任务一

完成TC2.0的安装

1.获取TC2.0安装压缩包,并解压缩。

2.完成TC2.0的安装,将解压缩的目录直接复制到目的驱动器下例如:

D:

\TC20。

3.查看TC2.0目录,找到include,lib子目录。

4.运行TC2.0,修改option中include,lib子目录的路径。

设置输出中间文件(obj,exe)的路径。

5.运行例程hello.c验证IDE环境的设置。

(运行正确,找到输出的中间文件)。

任务二

在TC2.0下完成一个C程序的创建。

1.编辑

main()

{

printf(“helloCworld!

”);

}

2.保存

3.运行程序,观察输出结果。

4.使用changedir设置源程序自动保存路径,并验证。

任务三

改错题

1.题目要求

改正下列程序中的错误,在屏幕上显示短句“WelcometoYou!

”(源程序error01_1.cpp)

2.正确源程序

#include

intmain(void)

{

printf("Welcometoyou!

\n");

return0;

}

实验结果分析

1.任务一:

请分别记录在安装过程中的几个重要路径:

安装目录:

TC

中间文件输出目录:

C:

\TC

源文件自动保存目录:

C:

\TC

2.任务二:

记录以下操作热键

存盘:

F2

查看userscreen:

Alt+F5

编辑区与信息区切换:

F6

TC屏幕最大化切换:

Alt+Enter

块拷贝:

定义一个块Ctrl+KBCtrl+KK复制Ctrl+KC移动Ctrl+KV

3.请记录你在编译过程中出现的错误提示,分析错误的原因,并改正。

Undefinedsymbol’y’infunctionmain在开始加inty

Statementmissing;infunctionmain句末少加分号

Possibleuse‘x’beforedefinitioninfunctionmain在scanf语句中少加了&

Unabletoopenincludefile#include输写不正确

实验报告

(二)

实验项目名称:

简单C程序

实验日期:

2009年9月30日评阅成绩:

实验目的及要求

1.了解C程序的基本框架,能够编写简单C程序。

2.掌握算术表达式和赋值表达式的使用。

能够正确调用数学库函数。

3.掌握输入输出函数的使用。

4.掌握条件表达式的书写。

使用if语句计算分段函数。

5.使用for语句的使用。

6.理解程序调试的思想,能找出并改正C程序中语法错误,能掌握简单的单步调试逻辑错误的方法。

7.理解程序调试的思想,能掌握简单断点调试逻辑错误的方法。

实验内容

任务一

 /*编程题*/

1.题目要求

编制要求:

(1)定义一个符号常量表示圆周率。

(2)在main函数中输入圆半径和圆柱高。

分别求圆周长、圆面积、圆球表面积,圆球体积、圆柱体积。

并输出计算结果。

/*源程序清单*/

#include

#definePI3.1415

intmain(void)

{

doubler,h,c,s1,s2,v1,v2;

printf("\nr=\n");

scanf("%lf",&r);

printf("h=\n");

scanf("%lf",&h);

c=2.0*PI*r;

s1=PI*r*r;

s2=4.0*PI*r*r;

v1=4.0*PI*r*r*r/3.0;

v2=PI*r*r*h;

printf("c=%f\ns1=%f\ns2=%f\nv1=%f\nv2=%f\n",c,s1,s2,v1,v2);

return0;

}

2.调试要求:

(1)单步执行程序

(2)添加watch监视变量,监视在子函数中的局部变量的实时数据。

任务二

 /*编程题*/

1.题目要求

电费计算:

见习题2第2题

/*源程序清单*/

#include

intmain(void)

{

doublemoney,x;

printf("\nx=\n");

scanf("%lf",&x);

if(x<=50){

money=0.53*50;

}

else{

money=0.53*50+0.58*(x-50);

}

printf("%lf",money);

return0;

}

2.调试要求:

(1)单步执行程序添加watch监视变量

(2)监视在子函数中的局部变量的实时数据。

3.测试用例及运行结果

X=1526.500000

X=5026.500000

X=6032.300000

任务三

 /*编程题*/

1.题目要求

 查找最大值:

程序功能描述:

输入10个数,查找并打印出最大值。

提示:

在程序中应用用到以下三个变量:

(1)counter:

从1到10的计数器,用于记录已输入的数据个数。

(2)number:

当前输入的数据

(3)largest:

目前找到的最大值。

/*源程序清单*/

#include

intmain(void)

{

intcounter,largest,number;

printf("Enternumber:

");

scanf("%d",&largest);

for(counter=2;counter<=10;counter++)

{

printf("Enternumber:

");

scanf("%d",&number);

if(number>largest){

largest=number;

}

}

printf("largest=%d",largest);

return0;

}

2.调试要求:

(1)在循环体中设置断点

(2)添加watch监视变量,监视在子函数中的局部变量的实时数据。

实验结果分析

1.float型数据的有效数字有几位?

6位如何控制float型数据的输出位数%.af其中a为所要保留的位数

2.你如何考虑有分支语句的测试用例的设计?

3.思考题:

在你的所写任务三的程序执行时,输入下面第二行的10个整数数据,请问最大值是第几个。

第二个

1

2

3

4

5

6

7

8

9

10

29

67

12

42

67

51

34

67

63

23

如果要想使最大值为第8个数,应如何修改你的程序。

(请增加一个变量,记录最大值的序号)

#include

intmain()

{

intcounter,largest,number,index;

printf("number=");

scanf("%d",&largest);

index=1;

for(counter=2;counter<=10;counter++)

{

printf("number=");

scanf("%d",&number);

if(number>=largest)

largest=number;

index=counter;

}

printf("largest=%d,%d",largest,index);

return0;

}

实验报告(三)

实验项目名称:

函数结构

实验日期:

2009年10月14日评阅成绩:

实验目的

1.掌握库函数的使用。

2.了解函数的定义和调用。

3.了解C程序书写风格

实验内容

任务一 

编写一个C程序,输入a,b,c3个值,输出其中最大者

1.题目要求

要求:

(1)编写调用子函数intmax(intx,inty),返回两个数中较大值,在main函数中调用max函数完成3个数的比较。

(2)程序运行有良好的用户提示,每次运行先清屏(clrscr())。

(3)运行结束后,按任意键返回(getch())。

(4)源程序的书写符合良好的编程风格

--必要的注释

--用空行区分各个功能区域

--用缩进体现层次

/*源程序清单*/

#include

intmax(intx,inty);

intmain()

{inta,b,c,m;

printf("\na=");

scanf("%d",&a);

printf("\nb=");

scanf("%d",&b);

printf("\nc=");

scanf("%d",&c);

m=max(a,b);

m=max(m,c);

printf("max=%d",m);

return0;

}

intmax(intx,inty)

{intm;

if(x>y)

m=x;

else

m=y;

returnm;

}_

 

2.测试用例及运行结果

a=5b=4c=6max=6

a=15b=20c=30max=30

a=50b=2c=32max=50

任务二

编写一个C程序,输入a,b,c3个值,输出其中最大者

1.题目要求

在任务一的基础上增加一个函数intgetMaxOfabc(intx,inty,intz),调用子函数intmax(intx,inty)完成3个数的比较。

在main函数中输入三个数,并调用getMaxOfabc函数求最大值输出。

/*源程序清单*/

#include

intmax(intx,inty);

intgetMaxOfabc(intx,inty,intz);

intmain()

{inta,b,c,m;

printf("\na=");

scanf("%d",&a);

printf("\nb=");

scanf("%d",&b);

printf("\nc=");

scanf("%d",&c);

m=getMaxOfabc(a,b,c);

printf("max=%d",m);

return0;

}

intgetMaxOfabc(intx,inty,intz)

{

intm;

m=max(x,y);

m=max(m,z);

returnm;

}

intmax(intx,inty)

{intm;

if(x>y)

m=x;

else

m=y;

returnm;

}_

任务三

 /*编程题*/

1.题目要求

改写实验二的任务一

改编制要求:

(1)自定义求圆周长、圆面积、圆球表面积,圆球体积、圆柱体积的函数。

(2)在main函数中调用自定义函数分别求圆周长、圆面积、圆球表面积,圆球体积、圆柱体积

/*源程序清单*/

#include

#definePI3.1415

doublegets1(doubler);

doublegetPerimeter(doubler);

doublegets2(doubler);

doublegetv1(doubler);

doublegetv2(doubler,doubleh);

intmain()

{

doubler,h,perimeter,s1,s2,v1,v2;

printf("\nr=");

scanf("%lf",&r);

printf("\nh=");

scanf("%lf",&h);

perimeter=getPerimeter(r);

s1=gets1(r);

s2=gets2(r);

v1=getv1(r);

v2=getv2(r,h);

printf("\ns1=%f",s1);

printf("\ns2=%f",s2);

printf("\nv1=%f",v1);

printf("\nv2=%f",v2);

printf("\nperimeter=%f",perimeter);

return0;

}

doublegetPerimeter(doubler)

{

doubleperimeter;

perimeter=2.0*PI*r;

returnperimeter;

}

doublegets1(doubler)

{doubles1;

s1=PI*r*r;

returns1;

}

doublegets2(doubler)

{doubles2;

s2=4.0*PI*r*r;

returns2;

}

doublegetv1(doubler)

{doublev1;

v1=4.0*PI*r*r*r/3.0;

returnv1;

}

doublegetv2(doubler,doubleh)

{doublev2;

v2=PI*r*r*h;

returnv2;

}_

2.调试要求:

(1)单步执行程序

(2)添加watch监视变量,监视在子函数中的局部变量的实时数据。

实验结果分析

/*实验中遇到的问题和解决问题的方法*/

Undefinedsymbol’r’infunctionmain在开始加intr

Statementmissing;infunctionmain句末少加分号

Possibleuse‘r’beforedefinitioninfunctionmain在scanf语句中少加了&

实验报告(四)

实验项目名称:

控制结构

实验日期:

2009年月日评阅成绩:

实验目的及要求

1.熟练掌握嵌套的if语句和switch语句实现多分支结构

2.掌握switch中break的使用

3.掌握DOS菜单程序的编制

4.掌握while语句的句法

5.熟悉嵌套结构的构建

6.学习自顶向下,逐步细化的分析方法,学习模块化程序的构建

实验内容

任务一

1.题目要求

修改下面程序中的4个子函数中的代码 ,能按每一部分的要求得出相应的输出。

修改只限于增加圆括号,和代码的缩进方式。

当然代码的缩进方式对程序的执行没有影响,但可增加代码的可读性。

(也可能什么修改也不要做)。

#include

voidpaint_1(intx,inty);

voidpaint_2(intx,inty);

voidpaint_3(intx,inty);

voidpaint_4(intx,inty)

voidmain()

{

intx,y;

x=5,y=8;

paint_1(x,y);

paint_2(x,y);

paint_3(x,y);

y=7;

paint_4(x,y);

}

voidpaint_1(intx,inty)

{

printf("\nsection1:

\n");

if(y==8)

if(x==5)

printf("@@@@@\n");

else

printf("#####\n");

printf("$$$$$\n");

printf("&&&&&\n");

}

voidpaint_2(intx,inty)

{

printf("\nsection2:

\n");

if(y==8)

if(x==5)

printf("@@@@@\n");

else{

printf("#####\n");

printf("$$$$$\n");

printf("&&&&&\n");

}

}

voidpaint_3(intx,inty)

{

printf("\nsection3:

\n");

if(y==8)

if(x==5)

printf("@@@@@\n");

else{

printf("#####\n");

printf("$$$$$\n");

}

printf("&&&&&\n");

}

voidpaint_4(intx,inty)

{

printf("\nsection4:

\n");

if(y==8){

if(x==5)

printf("@@@@@\n");}

else

printf("#####\n");

printf("$$$$$\n");

printf("&&&&&\n");

}

Section1:

假定x=5,y=8,输出为:

Section2:

假定x=5,y=8,输出为:

Section3:

假定x=5,y=8,输出为:

Section4:

假定x=5,y=7,输出为:

任务二运行程序,了解程序功能

1.在cmd窗口运行程序ex4_1.exe,在菜单程序中分别输入1,2,3,4,5,6,观察程序的运行结果,输入0程序结束。

2.下图为ex4_1.cpp的程序模块图,打开ex6_1.cpp,文件给出了程序的框架结构,请根据程序的运行过程,确定每一个模块的功能。

任务三编写函数,完整程序

1.题目要求

Ex6_1.cpp中已给出了函数displayMenu和processChoice的代码。

请编写6个打印图案的程序,并在main函数中调用函数displayMenu和processChoice完成菜单程序,使程序的运行过程与所给的ex6_1.exe一致。

运行过程见下一组图

/*源程序清单*/

#include

#include

voidprocessChoice(intindex);

voiddisplayMenu();

voidprintStar_1();

voidprintStar_2();

voidprintStar_3();

voidprintStar_4();

voidprintStar_5();

voidprintStar_6();

voidmain()

{intchoice;

while

(1)

{

clrscr();

displayMenu();

scanf("%d",&choice);

if(!

choice)break;

else

processChoice(choice);

}

}

voiddisplayMenu()

{

clrscr();

printf("**************************\n");

printf("*1.patternone*\n");

printf("*2.patterntwo*\n");

printf("*3.patternthree*\n");

printf("*4.patternfour*\n");

printf("*5.patternfive*\n");

printf("*6.patternsix*\n");

printf("*0.exit*\n");

printf("**************************\n");

printf("pleasechoice(0,1,2,3,4,5,6):

");

}

voidprocessChoice(intindex)

{switch(index)

{case1:

printStar_1();break;

case2:

printStar_2();break;

case3:

printStar_3();break;

case4:

printStar_4();break;

case5:

printStar_5();break;

case6:

printStar_6();break;

}

}

voidprintStar_1()

{inti,j;

printf("patternone\n");

for(i=1;i<=10;i++)

{for(j=1;j<=i;j++)

printf("*");

printf("\n");

}

getch();

}

voidprintStar_2()

{inti,j;

printf("patterntwo\n");

for(i=10;i>0;i--)

{for(j=1;j<=i;j++)

printf("*");

printf("\n");}

getch();

}

voidprintStar_3()

{inti,j;

printf("patternthree\n");

for(i=1;i<=10;i++)

{for(j=1;j

printf("");

for(;j<=10;j++)

printf("*");

printf("\n");

}

getch();

}

voidprintStar_4()

{inti,j;

printf("patternfour\n");

for(i=10;i>0;i--)

{for(j=1;j

printf("");

for(;j<=10;j++)

printf("*");

printf("\n");

}

getch();

}

voidprintStar_5()

{inti,j;

printf("patternfive\n");

for(i=1;i<=10;i++)

{

for(j=1;j<=i;j++)

printf("*");

for(;j<=10;j++)

printf("");

printf("");

for(j=1;j<=10-i+1;j++)

printf("*");

for(;j<=10;j++)

printf("");

printf("");

for(j=1;j

printf("");

for(;j<=10;j++)

printf("*");

printf("");

for(j=1;j<=10-i;j++)

printf("");

for(;j<=10;j++)

printf("*");

printf("\n");

}

getch();

}

voidprintStar_6()

{inti,j;

printf("patternsix\n");

for(i=1;i<=5;i++)

{for(j=1;j<=5-i;j++)

printf("");

for(j=1;j<=2*i-1;j

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1