12级C语言程序设计实验指导书.docx

上传人:b****0 文档编号:8966703 上传时间:2023-05-16 格式:DOCX 页数:40 大小:240.47KB
下载 相关 举报
12级C语言程序设计实验指导书.docx_第1页
第1页 / 共40页
12级C语言程序设计实验指导书.docx_第2页
第2页 / 共40页
12级C语言程序设计实验指导书.docx_第3页
第3页 / 共40页
12级C语言程序设计实验指导书.docx_第4页
第4页 / 共40页
12级C语言程序设计实验指导书.docx_第5页
第5页 / 共40页
12级C语言程序设计实验指导书.docx_第6页
第6页 / 共40页
12级C语言程序设计实验指导书.docx_第7页
第7页 / 共40页
12级C语言程序设计实验指导书.docx_第8页
第8页 / 共40页
12级C语言程序设计实验指导书.docx_第9页
第9页 / 共40页
12级C语言程序设计实验指导书.docx_第10页
第10页 / 共40页
12级C语言程序设计实验指导书.docx_第11页
第11页 / 共40页
12级C语言程序设计实验指导书.docx_第12页
第12页 / 共40页
12级C语言程序设计实验指导书.docx_第13页
第13页 / 共40页
12级C语言程序设计实验指导书.docx_第14页
第14页 / 共40页
12级C语言程序设计实验指导书.docx_第15页
第15页 / 共40页
12级C语言程序设计实验指导书.docx_第16页
第16页 / 共40页
12级C语言程序设计实验指导书.docx_第17页
第17页 / 共40页
12级C语言程序设计实验指导书.docx_第18页
第18页 / 共40页
12级C语言程序设计实验指导书.docx_第19页
第19页 / 共40页
12级C语言程序设计实验指导书.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

12级C语言程序设计实验指导书.docx

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

12级C语言程序设计实验指导书.docx

12级C语言程序设计实验指导书

C语言程序设计实验指导书

实验一:

C语言的运行环境及运行C程序的方法(2学时)

一、实验目的和要求:

(1)了解所用的计算机系统的基本操作方法,学会使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个C程序。

(3)通过运行简单的C程序,初步了解C程序的特点。

二、实验内容:

(1)检查所用的计算机系统。

(2)进入VC++6.0的工作环境。

(3)熟悉VC++6.0集成环境。

(4)输入并运行几个简单的C程序。

三、实验步骤、过程:

1、启动操作系统,查找VC++6.0集成开发环境的安装位置(路径)。

例如:

桌面\VC++6.0。

2、创建、进入用户目录。

(1)创建以学号为目录名的用户目录,并记录该目录,比如:

您的学号是20085021,那么就创建D:

\20085021这个目录;

(2)查看目录是否创建好;

(3)进入您的用户目录;

注意:

以后您的C程序请保存在此目录下!

3、退出VC++6.0集成开发环境。

(1)退出VC++6.0集成开发环境。

File菜单下的Exit退出VC++6.0集成开发环境;

(2)再次启动VC++6.0环境。

4、建立工程

(1)单击文件(file)\新建(new)

(2)选中工程(Projects)属性(倒数第三个)

(3)给工程命名,并选择合适的存储位置(路径),点击确定(OK)

(3)点击完成(Finish)

(4)工程建好了

Sourcefiles文件夹可以存放.C文件

Headerfiles文件夹可以存放.h文件(其它主程序要引用的函数或数据)

Resourcefiles文件夹回收站

5、新建源文件

(1)单击文件菜单\新建选中文件中的TEXT文件在添加到工程(Addtoproject)前打勾;给文件命名(示例中为exam1.c);点击OK。

(2)文件建好了(图中文件已添加到SourceFiles文件夹下,单击exam.c文件,可在右方空白处输入(编辑)源程序了)

6、程序调试

源文件编辑好了,可以依次进行编译、连接和执行等步骤。

每个步骤可能有错,根据信息提示栏的提示信息进行修改,直到可以执行结果和达到预期目标。

(1)

编译、

连接和

执行快捷按钮

(2)信息提示栏

四、源程序清单、测试数据、结果:

1、最简单的C程序。

(要求文件名:

1_1.c)

#include

main()

{printf(“Helloworld!

\n”);

}

2、一个具有致命语法错的程序,请修改。

(要求文件名:

1_2.c)

#include

main()

{inti=9

printf(“i=%d\n”,i)

}

3、一个具有警告语法错的程序。

(要求文件名:

1_3.c)

#include

main()

{

inti=9,j,s;

s=i+j;

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

}

