C语言程序设计基础实验讲义_第1页
C语言程序设计基础实验讲义_第2页
C语言程序设计基础实验讲义_第3页
C语言程序设计基础实验讲义_第4页
C语言程序设计基础实验讲义_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序设计基础实验讲义黑龙江大学计算机学院、软件学院程序设计基础实验讲义根据程序设计基础实验大纲编写,共有十二个实验,其中前十个实验为必做实验,后二个为选作实验,总计36学时。一、上机实验的目的和要求程序设计是一站实践性很强的课程。强化实践,是学好程序设计课的重要环节。所谓强化实践主要包括两个方面:一是多编程序,二是多上机调试,要将这两方面结合起来。为了培养学生的实践动手能力,作到独立编定程序,必须进行上机实验。上机实验的目的,绝不仅仅是为了验证教材和讲课的内容是否正确,学习程序设计决不能只停留在书本上和纸面上,还要培养上机调试程序能力。对于实验者来说,决不能仅仅满足于自己所编的程序能得出正确的

2、结果,而应在实践中积累调试程序的经验。要把听讲-复习-作业-上机这几个环节有机地结合起来,一环扣一环,前后衔接。对于每个实验题目,要求学生能够作到,自己编写程序,自己输入程序,自己调节器试程序,自己分析结果。综上所述,学习C程序设计,上机实验的目的主要为:1使学生能更好的理解书本上的内容,对于课堂上讲授的语句,语法知识,只有通过上机实践才能作到熟练的掌握。2.了解和熟悉C语言程序开发的环境。由于C语言开发环境的种类繁多(UNIXC,TurboC,MSC等),不同的开发环境具有不同的特点、不同的运行环境设置,要求实验者必须了解自己使用的开发环境所处的软、硬件环境。3上机调试程序,关于发现程序中的

3、错误,并能很快排除错误,使得程序能正常运行。调节器试程序时一方面可以借鉴书本上介绍的经验,另一方面要注重自己直接经验的积累。上机实验的重要性决不亚于课堂的教学因此要求学生认真对待这个教学环节并应按照一定的规范完成。上机实验过程通常可以按照如下步骤进行:1了解实验目的和要求,复习书本上相关的内容。2根据经定的题目,事先编好程序,并要经过静态检查,分析可能出现的问题。3设计好测试用例。4上机输入程序,进行调试,记录调试中出现的问题和采的措施。5实验完成后,要分析实验中出现的问题。二、具体实验内容实验一C语言程序的运行环境和运行一个C语言程序的方法一、目的和要求1了解所用的计算机系统的基本操作方法,

4、学会使用该计算机系统。2 .了解如何在该计算机系统上编辑、编译、连接和运行一个C语言程序。3 .通过运行简单的C语言程序,初步了解C语言源程序的特点。(本实验可以在完成第一章内容使用)二、实验内容1.了解WINDOWS,DOS作系统,学习如何进入正确的系统工作状态,掌握其操作命令和应用程序的使用,包括如何建立目录,查找文件,列目录,复制文件等。(本部分为计算机基础课程的内容,在此应用复习)2了解VisualC+开发环境。(1)系统环境的启动点击开始菜单中的MicrosoftVisualstudio菜单下的MicrosoftVisualC+,启动系统集成开发环境。(2)新建C+翎文件图1创建C源

5、文件界面(3)编译源文件图2编译C源文件界面(4)运行程序图3运行C程序界面3 .输入教材中节中的例,例。例调试运行程序,了解在VisualC+环境下如何运行C程序。4 .输出如下图型:*Howareyou*5 .写出VC+的上机过程!6 .完成从键盘输入3个数,并按从小到大输出。实验二数据类型、运算符和表达式一、目的和要求1 .掌握定义整型、字符型和实型变量的方法,以及对它们赋值的方法。2 .学会使用C语言的有关算术运算符,以及包含这些运算符的表达式。3 .学会编辑、编译、连接和运行C语言程序。二、实验内容(由教师任选几道)1 .输入如下程序,验证运行结果。main()inti1,i2;ch

