高级语言程序设计C语言实验指导书模板.docx

上传人:b****6 文档编号:8013299 上传时间:2023-01-27 格式:DOCX 页数:76 大小:74.51KB
下载 相关 举报
高级语言程序设计C语言实验指导书模板.docx_第1页
第1页 / 共76页
高级语言程序设计C语言实验指导书模板.docx_第2页
第2页 / 共76页
高级语言程序设计C语言实验指导书模板.docx_第3页
第3页 / 共76页
高级语言程序设计C语言实验指导书模板.docx_第4页
第4页 / 共76页
高级语言程序设计C语言实验指导书模板.docx_第5页
第5页 / 共76页
点击查看更多>>
下载资源
资源描述

高级语言程序设计C语言实验指导书模板.docx

《高级语言程序设计C语言实验指导书模板.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计C语言实验指导书模板.docx(76页珍藏版)》请在冰豆网上搜索。

高级语言程序设计C语言实验指导书模板.docx

高级语言程序设计C语言实验指导书模板

高级语言(C语言)程序设计实验指导书

第一章 前言

一、C语言实验的目的

学习《C程序设计》课程应当熟练地掌握程序设计的全过程,即独立编写源程序、独立上机调试、独立运行程序和分析结果,不能满足于能看懂书上的程序。

上机实验的目的,绝不仅仅是为了验证所编写的程序是否正确,而是为了:

1.加深对讲授内容的理解,尤其是一些语法规定。

通过实验来掌握语法规则是行之有效的方法。

2.熟悉所用的操作系统和相应的上机环境。

3.学会上机调试程序,根据出错信息掌握修改程序的方法。

4.通过调试完善程序。

二、C语言实验前的准备工作

1.了解所用的上机环境(包括C编译系统)的性能和使用方法。

2.复习和掌握与本实验有关的教学内容。

3.准备好上机所需的程序,不要完全复制或抄写别人的程序去上机。

4.对程序中出现的问题应事先估计,对程序中自己有疑问的地方应先作上记号,以便上机时注意。

5.准备好调试程序和运行程序所需的数据。

三、C语言实验的步骤

上机实验原则上应一人一组,独立实验(如果程序太大,也可以2—3人一组)。

上机过程中出现的问题,除了是系统的问题以外,不要轻易举手问老师。

尤其对“出错信息”,应善于分析判断,找出出错的行,然后检查该行或其上一行。

上机实验一般应包括以下几个步骤:

1.双击桌面VisualC++快捷方式进入VisualC++,或通过执行“开始=>程序=>

MicrosoftVisualStudio6.0=>MicrosoftVisualC++6.0”。

2.单击“文件”菜单的“新建”命令。

3.在打开的“新建”对话框中选择“文件”标签。

4.选择C++SourceFile,选择文件保存位置,然后在文件输入栏中输入文件名。

如图所示:

5.输入源程序。

6.编译程序:

按“Ctrl+F7”或通过“编译”菜单中的“编译”命令,或使用工具栏中的相应工具进行编译                 编译   连接  运行

若程序有错则找到出错行修改程序。

7.连接:

若程序没有语法错误,则可按功能键F7或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。

8.运行程序:

按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!

”工具运行程序。

四、写好C语言实验报告

实验报告应包括以下内容:

1.实验目的。

2.实验内容。

3.程序清单。

4.运行结果。

5.对运行结果的分析,以及本次调试程序所取得的经验。

五、C语言实验任务与时间安排 

实验序号

实验内容

拟实验时间

实验

形式

1

VisualC++6.0集成环境的使用

2

验证性

2

基本数据类型与输入输出

2

验证性

3

顺序结构程序设计

2

验证性

4

选择结构程序设计

2

验证性

5

循环结构程序设计

2

验证性

6

数组

5

设计性

7

函数

5

设计性

9

指针

4

设计性

10

结构体

4

设计性

12

文件

2

验证性

 

 

第二章 实验

实验一VisualC++6.0集成环境的使用

1.1实验目的

1.掌握VC6.0集成开发环境的使用方法。

2.了解C语言程序从编辑、编译、连接到运行的全过程

3.掌握C语言程序的结构特征与书写规则

1.2实验要求

1.实验学时:

2学时。

2.使用VisualC++6.0环境编写和调试程序。

3.所有上机题应通过调试,并获得正确的结果。

4.对程序中重要的内容作必要的注释。

1.3实验准备

1.阅读VisualC++6.0集成环境的相关材料。

2.复习C语言程序基本结构与书写规则的有关内容。

1.4实验内容

1.上机调试

(1)请输入以下程序,练习在VisualC++6.0环境下程序的编辑、编译、连接和运行。

#include

voidmain()

{

printf("这是我的第一个程序\n");

}

(2)请说明以下程序的功能,然后上机验证。

