C语言实训计划指导书.docx

上传人:b****3 文档编号:4346054 上传时间:2022-11-30 格式:DOCX 页数:33 大小:166.24KB
下载 相关 举报
C语言实训计划指导书.docx_第1页
第1页 / 共33页
C语言实训计划指导书.docx_第2页
第2页 / 共33页
C语言实训计划指导书.docx_第3页
第3页 / 共33页
C语言实训计划指导书.docx_第4页
第4页 / 共33页
C语言实训计划指导书.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

C语言实训计划指导书.docx

《C语言实训计划指导书.docx》由会员分享,可在线阅读,更多相关《C语言实训计划指导书.docx(33页珍藏版)》请在冰豆网上搜索。

C语言实训计划指导书.docx

C语言实训计划指导书

 

C语言实训计划指导书(总27页)

 

《C语言程序设计》实训指导书

 

郭莹编写

前言

C语言是功能很强,应用面广,使用灵活的一种语言。

用它不仅可以实现其他高级语言所实现的功能,编写出应用程序,而且还能调用系统的功能,实现对硬件的操作。

本实训除了使学生熟悉C语言的一般应用外,重点介绍后一方面的应用,旨在使学生得以提高及扩展知识,为今后的工作打下初步基础。

本实训中将C语言的一般应用概括为以下几个问题:

1、查找最值问题

2、数学问题

3、数学应用题

4、字符串问题

5、统计问题

6、排序问题(插入数值、删除数值、逆序排列)

7、成绩问题

8、链表处理

9、文件处理

另外本实训将指导学生完成以下综合应用实例:

10、简单的数据库管理

11、简单的弹出式菜单

12、用C语言编制画图程序

实训一查找最值问题

一、目的和要求

1、掌握查找最小数或最大数的方法;

2、掌握两个数间的最值问题;

3、掌握三个数以上的最值问题。

二、实验原理

1、两个数a,b进行最值比较可以利用if语句或:

表达式语句实现。

格式如下:

if(a>b)max=a;elsemax=b;

max=(a>b)a:

b;

2、三个以上的数字a,b,c,d……进行最值比较,要分步实现,简化为两个数的最值比较问题,即先比较前面两个数字的最值,再用最值和后面一个数字比较最值,以此类推。

格式如下:

if(a>b)max=a;elsemax=b;if(max

三、实验内容和步骤

1、下面的程序功能是求出任意两个数的最小值,填空完成程序。

1#include<>

2main()

3{floata,b,c;

4printf(“pleaseinputtwonumber);

5scanf(“___”,&a,&b);

6if(a

7elsec=b;

8printf(“thesmalleris_____”,c);

9}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)

运行结果:

____________________________

(2)-86

运行结果:

____________________________

(3)33000

运行结果:

____________________________

2、下面的程序功能是按照由小到大的顺序输出任意三个数,填空完成程序。

1#include<>

2main()

3{floata,b,c,t;

4scanf(“%f%f%f”,_________);

5if(a>b){t=a;a=b;b=t;}

6if(a>c){t=a;a=c;c=t;}

7if(b>c){t=b;b=c;c=t;}

8printf(“%,%,%”,___________);}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)

运行结果:

____________________________

(2)-86

运行结果:

____________________________

(3)33000

运行结果:

____________________________

3、下面的程序功能是从一个3行4列的矩阵中找出最小的那个元素的值,以及其所在的行号和列号,填空完成程序。

1main()

2{inti,j,row=0,colum=0,min;

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

4min=a[0][0];

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

6for(j=0;j<=3;j++)

7if(____________________)

8{min=a[i][j];

9row=i;

10colum=j;}

11printf(“min=%d,row=%d,colum=%d\n”,min,row,colum);}

输出结果为:

_______________________________________。

四、分析讨论

1、程序1的第6行和第7行可以用条件表达式_____________________代替。

2、假设a,b,c,d均为整型,以下语句借助于中间变量t把a,b,c,d的值进行交换,即把b中的值给a,把c中的值给b,把d中的值给c,把a中的值给d。