6、arch1,ch2;floatf1,f2;doubled1,d2;i1=12;i2=113;ch1='A'ch2='B'f1=;f2=;d1=;d2=;printf("ni1=%d,i2=%d",i1,i2);printf("nch1=%c,ch2=%c”,ch1,ch2);printf("nfl=%f,f2=%f"巾,f2);printf("ndl=%lf,d2=%lf",d1,d2);2.输入如下程序,验证运行结果。main()inti1,i2;charchi;floatfi;double

7、d1,d2;i1=12;ch1='A'f1=;d1=;i2=i1+ch1;printf("ni2=%d”,i2);i2=i1+f1;printf("ni2=%d”,i2);d2=ch1+i2+i1+f1+d1;printf("nd1=%lf",d2);d2=ch1+i2+i1+(int)f1+(int)d1;printf("nd1=%lf",d2);3输入如下程序,验证运行结果。main()charc1,c2;c1=97;c2=98;printf("ncl=%c,c2=%c”,c1,c2);printf(&q

8、uot;ncl=%d,c2=%d”,c1,c2);cl='a'c2='b'printf("ncl=%c,c2=%c”,c1,c2);printf("ncl=%d,c2=%d”,c1,c2);4输入如下程序,验证运行结果。main()intx,y,z;x=y=z=1;printf("One:nx=%d,y=%d,z=%d',x,y,z);x+=x;y=y*=y+=2;z+=z*=z=4;printf("Two:nx=%d,y=%d,z=%d,,x,y,z);5输入如下程序,验证运行结果。main()intx,y,z;

9、x=y=z=1;printf("One:nx=%d,y=%d,z=%d',x,y,z);x+;+y;z-;printf("Two:nx=%d,y=%d,z=%d',x,y,z);x=y=z=1;x=x2;printf("Three:nx=%d',x);y=+y+y;printf("Three:nx=%d',y);x=1;y=(x+)+(x+)+(x+);printf("Three:nx=%d',y);y=(+x)+(+x)+(+x);printf("Three:nx=%d',y);6输入

10、如下程序,验证运行结果。main()printf("abctdentxyab23");printf("nabcbbrxya门23");printf("nI'mastudent");printf("nIt'sanumber012");6、输入并运行下面的程序:#include<>voidmain()charcl,c2;c1=a;c2=b;printf(“%c%cn”,c1,c2);7、完成教材第2章47页习题1、习题2、习题3、习题4。8、输入并运行下面的程序:#include<&g

11、t;voidmain()inta,b;unsignedc,d;longe,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf(“%d,%dn”,a,b);printf(“%u,%un”,a,b);printf(“%u,%un”,c,d);c=a=e;d=b=f;printf(“%d,%dn”,a,b);printf(“%u,%un”,a,b);实验三最简单的C程序设计目的和要求1掌握赋值语句的使用。2 .掌握数据的输入/输出方法,学会输入/输出函数的使用方法。、实验内容(由教师任选几道)1输入一个字符,并将其输出。要求:(1)利用putchar()函数和

12、getchar()函数来实现。(2)利用scanf()函数,printf()函数来实现。2输入下面程序,运行进行正确的数据输入main()inti,j;charch1;floatk;printf("n(One)Inputtwonumber:");scanf(”%d%”d,i,&j);printf(”i=%d,j=%d”,i,j);printf("n(Two)Inputtwonumber:");scanf(”%d,%d”i,&j);printf(”i=%d,j=%d”,i,j);printf("n(Three)Inputtwonu

13、mber:");scanf(”i=%d,j=%d”i,&j);printf(”i=%d,j=%d”,i,j);printf("n(Four)Inputtwonumberandachar:");scanf(”%d%c%”fi,&ch1,&k);printf(”i=%d,ch1=%c,k=%f”,i,ch1,k);3 .输入一个华氏温度,要求输出摄氏温度公式为:C=5/9(F32)输出要求要有文字说明,取两位小数。4编写程序,输入一圆的半径,分别求圆的周长,面积的体积。5输入三角形的三边,计算三角形的周长,面积。6从键盘上输入一个小写字母,用大

14、写字母输出。或反之。实验四选择结构程序设计、目的和要求1了解C语言表示逻辑量的方法。2学会正确使用逻辑运算符和逻辑表达式。3熟练掌握if语句和switch语句的格式及应用。、实验内容(由教师任选几道)1 .输入下面程序,验证结果与自己计算的值是否相同。main()intx,y,z;x=y=z=0;+x|+y|+z;printf("nx=%d,y=%d,z=%d,,x,y,z);x=y=z=0;+x&&+y|+z;printf("nx=%d,y=%d,z=%d,,x,y,z);x=y=z=0;+x&&+y&&+z;printf(

15、"nx=%d,y=%d,z=%d,,x,y,z);x=y=z=1;+x&&+y&&+z;printf("nx=%d,y=%d,z=%d,,x,y,z);x=y=z=1;+x&&+y|+z;printf("nx=%d,y=%d,z=%d',x,y,z);2 .输入四个数,要求按照从小到大的顺序输出。3 .给一个不多于5位的正整数,要求(1)求出它是几位数。(2)分别找印出每位数字,数字与数字之间用*号分隔。(3)按逆序打印出各位数字,例如:原数为234,应输出432。4 .输入年份和月份,输出该月有多少天5 .

16、输入三角形的三边,计算三角形的周长,面积,要求判断三角形的合法性。6 .编程序:设函数1(x>100)Y=0(x=100)-1(x<100)其中,x从键盘输入。实验五循环控制一、目的和要求1 .熟练掌握用while语句、dowhile语句和for语句实现循环的方法。2 .掌握用循环的方法实现各种算法(例如:累加、累乘、迭代等)。二、实验内容(由教师任选几道)1 .分别用while语句,do-while语句和for语句实现求1+2+3100的和。2 .编写程序求1!+2!+20!值。3 .找钱出所有的水仙花数,所谓水仙水数是指一个3位数,其各位数字的立方和等于其本身。例如:153=1

17、3+53+334 .一个数如果恰好等于它的因子的和,则称这个数为完数。例如6=1+2+3,则是完数。求出1000以内的所有完数,要求每行输出2个。5 .打印九九表。6 .有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数都是多少实验六数组一、目的和要求1 .掌握数组的定义、赋值和输入/输出方法。2 .掌握字符数组的使用,了解字符串函数的使用。3 .掌握与数组有关的算法(例如:各种排序算法)。二、实验内容(由教师任选几道)1 .用选择法对1。个整数进行排序。2 .已有一个已排好序的数组,今输入一个数,要求按照原来顺序的规律将它插入到数组中。3 .将两个字符串连起来,不要用strca

18、t()函数。4 .求3*3矩阵对角线的元素之和。5 .求3*3矩阵中最大元素所在的行列位置。6 .有N个学生,每人考M门课程,要求:(1)找出成绩最高的学生号和课程号。(2)找出有不及格课程的学生号及其各门课的全部成绩。(3)求出全部学生全部课程的总平均数。7求输入的10个正整数的最大数和最小数,并输出最大数和最小数及其所在的位置。8.利用公式Cij=Eaik*bkj计算矩阵A和矩阵B的乘积。其中A为mXn矩k=1阵,B为nXm矩阵,C为mKm矩阵。实验七函数一、目的和要求1掌握定义函数的方法。2掌握函数实参与形参的对应关系,以及“值传递”的方式。3掌握全局变量、局部变量、动态变量、静态变量的

19、概念和使用方法。4掌握函数的嵌套调用方法,学会递归调用方法。二、实验内容(由教师任选几道)1 .编写判断一个数是否是素数的函数,在主函数中调出用10。以内的所有素数。2 .编写求一个数阶乘的函数,在主函数中调用输出1。以内的所有数的阶乘。3 .写一个函数,使给定的一个二维数组(3*3)转置。4编写递归函数实现汉诺塔问题。5.编写递归函数,求出给定数字的所有(质数)因子。例如:72=2*2*2*3*3。6从键盘上输入10个人的高数成绩,统计不及格,60-70,70-80,80-90,90-100,100分的人数,并输出。用函数来实现。7编写递归函数,求输入的n个整数的和,并编写主函数测试它8写一

20、个函数,将两个字符串拼接。9完成教材第7章,第12、13题。实验八指针一、目的和要求1掌握指针的概念,掌握定义和使用指针变量的方法。2掌握使用数组的指针和指向数组的指针变量。3掌握使用字符串的指针和指向字符串的指针变量。4掌握使用指向函数的指针变量。5掌握指针数组、指向指针的指针的概念,学会其使用方法。二、实验内容(由教师任选几道)(以下题目要求用指针来完成)1 .输入10个整数,将其中最小的数与第一个数互换,把最大的数与最后一个数和互换。写三个函数(1)输入1。个数(2)具体互换处理(3)输出10个数。2 .将N个数按照输入时顺序的逆序排列,并输出(用函数实现)。3 .写一函数,将一个3*3

21、矩阵转置。4 .有一个班4个学生,5门课。(1)求第一门课的平均分;(2)找出有2门以上课程不及格的学生输出他们的学号和全部课程成绩以及平均成绩;(3)找出平均成绩的90分以上或全部课成绩在85分以上的学生。分别编3个函数实现以上3个要求。5 .输入1。个字符串,按照由小到达的顺序输出。6 用一个函数实现两个字符串的比较,即自己编写一个strcmp函数,函数原型为intstrcmp(chqr*p1,char*p2);设1指向字符串S1,P2指向字符串S2。要求当S1=S2时,返回值为0;若Slv>S2,返回值为它们两者第一个不同字符的ASCII码差值。如果S1>S2,则输出正值,如

22、果S1<S2,则输出负值。7 .用指向指针的方法对1。个字符串排序并输出。8 .用指向指针的方法对N个整数进行排序,并输出。(要求排序单独写成一个函数)9利用指针编写字符串拷贝的函数。(不能使用系统函数)实验九(一个小MIS的实现)结构体和共用体一、目的和要求1掌握结构体类型变量的定义和使用方法。2掌握结构体类型数组的概念和使用方法。3掌握指向结构体的指针变量的定义和使用方法。4掌握共用体的概念和使用方法。二、实验内容(由教师任选几道)9 .10名学生的数据信息,包括学号,姓名,性别,出生年,月,日,C语言的成绩,BASIC语言的成绩,离散数学的成绩,平均成绩和名次等。按照如下步骤编写程序:(1)要求定义一个结构体数据类型来描述学生的信息。(2)输入学生的基本信息以及三门课程的成绩。(3)求出每个学和三门课程的平均分。(4)对10名学和按照平均分进行排队。(5)输出每门课程成绩最高的同学的基本信息。10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论