高级语言程序设计(C语言)实验教学大纲

时间:2019-05-12 23:12:01下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《高级语言程序设计(C语言)实验教学大纲》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《高级语言程序设计(C语言)实验教学大纲》。

第一篇:高级语言程序设计(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 void main(){char c1,c2; c1=97; c2=98;

printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2); } 在此基础上 ①将第二行改为: int c1,c2;再使之运行,分析结果。②再将第三行、第四行改为: c1=300;c2=400;再使之运行,分析其运行结果。

2.输入并运行教材第三章习题3.6,在上机前先用人工分析程序写出应得结果,上机后将二者对照。

3.输入并运行习题3.10。即: #include void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf(“%d,%d,%d,%d”,i,j,m,n);} 分别作以下改动并运行: ①将第4行改为: m=i++;n=++j;②程序改为: #include void main(){int i,j;i=8;j=10;printf(“%d,%d”,i++,j++);} ③在②的基础上,将printf语句改为: printf(“%d,%d”,++i,++j);④再将printf语句改为:

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.有一个函数 xy2x13x11x11x10 x10用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 7133915511 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》实验教学大纲

课程编号: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语言程序设计》实验教学大纲1

《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语言程序设计》实验教学大纲

课程名称: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高级语言程序设计实验内容

实验一 C语言的运行环境和基础知识

一、实验目的

1.掌握c程序设计编程环境visual c++,掌握运行一个c程序设计的基本步骤,包括编辑、编译、连接和运行。

2.熟练掌握Visual C++ 6.0环境运行的C程序上机步骤 3.数据类型、常量和变量的使用 4.表达式及运算符的应用 5.C程序的调试。

二、实验内容和源程序清单、测试数据、结果。

1、最简单的C程序。(要求文件名:1_1.c)#include int main(){

printf(“Hello world!n”);return 0;}

2、一个具有致命错误的程序,请修改。(要求文件名:1_2.c)#include int main(){ int i scanf(“%d”,i);

printf(“i=%dn”,i);

return 0;}

3、一个具有警告语法错的程序。(要求文件名:1_3.c)#include int main(){ int i=9,j,s;

s=i+j;printf(“s=%dn”,s);return 0;}

