C语言实验报告Word格式.docx
《C语言实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《C语言实验报告Word格式.docx(26页珍藏版)》请在冰豆网上搜索。
printf("
Welcometoyou!
\n"
);
return0;
实验结果分析
1.任务一:
请分别记录在安装过程中的几个重要路径:
安装目录:
TC
中间文件输出目录:
C:
\TC
源文件自动保存目录:
\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)定义一个符号常量表示圆周率。
(2)在main函数中输入圆半径和圆柱高。
分别求圆周长、圆面积、圆球表面积,圆球体积、圆柱体积。
并输出计算结果。
/*源程序清单*/
#include<
#definePI3.1415
doubler,h,c,s1,s2,v1,v2;
\nr=\n"
scanf("
%lf"
&
r);
h=\n"
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;
c=%f\ns1=%f\ns2=%f\nv1=%f\nv2=%f\n"
c,s1,s2,v1,v2);
2.调试要求:
(1)单步执行程序
(2)添加watch监视变量,监视在子函数中的局部变量的实时数据。
任务二
电费计算:
见习题2第2题
doublemoney,x;
\nx=\n"
x);
if(x<
=50){
money=0.53*50;
else{
money=0.53*50+0.58*(x-50);
money);
(1)单步执行程序添加watch监视变量
(2)监视在子函数中的局部变量的实时数据。
3.测试用例及运行结果
X=1526.500000
X=5026.500000
X=6032.300000
任务三
查找最大值:
程序功能描述:
输入10个数,查找并打印出最大值。
提示:
在程序中应用用到以下三个变量:
(1)counter:
从1到10的计数器,用于记录已输入的数据个数。
(2)number:
当前输入的数据
(3)largest:
目前找到的最大值。
intmain(void)
intcounter,largest,number;
Enternumber:
"
%d"
largest);
for(counter=2;
counter<
=10;
counter++)
number);
if(number>
largest){
largest=number;
largest=%d"
largest);
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
51
34
63
23
如果要想使最大值为第8个数,应如何修改你的程序。
(请增加一个变量,记录最大值的序号)
intmain()
intcounter,largest,number,index;
printf("
number="
index=1;
=largest)
index=counter;
largest=%d,%d"
largest,index);
实验报告(三)
函数结构
2009年10月14日评阅成绩:
实验目的
1.掌握库函数的使用。
2.了解函数的定义和调用。
3.了解C程序书写风格
任务一
编写一个C程序,输入a,b,c3个值,输出其中最大者
要求:
(1)编写调用子函数intmax(intx,inty),返回两个数中较大值,在main函数中调用max函数完成3个数的比较。
(2)程序运行有良好的用户提示,每次运行先清屏(clrscr())。
(3)运行结束后,按任意键返回(getch())。
(4)源程序的书写符合良好的编程风格
--必要的注释
--用空行区分各个功能区域
--用缩进体现层次
intmax(intx,inty);
{inta,b,c,m;
\na="
a);
\nb="
b);
\nc="
c);
m=max(a,b);
m=max(m,c);
max=%d"
m);
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
任务二
在任务一的基础上增加一个函数intgetMaxOfabc(intx,inty,intz),调用子函数intmax(intx,inty)完成3个数的比较。
在main函数中输入三个数,并调用getMaxOfabc函数求最大值输出。
intgetMaxOfabc(intx,inty,intz);
m=getMaxOfabc(a,b,c);
intgetMaxOfabc(intx,inty,intz)
intm;
m=max(x,y);
m=max(m,z);
改写实验二的任务一
改编制要求:
(1)自定义求圆周长、圆面积、圆球表面积,圆球体积、圆柱体积的函数。
(2)在main函数中调用自定义函数分别求圆周长、圆面积、圆球表面积,圆球体积、圆柱体积
doublegets1(doubler);
doublegetPerimeter(doubler);
doublegets2(doubler);
doublegetv1(doubler);
doublegetv2(doubler,doubleh);
doubler,h,perimeter,s1,s2,v1,v2;
\nr="
\nh="
perimeter=getPerimeter(r);
s1=gets1(r);
s2=gets2(r);
v1=getv1(r);
v2=getv2(r,h);
\ns1=%f"
s1);
\ns2=%f"
s2);
\nv1=%f"
v1);
\nv2=%f"
v2);
\nperimeter=%f"
perimeter);
doublegetPerimeter(doubler)
doubleperimeter;
perimeter=2.0*PI*r;
returnperimeter;
doublegets1(doubler)
{doubles1;
s1=PI*r*r;
returns1;
doublegets2(doubler)
{doubles2;
returns2;
doublegetv1(doubler)
{doublev1;
returnv1;
doublegetv2(doubler,doubleh)
{doublev2;
returnv2;
(1)单步执行程序
/*实验中遇到的问题和解决问题的方法*/
Undefinedsymbol’r’infunctionmain在开始加intr
Possibleuse‘r’beforedefinitioninfunctionmain在scanf语句中少加了&
实验报告(四)
控制结构
2009年月日评阅成绩:
1.熟练掌握嵌套的if语句和switch语句实现多分支结构
2.掌握switch中break的使用
3.掌握DOS菜单程序的编制
4.掌握while语句的句法
5.熟悉嵌套结构的构建
6.学习自顶向下,逐步细化的分析方法,学习模块化程序的构建
修改下面程序中的4个子函数中的代码 ,能按每一部分的要求得出相应的输出。
修改只限于增加圆括号,和代码的缩进方式。
当然代码的缩进方式对程序的执行没有影响,但可增加代码的可读性。
(也可能什么修改也不要做)。
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)
\nsection1:
\n"
if(y==8)
if(x==5)
@@@@@\n"
#####\n"
$$$$$\n"
&
voidpaint_2(intx,inty)
\nsection2:
voidpaint_3(intx,inty)
\nsection3:
\nsection4:
if(y==8){
Section1:
假定x=5,y=8,输出为:
Section2:
Section3:
Section4:
假定x=5,y=7,输出为:
任务二运行程序,了解程序功能
1.在cmd窗口运行程序ex4_1.exe,在菜单程序中分别输入1,2,3,4,5,6,观察程序的运行结果,输入0程序结束。
2.下图为ex4_1.cpp的程序模块图,打开ex6_1.cpp,文件给出了程序的框架结构,请根据程序的运行过程,确定每一个模块的功能。
任务三编写函数,完整程序
Ex6_1.cpp中已给出了函数displayMenu和processChoice的代码。
请编写6个打印图案的程序,并在main函数中调用函数displayMenu和processChoice完成菜单程序,使程序的运行过程与所给的ex6_1.exe一致。
运行过程见下一组图
conio.h>
voidprocessChoice(intindex);
voiddisplayMenu();
voidprintStar_1();
voidprintStar_2();
voidprintStar_3();
voidprintStar_4();
voidprintStar_5();
voidprintStar_6();
{intchoice;
while
(1)
clrscr();
displayMenu();
scanf("
choice);
if(!
choice)break;
else
processChoice(choice);
voiddisplayMenu()
clrscr();
**************************\n"
*1.patternone*\n"
*2.patterntwo*\n"
*3.patternthree*\n"
*4.patternfour*\n"
*5.patternfive*\n"
*6.patternsix*\n"
*0.exit*\n"
pleasechoice(0,1,2,3,4,5,6):
voidprocessChoice(intindex)
{switch(index)
{case1:
printStar_1();
break;
case2:
printStar_2();
case3:
printStar_3();
case4:
printStar_4();
case5:
printStar_5();
case6:
printStar_6();
}
voidprintStar_1()
{inti,j;
printf("
patternone\n"
for(i=1;
i<
i++)
{for(j=1;
j<
=i;
j++)
*"
getch();
voidprintStar_2()
patterntwo\n"
for(i=10;
i>
0;
i--)
{for(j=1;
voidprintStar_3()
patternthree\n"
for(i=1;
i;
"
for(;
voidprintStar_4()
patternfour\n"
voidprintStar_5()
patternfive\n"
{
for(j=1;
=10-i+1;
=10-i;
voidprintStar_6()
patternsix\n"
=5;
=5-i;
=2*i-1;
j