第一篇:《高级语言程序设计C》实验教学大纲
《高级语言程序设计C》实验教学大纲
课程编号:1021742 总学时:56学时
适用专业:非计算机理工科各专业 总实验学时:24 实验次数: 12 次 应开实验个数:13 已开实验个数:13 实验开出率:100%
实验一
熟悉C 程序的运行环境
一、学时:2
二、实验类型:演示、验证
三、实验目的和主要内容:
1.了解计算机系统对高级语言的基本操作方法
2.熟悉和了解Turbo C 系统软件的使用和操作
3.能进行简单的C语言程序录入、调试、编译和运行
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.熟悉开机操作,使用单机或计算机上网。
2.进入 Turbo C 系统。
3.熟悉Turbo C 系统各菜单命令的使用和操作
4.模仿简单的源程序,编写自己的小程序,并能运行这些程序。
5.录入、调试、编译和运行C语言程序
实验二
数据类型、表达式及输入输出函数实验
一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1. 熟悉和了解C语言的数据类型
2. 使用C语言的有关算术运算符,以及包含这些运算符的表达式
3.进行简单的C语言输入输出函数的使用,格式控制符的涵意,简单C程序的设计、调 试、编译和运行
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.进入 Turbo C 系统。
2.编写简单的有输入输出的C程序,并进行该程序的运行、调试、编译。
3.编写一个输入三条边,计算三角形面积的程序。
4.编写程序,计算a+b×c÷d-d3,其中:a,b为整型变量,c,d为实型变量。
5.编写一个有关数据计算程序,验证运算符及表达式的结果。
6.可从布置的作业中,再任选一编程题,进行上机。
实验三
顺序程序结构程序设计
一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1.进一步掌握C程序的编辑、编译、连接和运行的过程。2.熟悉顺序结构的程序设计方法。3.熟练使用C的各种表达式。
4.熟练掌握输入、输出函数的使用。
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.输入x,y,编写程序求z=x+|y|的值。实验步骤与要求:
(1)程序中用scanf函数输入x和y的值,请分析以下两个语句 scanf(“%f%f”,x,y);scanf(“%f%f”,&x,&y);
哪一个是正确的,分别运行之,分析程序运行结果。
(2)如果scanf函数改为scanf(“%f,%f”,&x,&y);应该怎样输入数据。2.编写输入三角形的三边长a、b、c,求三角形面积area的程序。实验步骤与要求:
(1)输入前要加提示语句。
(2)输出结果前要有必要的文字说明。(3)输入一组数据3,4,5,观察运算结果。
(4)输入另外一组数据3,4,8,观察运算结果,分析这个运算结果是否有效。
实验四
分支控制语句实验
一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1.熟悉和了解C语言系统分支语句的使用和操作
2.进行C语言分支控制语句的设计、调试、编译和运行
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.进入 Turbo C 系统。
2.进行分支控制源程序的设计,并进行该程序的运行、调试、编译。
3.编辑一个分支控制程序,求:任意输入数(n>2)是否为素数。
4.编辑一个分支控制程序,求:任意输入3个数,求其最大数。
实验五
循环语句实验
一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1.熟悉和了解C语言循环语句的使用和操作
2.进行C语言循环语句的设计、调试、编译和运行
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.进入 Turbo C 系统。
2.进行循环源程序的设计,并进行该程序的运行、调试、编译。
3.编辑一个循环程序,求:1到100的和及平方和。
4.编辑一个循环程序,求:任意输入10个数,求其最大数。
5.可从布置的作业中,再任选一编程题,进行上机。
实验六
数组实验
一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1.熟悉和了解C语言数组程序的设计方法
2.学会使用C语言数组进行程序设计
3.进行C语言数组语句的设计、调试、编译和运行
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.进入 Turbo C 系统。
2.进行数组的定义和使用方法,即:一维和二维数组的应用。
3.进行数组语句源程序的设计,并进行该程序的运行、调试、编译。
4.编辑数组应用程序:
(1)任意输入20个数在一维数组a中,求20个数的平均值。
(2)定义2个二维数组A[2][3]、B[2][3],分别对这2个数组输入数据,求A+B和A-B的值。
(3)用字符数组存储任意输入10字符,求其最大字符。
(4)编辑一个有5个学生,考 3门功课。求出每一个学生的总分及平均分,统计平均成绩低于 60 分的学生人数。
5.可从布置的作业中,再任选一编程题,进行上机。
实验七
有关数组的程序设计
一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1.掌握有关数组和字符串的程序设计方法。
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤: 已知一组数据如下:6,3,42,23,35,71,98,67,56,38。编写程序,把它们按 从小到大的次序排列起来。求2行3列矩阵A 的转置矩阵。
实验八
函数实验
一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1.熟悉和了解C语言函数程序的设计方法。
2.学会使用C语言函数的定义及调用,并进行程序编制。
3.进行C语言函数语句的设计、调试、编译和运行
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.进入 Turbo C 系统。
2.进行函数的定义及调用。
3.进行函数语句源程序的设计,并进行该程序的运行、调试、编译。
(1)任意输入一个数n,用两个子函数实现1+2+3„n以及n!,在主函数中输出该结果。
(2)在主函数中定义二维数组A[3][4]、B[4],用子函数对数组A[3][4]每一行求和,其值放在数组B[4]中,在主函数中输出该值。
(3)用字符数组存储任意输入的10字符,在子函数中把该字符数组的小写字母转换成大写字母。
4.可从布置的作业中,再任选一编程题,进行上机。
实验九
常用指针实验
(一)一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1.熟悉和了解C语言指针一般设计方法
2.学会使用C语言指针进行程序设计
3.进行简单C语言指针语句的设计、调试、编译和运行
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.进入 Turbo C 系统。
2.进行C语言指针语句的定义和使用方法。
3.进行C语言指针语句源程序的设计,并进行该程序的运行、调试、编译。
4.编辑一个找出字串 str1中 str2出现的位置,用指针编程实现。
5.可从布置的作业中,再任选一编程题,进行上机。
实验十
复杂指针实验
(二)一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1.进一步熟悉和了解C语言指针语句设计方法
2.进行C语言中的指针与函数、指针数组、多级指针语句的设计、调试、编译和运行
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.进入 Turbo C 系统。
2.进行C语言指针与函数、指针数组、多级指针语句的定义和使用方法。
3.进行C语言该指针语句源程序的设计,并进行该程序的运行、调试、编译。
4.编辑一个在主程序里输入十个不等长的字串,调用自编的函数把它们按升序排列,用指针编程实现。
5.可从布置的作业中,再任选一题编程题,进行上机。
实验十一
结构类型实验
一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1.熟悉和了解C语言结构、联合数据的定义及设计方法
2.学会使用C语言结构、联合数据类型进行程序设计
3.进行C语言结构、联合语句的设计、调试、编译和运行
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.进入 Turbo C 系统。
2.进行C语言结构、联合数据类型的定义和使用。
3.进行C语言结构、联合数据类型源程序的设计,并进行该程序的运行、调试、编译。
4.编辑一个能处理学生综合信息的程序(包括:学号、姓名、班级、语文成绩、数学成绩、英语成绩等)。
实验十二
有关结构的程序设计
一、学时:2(课后完成或选作)
二、实验类型:验证、设计
三、实验目的和主要内容:
1.掌握结构体类型和结构体变量的定义。2.掌握结构类型变量的定义和使用;
3.掌握链表的概念,初步学会对链表进行操作;
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.有五个学生,每个学生的数据包括学号,姓名,三门课的成绩,从键盘输入五个学生的数据,要求打印出每个学生的平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平均分数)。实验步骤与要求:
用一个函数输入五个学生的数据;用一个函数求总平均分;用函数找出最高分学生数据,总平均分和最高分的学生的数据都在主函数中输出。
2.三个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到“3”者退出圈子,找出最后流在圈子中的人原来的序号。
3.建立一个链表,每个结点包括:学号,姓名,性别,年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。
实验十三
文件实验
一、学时:2
二、实验类型:验证、设计
三、实验目的和主要内容:
1.熟悉和了解C语言文件系统的组成及设计方法。
2.学会使用C语言文件系统进行程序设计
3.进行C语言文件语句的设计、调试、编译和运行
四、需用仪器、设备:
1.硬件环境
PC-486以上微机
32M以上的内存
VGA显卡
2.软件环境
西文DOS操作系统(可使用UCDOS汉字操作系统)或Windows操作系统
Turbo C(2.0版)
五、实验方法及步骤:
1.进入 Turbo C 系统。
2.进行C语言文件系统类型的定义和使用。
3.进行C语言文件系统类型源程序的设计,并进行该程序的运行、调试、编译。
4.编辑程序。
(1)用数组存储10个数据,并存储在“date.dat”文件中
(2)对存储在“date.dat”文件中的数据读入到一个数组中,求出总和及最大值,并把它存储在“dsum.dat”文件中
第二篇:高级语言程序设计(C语言)实验教学大纲
信息技术系《高级语言程序设计》实验教学大纲
一、教材名称:<
二、课程总学时:108学时 [理论: 72 学时;实验与上机:36学时]
三、适用专业和开课学期:软件技术专业,第2学期。
四、实验的目的与任务:
《C程序设计》是一门实践性很强的课程。通过实验使学生加深对课堂讲授的概念、语法、算法、编程技术的理解;熟悉C程序设计的开发环境;掌握程序设计和调试的基本技能。并通过实践激发学生进一步学习的积极性,培养学生的学习兴趣和创新思维。通过8个实验,使学生经过一定数量的上机训练,了解和掌握C程序设计的环境、程序的数据表示、程序的执行流程控制、程序的整体结构等C程序设计的基本概念和应用技术。
五、主要仪器设备及台(套)数
安装Windowsxp,TC2.0等软件的计算机,每生一台。
六、主要实验教材(指导书)及参考用书:
谭浩强主编,《C程序设计题解与上机指导》,清华大学出版社。
七、成绩考核方式及评分标准
实验占课程总课时1/3,每项实验按该实验说明要求规定的评分标准积分,学期末合计的实验成绩占课程总成绩的18%。
八、实验开出率:100%
九、实验项目与要求
实验一:C程序的运行环境和运行一个C程序的方法(2学时)
实验性质:验证性实验
一、实验目的
1.了解所用的计算机系统的基本操作方法,学会独立使用该系统。2.了解在该系统上如何编辑、编译、连接和运行一个C程序。3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容
1.调用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的?
2.输入并运行教材第一章中例1.2。
3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。
实验二 数据类型、运算符和表达式(2学时)
实验性质:验证性实验
一、实验目的
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。
2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
3.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容
1.输入并运行教材第三章例3.6.即: #include
printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基础上 ①将第二行改为: int c1,c2;再使之运行,分析结果。②再将第三行、第四行改为: c1=300;c2=400;再使之运行,分析其运行结果。
2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。
3.输入并运行习题3.10。即: #include
printf(“%d,%d,%d,%d”,i,j, i++,j++);⑤程序改为: main(){int i,j,m=0,n=0;;i=8;j=10;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);}
实验三 最简单的C程序设计(2学时)
实验性质:验证性实验
一、实验目的
1.掌握C语言中使用最多的一种语句—赋值语句的使用。2.掌握数据的输入输出的方法,能正确使用各种格式转换符。
二、实验内容
1.输入并运行以下程序:
#include
void main(){int a,b; float d,e; char c1,c2; double f,g; long m,n;
unsigned int p,q; a=61;b=62; c1=’a’;c2=’b’; d=3.56;e=-6.87;
f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;
printf(“a=%d,b=%dn c1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e); printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,m,p,q); } 在此基础上,做以下改动: ① 将程序第8-13行改为: a=61;b=62; c1=a;c2=b;
f=3157.890121;g=0.123456789; d=f;e=g;
p=a=m=50000;q=b=n=-60000; 运行程序,分析结果。
② 在①的基础上将printf语句改为:
printf(“a=%d,b=%dn c1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);
printf(“f=%f,g=%fn m=%ld,n=%ldn p=%d,q=%dn”,f,g,m,n,p,q); 运行程序。
2.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。
实验四 选择结构程序设计(2学时)
实验性质:设计性实验
一、实验目的
1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”); 2.学会正确使用逻辑运算符和逻辑表达式; 3.熟练掌握if语句和switch语句。
二、实验内容
先编程序,解决以下问题,然后上机调试运行程序。1.有一个函数 xy2x13x11x11x10 x10用scanf函数输入x的值(分别为x<1、1~
10、≥10三种情况),求y值。2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
实验五 循环控制(4学时)
实验性质:设计性实验
一、实验目的
1.熟悉用while语句,do-while语句和for语句实现循环的方法。2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
二、实验内容
编程序并上机调试运行。
1.输入两个正整数,求其中最大公约数和最小公倍数。2.用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根。
实验六 数组(4学时)
实验性质:设计性实验
一、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2.掌握字符数组和字符串函数的使用。3.掌握与数组有关的算法(特别是排序算法)。
二、实验内容
编程序并上机调试运行。
1.用选择法对10个整数排序。10个整数用scanf函数输入。2.将两个字符串连接起来,不要用strcat函数。实验七 函数(4学时)
实验性质:设计性实验
一、实验目的
1.掌握定义函数的方法;
2.掌握函数实参与形参的对应关系,以及“值传递”的方式; 3.掌握函数的嵌套调用和递归调用的方法;
4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。
二、实验内容
编程序并上机调试运行。
1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。2.求两个整数的最大公约数和最小公倍数,用一个函数求最大公约数。用另一函数根据求出的最大公约数求最小公倍数。
(1)用全局变量的方法。将两个整数的最大公约数、最小公倍数都设为全局变量。
(2)不用全局变量,两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。
实验八 预处理命令(2学时)
实验性质:设计性实验
一、实验目的
1.掌握宏定义的方法; 2.掌握文件包含处理方法; 3.掌握条件编译的方法。
二、实验内容
编程序并上机调试运行。
1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。
说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个参数。2.用条件编译方法实现以下功能:
输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如‘a’变成‘b’,„,‘z’变成‘a’。其它字符不变)。用#define命令来控制是否要译成密码。例如: #define CHANGE 1 则输出密码。若 #define CHANGE 0 则不译成密码,按原码输出。用条件编译方法来处理。
实验九 指针(4学时)
实验性质:设计性实验
一、实验目的
1.掌握指针的概念,会定义和使用指针变量; 2.学会使用数组的指针和指向数组的指针变量; 3.学会使用字符串的指针和指向字符串的指针变量; 4.学会使用指向函数的指针变量;
二、实验内容
编程序并上机调试运行程序(都要求用指针处理)。1.输入三个整数,按由小到大的顺序输出。
2.将一个3*3的矩阵转置,用一函数实现之。在主函数中用scanf函数输入以下矩阵元素:
1 7133915511 19将数组名作为函数实参。函数调用后在主函数中输出已转置的矩阵。3.用一个函数实现两个字符串的比较,即自己写一个strcmp函数: strcmp(s1,s2)如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1 两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。 实验十 结构体和共用体(4学时) 实验性质:设计性实验 一、实验目的 1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握共用体的概念与使用。 二、实验内容 编程序,然后上机调试运行。 1.有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。 要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。 2.输入和运行以下程序: #include union data {int i[2]; float a; long b; char c[4]; }; void main(){union data u; scanf(“%d,%d”,&u.i[0],&u.i[1]); printf(“i[0]=%d,i[1]=%dna=%fnb=%ldnc[0]=%c,c[1]=%c,c[2]=%c,c[3]=%cn”,u.i[0],u.i[1],u.a,u.b,u.c[0],u.c[1],u.c[2],u.c[3]);} 输入两个整数10000、20000给u.i[0]和u.i[1]。分析运行结果。 然后将scanf语句改为: scanf(“%ld”,&u.b); 输入60000给b。分析运行结果。 实验十一 位运算(1学时) 实验性质:设计性实验 一、实验目的 1.掌握位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。 二、实验内容 编写程序,上机调试并运行。 1.设计一个函数,使给出一个数的原码,能得到该数的补码,用八进制形式输入和输出。 实验十二 文件(1学时) 实验性质:设计性实验 一、实验目的 1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。3.学会用缓冲文件系统对文件进行简单的操作。 二、实验内容 1.从键盘输入一个字符,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符以“!”结束。实验十三 学生成绩管理(4学时) 实验性质:综合性设计性实验 一、实验目的 1.综合运用C程序设计知识,解决实际问题。 二、实验内容 1.有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。 2.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件“stu-sort”中。 3.将上题已排序的学生成绩文件进行插入处理。插入一个学生的三门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。 学生的原有数据为: 91101 Wang 89,98,67.5 91103 Li 60,80,90 91106 Fun 75.5,91.5,99 91110 Ling 100,50,62.5 91113 Yuan 58,68,71 要插入的学生数据为: 91108 Xin 90,95,60 制 订:程世辉 教研室:软件教研室 执笔人:程世辉 审定人: 二00七年八月 《C语言程序设计实验》教学大纲 一、本大纲编写的依据是《C语言程序设计》教学大纲。实验总学时:32学时 学分:1学分 二、适用专业:全院C语言公共课 三、考核方式及评定标准: 实验操作能力50%,实验报告50% 四、配套的实验教材或自编指导书: 《C语言程序设计学习指导》 五、实验项目概述与学时分配: 实验一:C语言开发环境与输入输出(4学时) (一)实验类型:演示性 (二)实验类别:学科基础 (三)每组人数:1人 (四)实验目的和实验能力要求: 1.学习Turbo C2.0集成环境,掌握源程序编辑方法; 2.掌握在Turbo C2.0集成开发环境中编译、调试与运行程序的方法; 3.通过运行简单的C语言程序,初步了解C语言源程序的特点。 (五)实验内容: 1.设计一个C语言程序,输出以下信息: *************** Hello! *************** 2.设计一个程序,从键盘输入一个圆的半径,求其周长和面积。 3.设计一个程序,从键盘输入一个小写字母,将它转换成大写字母输出。4.输入一个华氏温度,要求输出摄氏温度。公式是:C=(5/9)*(F-32)。5.输入一个球的半径,求其表面积和体积。(S= 4πr²,V= 4πR³/3)。 (六)主要仪器设备: 1.计算机:CPU: Pentium III 600MHz以上 RAM:256M以上 硬盘空间:4G以上 2.操作系统: Windows2000、WindowsXP、Windows2003 任选其一 3.软件要求:Turbo C2.0 (七)所在实验室:计算机实验室 实验二:程序流程控制应用(6学时) (一)实验类型:验证性 (二)实验类别:学科基础 (三)每组人数:1人 (四)实验目的和实验能力要求: 1.掌握Turbo C2.0集成环境中的单步执行; 2.熟悉if 与switch语句的格式、执行过程、使用方法及典型案例; 3.学会使用选择结构解决一般的实际问题,能编写简单的应用程序。 4.掌握循环结构while、do-while、for等语句格式、执行过程、使用方法及典型案例。 5.学习循环结构的嵌套使用。6.掌握分支与循环综合程序的编写方法; 7.学习并熟悉break、continue的区别与使用。8.学会常用数值与图形的编程方法。 (五)实验内容: 1.由键盘输入三个数,判断能否构成三角形。 2.某商店“五·一”长假期间购物打折。规则如下: 若每位顾客一次购物,①满1000元,打九折; ②满2000元,打八折; ③满3000元,打七折; ④满4000元,打六折; ⑤5000元,打五折; 编写程序,输入购物款,输出实收款。3.有下列分段函数: 编一程序,输入x,输出y的值。4.计算:S=1+2+3+4+„+n。 5.裴波那契数列的前几个数为1,1,2,3,5,8,„„,其规律为: 6.求出100~200之间的所有素数,输出时一行打印五个素数。7.编写程序用公式计算e的近似值。直到最后一项小于给定精度。8.从键盘输入任意多个整数(-999为结束标志),计算其中正数之和。9.求π近似值的公式为: 其中,n=1、2、3„设计一个程序,求出当n=1000时的π的近似值。 (六)主要仪器设备: 1.计算机:CPU: Pentium III 600MHz以上 RAM:256M以上 硬盘空间:4G以上 2.操作系统: Windows2000、WindowsXP、Windows2003 任选其一 3.软件要求:Turbo C2.0 (七)所在实验室:计算机实验室 实验三:函数与宏定义的应用(6学时) (一)实验类型:验证性 (二)实验类别:学科基础 (三)每组人数:1人 (四)实验目的和实验能力要求: 1.了解函数的定义方法,理解函数的调用; 2.初步掌握函数的递归、嵌套调用; 3.掌握函数调用的实参与形参的传递。 (五)实验内容: 1.编写一个函数,用递归的方法求1+2+3+4+„+n的值。在主函数中进行输入输出。 mc2.编写程序,输入m和n(n>m),求n的值。3.编写程序,求两个自然数m和n的最大公约数和最小公倍数。4.分别输入整数半径和实数半径,使用函数重载计算圆的面积。5.使用内联函数计算长方形的面积。6.用函数调用方法打印九九表乘法。 (六)主要仪器设备: 1.计算机: CPU: Pentium III 600MHz以上 RAM:256M以上 硬盘空间:4G以上 2.操作系统: Windows2000、WindowsXP、Windows2003 任选其一 3.软件要求:Turbo C2.0 (七)所在实验室:计算机实验室 实验四:数组的应用(8学时) (一)实验类型:验证性 (二)实验类别:学科基础 (三)每组人数:1人 (四)实验目的和实验能力要求: 1.掌握一维数组、二维数组、字符数组的定义、初始化赋值、数组元素的引用方法; 2.掌握求最大、小值、平均值、排序的方法以及有序数组的查找、增加、删除的编程方法; 3.初步掌握字符串处理函数的使用方法以及字符串复制、连接、测长等程序的编写方法; 4.掌握数组的典型应用。 (五)实验内容: 1.应用一维数组,对10个数进行冒泡排序,使其按照从大到小的顺序输出。2.应用二维数组打印5行杨辉三角形。 3.从键盘输入两个字符串,将它们连接成一个字符串。4.编程序将输入的字符串删去空格后输出。5.编程实现将一十进制整数M转换为D进制数。(选做)6.已知一int a[20]数组,编程将值为偶数的元素移到数组前端,值为奇数的元素移到数组后端。(要求元素比较、移动次数尽量最少) (选做)7.某班有10个学生,进行了“数学”、“语文”、“英语”、“C语言”等科目的考试,编写程序: (1)将考试成绩输入一个二维数组;(2)求每门课的平均成绩、每门课的不及格学生的人数及每门课的最高分与最低分;(3)求每个学生的平均成绩、总分、不及格门数;(4)按学生平均成绩的高低排序并输出。 8.设计一个程序,打印杨辉三角形。(使用其它方法) (选做)9.编写程序,实现str=str1+str2的操作,此处运算符“+”表示将二个字符串str1、str2连接成一个字符串str。用键盘将二个字符串输入字符数组str1与str2中,连接后的字符串存放在字符数组str中,并输出连接后的字符串str。 (六)主要仪器设备: 1.计算机:CPU: Pentium III 600MHz以上 RAM:256M以上 硬盘空间:4G以上 2.操作系统: Windows2000、WindowsXP、Windows2003 任选其一 3.软件要求:Turbo C2.0 (七)所在实验室:计算机实验室 实验五:指针的应用(8学时) (一)实验类型:验证性 (二)实验类别:学科基础 (三)每组人数:1人 (四)实验目的和实验能力要求: 1. 理解指针的基本概念和运算 2. 掌握指针与数组、指针与函数、指向字符串的指针的应用 3. 掌握多重指针的概念和基本应用 (五)实验内容: 1.输入3个数a,b,c,按小到大顺序输出。要求利用指针方法实现。 2.用返回指针类型函数实现字符串连接函数strcat(),通过1)输入字符串s1和s2进行测试,2)将字符串“string”作为参数与s1和s2的连接后的结果调用函数strcat()实现连接。 3.写一个函数,该函数从主程序接受一个字符串,将字符串中的数字和其它字符分开,形成二个字符串输出。 4.编一程序,实现计算器的功能,使得在操作系统下可以通过如下形式实现操作 calc 4 + 5 calc 3.7 * 7.9 (六)主要仪器设备: 1.计算机: CPU: Pentium III 600MHz以上 RAM:256M以上 硬盘空间:4G以上 2.操作系统: Windows2000、WindowsXP、Windows2003 任选其一 3.软件要求:Turbo C2.0 (七)所在实验室:计算机实验室 《C语言程序设计》实验教学大纲 课程名称:C语言程序设计 课程属性:必修(限选) 实验属性:独立设课 适用专业:光伏发电技术及应用、光伏材料加工与应用技术、新能源应用专业 学时:(实验学时 34) 应开实验学期:第二学期 应开实验项目数: 实验类型:综合性、验证性 一、本门课程实验的目的与要求 通过实验,加深学生对C语言的理解,掌握数据类型、模块化程序设计、指针、数组、指针及结构体、共用体和枚举类型的定义及使用,会写选择型程序、循环型程序,要求学完本门课程后,可编写C语言小程序。 上机实验是学习C语言程序设计的重要环节。通过实验,学习C语言的特点和方法;理解计算机程序的执行过程;掌握用计算机解决问题的方法和基本的程序设计技术;学会程序的调试方法。 二、实践形式和实践环境要求 1、实践形式:课内实验。 2、实验环境要求:每人一台电脑,安装有(Turbo C 2.0,C++环境)的实验室环境条件。 三、实践总学时和实践资料 1、总学时:34学时。 2、资料:按自编实验指导书相关内容进行实践。 四、考核与成绩评定 本课程实验考核由各分阶段实验报告、期末实训两大部分组成。各分阶段实验报告占总成绩的60%,期末考核占总成绩的40%。 五、实践任务与学时分配 实验一C程序上机操作方法及运行环境 (一)实验目的与要求: 1、了解所用的计算机系统的基本操作方法,学会独立使用该系统。 2、了解在该系统上如何编辑、编译、连接和运行一个C程序。 3、通过运行简单的C程序,初步了解C程序的特点。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验二数据类型、运算符和表达式 (一)实验目的与要求: 1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。 2、掌握不同的数据类型之间赋值的规律。 3、学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加和自减运算符的使用。 4、进一步熟悉C程序的编辑、编译、连接和运行的过程。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验三顺序结构程序设计 (一)实验目的与要求: 1、掌握字符型数据与整型数据如何通用及赋值语句的使用方法。 2、掌握各种类型数据的输入输出函数的应用方法。 3、掌握顺序结构程序的编写过程。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0环境)。 实验四选择结构程序设计 (一)实验目的与要求: 1、掌握关系运算符和逻辑运算符的使用方法及其表达式的应用。 2、掌握分支语句的使用。 3、结合程序掌握一些简单的算法。 4、学习调试程序。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验五循环结构程序设计 (一)(一)实验目的与要求: 1、掌握循环次数不确定的循环程序设计方法。 2、掌握如何用break语句退出循环。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验六循环结构程序设计 (二)(一)实验目的与要求: 1、掌握循环次数确定的循环结构程序及双重循环结构程序的设计思路。 2、掌握循环控制变量的取值范围的确定。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验七数组的应用 (一)(一)实验目的与要求: 1、掌握一维数组的定义及应用,主要注意其下标从0开始及下标越界问题。 2、掌握数组在循环的控制下其下标的灵活变化。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验八数组的应用 (二)(一)实验目的与要求: 1、掌握数组的定义、数组元素的引用及数组的初始化。 2、掌握字符数组的定义、数组元素的引用及对字符数组的初始化。 3、在综合应用中的具体体现。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境))。 实验九函数 (一)(一)实验目的与要求: 1、掌握函数的定义、说明和调用方法。 2、理解return语句的作用和使用方法。 3、掌握函数调用过程中“传值”和“传址”方法的特性、使用及区别。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验十函数 (二)(一)实验目的与要求: 1、掌握函数的定义、说明和调用方法。 2、理解return语句的作用和使用方法。 3、掌握函数的嵌套调用和递归调用的定义及编制方法。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验十一编译预处理 (一)实验目的与要求: 1、掌握简单的宏定义和带参数宏的定义及其应用,并理解宏展开实质。 2、掌握文件包含和条件编译的应用。 3、清楚带参的宏和函数的差异。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验十二指针 (一)实验目的与要求: 1、掌握指针的概念,指针变量的定义和使用。 2、会使用指向数组的指针。 3、会使用指向字符串的指针。 4、掌握指针型函数和指向函数的指针。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验十三结构体、共用体 (一)实验目的与要求: 1、掌握结构体类型的说明和结构体变量的定义。 2、掌握结构体变量成员的引用和对结构体变量的初始化。 3、掌握结构体数组的定义及使用。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0环境)。 实验十四文件 (一)实验目的与要求: 1、掌握文件以及缓冲文件系统、文件指针的概念。 2、学会使用文件打开、关闭、读、写等文件操作函数。 3、学会用缓冲文件系统对文件进行简单的操作。 (二)参考学时:2 (三)实验环境::计算机机房(Turbo C 2.0,C++环境)。 实验一 C语言的运行环境和基础知识 一、实验目的 1.掌握c程序设计编程环境visual c++,掌握运行一个c程序设计的基本步骤,包括编辑、编译、连接和运行。 2.熟练掌握Visual C++ 6.0环境运行的C程序上机步骤 3.数据类型、常量和变量的使用 4.表达式及运算符的应用 5.C程序的调试。 二、实验内容和源程序清单、测试数据、结果。 1、最简单的C程序。(要求文件名:1_1.c)#include printf(“Hello world!n”);return 0;} 2、一个具有致命错误的程序,请修改。(要求文件名:1_2.c)#include printf(“i=%dn”,i); return 0;} 3、一个具有警告语法错的程序。(要求文件名:1_3.c)#include s=i+j;printf(“s=%dn”,s);return 0;} 4、写出一个程序测试整型、字符型数据表示,并输出以验证是否正确。(要求文件名:1_4.c)#include int x=010,y=10,z=0x10; /* 整型数据表示 */ char c1='M',c2='x4d',c3='115',c4=77,c; /* 字符型数据表示 */ /* 整型数据的输出 */ printf(“x=%o,y=%d,z=%xn”,x,y,z); /* 数据以原进制输出,注意是否有前导0或0x */ printf(“x=%d,y=%d,z=%dn”,x,y,z); /* 数据以10进制输出,换算到10进制,结果对吗? */ /* 字符型数据的输出 */ printf(“c1=%c,c2=%x,c3=%o,c4=%dn”,c1,c2,c3,c4); /* 数据以原进制输出,注意是否有前导0或0x ?*/ printf(“c1=%c,c2=%c,c3=%c,c4=%cn”,c1,c2,c3,c4); /* 结果都是什么字符?,也就是说字符可以自由的表示成几种形式? */ printf(“c1=%d,c2=%d,c3=%d,c4=%dn”,c1,c2,c3,c4); /* 看看这些字符的10进制ASCII码,哦,ASCII码一样,同一种字符 */ /* 字符型数据参与算术运算 */ c=c1+32; /* 字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数 /* 参与数学运算;结果还是一个整数-另外一个字符的ASCII码 */ printf(“c=%c,c=%dn”,c,c); /* 看看这个字符是什么?哇,'M'+32='m'了,看看ASCII码表,原来如此!*/ return 0;} 参考结果: 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和4的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。2 实验二 顺序结构程序设计 一、实验目的: 1.掌握顺序结构程序设计 2.掌握赋值语句的用法 3.熟练地进行数据输入和输出 二、实验内容和源程序清单、测试数据、结果。 1、已知:a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮点),计算算术表达式(float)(a+b)/2+(int)x%(int)y的值。试编程上机验证。(要求文件名:2_1.c)提示编程要点: (1)先判断结果值类型,可设置一个此类型的变量用于记录表达式结果,本例用r存放结果;(2)程序先给几个变量赋初值,然后将表达式赋值给变量r;(3)最后打印变量r的值就是表达式的值。参考程序: #include int a=2,b=3;float x=3.9,y=2.3; float r; r=(float)(a+b)/2+(int)x%(int)y; printf(“%fn”,r);return 0;} 参考结果: 3.500000 思考:为什么是这个结果? 2、分析下面程序结果,并上机验证。(要求文件名:2_2.c)#include int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“i=%d, j=%d, m=%d, n=%dn”,i,j,m,n); return 0;} 参考结果: i=9, j=11, m=9, n=10 3、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。从键盘如何输入?(要求文件名:2_3.c)#include 4、编程序,用getchar函数读入两个字符给c1、c2,然后分别用 putchar函数和 printf函数输出这两个字符。(要求文件名:2_4.c)参考程序: #include 三、实验报告要求 将题目:1和3的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 实验三 选择结构程序设计 一、实验目的 1.2.3.4.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”); 学会正确使用逻辑运算符和逻辑表达式; 熟练掌握if语句和switch语句; 熟练掌握switch语句中break语句的作用。 二、实验内容和源程序清单、测试数据、结果。 (1)掌握各种格式转换符的正确使用方法,输出结果。(要求文件名:3_1.c)#include (2)1.从键盘任意输入一个年号,判断它是否是闰年。若是闰年,输出“Yes”,否则输出“No”。已知符合下列条件之一者是闰年:(1)能被4整除,但不能被100整除;(2)能被400整除。(要求文件名:3_2.c)参考程序: #include int year, flag;printf(“Enter year:”);scanf(“%d”, &year);if(year%4==0&&year%100!=0 || year%400==0) { flag = 1; } else { flag = 0; } if(flag) { printf(“Yesn”); } else { printf(“Non”);} return 0;}(3)编程序,并给出程序的运行结果,注意思考case中break的用法以及为什么是这样的结果?(要求文件名:3_3.c)参考程序: #include int x=2,y=1,a=1,b=2;switch(x){ case 2: switch(y) { case 1:a++; case 2:b++;break; } case 3:a++;b++;break;} printf(“%d %dn”,a,b);return 0;}(4)编程序:输入4个整数,要求按由小到大的顺序输出。(要求文件名:3_4.c)参考程序: #include int t,a,b,c,d;scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);printf(“a=%d,b=%d,c=%d,d=%dn”,a,b,c,d);if(a>b){t=a;a=b;b=t;} if(a>c){t=a;a=c;c=t;} if(a>d){t=a;a=d;d=t;} if(b>c){t=b;b=c;c=t;} if(b>d){t=b;b=d;d=t;} if(c>d){t=c;c=d;d=t;} printf(“%d,%d,%d,%dn”,a,b,c,d);return 0;} 三、实验报告要求 将题目:2和3的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 实验四 循环结构程序设计 一、实验目的 1.2.3.4.5.熟练使用while、for语句实现循环程序设计 理解循环条件和循环体,以及while、for语句的相同及不同之处 掌握嵌套循环程序设计 熟练掌握下拉菜单Debug的程序调试方法 掌握break和continue的用法 二、实验内容和源程序清单、测试数据、结果。 (1)输入两个正整数m和n,求它们的最大公约数和最小公倍数。(要求文件名:4_1.c)参考程序: #include m=x;else m=y;for(i=1;i<=m;i++){ if((x%i==0)&&(y%i==0)) max=i;} printf(“%dn”,max);printf(“%dn”,x*y/max);return 0;}(2)从键盘输入一个 int 类型的正整数,输出它的所有因子。如输入6,输出1,2,3;输入20,输出1,2,4,5,10。(要求文件名:4_2.c)参考程序: #include printf(“%dn”,i);} return 0;}(3)输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。(要求文件名:4_3.c)参考程序: #include if(c>='a'&&c<='z'||c>='A'&&c<='Z') letter++; else if(c>='0'&&c<='9') digit++; else if(c==' ') space++; else other++;} printf(“%d,%d,%d,%dn”,letter,digit,space,other);return 0;}(4)编程计算111111的值。(要求文件名:4_4.c)23499100参考程序: #include int sign = 1;double sum = 1;double deno = 2;double term = 1;while(deno<=100){ sign =(-1)*sign; term = sign*(1/deno); sum = sum+term; deno++;} printf(“%lfn”,sum);return 0;} 三、实验报告要求 将题目:3和4的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 实验五 数组 一、实验目的 1.掌握一维、二维数组的定义、引用、应用 2.掌握字符数组的定义、引用、应用 3.掌握字符串处理函数 二、实验内容和源程序清单、测试数据、结果。 (1)给出下面程序的结果,思考为什么?(要求文件名:5_1.c)#include char a[]=“Chinaren”,b[]=“Tiananmen”;char *p1,*p2; int k=0;p1=a; p2=b;for(k=0;k<10;k++) if(*(p1+k)==*(p2+k)) printf(“%c”,*(p1+k));printf(“n”);return 0;}(2)有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。(要求文件名:5_2.c)参考程序: #define M 3 #define N 4 #include int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}}; max=a[0][0]; for(i=0;i for(j=0;j if(a[i][j]>max) { max= a[i][j]; r=i; c=j; } printf(“max=%d , row =%d , colum=%d n”,max , r, c); return 0;}(3)编程序用于读入10个字符串,然后找出最大的字符串并打印。(要求文件名:5_3.c)参考程序: #include char str[10][80],maxstring[80]; int i;printf(“Enter ten strings:n”);for(i=0;i<10;i++) { scanf(“%s”, str[i]);} strcpy(maxstring, str[0]); for(i=1;i<10;i++) { if(strcmp(str[i],maxstring)>0) { strcpy(maxstring,str[i]); } } printf(“The max string is:%sn”,maxstring);}(4)给出下面程序的运行结果,思考为什么?(要求文件名:5_4.c)#include int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};int i,j,s=0;for(i=0;i<4;i++){ for(j=0;j<4;j++) { if(a[i][j]<0)continue; if(a[i][j]==0)break; s+=a[i][j]; } } printf(“%dn”,s);return 0;}(5)测试二维数组的各个地址值,结果是什么,思考原因。(要求文件名:5_5.c)#include int a[M][N];printf(“%xn”,a);printf(“%xn”,a[0]);for(int i=0;i printf(“%x,”,&a[i][j]); return 0;} 三、实验报告要求 将题目:2和3的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 实验六 函数 一、实验目的 1.掌握C语言函数的定义方法、函数的声明及函数的调用方法。 2.了解主调函数和被调函数之间的参数传递方式。 二、实验内容和源程序清单、测试数据、结果。 (1)给出下面程序的结果,思考为什么?(要求文件名:6_1.c)#include #include printf(“%d is prime!”,number);else printf(“%d is not!”,number);return 0;} int prime(int number)/*此函数用于判别素数*/ { int flag=1,n;for(n=2;n if(number%n==0) flag=0;return(flag);}(3)求两个整数的最大公约数和最小公倍数。写一个函数求最大公约数。(要求文件名:6_3.c)参考程序: #include max=i;} return(max);}(4)写一函数,输入一个十六进制数,输出相应的十进制数。(要求文件名:6_4.c)参考程序: #include if(shu[i]>=48&&shu[i]<=57) sum=sum+(shu[i]-48)*pow(16,k-i); else if(shu[i]>=65&&shu[i]<=70) sum=sum+(shu[i]-55)*pow(16,k-i); else if(shu[i]>=97&&shu[i]<=102) sum=sum+(shu[i]-87)*pow(16,k-i); else { printf(“error!n”); break; } return sum;} int main(){ char str[100];long s;gets(str);s=change(str);if(!s) printf(“The number is not oxn”);else printf(“change:%ldn”,s);return 0;} 三、实验报告要求 将题目:3和4的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 实验七 指针 一、实验目的 1.掌握指针变量的定义与引用。 2.熟练使用函数指针、数组指针、字符串指针编写应用程序。 二、实验内容和源程序清单、测试数据、结果。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大顺序输出。参考程序:(输入三个整数,按由小到大的顺序输出)(要求文件名:7_0.c)#include #include int x,a[100],*p,i;p=a;scanf(“%d”,&x);for(i=0;i scanf(“%d”,p++);p=a;printf(“n”);maopao(p,x);printf(“the sorted numbers:n”);p=a;for(i=0;i printf(“%dt”,*p); return 0;} void maopao(int *p,int x){ int i,j,temp;for(i=0;i for(j=0;j if(*(p+j)>*(p+j+1)) { temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; } }(3)利用函数和指针将给定字母字符串的第一个字母变成大写字母,其它字母变成小写字母。在main函数中接收字符串的输入,改变后的字符串的输出也在main函数中实现。(要求文件名:7_3.c)参考程序: #include *s-=32;s++; } for(i=0;i *s+=32; 三、实验报告要求 将题目2和3的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 实验八 结构体和共用体 一、实验目的 1.掌握结构体类型和结构体变量的定义。 2.掌握结构类型变量的定义和使用。 3.掌握链表的概念,初步学会对链表进行操作。 二、实验内容和源程序清单、测试数据、结果。 (1)给出下面程序的运行结果,思考为什么?(要求文件名:8_1.c)#include char num[10]; float score[3];}; int main(){ struct STU s[3]={{“1122301”,90,95,85}, {“1122302”,80,90,75}, {“1122303”,98,92,85}}, *p=s; int i; float sum = 0; for(i=0;i<3;i++){ sum = sum + p->score[i]; } printf(“%6.2fn”,sum); return 0;}(2)有10个学生,每个学生的数据包括学号,姓名,三门课的成绩,从键盘输入十个学生的数据,要求打印出每个学生的平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平均分数)。(要求文件名:8_2.c)#include char num[6]; char name[8]; float score[3]; float avr;} stu[N]; int main(){ int i,j,maxi; float sum,max,average; for(i=0;i { printf(“input scores of student %d:n”,i+1); printf(“NO.:”); scanf(“%s”,stu[i].num); printf(“name:”); scanf(“%s”,stu[i].name); for(j=0;j<3;j++) { printf(“score %d:”,j+1); scanf(“%f”,&stu[i].score[j]); } } average=0; max=0; maxi=0; for(i=0;i { sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/3.0; average+=stu[i].avr; if(sum>max) { max=sum; maxi=i; } } average/=N; printf(“ NO.name score1 score2 score3 averagen”); for(i=0;i for(j=0;j<3;j++) printf(“%9.2f”,stu[i].score[j]); printf(“ %8.2fn”,stu[i].avr); } printf(“average=%5.2fn”,average); printf(“The highest score is : student %s,%sn”,stu[maxi].num,stu[maxi].name);printf(“his scores are:%6.2f,%6.2f,%6.2f,average:%5.2f.n”,stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2],stu[maxi].avr);return 0;}(3)建立一个链表,每个结点包括:学号,姓名,性别,年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。(要求文件名:8_3.c) #include char num[6];char name[8];char sex[2];int age;struct student *next;} stu[10]; int main(){ struct student *p,*pt,*head;int i,length,iage,flag=1;int find=0; //找到待删除元素 find=1,否则find=0 while(flag==1){ printf(“input length of list(<10):”); scanf(“%d”,&length); if(length<10) flag=0;} //建立链表 for(i=0;i p=(struct student *)malloc(LEN); if(i==0) head=pt=p; else pt->next=p; pt=p; printf(“NO.:”); scanf(“%s”,p->num); printf(“name:”); scanf(“%s”,p->name); printf(“sex:”); scanf(“%s”,p->sex); printf(“age:”); scanf(“%d”,&p->age); } p->next=NULL; p=head;printf(“n NO.name sex agen”); //显示 while(p!=NULL){ printf(“%4s%8s%6s%6dn”,p->num,p->name,p->sex,p->age); p=p->next;} // 删除 printf(“input age:”); //输入待删年龄 scanf(“%d”,&iage);pt=head;p=pt; if(pt->age==iage) //链头是待删元素 { p=pt->next; head=pt=p; find=1; } else //链头不是待删元素 pt=pt->next; while(pt!=NULL){ if(pt->age==iage) { p->next=pt->next; find=1; } else // 中间结点不是待删元素 p=pt; pt=pt->next; } if(!find) printf(“ not found %d.”,iage); p=head; printf(“n NO.name sex agen”);//显示结果 while(p!=NULL){ printf(“%4s%8s”,p->num,p->name); printf(“%6s%6dn”,p->sex,p->age); p=p->next; } return 0;} 三、实验报告要求 将题目3的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 实验九 文件操作 一、实验目的 1.掌握文件和文件指针的概念以及文件的定义方法。 2.了解文件打开和关闭的概念和方法。 3.掌握有关文件的函数。 二、实验内容和源程序清单、测试数据、结果。 (1)对data.dat文件写入100条记录。(要求文件名:8_1.c) #include int i; float x; fp=fopen(“c:data.dat”,“w”); for(i=1;i<=100;i++) { scanf(“%f”,&x); fprintf(fp,“%fn”,x); } fclose(fp); return 0;} (2)设有一文件cj.dat存放了50个人的成绩(英语、计算机、数学),存放格式为:每人一行,成绩间由逗号分隔。计算三门课平均成绩,统计个人平均成绩大于或等于90分的学生人数。(要求文件名:8_2.c) #include int num=0; float x , y , z , s1 , s2 , s3; fp=fopen(“c:cj.dat”,“r”); while(!feof(fp)) { fscanf(fp,“%f,%f,%f”,&x,&y,&z); s1=s1+x; s2=s2+y; s3=s3+z; if((x+y+z)/3>=90) num=num+1; } printf(“分数高于90的人数为:%dn”,num); fclose(fp); return 0;} (3)统计上题cj.dat文件中每个学生的总成绩,并将原有数据和计算出的总分数存放在磁盘文件“stud”中。(要求文件名:8_3.c) #include “stdio.h” int main(){ FILE *fp1,*fp2; float x,y,z; fp1=fopen(“c:cj.dat”,“r”); fp2=fopen(“c:stud”,“w”); } while(!feof(fp1)){ fscanf(fp1,“%f,%f,%f”,&x,&y,&z); printf(“%f,%f,%f,%fn”,x,y,z,x+y+z); fprintf(fp2,“%f,%f,%f,%fn”,x,y,z,x+y+z);} fclose(fp1);fclose(fp2);return 0; 三、实验报告要求 将题目1、2和3的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。第三篇:《C语言程序设计》实验教学大纲1
第四篇:实验教学大纲样本--C语言程序设计
第五篇:C高级语言程序设计实验内容