4、写出一个程序测试整型、字符型数据表示,并输出以验证是否正确。(要求文件名:1_4.c)#include int main(){

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 main(){

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 main(){

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 int main(){ int a,b;float x,y;char c1,c2;scanf(“a=%d b=%d”,&a,&b);scanf(“%f %e”,&x,&y);scanf(“%c%c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn”,a,b,x,y,c1,c2);return 0;}

4、编程序,用getchar函数读入两个字符给c1、c2,然后分别用 putchar函数和 printf函数输出这两个字符。(要求文件名:2_4.c)参考程序:

#include int main(){ char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);printf(“n%c,%c”,c1,c2);return 0;}

三、实验报告要求

将题目:1和3的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。

实验三

选择结构程序设计

一、实验目的

1.2.3.4.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);

学会正确使用逻辑运算符和逻辑表达式;

熟练掌握if语句和switch语句;

熟练掌握switch语句中break语句的作用。

二、实验内容和源程序清单、测试数据、结果。

(1)掌握各种格式转换符的正确使用方法,输出结果。(要求文件名:3_1.c)#include int main(){ int a=5,b=7;float x=67.8564,y=-789.124;char c='A';long n=1234567;unsigned u=65535;printf(“%d%dn”,a,b);printf(“%3d%3dn”,a,b);printf(“%f,%fn”,x,y);printf(“%-10f,%-10fn”,x,y);printf(“%8.2f,%8.2f,%.4f,%.4f,%3f,%3fn”,x,y,x,y,x,y);printf(“%e,%10.2en”,x,y);printf(“%c,%d,%o,%xn”,c,c,c,c);printf(“%ld,%lo,%xn”,n,n,n);printf(“%u,%o,%x,%dn”,u,u,u,u);printf(“%s,%5.3sn”,“COMPUTER”,“COMPUTER”);return 0;}

(2)1.从键盘任意输入一个年号,判断它是否是闰年。若是闰年,输出“Yes”,否则输出“No”。已知符合下列条件之一者是闰年:(1)能被4整除,但不能被100整除;(2)能被400整除。(要求文件名:3_2.c)参考程序:

#include int main(){

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 main(){

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 main(){

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 int main(){ int x,y,i,m,max;scanf(“%d,%d”,&x,&y);if(x>y)

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 int main(){ int x,i;scanf(“%d”,&x);for(i=1;i

printf(“%dn”,i);} return 0;}(3)输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。(要求文件名:4_3.c)参考程序:

#include #include int main(){ char c;int letter=0,digit=0,space=0,other=0;printf(“please input string:”);while((c=getchar())!='n'){

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)编程计算111111的值。(要求文件名:4_4.c)23499100参考程序:

#include int main(){

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 int main(){

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 main(){ int max,i,j,r,c;

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 #include main(){

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 main(){

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 #define M 3 #define N 4 int main(){

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 void swap(int x,int y){ int t;t=x;x=y;y=t;printf(“%d %d ”,x,y);} int main(){ int a=5,b=7;swap(a,b);printf(“%d %dn ”,a,b);return 0;}(2)写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。(要求文件名:6_2.c)参考程序:

#include int prime(int number);int main(){ int number;printf(“please input a num:n”);scanf(“%d”,&number);if(prime(number))

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 int max_ys(int x,int y);int main(){ int x,y,i,max;scanf(“%d,%d”,&x,&y);max=max_ys(x,y);printf(“%dn”,max);printf(“%dn”,x*y/max);return 0;} int max_ys(int x,int y){ int i,m,max;if(x>y)m=x;else m=y;for(i=1;i<=m;i++){ if((x%i==0)&&(y%i==0))

max=i;} return(max);}(4)写一函数,输入一个十六进制数,输出相应的十进制数。(要求文件名:6_4.c)参考程序:

#include #include #include long change(char shu[]){ long i,k,sum=0;k=strlen(shu)-1;for(i=k;i>=0;i--)

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 void swap(int *p1,int *p2);int main(){ int n1,n2,n3,*p1,*p2,*p3;scanf(“%d,%d,%d”,&n1,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if(n1>n2)swap(p1,p2);if(n1>n3)swap(p1,p3);if(n2>n3)swap(p2,p3);printf(“the order is:%d,%d,%dn”,n1,n2,n3);return 0;} void swap(int *p1,int *p2){ int temp;temp=*p1;*p1=*p2;*p2=temp;} 参考程序:(输入三个字符串,按由小到大顺序输出)(要求文件名:7_1.c)#include #include void swap(char *p1,char *p2);int main(){ char s1[20],s2[20],s3[20];char *ps1=s1,*ps2=s2,*ps3=s3;scanf(“%s”,ps1);scanf(“%s”,ps2);scanf(“%s”,ps3);if(strcmp(ps1,ps2)>0)swap(ps1,ps2);if(strcmp(ps1,ps3)>0)swap(ps1,ps3);if(strcmp(ps2,ps3)>0)swap(ps2,ps3);printf(“the order is:%s,%s,%sn”,ps1,ps2,ps3);return 0;} void swap(char *p1,char *p2){ char temp[20];strcpy(temp,p1);strcpy(p1,p2);strcpy(p2,temp);}(2)用指向指针的指针的方法对x个整数排序并输出。要求将排序单独写成一个函数。x和各整数在主函数中输入,最后在主函数中输出。(要求文件名:7_2.c)参考程序:

#include void maopao(int *p,int x);int main(){

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 #include void change(char *s);int main(){ char s[100];char *ps=s;scanf(“%s”,ps);change(ps);printf(“%s”,ps);return 0;} void change(char *s){ int x,i;x=strlen(s);if(*s>='a'&&*s<='z')

*s-=32;s++;

} for(i=0;i='A'&&*s<='Z')

*s+=32;

三、实验报告要求

将题目2和3的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。

实验八

结构体和共用体

一、实验目的

1.掌握结构体类型和结构体变量的定义。

2.掌握结构类型变量的定义和使用。

3.掌握链表的概念,初步学会对链表进行操作。

二、实验内容和源程序清单、测试数据、结果。

(1)给出下面程序的运行结果,思考为什么?(要求文件名:8_1.c)#include struct STU {

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 #define N 10 struct student {

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 #include #define LEN sizeof(struct student)struct student {

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 main(){ FILE *fp;

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 main(){ FILE *fp;

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语言)实验教学大纲word格式文档
下载高级语言程序设计(C语言)实验教学大纲.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C语言程序设计教学大纲(2014)

    《C语言程序设计》(一)教学大纲 课程名称:C语言程序设计 英文名称:The C Programming Language 课程编号: 000331,000332 课程性质:基础必修 任课教师:张萍、张莉、黄达明、陶烨、潘......

    《C语言程序设计》教学大纲

    《C语言程序设计》教学大纲 第一部分 大纲说明 一、课程的目的与任务 本课程将以结构化程序设计思想指导学习者运用C语言进行程序设计,充分利用C语言的结构性好,书写格式自由......

    《C语言程序设计》教学大纲

    《C语言程序设计》教学大纲 课程名称:《程序设计语言( C )》 英文名称:The C Programming Language 课程编码: 学分: 参考学时:64 实验学时:64 适用专业:计算机专业一、 课程目标......

    《C语言程序设计》教学大纲

    《C语言程序设计》教学大纲 [课程名称: ] C语言程序设计 [教学时总数:] 36+36 周学时: 讲授:2 上机实践:2 (共18周) [课程教材: ] 教科书:C语言程序设计(第二版)(谭浩强 著)(清华大学出版......

    《C语言程序设计》课程教学大纲

    《C语言程序设计》课程教学大纲 一、 课程教学目的 本课程系统学习C语言的基本知识和基本语法,较好地训练学生解决问题的逻辑思维能力以及编程思路和技巧 ,使学生具有较强的......

    《C语言程序设计》教学大纲(5篇范文)

    《C语言程序设计》教学大纲 (课程编号 ) (学分 ,学时 50 ) 第一部分说明 一、课程的目的与意义 本课程将以结构化程序设计思想指导学习者运用 C 语言进行程序设计,充分利用......

    c语言程序设计课程教学大纲2012

    《C语言程序设计》课程教学大纲 课程编号: 适用专业:机械制造、数控、焊接 专业责任教学单位:机电工程系 总学时:36学时 考核形式:闭卷 笔试 课程类型:专业基础课 选读方式:必修课......

    C语言程序设计课程教学大纲

    C语言程序设计课程教学大纲 中央电大教务处教学管理科 2007年08月29日 第一部分 大纲说明 1. 课程性质、任务与目的 《C语言程序设计》是中央电大计算机科学与技术专业(专科......