《C语言实验指导书》.docx

上传人:b****6 文档编号:13593334 上传时间:2023-06-15 格式:DOCX 页数:19 大小:81.06KB
下载 相关 举报
《C语言实验指导书》.docx_第1页
第1页 / 共19页
《C语言实验指导书》.docx_第2页
第2页 / 共19页
《C语言实验指导书》.docx_第3页
第3页 / 共19页
《C语言实验指导书》.docx_第4页
第4页 / 共19页
《C语言实验指导书》.docx_第5页
第5页 / 共19页
《C语言实验指导书》.docx_第6页
第6页 / 共19页
《C语言实验指导书》.docx_第7页
第7页 / 共19页
《C语言实验指导书》.docx_第8页
第8页 / 共19页
《C语言实验指导书》.docx_第9页
第9页 / 共19页
《C语言实验指导书》.docx_第10页
第10页 / 共19页
《C语言实验指导书》.docx_第11页
第11页 / 共19页
《C语言实验指导书》.docx_第12页
第12页 / 共19页
《C语言实验指导书》.docx_第13页
第13页 / 共19页
《C语言实验指导书》.docx_第14页
第14页 / 共19页
《C语言实验指导书》.docx_第15页
第15页 / 共19页
《C语言实验指导书》.docx_第16页
第16页 / 共19页
《C语言实验指导书》.docx_第17页
第17页 / 共19页
《C语言实验指导书》.docx_第18页
第18页 / 共19页
《C语言实验指导书》.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《C语言实验指导书》.docx

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

《C语言实验指导书》.docx

《C语言实验指导书》

C语言程序设计

实验指导书

(修订1)

张红梅编著

 

安徽电子信息职业技术学院

计算机科学系

2006年7月1日

目录

实验1运行简单的C程序2

实验2练习使用算术运算符5

实验3使用输入、输出函数6

实验4循环语句的使用——猜数字游戏7

实验5模拟ATM取款机界面8

实验6二维数组的应用9

实验7函数参数的传递10

实验8嵌套与递归调用的实现12

实验9结构体和共用体13

实验10文件15

 

实验1运行简单的C程序

一.实训目的:

1、熟悉TC运行环境

2、练习简单C程序的编写

3、熟练掌握C程序的上机运行步骤

二.实训内容:

1.实验要求:

编程求37+29的值,熟悉TC运行环境

2.分析与设计:

编写一个main()函数,将数据37和29分别用变量保存,然后用另一个变量存放两个变量的和,最后将和变量的值输出。

3.源代码:

main()

{

inta,b,sum;

a=37;

b=29;

sum=a+b;

printf(“sum=%d”,sum);

}

在TC环境中输入上面的代码后,先编译、连接,再保存,然后再运行。

具体操作步骤如下所示:

(1)编译

(2)连接

 

(3)保存F2

(4)运行CTRL+F9

(5)运行结果ALT+F5

按任意键返回

注意:

1、第

(1)步和第

(2)步可以合起来操作,使用快捷键F9

2、程序比较大时,最好边输入代码,边保存,以防止意外情况的发生。

 

实验2练习使用算术运算符

一.实训目的:

1.练习使用基本类型的变量进行编程

2.练习使用C的运算符

二.实训内容:

1.实验要求:

熟练使用运算符(%,++,--)

2.分析与设计:

求余运算符要求两个操作数都必须是整数;++和--要看清是先使用还是先自增(减)

3.源代码:

程序1:

取出一个三位整数的各个位,并输出

main()

{intx=123;charc1,c2,c3;

c1=x%10;

c2=x/10%10;

c3=x/100;

printf(“%d,%d,%d\n”,c3,c2,c1);

}

运行结果为:

1,2,3

程序2:

练习自增和自减运算符的使用

main()

{intx=2,y,z;

y=(++x)+(x++)+(++x);

z=(x--)+(--x)+(x--);

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

}

运行结果:

x=2,y=12,z=12

 

实验3使用输入、输出函数

一.实训目的:

熟练使用格式输出函数printf()和格式输入函数scanf()

二.实训内容:

1.实验要求:

格式输入函数scanf()和格式输出函数printf()的使用

2.分析与设计:

输入函数中的普通字符需要原样输入,并注意分隔符的使用;输出函数中的格式控制符和输出项数要一一对应。

3.源代码:

程序1:

为使得a=1,b=2,c=‘A’,d=5.5,在键盘上如何输入?

#include

main()

{inta,b;

charc;

floatd;

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

scanf(“%c%e\n”,&c,&d);

}

程序在运行时,输入:

a=1b=2A5.5

0

程序2:

判断下面程序的运行结果。

main()

{

intx=3,y=2,z=1;

printf(“%d,%d\n”,(++x,y++),z+2);

}

运行结果:

2,3

分析得到此结果的原因。

 

实验4循环语句的使用——猜数字游戏

一.实训目的:

1.熟练掌握各种循环程序设计的方法