填空:

________________________________________________。

3、若有inti,j;对于一个二维数组a[5][6],若要显示第3行的所有元素(从第0行计数),引用语句为______________________________________。

五、进一步实验

编程实现找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。

也可能没有鞍点。

实训二数学问题

一、目的和要求

1、学会利用C语言程序解决数学问题;

2、熟悉常用数学函数的作用及用法;

3、熟练掌握条件语句及循环控制等语句。

二、实验原理和程序算法

1、C语言系统提供了很多标准函数即库函数,用户不必关心这些函数的构成可以直接使用它们。

调用格式:

#include“”或#include“”。

2、数a判断条件a%2==0,奇数判断条件:

a%2==1。

3、和的做法sum+=t;通过循环语句改变加数t,不断增加sum的值。

三、实验内容和步骤

1、调用库函数,求以下的函数值:

1.cos2)lg903)4)

 5)tan

1)

a)#include“”

b)main()

c){floatc;

d)c=cos;

e)printf(“c=%\n”,c);}

运行结果:

_____________________

参考库函数说明,完成其他程序,第4行分别表示为:

2)____________________________运行结果为:

_________________

3)____________________________运行结果为:

_________________

4)____________________________运行结果为:

_________________

5)____________________________运行结果为:

_________________

2、下程序能够求出0~100之间全部偶数之和。

1main()

2{intm,sum;

3sum=0;

4for(m=0;m<=100;________)

5______________________________

6printf(“sum=%d\n”,sum);}

运行结果为:

__________________________

3、用

公式求π的近似值,直到最后一项的绝对值小于10-4为止。

1#include“”

2main()

3{ints;

4floatn,t,pi=0;

5t=n=s=;

6while(fabs(t)>=1e-4)

7{pi=pi+t;

8n+=______;

9s=-s;

10t=________;}

11pi*=4;

12printf(“pi=%f\n”,pi);}

运行结果为:

_____________________________________________________

4、打印形状为直角三角形的九九表。

1

24

369

481216

510152025

61218243036

7142128354249

816243240485664

91827364554637281

1main()

2{inti,j,k;

3printf(“*”);

4for(i=1;i<10;i++)

5printf(“%4d”,i);

6printf(“\n”);

7for(j=1;j<10;j++)

8{printf(“%2d”,j);

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

10printf(“%4d”,______);

11printf(“\n”);}}

12

四、分析讨论

总结循环语句的不同类型和用法。

五、进一步实验编程求

实训三数学应用题

一、目的和要求

1、通过简单数学应用问题的解决,建立利用C语言解决实际问题的初步认识;

2、掌握基本语句的应用,以及特类问题的常用算法。

二、实验内容和步骤

1、输入矩形的两条边长,求矩形的面积。

1#include“”

2main()

3{floata,b,area;

4scanf(“%f,%f”,&a,&b);

5area=a*b;

6printf(“a=%f,b=%f,area=%f\n”,a,b,area);}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1),运行结果:

____________________________

(2)160,55运行结果:

____________________________

2、以下程序能够判断任意年份是否闰年。

1main()

2{intyear,leap;

3scanf(“%d”,&year);

4if(_____________________________________________)leap=1;

5elseleap=0;

6if(______)printf(“%dis”,year);

7elseprintf(“%disnot“,year);

8printf(“aleapyear.\n”);}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)1996运行结果:

____________________________

(2)2000运行结果:

____________________________

(3)2003运行结果:

____________________________

3、递增的牛群:

若一头小母牛,从第四年开始每年生一头母牛,按此规律,第n年时有多少头母牛。

i.main()

ii.{

iii.inti,year,f,f1,f2,f3;

iv.printf(“enteryear:

”);

v.scanf(“%d”,&year);

vi.for(i=1;i<=year;i++)

vii.{if(i<4)f=f1=f2=f3=1;

viii.else{________________________________}

ix.printf(“i=%2d,n=%3d\n”,i,f);}}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)5运行结果:

____________________________

(2)7运行结果:

____________________________

4、换零钱。

把一元钱全兑换成硬币,有多少种兑换方法。

1main()

2{inti,j,k,n;

3n=100;

4k=0;

5for(i=0;i<=n/5;i++)

6for(j=0;___________;j++)

7{printf(“5cent=%d\t2cent=%d\t1cent=%d\n”,i,j,n-i*5-j*2);

8k++;}

9printf(“totaltimes=%d\n”,k);}

记录运行结果,其中totaltimes=_____________。

三、分析讨论

1、if(leap==1)可以等价为if(__________)或if(______________);if(leap==0)可以等价为if(________________)或if(_____________)等。

2、总结在printf函数中可以使用的各转义字符及其功能。

四、进一步实验

从键盘输入三个数,让它们代表三条线段的长度。

请写一个判断这三条线段所组成的三角形属于什么类型(不等边、等腰、等边或不能构成三角形)的C语言程序。

实训四字符串问题

一、目的和要求

1、学会利用C语言程序给字符串加密和解密;

2、学会利用C语言程序给字符串插入或删除指定字符;

3、熟悉常用的字符、字符串函数。

二、实验原理和程序算法

1、字符在计算机系统中的存放方式是ASCII码,用特定的ASCII码值代表特定字符。

A~Z:

(65-90),a~z:

(97~122)

2、字符串可以通过字符数组组织起来,例如:

a[30]=”student”;通过数组下标分别引用各个元素。

3、常见的字符函数有putchar(),getchar(),字符串函数有puts(),gets(),strcpy(),strcmp(),

strlen(),strlwr(),strupr()等。

三、实验内容和步骤

1、为了使电文保密,往往按照一定规律将其转换成密码,收报人再按照约定的规律将其译回原文。

例如有以下规律:

将A变成E,a变成e,即变成其后第4个字母,W变成A,X变成B,Y变成C,Z变成D。

任意输入一个字符串对其加密,完成程序。

1、#include<>

2、main()

3、{charc;

4、printf(“pleaseinputastring:

\n”);/*请输入一个字符串*/

5、while(c=getchar()!

=’\n’)

6、if(c>=’a’&&c<=’z’||c>=’A’&&c<=’Z’)

7、{c=_____________;

8、if(c>’Z’&&c<=’Z’+4||c>’z’)_____________;}

9、printf(“%d”,c);}}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)student运行结果:

____________________________

(2)holidy运行结果:

____________________________

2、编写一个函数del_str(chara[],charb[],intn),实现将指定位置的字符删除。

1、intLen=10;

2、voiddel_str(chara[],charb[],intn)

3、{inti,j=0;

4、for(i=0;i

5、if(_______________)

6、{___________________;

7、__________________;}}

8、#include<>

9、main()

10、{charstr1[10],str2[10];

11、intn;

12、printf(“enterthestring:

”);

13、gets(str1);

14、printf(“enterthepositionofthestringdeleted:

”);

15、scanf(“%d”,&n);

16、del_str(str1,str2,n);

17、printf(“thenewstringis:

%s”,str2);

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)student3运行结果:

____________________________

(2)happyholidy5运行结果:

____________________________

3、输入三个字符串,要求找出最大者,完成程序。

1、#include<>

2、main()

3、{charmax[20];

4、charstr[3][20];

5、inti;

6、for(i=0;i<3;i++)

7、gets(str[i]);

8、if(strcmp(str[0],str[1])>0)____________________;

9、else__________________________;

10、if(_____________________)strcpy(max,str[2]);

11、printf(“\nthelargetstringis:

\n”,max);}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)studentteacherstudy运行结果:

____________________________

(2)englishmathcprogram运行结果:

____________________________

四、分析讨论

1、程序1的第8行,完成什么功能____________________________。

2、字符数组长度若为10,当从键盘输入多于10个字符时,系统如何处理。

3、如何引用一维数组、多维数组以及字符数组

4、总结常用字符、字符串函数的用法。

五、进一步实验

1、有一行文字,要求删去某个字符。

