《C语言程序设计实验讲义(终稿)(共7页).doc》由会员分享,可在线阅读,更多相关《C语言程序设计实验讲义(终稿)(共7页).doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上C语言程序设计及实验实验教学大纲课程编码: 总学时:64学时 实验学时:16学时 适用专业及层次:电子信息工程 专业本科 实验地点:电子与信息工程 实验中心 第二 实验室 系(教研室):信息工程学院 网络工程教研室执笔人:贾电如 大纲审批人一、教学目的和基本要求目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握C 语言程序设计的基本方法和编程技巧。基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,
2、达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。二、实验软硬件环境要求1、C程序设计题解与上机指导谭浩强主编 清华大学出版社2、微机 ,安装、vc+6.0三、实验项目与学时分配编号实验项目名称学时分配实验类型备注1C程序的运行环境和运行一个C程序的方法、数据类型、运算符和表达式2设计性2顺序结构程序设计2设计性3选择结构程序设计2设计性4循环结构程序设计2设计性5数组2设计性6函数2设计性7指针2设计性8结构体和共用体、链表操作2设计性四、实验项目实验一 C程序的运行环境和运行
3、一个C程序的方法一、实验目的1.了解vc+6.0编译系统的基本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。4.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。5.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。6.进一步熟悉C程序的编辑、编译、连接和运行的过程。二、实验内容1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。
4、编译和连接后所得到的目标程序的后缀是什么形式的?2.编写一个C程序,输出以下信息:* very good!*3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。4.输入并运行以下程序:main( ) char c1,c2; c1=97;c2=98; printf(“%c %cn”,c1,c2);printf(“%d %dn”,c1,c2); 在此基础上将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。将第二行改为: int c1,c2; 再使之运行,分析其运行结果。5、.输入并运行以下程序: main( ) int i=8,j=10,m,n;
5、m=+i;n=j+;printf(“%d,%d,%d,%dn”,i,j,m,n); 分别作以下改动并运行:程序改为:main( ) int i=8,j=10;printf(“%d,%dn”,i+,j+); 在的基础上,将printf语句改为:printf(“%d,%dn”,+i,+j);再将printf语句改为:printf(“%d,%d,%d,%dn”,i,j, i+,j+);程序改为:main( ) int i=8,j=10,m=0,n=0;m+=i+;n-=-j;printf(“i=%d,j=%d,m=%d,n=%dn”,i,j,m,n); 6. 请将下列给出的两个程序段分别输入计算机后
6、,分析其运行结果:main() int num; num=32767; printf(“num=%dn”,+num); main() int a=-2; printf(“%d, %dn”,a, a-); 实验二 最简单的C程序设计一、实验目的1.掌握C语言中使用最多的一种语句赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。二、实验内容1.上机输入以下程序:main( )int a,b;float c; scanf(“%d%d%f”,&a,&b,&c); printf(“a=%-4d,b=%4d,c=%f,c=%.2fn”,a,b,c,c);要使a=3,b=4,c=12.
7、3456,在键盘上应如何输入?有几种方式?2.若将输入函数改为scanf(“%d, %d ,%f”,&a,&b,&c);应该如何输入数据?3.上机输入以下程序:main( )int a; float b; char c; scanf(“%4d%5f%3c”,&a,&b,&c); printf(“a=%d,a=%o,a=%x,b=%8.3f,b=%4.0f,c=%cn”,a,a,a,b,b,c);要使a=77,b=4.56,c= A,在键盘上应如何输入?4.输入两面整型变量a、b的值,输出下列算式以及运算结果。a+b、a-b、a*b、a/b、(float)a/b、a%b每个算式占一行。如a等于1
8、0,b等于6,a+b应输入为:10+6=165.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。上机运行程序,比较用printf和putchar函数输出字符的特点。实验三 选择结构程序设计一、实验目的1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”);2.学会正确使用逻辑运算符和逻辑表达式;3.熟练掌握if语句和switch语句。二、实验内容先编程序,解以下问题,然后上机调试运行程序。1.有一个函数用scanf函数输入x的值(分别为x1、110、10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级A,
9、B,C,D,E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。3.给一个不多于5位的正整数,要求: 求出它是几位数; 分别打印出每一位数字; 按逆序打印出各位数字,例如原数为321,应输出123。实验四 循环控制一、实验目的1.熟悉用while语句,do-while语句和for语句实现循环的方法。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。二、实验内容编程序并上机调试运行。1.输入两个正整数,求其中最大公约数和最小公倍数。2.输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。3.用牛顿迭代法求方程2x3-4x2+3x
10、-6=0在1.5附近的根。牛顿迭代法的公式是。4.打印出以下图案: * * * * * * *5.编程求1!+2!+3!+20!。实验五 数组一、实验目的1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。二、实验内容 编程序并上机调试运行。1. 编写程序,用scanf函数输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。2.有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则输出“无此数”
11、 ,并且可以实现连续查找。15个数用赋初值的方法在程序中给出,要找的数用scanf函数输入。3.将以下二维数组中数按列的顺序存放到一个一维数组中。二维数组的内容是11 22 33 4411 22 33 4411 22 33 44则一维数组中的内容是11 11 11 22 22 22 33 33 33 44 44 44 4.将两个字符串连接起来,不要用strcat函数。5.从键盘输入5个字符串,找出最长的字符串和最大的字符串。实验六 函数一、实验目的1.掌握定义函数的方法;2.掌握函数实参与形参的对应关系,以及“值传递”的方式;3.掌握函数的嵌套调用和递归调用的方法;4.掌握全局变量和局部变量,
12、动态变量和静态变量的概念和使用方法。二、实验内容编程序并上机调试运行之。1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。3.已知二阶Fibonacci数列: 0 若n=0Fib(n)= 1 若n=1 Fib(n-1)+Fib(n-2) 其他情况定义递归函数求Fib(n)。4.写一个函数完成下列任务:输入一个表示正整数的
13、字符串,将字符串转换成对应的数字。例如,输入3个字符组成的字符串“123”,将它转换成整型数123。5.设计一个含有多个菜单项的菜单演示程序。程序运行后,给出4个菜单项的内容和输入提示:1.求最大公约数2.求最小公倍数3.判断素数4.退出程序选择1-4:使用数字14来选择菜单项,其他输入则不起作用。实验:(选作)预处理命令一、实验目的1.掌握宏定义的方法;2.掌握文件包含处理方法;3.掌握条件编译的方法。二、实验内容编程序并上机调试运行。1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。说明:在程序主函数使用宏时只能用两个实参,如SWAP(
14、a,b),不能用三个参数。2.设计输出实数的格式,包括:(1)一行输出一个实数;(2)一行内输出两个实数;(3)一行内输出三个实数。实数用“%6.2f”格式输出。用一个文件“format.h”包含以上用#define命令定义的格式。在自己的文件(自己命名)中用#include命令将“format.h”文件包含进来。在程序中用scanf函数读入三个实数给f1,f2,f3。然后用上面定义的三种格式分别输出f1;f1,f2;f1,f2,f3。3.用条件编译方法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如a变成b,z变成a。其它字符不变)。用#define
15、命令来控制是否要译成密码。例如:#define CHANGE 1则输出密码。若#define CHANGE 0则不译成密码,按原码输出。用条件编译方法来处理。实验七 结构体和共用体一、实验目的1.掌握结构体类型变量的定义和使用;2.掌握结构体类型数组的概念和应用;3.掌握共用体的概念与使用。4.掌握链表的概念,初步学会对链表进行操作二、实验内容编程序,然后上机调试运行。1.有3个学生,每个学生的数据包括学号、三门课的成绩,要求用input函数实现从键盘输入学生数据,用average函数求每个人的平均分,用output函数打印学生数据及平均成绩。2.上机输入如下程序:main( )union b
16、t int k; char c2;a; a.k= -7; printf(“%o,%on”,a.c0,a.c1);分析其运行结果。3.建立一个带有头结点的单链表,每个结点包括:学号、年龄,并输出链表中所有结点的数据。在链表中查找年龄最大的结点,并将链表中等于此年龄的结点删除(年龄最大的结点可能不止一个)。4.将一个链表按逆序排列,即将链头当链尾,链尾当链头。实验八 文件一、实验目的1.掌握文件以及缓冲文件系统、文件指针的概念;2.学会使用文件打开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进行简单的操作。二、实验内容编写程序并上机调试运行。1.编程序求100以内的素数,分别将它输出
17、到显示器屏幕和x.txt文件中,要求每行5个数。2.从键盘输入几本书的数据,每本书的数据包括条形码、书名和价格,将每项数据分别写入文本文件s.txt和二进制文件s.dat。3.从上题的文本文件s.txt或二进制文件s.dat中读入每本书的数据,计算所有书的平均价格。要求用input函数读入,average函数求平均价格。四、评分依据1、实验预习和表现:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。2、实验报告:学生实验后应按时完成实验报告。实验报告应包括以下内容:实验目的、实验要求,实验题目、程序清单、运行结果、实验小结。以综合性实验为基础,开发一个具有实际意义的小系统,从而更深层次地了解C语言,并提高实际动手动脑能力。通过考试了解学生对基本理论掌握的程度和实际水平,教师出实验考试题目,让学生在规定的时间完成。五、推荐教材及主要参考书C程序设计题解与上机指导谭浩强主编 清华大学出版社专心-专注-专业