程序设计及C语言实验指导书Word文件下载.docx

上传人:b****4 文档编号:17837702 上传时间:2022-12-11 格式:DOCX 页数:23 大小:232.31KB
下载 相关 举报
程序设计及C语言实验指导书Word文件下载.docx_第1页
第1页 / 共23页
程序设计及C语言实验指导书Word文件下载.docx_第2页
第2页 / 共23页
程序设计及C语言实验指导书Word文件下载.docx_第3页
第3页 / 共23页
程序设计及C语言实验指导书Word文件下载.docx_第4页
第4页 / 共23页
程序设计及C语言实验指导书Word文件下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

程序设计及C语言实验指导书Word文件下载.docx

《程序设计及C语言实验指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《程序设计及C语言实验指导书Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。

程序设计及C语言实验指导书Word文件下载.docx

④输入路径名。

在“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<

stdio.h>

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”选项,打开一个已经存在的源文件。

⑤新建一个工程(为该工程取一个名),并创建一个新的源程序文件,输入以下程序(故意漏打或打错几个字符)。

{

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)编辑并运行以下程序

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)输入并运行下面的程序

charc1,c2;

c1=′a′;

c2=′b′;

printf("

%c%c\n"

c1,c2);

}

①运行此程序。

②在此基础上增加一个语句:

printf("

%d%d\n"

再运行,并分析结果。

③将第2行改为:

intc1,c2;

再使之运行,并观察结果。

④再将第3、4行改为:

c1=a;

/*不用单撇号*/

c2=b;

现使之运行,分析其运行结果。

⑤再将第3、4行改为:

c1="

a"

/*用双撇号*/

c2="

b"

再使之运行,分析其运行结果。

⑥再将第3、4行改为:

cl=300;

/*用大于255的整数*/

c2=400;

(2)输入并运行以下程序

charcl=′a′,c2=′b′,c3=′c′,c4=′\101′,c5=116′

a%cb%c\tc%c\tabc\n"

cl,c2,c3);

\t\b%c%c"

c4,c5);

在上机前先用人工分析程序,写出应得结果,上机后将二者对照。

(3)输入并运行下面的程序

shortinta,b;

unsignedc,d;

longe,f;

a=100;

b=-100;

e=50000;

f=32767;

c=a;

d=b;

%d,%d\n"

a,b);

%u,%u\n"

c,d);

c=a=e;

d=b=f;

请对照程序和运行结果分析:

①将一个负整数赋给一个无符号的变量,会得到什么结果。

画出它们在内存中的表示形式。

②将一个大于32767的长整数赋给整型变量,会得到什么结果。

画出它们的内存中的表示形式。

③将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535以及小于65535的情况)。

读者可以改变程序中各变量的值,以便比较。

例如:

a=65580,b=-40000,e=65535,f=65580。

(4)输入以下程序

inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

%d,%d,%d,%d"

i,j,m,n);

①运行程序,注意i、j、m、n各变量的值,分别作以下改动并运行。

②将第4、5行改为:

m=i++;

n=++j;

再运行。

③将程序改为:

inti,j;

%d,%d"

i++,j++);

④在③的基础上,将printf语句改为:

++i,++j);

⑤再将printf语句改为:

i,j,i++,j++);

⑥将程序改为

inti,m=0,n=0;

m+=i++;

n-=--j;

i=%d,j=%d,m=%d,n=%d"

五、课外练习

输入a、b、c三个值,输出其中最大者。

实验2选择分支结构程序设计

选择分支结构程序设计实验项目性质:

2

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循环结构程序设计

循环结构程序设计实验项目性质:

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数组的应用

数组的应用实验项目性质:

1掌握一维数组和二维数组的定义、赋值和输入输出的方法;

2掌握字符数组和字符串函数的使用;

3掌握与数组有关的算法(特别是排序算法)。

(1)用选择法对10个整数排序。

10个整数用scanf函数输入。

(2)有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。

如果该数不在数组中,则输出“无此数”。

以15个数用赋初值的方法在程序中给出。

要找的数用函数输入。

(3)将两个字符串连接起来,不要用函数。

(4)找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。

也可能没有鞍点。

应当至少准务两组测试数据:

①二维数组有鞍点

98020540

90-60961

210-310189

②二维数组没有鞍点

90-601961

45541567

用scanf函数从键盘输入数组各元素的值,检查结果是否正确。

题目并末指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。

因此,从理论上来说,应当准备许多种不同行数和列数的数组数据,但这样的工作量太大,一般来说不需要这样做,只需准备典型的数据即可。

如果已指定了数组的行数和列数,可以在程序中对数组元素赋初值,而不必用scanf函数。

请自己修改程序以实现之。

预习教材第7章。

1利用一维数组,统计一个班学生0-9,10-19,..90-99及100各分数段的人数。

2动员成绩排名.设有一表格记录了10人参加的男子100M决赛成绩,运动员号码和成绩自行确定,设计一程序,将给定的成绩排名输出。

3已知某班学生M(M<

100)人,其N(N<

4)门课程.度按平均成绩输出学生平均成绩名次表(要求每个学生的信息包括:

名次,学号(用整型数),平均成绩等)。

实验5函数

函数实验项目性质:

一、实验目的与要求与要求

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指针

指针实验项目性质:

6

1通过实验进一步掌握指针的概念,会定义和使用指针变量;

2能正确使用数组的指针和指向数组的指针变量;

3能正确使用字符串的指针和指向字符串的指针变量;

4能正确使用指向函数的指针变量;

5了解指向指针的概念及其使用方法。

编程序并上机调试运行程序(都要求用指针处理)。

(1)输入三个整数,按由小到大的顺序输出,然后将程序改为:

输入三个字符串,按由小到大顺序输出。

(2)将一个3×

3的矩阵转置,用一函数实现之。

用主函数中用scanf函数输入以下矩阵元素:

135

7911

131519

将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。

(3)有n个人围成一圈,顺序排号。

从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最

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

当前位置:首页 > 医药卫生 > 药学

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

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