此行文字和要删去的字符均由键盘输入,要删

去的字符以字符形式输入。

2、设计两个函数strupr(charstr[])和strlwr(charstr[])将一个字符串中的字母全部变成大写或小写。

实训五统计问题

一、目的和要求

1、学会利用C语言程序针对给定条件进行各类统计;

2、学会利用C语言程序给字符串插入或删除指定字符;

二、实验原理和程序算法

统计问题记载即查找整个范围,对满足条件的项目进行统计,一般要用到if条件语句和计数器变量。

三、实验内容和步骤

1、统计100以内的全部素数个数并逐个输出。

1、#include<>

2、main()

3、{intm,k,i,num=0;

4、for(m=3;m<100;m+=2)

5、{k=_______________;

6、for(_________;i<=k;i++)

7、if(m%i==0)break;

8、if(_________){printf(“%d”,m);num++;}

9、if(n%10==0)printf(“\n”);}

调试无语法错误后,运行结果:

____________________________

2、输入一行字符,统计其中有多少个单词,单词之间用空格隔开。

10、#include<>

11、main()

12、{charstring[81];

13、inti,num=0,word=0;

14、charc;

15、_______________________;/*从键盘接收一个字符串*/

16、for(i=0;(c=_____________)!

=’\0’;i++)

17、for(c==’‘)word=0;

18、elseif(word==0)

19、{word=1;

20、num++;}

21、printf(“Thereare%dwordsintheline.\n”,num);}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)iamastudent.运行结果:

____________________________

(2)icanusecomputerwell.运行结果:

_________________________

四、进一步实验

从键盘人一输入一个整数,求出其中0的个数和最大的数字。

实训六排序问题

一、目的和要求

熟练掌握C语言程序的各种排序方法。

二、实验原理和程序算法

1、起泡法排序原理:

将相邻两个数比较,将小的调到前头。

2、选择法排序原理:

将所有数中的最小数放到第一个位置,再从剩下的数中找出最大数放到第二个位置,以此类推。

三、实验内容和步骤

1、用起泡法对10个数排序(有小到大),完成程序。

1、main()

2、{inta[10];

3、inti,j,t;

4、printf(“input10numbers:

\n”);

5、for(i=0;i<10;i++)

6、scanf(“%d”,&a[i]);

7、printf(“\n”);

8、for(j=1;j<=9;j++)

9、for(i=0;_______________;i++);

10、if(____________________)

11、{t=a[i];a[i]=a[i+1];a[i+1]=t;}

12、printf(“thesortednumbers:

\n”);

13、for(______________;________________;i++);

14、printf(“%d”,a[i]);}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)2304167895运行结果:

____________________________

(2)9753124680运行结果:

____________________________

2、用选择法对数组中10个整数按由小到大排序。

编写sort(intarray[],intn)函数实现此功能。

1、voidsort(intarray[],intn)

2、{inti,j,k,t;

3、for(i=0;__________;i++)

4、{k=i;

5、for(_____________;j

6、if(__________________)k=j;

7、{t=array[k];array[k]=array[i];array[i]=t;}

8、main()

9、{inta[10],i;

10、printf(“enterthearray:

\n”);

11、for(_______________________)/*从键盘输入10个数字存入a数组*/

12、scanf(______________________________);

13、sort(_______________________);/*函数调用*/

14、printf(“thesortedarray:

\n”);

15、for(_______________________________)/*输出数组*/

16、printf(______________________);

17、printf(“\n”);}

调试无语法错误后,分别使用下列测试用例对上述程序进行测试:

(1)2304167895运行结果:

____________________________

(2)9753124680运行结果:

____________________________

3、将一个数组中的值按照逆序重新存放。

例如,原来顺序为6,5,4,3,2。

要求改为2,3,4,5,6。

1、#defineLEN5

2、main()

3、{inta[LEN],b[LEN],i,j;

4、for(i=0;i

5、scanf(“%d”,&a[i]);

6、for(

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

当前位置:首页 > 经管营销 > 经济市场

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

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