程序设计及C语言实验指导书.docx
- 文档编号:4884702
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:23
- 大小:232.31KB
程序设计及C语言实验指导书.docx
《程序设计及C语言实验指导书.docx》由会员分享,可在线阅读,更多相关《程序设计及C语言实验指导书.docx(23页珍藏版)》请在冰豆网上搜索。
程序设计及C语言实验指导书
实验1简单的C程序设计
实验 名称:
简单的C程序设计实验项目性质:
上机实验
所涉及课程:
程序设计及C语言计划学时:
4
承担实验室:
计算机实验室实验环境要求:
Win98/2K、VC++6.0
适用专业:
计算机科学与技术、电子信息工程、电子信息科学与技术
一、实验目的与要求
1熟悉程序设计的系统环境,学习编辑运行C语言程序的基本方法。
2认识C语言程序的结构特点,学习程序的基本编写方法。
3熟悉VisualC++6.0IDE的基本用法。
4掌握基本数据类型与输入输出方法
二、实验内容
图1创建新的工程文件
1利用VisualC++6.0IDE,完成C程序的编辑、编译、运行和测试。
2根据示例,编辑、编译、运行和测试指定的C程序。
三、预习内容
预习教材第1、3章。
四、实验步骤
1启动VisualC++6.0IDE工作环境
(1)建立个人子目录:
第一次上机时先在E盘上建立一个sw1子目录,在sw1子目录下,再建立以自己学号后三位为目录名的子目录,如学号为0611001的同学,可以用001为子目录名。
然后按以下步骤进行操作。
(2)启动VisualC++6.0:
图2建立源文件
双击Windows桌面上的VisualC++6.0图标或单击Windows桌面上“开始”按钮,在“程序”中选择“VisualC++6.0”运行即可。
2编辑、编译、运行C/C++源程序
(1)创建一个新的工程文件(Projectfile)
启动VisualC++6.0编译系统后,出现“MicrosoftDeveloperStudio”窗口,该窗口菜单条有9个菜单项(如图1所示):
①单击“File”菜单,在其下拉菜单中选择“New”,屏幕上出现一个“New”对话框,在该对话框中选择“Projects”标签,出现“Project”对话框。
②选择工程类型为“Win32ConsoleApplication”,这时,在右边的Platforms选框中就会出现Win32。
③输入工程名字。
在“Projectname”选框中输入所指定的工程文件名字,例如:
1st。
图3编辑源文件
④输入路径名。
在“Location”选框中,输入你将要把所建立的工程文件放人何处的路径名。
例如,要将工程文件放在E盘下已建立好的子目录E:
\sw1\001子目录中,所以该选取路径为:
E:
\sw1\001\1st。
选择“OK”按钮,该工程文件已建立。
(2)建立源文件
再次选择“File”菜单中的“New”选项,在四个标签中选择“File”标签,在其对话框选项中,选择“C++SourceFile”,并在右边的Addproject的选择框内打勾,激活其下面的选项,然后在File框内输入源文件名(如1st.c,如果不加扩展名,将取名为cpp,这是C++源程序文件),单击“OK”按钮,出现编辑屏幕,即可编写程序(如图2和图3所示)。
输入下列源程序:
#include
main()
{
printf("ThisisaCprogram.\n");/*用Tab键向右缩格*/
}
(3)编译连接和运行源程序
程序编好后要进行编译连接和运行,步骤如下:
①选择“Build”菜单,单击下拉菜单中的“Compile1st.c”,这时系统开始对当前的源程序进行编译,在编译过程中,将所发现的错误显示在屏幕下方的“Build”窗口中。
根据错误提示,修改程序后再重新编译,如还有错误,再继续修改、编译,直到没有错误为止。
图4编辑运行源程序
②编译无误后进行连接,这时选择“Build”菜单中的“Build1st.exe”选项。
同样,对出现的错误要进行更改,直到编译连接无错为止。
这时,在“Build”窗口中会显示如下信息:
1st.obj-0error(s),0warning(s),说明编译连接成功,并生成以源文件名为名字的可执行文件(1st.exe)。
③运行程序,选择“Build”菜单中的“!
Execute1st.exe”选项。
这时,会出现一个“MS-DOS”窗口,输出结果显示在该窗口中(如图4和图5所示)。
④运行结束后,可以回到“File”菜单,点击“CloseWorkspace”选项,关闭当前文件窗口。
若要编辑新的源程序,可以再次打开“File”菜单,重新建立工程文件,步骤如上所述;也可以点击“File”
图5编译连接及结果
菜单中的“OpenWorkspace”选项,打开一个已经存在的源文件。
⑤新建一个工程(为该工程取一个名),并创建一个新的源程序文件,输入以下程序(故意漏打或打错几个字符)。
#include
main()
{
inta,b,sum;
a=123;b=456;
sum=a+b;
print("sumis%d\n",sum);
}
编译运行该程序,仔细分析出现的错误,可能显示有多个错误,逐个修改,直到不出现错误。
请与上面的程序对照。
3程序调试
(1)打开调试工具
将鼠标指向工具栏,单击右键,在弹出的快捷菜单中选择“Debug”,显示调试工具栏。
调试工具栏
(2)设置断点
断点是调试器设置的一个代码位置。
当程序运行到断点时,程序中断执行,回到调试器。
断点是最常用的技巧。
调试时,只有设置了断点并使程序回到调试器,才能对程序进行在线调试。
设置断点:
可以通过下述方法设置一个断点。
首先把光标移动到需要设置断点的代码行上,然后按F9快捷键
去掉断点:
把光标移动到给定断点所在的行,再次按F9就可以取消断点。
同前面所述,打开Breakpoints对话框后,也可以按照界面提示去掉断点。
(3)进入调试
单击F5 ,进入调试状态,程序将在第一个断点处停下,用户可以观察程序运行情况,并通过下表所列的快捷键,进入下一阶段的调试。
快捷键
说明
F5
继续运行
Shift+F5
停止调试
F10
单步,如果涉及到子函数,不进入子函数内部
F11
单步,如果涉及到子函数,进入子函数内部
Shift+F11
从当前函数中跳出
CTRL+F10
运行到当前光标处。
F9
设置(取消)断点
Alt+F9
高级断点设置
(4)监视变量及表达式
调试程序时,可使用观察窗口监视变量和表达式。
VC支持查看变量、表达式和内存的值。
所有这些观察都必须是在断点中断的情况下进行。
观看变量的值最简单,当断点到达时,把光标移动到这个变量上,停留一会就可以看到变量的值。
VC提供一种被成为Watch的机制来观看变量和表达式的值。
在断点状态下,在变量上单击右键,选择QuickWatch,就弹出一个对话框,显示这个变量的值。
单击Debug工具条上的Watch按钮,就出现一个Watch视图(Watch1,Watch2,Watch3,Watch4),在该视图中输入变量或者表达式(图中的i),就可以观察变量或者表达式的值。
图7Watch窗口
4进一步练习
(1)编辑并运行以下程序
#include
intmax(intx,inty);
voidmain()
{
inta,b,c;
printf(“inputa&b:
”);
scanf(“%d,%d”,&a,&b);
c=max(a,b);
printf(“max=%d”,c);
}
intmax(intx,inty)
{
intz;
if(x>y)
z=x;
else
z=y;
return(z);
}
(2)编译并运行,在运行时从键盘输入整数2和5,然后按回车键,观察并分析运行结果。
5基本数据类型与输入输出
(1)输入并运行下面的程序
main()
{
charc1,c2;
c1=′a′;
c2=′b′;
printf("%c%c\n",c1,c2);
}
①运行此程序。
②在此基础上增加一个语句:
printf("%d%d\n",c1,c2);
再运行,并分析结果。
③将第2行改为:
intc1,c2;
再使之运行,并观察结果。
④再将第3、4行改为:
c1=a;/*不用单撇号*/
c2=b;
现使之运行,分析其运行结果。
⑤再将第3、4行改为:
c1="a";/*用双撇号*/
c2="b";
再使之运行,分析其运行结果。
⑥再将第3、4行改为:
cl=300;/*用大于255的整数*/
c2=400;
再使之运行,分析其运行结果。
(2)输入并运行以下程序
main()
{
charcl=′a′,c2=′b′,c3=′c′,c4=′\101′,c5=116′
printf("a%cb%c\tc%c\tabc\n",cl,c2,c3);
printf("\t\b%c%c",c4,c5);
}
在上机前先用人工分析程序,写出应得结果,上机后将二者对照。
(3)输入并运行下面的程序
main()
{
shortinta,b;
unsignedc,d;
longe,f;
a=100;
b=-100;
e=50000;
f=32767;
c=a;
d=b;
printf("%d,%d\n",a,b);
printf("%u,%u\n",a,b);
printf("%u,%u\n",c,d);
c=a=e;
d=b=f;
printf("%d,%d\n",a,b);
printf("%u,%u\n",c,d);
}
请对照程序和运行结果分析:
①将一个负整数赋给一个无符号的变量,会得到什么结果。
画出它们在内存中的表示形式。
②将一个大于32767的长整数赋给整型变量,会得到什么结果。
画出它们的内存中的表示形式。
③将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535以及小于65535的情况)。
画出它们在内存中的表示形式。
读者可以改变程序中各变量的值,以便比较。
例如:
a=65580,b=-40000,e=65535,f=65580。
(4)输入以下程序
main()
{
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
①运行程序,注意i、j、m、n各变量的值,分别作以下改动并运行。
②将第4、5行改为:
m=i++;
n=++j;
再运行。
③将程序改为:
main()
{
inti,j;
i=8;
j=10;
printf("%d,%d",i++,j++);
}
④在③的基础上,将printf语句改为:
printf("%d,%d",++i,++j);
⑤再将printf语句改为:
printf("%d,%d,%d,%d",i,j,i++,j++);
⑥将程序改为
main()
{
inti,m=0,n=0;
i=8;
j=10;
m+=i++;
n-=--j;
printf("i=%d,j=%d,m=%d,n=%d",i,j,m,n);
}
五、课外练习
输入a、b、c三个值,输出其中最大者。
实验2选择分支结构程序设计
实验 名称:
选择分支结构程序设计实验项目性质:
上机实验
所涉及课程:
程序设计及C语言计划学时:
2
承担实验室:
计算机实验室实验环境要求:
Win98/2K、VC++6.0
适用专业:
计算机科学与技术、电子信息工程、电子信息科学与技术
一、实验目的与要求
1了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。
2学会正确使用逻辑运算符和逻辑表达式。
3熟练掌握if语句和switch语句。
4结合程序掌握一些简单算法。
5学习调试程序。
二、.实验内容
本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。
(1)有一函数:
用scanf函数输入x的值,求y值。
运行程序,输入的值(分别为
<1、1≤
<10、
≥10三种情况)检查输出的
值是否正确。
(2)给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,分为B,70~79分为C,60~69分为D,60分以下为E。
①事先编好程序,要求分别用if语句和switch语句实现。
运行程序,并检查结果是否正确。
②再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。
修改程序,使之能正确处理任何数据。
当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。
(3)给一个不多于5位的正整数年,要求:
①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。
应准备以下测试数据:
·要处理的数为1位正整数;
·要处理的数为2位正整数;
·要处理的数为3位正整数;
·要处理的数为4位正整数;
·要处理的数为5位正整数;
除此之外,程序还应当对不合法的输入作必要的处理。
例如:
·输入负数;
·输入的数超过5位(如123456)。
三、预习内容
预习教材第4、5章。
四、课外练习
1 企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
2 输入某年某月某日,判断这一天是这一年的第几天?
实验3循环结构程序设计
实验 名称:
循环结构程序设计实验项目性质:
上机实验
所涉及课程:
程序设计及C语言计划学时:
4
承担实验室:
计算机实验室实验环境要求:
Win98/2K、VC++6.0
适用专业:
计算机科学与技术、电子信息工程、电子信息科学与技术
一、实验目的与要求
1熟悉掌握用while语句,do-while语句和for语句实现循环的方法。
2掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。
3进一步学习调试程序。
二、实验内容
编程序并上机调试运行。
(1).输入两个正整数m和n,求它们的最大公约数和最小公倍数。
在运行时,输入的值m>n,观察结果是否正确。
再输入时,使m 修改程序,不论m和n为何值(包括负整数),都能得到正确结果。 (2).输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其它字符的个数。 (3)猴子吃桃问题。 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子虼掉一半,又多吃一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩一个桃子了。 求第一天共摘了多少桃子。 在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。 请修改程序,并运行,检查结果是否正确。 三、预习内容 预习教材第6章。 四、课外练习 1输出100--200间不能被3整除的数。 2.输入初值,输出100个不能被3整除的数。 3求S=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)的值。 4设S=1*2*3*...*n,求S不大于400000时的最大n。 5找出1~1000间的全部”同构数”.如果一个数出现在其平方数右端,则称此数为同构数,如1在12=1的右端,5在52=25的右端,25在252=625的右端等。 6百鸡问题。 “鸡翁一,值钱五,鸡母一,值钱三,鸡雏一,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? ” . 实验4数组的应用 实验 名称: 数组的应用实验项目性质: 上机实验 所涉及课程: 程序设计及C语言计划学时: 4 承担实验室: 计算机实验室实验环境要求: Win98/2K、VC++6.0 适用专业: 计算机科学与技术、电子信息工程、电子信息科学与技术 一、实验目的与要求 1掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2掌握字符数组和字符串函数的使用; 3掌握与数组有关的算法(特别是排序算法)。 二、实验内容 编程序并上机调试运行。 (1)用选择法对10个整数排序。 10个整数用scanf函数输入。 (2)有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。 如果该数不在数组中,则输出“无此数”。 以15个数用赋初值的方法在程序中给出。 要找的数用函数输入。 (3)将两个字符串连接起来,不要用函数。 (4)找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。 也可能没有鞍点。 应当至少准务两组测试数据: ①二维数组有鞍点 98020540 90-60961 210-310189 ②二维数组没有鞍点 98020540 90-601961 210-310189 45541567 用scanf函数从键盘输入数组各元素的值,检查结果是否正确。 题目并末指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。 因此,从理论上来说,应当准备许多种不同行数和列数的数组数据,但这样的工作量太大,一般来说不需要这样做,只需准备典型的数据即可。 如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数。 请自己修改程序以实现之。 三、预习内容 预习教材第7章。 四、课外练习 1利用一维数组,统计一个班学生0-9,10-19,..90-99及100各分数段的人数。 2动员成绩排名.设有一表格记录了10人参加的男子100M决赛成绩,运动员号码和成绩自行确定,设计一程序,将给定的成绩排名输出。 3已知某班学生M(M<100)人,其N(N<4)门课程.度按平均成绩输出学生平均成绩名次表(要求每个学生的信息包括: 名次,学号(用整型数),平均成绩等)。 实验5函数 实验 名称: 函数实验项目性质: 上机实验 所涉及课程: 程序设计及C语言计划学时: 4 承担实验室: 计算机实验室实验环境要求: Win98/2K、VC++6.0 适用专业: 计算机科学与技术、电子信息工程、电子信息科学与技术 一、实验目的与要求与要求 1掌握定义函数的方法; 2掌握函数实参与形参的对应关系以及“值传递”的方式; 3掌握函数的嵌套调用和递归调用的方法; 4掌握全局变量和局部变量、动态变量和静态变量的概念和使用方法; 5学习对多文件程序的编译和运行。 二、实验内容 编程序并上机调试运行。 (1)写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。 本程序应当准备以下测试数据: 17、34、2、1、0。 分别输入数据,运行程序并检查结果是否正确。 (2)用一个函数来实现将一行字符串中最长的单词输出。 此行字符串从主函数传递给该函数。 把两个函数放在同一个程序文件中,作为一个文件进行编译和运行。 把两个函烽分别话两个程序文件中,作为两个文件进行编译、连接和运行。 (3)用递归法将一个整数n转换成字符串。 例如,输入483,应输出字符串“483”。 n的位数不确定,可以是任意的整数。 (4)求两个整数的最大公约数和最小公倍数。 用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。 ①不用全局变量,分别用两个函数求最大公约数和最小公倍数。 两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。 ②用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。 将最大公约数和最小公倍数都设为全局变量,在主函数和最小公倍数,但其值不由函数带回。 将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。 (5)写一函数,输入一个十六进制数,输出相应的十进制数。 三、预习内容 预习教材第8章。 四、课外练习 1 编写一函数,用来判断一个一元二次方程aX*X+b*X+c=0是否有实根。 函数的参数是该方程的系数(float型),有实根返回1,否则返回0。 2 编写一函数,求出一个给定数字的所有因子.如72=2*2*2*2*3*3。 3 设计一个求最长单词函数Maxphase(),参数str为字符串,函数声明如下: intMaxphase(charstr[]); 4 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 5 有n个人围成一圈,顺序排号。 从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 实验6指针 实验 名称: 指针实验项目性质: 上机实验 所涉及课程: 程序设计及C语言计划学时: 6 承担实验室: 计算机实验室实验环境要求: Win98/2K、VC++6.0 适用专业: 计算机科学与技术、电子信息工程、电子信息科学与技术 一、实验目的与要求 1通过实验进一步掌握指针的概念,会定义和使用指针变量; 2能正确使用数组的指针和指向数组的指针变量; 3能正确使用字符串的指针和指向字符串的指针变量; 4能正确使用指向函数的指针变量; 5了解指向指针的概念及其使用方法。 二、实验内容 编程序并上机调试运行程序(都要求用指针处理)。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为: 输入三个字符串,按由小到大顺序输出。 (2)将一个3×3的矩阵转置,用一函数实现之。 用主函数中用scanf函数输入以下矩阵元素: 135 7911 131519 将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。 (3)有n个人围成一圈,顺序排号。 从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 语言 实验 指导书