C语言程序设计实验指导及报告.docx
《C语言程序设计实验指导及报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验指导及报告.docx(18页珍藏版)》请在冰豆网上搜索。
![C语言程序设计实验指导及报告.docx](https://file1.bdocx.com/fileroot1/2022-12/29/9aee8761-0cff-4f0e-a95a-6c9a52661999/9aee8761-0cff-4f0e-a95a-6c9a526619991.gif)
C语言程序设计实验指导及报告
太原理工大学现代科技学院
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++SourceFile”项,并在“文件名”项目下输入“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
voidmian(void)
{
intnPwd=0;/*用于保存输入的密码*/
inti;/*循环控制变量*/
intnFlag=1/*密码匹配成功的标志*/
for(i=0;((nFlag=(87569!
=nPwd))&&i<3);++i)
{/*默认设定密码为87569,可以根据需要进行设定*/
printf("pleaseinputthepassword:
");
scanf("%d",&nPwd);
}
if(nFlag=0)
printf(“thepasswordisright!
\n”);
else
printf("overthetimesandthepasswordyouinputiserror!
\n");
}
修改程序及运行结果:
#include
voidmain(void)
{
intnPwd=0;/*用于保存输入的密码*/
inti;/*循环控制变量*/
intnFlag=1;/*密码匹配成功的标志*/
for(i=0;((nFlag=(87569!
=nPwd))&&i<3);++i)
{/*默认设定密码为87569,可以根据需要进行设定*/
printf("pleaseinputthepassword:
");
scanf("%d",&nPwd);
}
if(nFlag=0)
printf("thepasswordisright!
\n");
else
printf("overthetimesandthepasswordyouinputiserror!
\n");
}
4、实验内容3:
习题第三章第1题:
假如国民生产总值的年增长率为9%,计算10年后国民生产总值与现在相比增长多少百分比,计算公式为
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;iprintf("%s %s %d %d %d %3.1f\n",stud[i].id,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].average);
}
void sortput() /* 排序输出最高分的学生信息 */
{
int i,j;
struct student temp;
for(i=0;i{
for(j=0;j{
if(stud[j].average{
temp=stud[j];
stud[j]=stud[j+1];
stud[j+1]=temp;
}
}
}
printf("\n%s %s %d %d %d %3.1f\n",stud[0].id,stud[0].name,stud[0].score[0],stud[0].score[1],stud[0].score[2],stud[0].average);
}
void main()
{
input();
output();
sortput();
}
结果:
4、附加内容(非必做,供学有余力的同学):
习题第八章第6题:
写一个函数,求一个字符串的长度,在主函数中输入字符串,并输出长度。
源程序及运行结果:
5、实验总结