太原理工大学现代科技学院
C语言程序设计课程 实验报告
专业班级
学
号
姓
名
指导教师
C语言程序设计 实验指导及报告
实验说明:
1、共4次实验,每次实验完成1个内容。
2、实验报告命名统一为:C语言_专业班级_学号_姓名
3、自备U盘,在实验前认真阅读实验要求,在实验中及时记录保存实验结果和调试过程,并填写到实验报告对应位置,实验结束后将该实验报告电子版在指定时间内提交给各班学习委员。
实验一
C语言开发工具VC6.0和顺序结构程序设计
1、实验目的:熟练掌握VC6.0开发工具进行程序设计及调试,能编写简单的C程序并完成调试。
2、实验内容1:结合课堂讲授学习VC6.0开发工具及调试方法。
单文件编辑运行方法:
打开VC++6.0,如图1所示
(图1)
选择“文件”→“新建”,打开如图2所示
(图2)
选择“文件”项,如图3所示
(图3)
选择“C++ Source File”项,并在“文件名”项目下输入“sum.c”如图4所示
(图4)
单击“确定”,打开如图5所示
(图5)
输入如上源代码,如图6所示
(图6)
选择“组建”→“编译”(或按Ctrl+F7组合键),打开如图7所示
(图7)
在下端的输出窗口会有错误和警告的提示,如果没有错误选择“组建”→“执行”(或按Ctrl+F5组合键)即可出现运行结果,如图8所示
(图8)
程序调试常用方法:
检查错误:
用鼠标单击调试信息窗口中右侧的向上箭头,可以看到出错的位置和性质, 进行改错时, 双击调试信息窗口中的报错行, 这时在程序窗口中出现一个粗箭头指向被报错的程序行,一般在箭头的当前行或上一行,可以找到出错语句。
修改错误后必须重新进行编译链接。从第一个错误开始修改,每修改一个错误就重新进行编译链接。
设置断点、单步跟踪、查看变量等,详细使用方法见下:
按快捷键F5或点击以下图片上标记的图标进入调试模式。
打开调试工具条,一般情况下当你按F5键后会自动弹出,如果没有弹出的话,右击工具栏空白处,会弹出下图,选中调试,就会出现调试工具条。
接下来,在监视窗口中添加你要监视数据变化的变量。
按F11逐语句的调试代码,如果某一语句是一函数,你不希望进入该函数时,F10逐过程来查看,在代码的调试过程中,通过监视窗口查看变量值的变化,从而确定代码是否有问题。
如果希望跳出某一函数时,按快捷键Shift+F11,或者直接点击调试工具条上的按钮就可以跳出该函数了。
如果只是希望调试某一部分代码的话,可以设置断点来调试,调试方法如上,只是在要调试的代码之间用断点来分开。设置断点时,光标放在你要设置断点的那行,按F9或点击编译微型条上面的类似手状的按钮即可。
3、实验内容2:以下程序有错误,请调试改正错误,使之能正常运行。
程序:
/* 登陆密码三次验证程序*/ #include void mian (void) { int nPwd=0;
/* 用于保存输入的密码*/ int i;
/*循环控制变量*/ int nFlag=1
/*密码匹配成功的标志*/
for(i=0;((nFlag=(87569 != nPwd)) && i
{ /* 默认设定密码为87569,可以根据需要进行设定*/
printf(\"please input the paword:\");
scanf(\"%d\",&nPwd); }
if (nFlag=0)
printf(“the paword is right!\\n”);
else
printf(\"over the times and the paword you input is error!\\n \"); }
修改程序及运行结果:#include void main (void) { int nPwd=0;
/* 用于保存输入的密码*/ int i;
/*循环控制变量*/ int nFlag=1;
/*密码匹配成功的标志*/
for(i=0;((nFlag=(87569 != nPwd)) && i
{ /* 默认设定密码为87569,可以根据需要进行设定*/
printf(\"please input the paword:\");
scanf(\"%d\",&nPwd); }
if (nFlag=0)
printf(\"the paword is right!\\n\"); else
printf(\"over the times and the paword you input is error!\\n \"); }
4、实验内容3:习题第三章第1题:假如国民生产总值的年增长率为9%,计算10年后国民生产总值与现在相比增长多少百分比,计算公式为
p(1r)n
r为年增长率,n为年数,p为与现在相比的倍数。 源程序及运行
结
果
:
5、实验总结
实验二
选择结构和循环结构
1、实验目的:理解和掌握选择结构和循环结构的语法知识,理解自顶向下、逐步细化的结构化程序设计思想,并能熟练应用。
2、实验内容1:习题第四章第4题:有3个整数a,b,c,由键盘输入,输出其中最大的数。 源程序及运行结果:
3、实验内容2:习题第五章第8题:输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各数字立方和等于该数本身。如:153是一个水仙花数153=13+53+33。 源程序及运行结果
:
4、附加内容(非必做,供学有余力的同学):习题第五章第17题:两个乒乓球队进行比赛,各出3人,甲队为A,B,C,乙队为X,Y,Z。已抽签决定比赛名单,有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比,请编程找出比赛名单。 源程序及运行结果:
5、实验总结
实验三
数组和函数
1、实验目的:理解和掌握数组和函数的语法知识,理解模块化编程思想,并能熟练应用。
2、实验内容1:习题第六章第3题:求一个3 3的整型矩阵对角线元素之和。 源程序及运行结果:
3、实验内容2:习题第七章第3题:写一个判断素数的函数,在主函数中输入一个整数,输出是否为素数的信息。 源程序及运行结果:
4、附加内容(非必做,供学有余力的同学):习题第六章第2题:用选择法对10个整数排序。
源程序及运行结果:
5、实验总结
实验四
指针和结构体
1、实验目的:理解和掌握指针和结构体的语法知识,并能熟练应用。
2、实验内容1:习题第八章第1题:输入3个整数,按由小到大的顺序输出。 源程序及运行结果:
3、实验内容2:习题第九章第5题:有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生的数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数)。 源程序及运行#include #include #define SIZE 10
struct student{ char id[20]; char name[20]; int score[3]; float average; } stud[SIZE];
void input() /* 输入学生的信息 */ { int i;
for(i=0;i
{
printf(\"第%d个学生的信息:\\n\",i+1); scanf(\"%s%s%d%d%d\",stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]); stud[i].average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0; } }
void output() /* 输出学生的信息 */ { int i;
printf(\"\\n\"); for(i=0;i
void sortput() /* 排序输出最高分的学生信息 */ { int i,j; struct student temp;
for(i=0;i
void main() { input();
output(); sortput(); } 结果:
4、附加内容(非必做,供学有余力的同学):习题第八章第6题:写一个函数,求一个字符串的长度,在主函数中输入字符串,并输出长度。 源程序及运行结果:
5、实验总结