五、实验小结和思考

1、您自己的系统上VC++6.0安装目录在哪里?

VC++6.0集成开发环境程序名是什么?

2、与C语言程序直接相关的几种文件及扩展名分别是什么?

答:

C语言源程序、目标程序、可执行程序,其后缀分别为*.c,*.obj,*.exe。

3、C语言程序主要的实现过程?

答:

分为编辑、编译、连接、运行四个阶段。

其中,开发环境中,编辑完成后,可以直接启动运行,但分解的阶段仍然是四个,前面阶段未完成,程序仍然不能运行。

4、C语言程序主要的错误?

答:

程序错误分为:

●语法错误:

编译系统可以协助查找出来的语法上的错误。

语法错还包括:

致命错Error/和警告错Warning。

致命错必须修改!

,警告错可以不修改,但常常暗示程序存在问题。

逻辑错误:

运行结果与预期不符,与程序算法逻辑相关的错误。

实验二:

数据类型、运算符和表达式(2学时)

一、实验目的和要求:

(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。

(2)掌握不同的类型数据之间赋值的规律。

(3)学会使用C的算术运算符,以及包含这些运算符的表达式,特别是自增(++)和自减(――)运算符的使用。

(4)进一步熟悉C程序的编辑、编译、连接和运行的过程。

二、实验内容:

(1)进一步熟悉VC++6.0集成环境。

(2)输入并运行几个C程序,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。

(3)输入并运行几个C程序,掌握不同的类型数据之间赋值的规律。

(4)输入并运行一个C程序,熟悉自加和自减运算符的使用方法。

三、实验步骤、过程:

1、启动VC++6.0集成开发环境。

(方法与实验1相同)

2、完成或选做以下5个程序题。

(编辑、编译连接、运行程序,步骤与实验1相同)

注意:

经常用“File”-“Save”保存源程序以免意外导致源程序丢失。

3、退出VC++6.0集成开发环境,关机。

四、源程序清单、测试数据、结果。

(注释供阅读、理解程序,上机时不必输入)

1、写出一个程序测试整型、字符型数据表示,并输出以验证是否正确。

(要求文件名:

2_1.c)

#include

main()

{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);

/*数据以原进制输出,注意是否有前导0或0x*/

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

/*数据以10进制输出,换算到10进制,结果对吗?

*/

/*字符型数据的输出*/

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

/*数据以原进制输出,注意是否有前导0或0x?

*/

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);

/*看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符*/

/*字符型数据参与算术运算*/

c=c1+32;/*字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数

/*参与数学运算;结果还是一个整数-另外一个字符的ASCII码*/

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

/*看看这个字符是什么?

哇,'M'+32='m'了,看看ASCII码表,原来如此!

*/

}

参考结果:

x=10,y=10,z=10

x=8,y=10,z=16

c1=M,c2=4d,c3=115,c4=77

c1=M,c2=M,c3=M,c4=M

c1=77,c2=77,c3=77,c4=77

c=m,c=109

2、整型数据的溢出错误。

(要求文件名:

2_2.c)

整型(int型)数据的表达范围是-32768~32767,如果最大允许值32767+1,最小允许值-32768-1,会出现什么情况?

#include

main()

{

inta,b;

a=32767;

b=a+1;

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

a=-32768;

b=a-1;

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

getch();//获得键盘击键,起到暂停程序运行作用,目的是保留用户屏幕,便于查看结果。

}

参考结果:

a=32767,a+1=-32768

a=-32768,a-1=32767

3、实型数据的舍入误差。

(要求文件名:

2_3.c)

实型变量只能保证7位有效数字,后面的数字无意义

#include

main()

{floata,b;

a=123456.789e5;

b=a+20;

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

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

}

参考结果:

a=12345678848.000000,b=12345678848.000000

a=1.23457e+10,b=1.23457e+10

4、已知:

a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮点),计算算术表达式(float)(a+b)/2+(int)x%(int)y的值。

试编程上机验证。

(要求文件名:

2_4.c)

提示编程要点:

(1)先判断结果值类型,可设置一个此类型的变量用于记录表达式结果,本例用r存放结果;

(2)程序先给几个条件变量赋初值,然后将表达式赋值给变量r;

(3)最后打印变量r的值就是表达式的值。

参考程序:

#include

main()

{inta=2,b=3;

floatx=3.9,y=2.3;

floatr;

r=(float)(a+b)/2+(int)x%(int)y;

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

}

参考结果:

3.500000

思考:

为什么是这个结果?

5、分析下面程序结果,并上机验证。