#include

voidmain()

{

inta,b,c;

printf("Pleaseinputa,b:

");

scanf("%d%d",&a,&b);/*注意,输入数据时,数据间用空格分隔*/

c=a+b;

printf("%d+%d=%d\n",a,b,c);

}

(3)请说明以下程序的功能,然后上机验证。

#include

floatave(floaty1,floaty2,floaty3)

{

floaty;

y=(y1+y2+y3)/3;

returny;

}

voidmain()

{

floatx,y,z,a;

scanf("%f,%f,%f",&x,&y,&z);/*注意,输入数据时,数据间用逗号分隔*/

a=ave(x,y,z);

printf("%f\n",a);

}

 

2.实验思考

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

#include

voidmain()

{

charc,h;

inti,j;

c='a';

h='b';

i=97;

j=98;

printf("%c%c%c%c\n",c,h,i,j);

printf("%d%d%d%d\n",c,h,i,j);

}

(2)运行下列程序并分析出现的信息提示。

#include

voidmain()

{

inti=23,s;

s=i+j;

printf("s=%d\n",s);

}

 

实验二基本数据类型与输入输出

2.1实验目的

1.掌握C语言基本数据类型以及常量的表示方法、变量的定义与使用规则。

2.掌握C语言的算束运算、逗号运算的运算规则与表达式的书写方法。

3.掌握各种输入输出函数的使用方法。

2.2实验要求

1.实验学时:

2学时。

2.使用VisualC++6.0环境编写和调试程序。

3.所有上机题应通过调试,并获得正确的结果。

4.对程序中重要的内容作必要的注释。

2.3实验准备

1.复习数据类型和运算符的有关概念。

2.复习各种类型常量的表示方法以及变量的概念与命名规则。

3.复习输入输出函数各种格式符的含义与使用规则。

2.4实验内容

1.上机调试(需作出必要的注释!

(1)请说明以下程序的功能,然后上机验证。

#include

voidmain()

{

printf("\t*\n");

printf("\t\b***\n");

printf("\t\b\b*****\n");

}

(2)请说明以下程序的功能,然后上机验证。

#include

voidmian()

{

intx=010,y=10,z=0x10;

charc1='M',c2='\x4d',c3='\115',c4=77,c;

printf("x=%o,y=%d,z=%x\n",x,y,z);

printf("x=%d,y=%d,z=%d\n",x,y,z);

printf("c1=%c,c2=%c,c3=%c,c4=%c\n",c1,c2,c3,c4);

printf("c1=%d,c2=%d,c3=%d,c4=%d\n",c1,c2,c3,c4);

c=c1+32;

print("c=%c,c=%d\n",c,);

}

(3)请说明以下程序的功能,然后上机验证。

#include

voidmain()

{

intm=18,n=13;

floata=27.6,b=5.8,x,;

x=m/2+n*a/b+1/4;

printf("%f\n",x);

}

(4)当输入是8.5,2.5,5,分析程序运行结果,并上机验证。

#include

voidmain()

{

floatx,y;

Intz;

scanf("%f,%f,%d,&x,&x,&z);

y=x-z%2*(int)(x+17)%4/2;

printf("x=%f,y=%f,z=%d\n",x,y,z);

}

 

2.填空题

(1)以下程序输入3个整数值给a,b,c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a,b,c的值。

例如,输入a=10,b=20,c=30,交换后a=20,b=30,c=10。

#include

voidmain()

{

inta,b,c,____________;

printf("Entera,b,c:

");

scanf("%d%d",_________);

______________;

printf("%d,%d,%d",a,b,c);

}

(2)以下程序输入一个大写字母,要求输出对应的小写字母。

#include

voidmain()

{

charupperc,lowerc;

upperc=_____________';

lowerc=_____________;

printf("小写字母");putchar(upperc);

printf("大写字母");putchar(lowerc);putchar('/n');

}

 

3..思考题

(1)分析程序,写出运行结果,并上机验证

#include

voidmain()

{

charc1='a',c2='b',c3='c',c4='\101',c5=101;

printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);

printf("\t\b%c%c".c4,c5);

c4=65535;

c5=-1.2345;

printf("%d%d",c4,c5);

}

(2)分析程序,写出运行结果,并上机验证

#include

voidmain()

{

inti=3,j=5,k,l,m=19,n=-56;

k=++i;

l=j++;

m=i++;

n-=--j;

printf("%d,%d,%d,%d,%d,%d,\n",ij,k,l,m,n)

}

(3)分析程序,写出运行结果,并上机验证

#include

voidmain()

{

floatr,h,pi=3.1415926;

floatc0,s0,s,v;

printf("inputr,h(m):

");

scanf("%f,%f",&r,&h);

c0=2*pi*r;

s0=c0*h+2*s0;

s=c0*h+2*s0;

v=pi*r*r*h;

printf("c0=%.2f(m)\ns0=%.2f\ns(m20\nv=%.2f(m3)\n",c0,s0,s,v);

}

 

实验三顺序结构程序设计

3.1实验目的

1.熟练掌握格式输入与格式输出函数与各种格式符的使用;

2.掌握各类数据输入/输出的实现方法;

3.学习完成简单的顺序结构程序设计。

3.2实验要求

1.实验学时:

2学时。

2.使用VisualC++6.0环境编写和调试程序。

3.所有上机题应通过调试,并获得正确的结果。

4.对程序中重要的内容作必要的注释。

3.3实验准备

1.复习格式输入、输出语句的使用。

2.复习各类输入、输出语句。

3.复习简单的顺序程序设计的基本方法。

3.4实验内容

1.上机调试(需作出必要的注释!

(1)输入三角形的三边长,求三角形面积。

为简单起见,设输入的三边长a、b、c能构成三角形。

从数学知识已知求三角形面积的公式为area=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2

  #include<math.h>

main()

floata,b,c,s,area;

scanf("%f,%f,%f",&a,&b,&c);

s=1.0/2(a+b+c);

area=sqrt(s(s-a)(s-b)(s-c));

printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);

printf("area=%7.2f\n",area);

(2)求ax2+bx+c=0方程的根。

a,b,c由键盘输入,设b2-4ac>0。

众所周知,一元二次方程式的根为x1=-b+b2-4ac2ax2=-b-b2-4ac2a,可以将上面的分式分为两项:

p=-b2a,q=b2-4ac2a,x1=p+q,x2=p-q

  #include<math.h>

main();

floata,b,c,disc,x1,x2,p,q;

 scanf("a=%f,b=%f,c=%f",&a,&b,&c);

 disc=b*b-4*a*c;

 p=-b/(2*a); 

q=sqrt(disc)/(2*a);

x1=p+q; x2=p-q;

 printf("\n\nx1=%5.2f\nx2=%5.2f\n",x1,x2);

 

2.填空题

(1)已有如下定义和输入语句,若要求a,b,c1,c2的值分别为5、6、A和B,当从第一列开始输入数据时,正确的数据输入方式是______(表示回车)。

inta,b;

charc1,c2;

scanf("%d%c%d%c",&a,&c1,&b,&c2);

A)5A6BB)5A6BC)5A6BD)5A6B