2.利用循环结构解决一些实际问题

二.实训内容:

1.实验要求:

先利用randomize()产生一个随机数种子,再利用随机函数random(100)产生的一个0~100之间的整数,进行猜数字游戏

2.分析与设计:

利用循环,不断输入数字,与产生的随机数进行比较,直到猜中为止。

3.源代码:

#include

main()

{intr,x,n=0;

randomize();

r=random(100);

printf(“Pleaseinputanumber:

(0~100)”);

scanf(“%d”,&x);

while(x!

=r)

{if(x>r)printf(“\nbig,inputcontinue:

”);

if(x

”);

scanf(“%d”,&x);

n++;

}

if(n<=5)printf(“\nverygood”);

if(n>5&&n<=10)printf(“\ngood”);

if(n>10)printf(“\nnormal”);

}

 

实验5模拟ATM取款机界面

一.实训目的:

1.熟练掌握分支结构if语句及其嵌套

2.掌握分析具体问题的方法

二.实训内容:

1.实验要求:

利用if语句和scanf函数模拟简单的ATM取款机界面

2.分析与设计:

用户先输入密码,密码正确后,可以进行帐户的操作,如查询,取款等。

3.源代码:

#include

main()

{

intpassword,p,number,count=1000;

printf(“pleaseinputpassword:

”);

scanf(“%d”,&password);

if(password!

=0000){

printf(“passworderror\n”);

return}

printf(“welcome!

Pleasechoiceoneoperate:

(1,2,3)\n”);

printf(“1:

count;2:

getmoney,3:

return\n”);

scanf(“%d”,&p);

switch(p)

{

case1:

printf(“\n%d”,count);break;/*帐户查询*/

case2:

printf(“\npleaseinputcountthatyouwanttoget”);

scanf(“%d”,&number);/*取款*/

if(number>count||number<0)printf(“\nerror”);

printf(“\nnow,youcantakemoney!

”);

break;

case3:

break;return;/*返回*/

default:

printf(“\nNOthisoperate”);

}

}

 

实验6二维数组的应用

一.实训目的:

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

2.熟练使用二维数组解决实际问题

二.实训内容:

1.实验要求:

利用二维数组进行矩阵的乘法运算

2.分析与设计:

×

=

3.源代码:

main()

{

inta[2][2]={{1,2},{3,4}},b[2][2]={{5,6},{7,8}};

intc[2][2]={0},i,j,k;

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

for(j=0;j<2;j++)

for(k=0;k<2;k++)

c[i][j]+=a[i][k]*b[k][j];

for(j=0;j<2;j++)

{for(k=0;k<2;k++)

printf(“%d”,c[j][k]);

printf(“\n”);

}

}

 

实验7函数参数的传递

一.实训目的:

1.理解函数的形参和实参的概念和应用

2.掌握函数的值调用和引用调用的含义

3.掌握简单变量、数组和指针作为函数参数进行传递的形式

二.实训内容:

1.实验要求:

编写自定义函数:

求字符串的长度和字符串的查找

2.分析与设计:

利用字符数组保存字符串,然后根据下标解决问题

3.源代码:

程序1:

自定义函数求字符串长度

intlength(charstring[])

{intindex=0;

while(string[index]!

=’\0’)

index++;

return(index);

}

main()

{charstring[80];intlen;

printf(“pleaseinputastring:

\n”);

scanf(“%s”,string);

len=length(string);

printf(“%d”,len);

}

程序2:

自定义函数字符串的查找

intfind_string(charstring1[],charstring2[])

{chartemp;

intindex1=0,index2;

while(string1[index1]!

=’\0’)

{index2=0;

temp=string1[index1+index2];

while((string2[index2]!

=’\0’)&&(temp==string2[index2]))

{temp=string1[index1+++index2];}

if(string2[index2]==’\0’)

return(index1);

index1++;

}

return(-1);

}

main()

{charstring1[80],string2[80];

intfindresult;

scanf(“%s”,string1);

scanf(“%s”,stirng2);

findresult=find_string(string1,string2);

if(findresult)

{printf(“Find!

\n”);

printf(“positionis:

%d\n”,findresult+1);

}

elseprintf(“NotFind!

\n”);

}

 

实验8嵌套与递归调用的实现

一.实训目的:

1.掌握函数嵌套调用与递归调用的函数的含义

2.重点掌握函数嵌套调用与递归调用的实现过程

3.培养和锻炼解决较复杂C程序设计的能力

二.实训内容:

1.实验要求:

利用函数嵌套调用与递归调用求两个数的阶乘和

2.分析与设计:

先分别求出两个数的阶乘值,然后相加

3.源代码:

#include

#include

longsum(inta,intb)/*求两个数的阶乘和*/

{longc1,c2;

c1=factorial(a);

c2=factorial(b);

return(c1+c2);

}

longfactorial(intn)/*求一个数的阶乘*/

{longrtn=1;

inti;

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

rtn=rtn*i;

returnrtn;

}