(要求文件名:

2_5.c)

#include

main()

{inti,j,m,n;

i=8;j=10;

m=++i;

n=j++;

printf("i=%d,j=%d,m=%d,i=%d\n",i,j,m,n);

}

参考结果:

i=9,j=11,m=9,i=10

实验三:

简单的程序设计及逻辑结构程序设计(2学时)

一、实验目的和要求:

(1)掌握C语言中使用最多的一种语句——赋值语句的使用方法。

(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

(3)了解C语言表示逻辑量的方法。

(4)学会正确使用逻辑运算符和逻辑表达式。

(5)熟练掌握if语句和switch语句。

二、实验内容:

可选做以下题目:

(1)掌握各种格式转换符的正确使用方法。

(2)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

(3)编程序:

给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。

90分以上为A,81~89分为B,70~79分为C,60~69分为D,60分以下为E。

(4)编程序:

输入一个不多于5位的正整数,要求:

①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字。

三、实验步骤、过程:

(1)启动VC++6.0集成开发环境。

(方法与实验1相同)

(2)完成或选做上面4个程序题。

(编辑、编译连接、运行程序,步骤与实验1相同)

注意:

经常用“File”-“Save”(热键Ctrls)保存源程序以免意外导致源程序丢失。

(3)退出VC++6.0集成开发环境,关机。

四、源程序清单、测试数据、结果。

(1)掌握各种格式转换符的正确使用方法。

请分析下列程序功能,并上机验证结果。

参考结果:

main()

{inta=5,b=7;

floatx=67.8564,y=-789.124;

charc='A';

longn=1234567;

unsignedu=65535;

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

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

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

printf("%-10f,%-10f\n",x,y);

printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);

printf("%e,%10.2e\n",x,y);

printf("%c,%d,%o,%x\n",c,c,c,c);

printf("%ld,%lo,%x\n",n,n,n);

printf("%u,%o,%x,%d\n",u,u,u,u);

printf("%s,%5.3s\n","COMPUTER","COMPUTER");

}

参考结果:

main()

{inta,b;

floatx,y;

charc1,c2;

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

scanf("%f%e",&x,&y);

scanf("%c%c",&c1,&c2);

}

 

(2)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。

(要求文件名:

3_2.c)

参考程序:

#include

main()

{charc1,c2;

c1=getchar();c2=getchar();

putchar(c1);putchar(c2);

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

}

(3)编程序:

给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。

90分以上为A,81~89分为B,70~79分为C,60~69分为D,60分以下为E。

(要求文件名:

3_3.c)

参考程序:

#include"stdio.h"

main()