(2)以下说法正确的是_______。

A)输入项可以为一个实型常量,如scanf(“%f”,3.5);

B)只有格式控制,没有输入项,也能正确输入,如scanf(“a=%d,b=%d”);

C)当输入实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);

D)当输入数据时,必须指明地址,如scanf(“%f”,&f);

E)可以采用不同的格式符,实现对一个实型数据以八进制或十六进制形式输入/输出。

F)整型数据不能使用%f或%lf格式符。

(3)若a是int型变量,则表达式(a=5*6,a*3),a+8的值是_________。

(4)若有定义:

intb=7;floata=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为_____。

(5)输出长整型数据使用格式符_______,输出无符号的整数用格式符_____,以指数形式输出单精实数用格式符______。

(6)下面程序运行时输入:

1011<回车>,输出__________。

#include

voidmain()

{inta,b;

scanf("%o%x",&a,&b);

printf("a=%d,b=%d\n",a,b);

}

(7)下面程序段执行时,怎样输入才能让a=10,b=20?

__________________

inta,b;

scanf("a=%d,b=%d",&a,&b);

(8)若a和b均为int变量,以下语句的功能是_____________。

a+=b;b=a-b;a-=b;

(9)在scanf函数调用中,可以在格式字符和%之间加一星号*,它的作用是________。

(10)a++、++a、a=a+1都能实现使变量a的值增1,与之等效的表达式还有__________

3.编程题

下面程序功能:

键盘输入一个三位数,输出逆序后的数。

例如,输入236,输出632。

程序中有多处错误,改正后在机器上调试通过。

#include

voidmain()