main()

{intn1,n2;

longresult;clrcsr();

printf(“pleaseinputtwonumber:

\n”);

scanf(“%d,%d”,&n1,&n2);

result=sum(n1,n2);

printf(“Result=%ld”,result);

getch();}

 

实验9结构体和共用体

一.实训目的:

1.掌握结构体类型变量的定义及使用

2.掌握结构体变量的引用形式,结构体数组的应用

3.理解结构体作为不同数据类型的一个整体在实际编程中的应用

二.实训内容:

1.实验要求:

输入6名学生的基本信息,每名学生的基本信息包括:

学号、姓名、性别、年龄、语文成绩、数学成绩、物理成绩、总分、平均分等数据项。

根据各科成绩计算总分和平均分,并输出这6名学生的信息。

2.分析与设计:

利用结构体类型数组元素存放6名学生的信息,并根据要求求出总分和平均分。

3.源代码:

#defineN6

#include“stdio.h”

structstudent

{

charnum[8];

charname[20];

charsex;

intage;

floatchi_score,math_score,phy_score;

floatsum;

floataverage;

};

main()

{

inti;

structstudentstud[N];

/*输入N名学生的基本信息*/

for(i=0;i

{

printf(“\nThestudent_numberofnumber%dis:

“,i+1);

gets(stud[i].num);

printf(“\nThestudent_nameofnumber%dis:

“,i+1);

gets(stud[i].name);

printf(“\nThestudent_sexofnumber%dis:

“,i+1);

stud[i].sex=getchar();

printf(“\nThestudent_ageofnumber%dis:

“,i+1);

scanf(“%d”,&stud[i].age);

printf(“\nTheChinese_scoreofnumber%dis:

“,i+1);

scanf(“%f”,&stud[i].chi_score);

printf(“\nThemath_scoreofnumber%dis:

“,i+1);

scanf(“%f”,&stud[i].math_score);

printf(“\nThephysics_scoreofnumber%dis:

“,i+1);

scanf(“%f”,&stud[i].phy_score);

}

/*计算学生的总分和平均分*/

for(i=0;i

{

stud[i].sum=stud[i.chi_score+stud[i].math_score+stud[i].phy_score;

stud[i].average=stud[i].sum/3;

}

/*输出学生的基本信息情况*/

printf(“\nNumberNameSexAgeChineseMathPhysicsSumAverage”);

printf(“\n----------------------------------------------------”);

for(i=0;i

{

printf(\n%-8s%-20s%3c%3d”,stud[i].num,stud[i].name;stud[i].sex,

stud[i].age);

printf(%6.2f%6.2f%6.2f”,stud[i].chi_score,stud[i].math_score,

stud[i].phy_score);

printf(“%6.2f%6.2f”,stud[i].sum,stud[i].average);

}

printf(“\n----------------------------------------------------”);

}

 

实验10文件

一.实训目的:

1.掌握文件以及缓冲文件系统、文件指针的概念

2.掌握文件的打开、关闭、读、写等操作

3.学会用缓冲文件系统对文件进行简单的操作

二.实训内容:

1.实验要求:

有5个学生,每个学生有3门课的成绩,从键盘输入以下数据(包括学号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分存放在磁盘文件“student”中。

学生原有数据:

A2005001Wang89,98,67

A2005002Li70,80,90

A2005006Sun78,88,80

A2005012Zhang100,87,91

A2005020Zhao81,64,92

2.分析与设计:

用结构体数组保存学生的基本信息,利用文件的写操作将学生的基本信息写入文件“student.dat”中。

3.源代码:

#include

#dedineSIZE5

structstudent_type

{

charname[10];

intnum;

intscore[3];

intave;

}

structstudent_typestud[SIZE];

main()

{

voidsave();

inti,sum[SIZE];

FILE*fpt;

clrscr();

for(i=0;i

sum[i]=0;

for(i=0;i

{

scanf(“%s%d%d%d%d”,stud[i].name,&stud[i].num,

&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);

sum[i]=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];

stud[i].ave=sum[i]/3;

}

save();

fpt=fopen(“student.dat”,”rb”);

printf(“\n姓名学号成绩1成绩2成绩3平均分\n”);

printf(“--------------------------------------------------\n”);

for(i=0;i

{

fread(&stud[i],sizeof(structstudent_type),1,fpt);

printf(“%-10s%3d%5d%5d%5d%5d\n”,stud[i].name,stud[i].num,

stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].ave);

}

fclose(fpt);

}

voidsave()

{

FILE*fp;

inti;

if((fp=fopen(“student.dat”,”wb”))==NULL)

{

printf(“本文件不能打开,出错\n”);

exit(0);

}

for(i=0;i

if(fwrite(&stud[i],sizeof(structstudent_type),-1,fp)!

=1)

{

printf(“文件写入数据时出错!

\n”);

exit(0);

}

fclose(fp);

}

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

当前位置:首页 > 自然科学 > 化学

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

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