{intscore,s;

chargrade;

printf("pleaseinputscore:

");

scanf("%d",&score);

s=score/10;

switch(s)

{case10:

case9:

grade='A';break;

case8:

grade='B';break;

case7:

grade='C';break;

case6:

grade='D';break;

case5:

case4:

case3:

case2:

case1:

case0:

grade='E';break;

}

printf("score=%d,grade=%c\n",score,grade);

}

(4)编程序:

输入一个不多于5位的正整数,要求:

①求出它是几位数,并输出;②分别输出每一位数字;③按逆序输出各位数字。

(要求文件名:

3_4.c)

参考程序:

main()

{longa,b,c,d,e,num;

scanf("%ld",&num);

if(num>=0&&num<=99999)

{a=num/10000;

b=num%10000/1000;

c=num%10000%1000/100;

d=num%10000%1000%100/10;

e=num%10000%1000%100%10;

if(a!

=0)

printf("5=%ld,%ld,%ld,%ld,%ld",a,b,c,d,e);

elseif(b!

=0)

printf("4=%ld,%ld,%ld,%ld",b,c,d,e);

elseif(c!

=0)

printf("3=%ld,%ld,%ld",c,d,e);

elseif(d!

=0)

printf("2=%ld,%ld",d,e);

elseif(e!

=0)

printf("1=%ld",e);

else

printf("0=0");

}

}

实验四:

循环控制程序设计(2学时)

一、实验目的和要求:

(1)结合程序掌握一些简单的循环语句的算法。

(2)熟悉掌握用while语句,do-while语句和for语句实现循环的方法。

(3)掌握在程序设计中用循环的方法实现一些常用算法。

二、实验内容:

(可选做以下题目)

(1)输入两个正整数m和n,求它们的最大公约数和最小公倍数。

(2)从键盘输入一个int类型的正整数,输出它的所有因子。

如输入6,输出1,2,3;输入20,输出1,2,4,5,10。

(3)输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。

(4)输出100到1000之间的所有水仙花数。

(5)猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩一个桃子了。

求第一天共摘了多少桃子。

三、实验步骤、过程:

(1)启动VC++6.0集成开发环境。

(方法与实验1相同)

(2)完成或选做上面5个程序题。

(编辑、编译连接、运行程序,步骤与实验1相同)

注意:

经常用“File”-“Save”保存源程序以免意外导致源程序丢失。

(3)退出VC++6.0集成开发环境,关机。

四、源程序清单、测试数据、结果。

(1)输入两个正整数m和n,求它们的最大公约数和最小公倍数。

(要求文件名:

4_1.c)

参考程序:

#include

main()

{intx,y,i,m,max;

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

if(x>y)

m=x;

else

m=y;

for(i=1;i<=m;i++)

{if((x%i==0)&&(y%i==0))

max=i;

}

printf("%d\n",max);

printf("%d\n",x*y/max);

}

(2)从键盘输入一个int类型的正整数,输出它的所有因子。

如输入6,输出1,2,3;输入20,输出1,2,4,5,10。

(要求文件名:

4_2.c)

参考程序:

#include

main()

{intx,i;

scanf("%d",&x);

for(i=1;i

{if(x%i==0)

printf("%d\n",i);}

}

(3)输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。

(要求文件名:

4_3.c)

参考程序:

#include

#include

main()

{charc;

intletter=0,digit=0,space=0,other=0;

printf("pleaseinputstring:

");

while((c=getchar())!

='\n')

{if(c>='a'&&c<='z'||c>='A'&&c<='Z')

letter++;

elseif(c>='0'&&c<='9')

digit++;

elseif(c=='')

space++;

elseother++;

}

printf("%d,%d,%d,%d\n",letter,digit,space,other);

}

(4)输出所有的“水仙花数”。

所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。

(要求文件名:

4_4.c)

参考程序:

#include

main()

{intge,shi,bai,number;

for(number=100;number<1000;number++)

{bai=number/100;

shi=(number%100)/10;

ge=number%10;

if(number==bai*bai*bai+shi*shi*shi+ge*ge*ge)

printf("\nnumber=%d\n",number);

}

}

(5)猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩一个桃子了。

编程序求第一天猴子共摘了多少桃子。

(要求文件名:

4_5.c)

参考程序:

#include

main()

{intday,qian,hou=1;

for(day=9;day>=1;day--)

{qian=(hou+1)*2;

hou=qian;

}

printf("%d\n",qian);

}

 

实验五:

数组(2学时)

一、实验目的和要求:

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

(2)掌握字符数组和字符串的使用方法。

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

二、实验内容:

可选做以下题目:

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

(2)有一个已排好序的数组,今输入一个数,要求按原来排序的规律将该数插入到数组中。

(3)将两个字符串连接起来。

(4)编程序找出一个5X4矩阵的鞍点。

鞍点即矩阵中的某个元素符合如下条件:

在其所在行最大,同时在其所在列是最小,当然一个矩阵可能也没有鞍点。

三、实验步骤、过程:

(1)启动VC++6.0集成开发环境。

(方法与实验1相同)

(2)完成或选做上面4个程序题。

(编辑、编译连接、运行程序,步骤与实验1相同)

注意:

经常用“File”-“Save”保存源程序以免意外导致源程序丢失。

(3)退出VC++6.0集成开发环境,关机。

四、源程序清单、测试数据、结果。

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

(要求文件名:

5_1.c)

参考程序:

(选择法)

#include

main()

{intr[9]={0,49,38,65,07,76,13,27,33};

inti,j,k,temp;

for(i=1;i<9-1;i++)

{k=i;

for(j=i+1;j<9;j++)

if(r[j]

k=j;

temp=r[i];r[i]=r[k];r[k]=temp;

}

for(i=1;i<9;i++)

printf("%d\t",r[i]);

}

(2)有一个已排好序的数组,今输入一个数,要求按原来排序的规律将该数插入到数组中。

(要求文件名:

5_2.c)

参考程序:

#include

main()

{inta[10]={1,3,6,9,11,26,55,79,123},num,i,j;

scanf("%d",&num);

for(i=8;i>=0;i--)

{if(num

a[i+1]=a[i];

else

break;

}

a[i+1]=num;

for(i=0;i<=9;i++)

printf("%4d",a[i]);

printf("\n");

}

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

(要求文件名:

5_3.c)

参考程序:

#include

main()

{chara1[100],a2[50];

inti,j;

scanf("%s",a

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

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2