{intx,inty;

inta,b,c;

a=x/100;

b=x/10%10;

c=x%10;

printf("Pleaseinputanum:

");

scanf("%d",&x);

y=100c+10b+a;

printf("y=%d\n",y);

4.思考题

如果输入的数据可以是任意大小的数,并不限制一定是一个三位数,怎样才能将该数逆序并输出?

 

实验四选择结构程序设计

4.1实验目的

1.掌握C语言的关系表达式和逻辑表达式的运算规则与书写方法。

2.掌握各种类型的if语句和switch语句的使用方法。

3.熟悉选择结构程序设计的方法。

4.2实验要求

1.实验学时:

2学时。

2.使用VisualC++6.0环境编写和调试程序。

3.所有上机题应通过调试,并获得正确的结果。

4.对程序中重要的内容作必要的注释。

4.3实验准备

1.复习关系运算符与关系表达式、逻辑运算符与逻辑表达式的相关内容。

2.复习if语句和switch语句的格式与执行过程。

4.4实验内容

1.上机调试(需作出必要的注释!

(1)先静态分析一下程序的运行结果,然后上机验证。

#include

voidmain()

{

inta=3,b=4,c=5,x,yz;

x=c,b,a;

y=!

a+b

=c);

z=c/b+((float)a/b&&(float)(a/c);

printf("\nx=%d,y=%d,z=%d",x,y,z);

x=a||b--;

y=a-3&&c--;

z=a-3&&b;

printf("\n%d,%d,%d,%d,%d,%d",a,b,c,x,y,z);

}

(2)输入三个整数x,y,z,请把这三个数由小到大输出。

(我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

#include

voidmain()

{

intx,y,z,t;

scanf("%d%d%d",&x,&y,&z);

if(x>y)

 {t=x;x=y;y=t;}/*交换x,y的值*/

if(x>z)

 {t=z;z=x;x=t;}/*交换x,z的值,此时则x获最小值*/

if(y>z)

 {t=y;y=z;z=t;}/*交换z,y的值*/

printf("smalltobig:

%d%d%d\n",x,y,z);

}

 

2.编程题

(1)已知某公司员工的保底薪水为500,某月所接工程的利润profit(整数)与利润提成的关系如下(单位:

元):

profit≤1000没有提成

1000<profit≤2000提成10%

2000<profit≤5000提成15%

5000<profit≤10000提成20%

10000<profit提成25%

请打印员工实际薪水。

#include

voidmain()

{

intgrade,profit;

floatsalary=500;

printf("Inputprofit:

");

scanf("%d",&profit);

grade=(profit-1)/1000;

switch(grade)

{case0:

break;

case1:

salary+=profit*0.1;break;

case2:

case3:

case4:

salary+=profit*0.15;break;

case5:

case6:

case7:

case8:

case9:

salary+=profit*0.2;break;

default:

salary+=profit*0.25;

}

printf("salary=%.0f\n",salary);

}

请按一下步骤实习思考:

(调试并注释)

①分析程序中的switch结构。

重点学习case标号的设计,本例将利润与提成的关系转换成整数的方法是,由于提成的变化点都是1000的整数被(1000、2000、5000、……),同时为了解决相邻两个区间重叠问题,因此采用将利润porfit先减1(最小增量),然后再整除1000.

②输入并运行程序,用不同的利润去检验运行结果,如果结果不正确,请找出原因,改正后重新运行,直到结果正确为止。

③若没有break;结果如何?

 

3.思考题

已知银行整存整取存款不同期限的月息利率分别为:

0.63%期限1年

0.66%期限2年

月息利率=0.69%期限3年

0.75%期限5年

0.84%期限8年

要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

 

实验五循环结构程序设计

5.1实验目的

1.掌握语句、语句和语句实现循环的使用方法。

2.掌握循环语句实现一些常用的算法。

3.熟悉程序的跟踪调试技术。

5.2实验要求

1.实验学时:

2学时。

2.使用VisualC++6.0环境编写和调试程序。

3.所有上机题应通过调试,并获得正确的结果。

4.对程序中重要的内容作必要的注释。

5.可以用断点调试法完成部分上机调试题,并观察运行过程。

5.3实验准备

1.复习while语句、do…while语句、fo语句、continue语句和beeak语句的格式与执行过程。

2.复习一些常用的算法,并总结它们的设计方法和思路。

3.阅读“程序调试与测试”的相关内容。

5.4实验内容

1.上机调试(需作出必要的注释!

(1)求n!

提示:

(1)注意结果的取值范围!

(2)3中循环方式由你选择!

也可以用两种方法做。

(3)程序的简单验证:

正确结果应是:

3!

=6。

5!

=120。

8!

=40320注可用单步跟踪(F10)观测循环语句的执行过程。

(4)提示案例:

(例3.7)用while语句来实现1*2*3*…*10的乘积。

#include

voidmain()

{

inti=1,mul=1;

while(i<=10)/*用while语句求1*2*3*…*10的乘积*/

{

mul=mul*i;

i++;

}

printf("\n%ld\n",mul);

}

(2)求5个数的和及平均值的程序代码如下:

#include

voidmain()

{

inta;

floatb,sum;

for(a=1,sum=0.0;a<6;a++)

{

printf(“pleaseinputNO:

%d\n”,a);

scanf("%f",&b);/*从键盘上输入5个数*/

sum+=b;/*求输入的5个数的加和*/

}

prin

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

当前位置:首页 > 解决方案 > 学习计划

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

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