1、C语言程序设计课程实验教学要求C语言程序设计课程实验教学要求一、实验教学的目的和任务 C语言程序设计课程实验是针对网络学院非电专业学生(高起本、高起专)开设的一门计算机公共基础课。通过实验,使学生加深理解、巩固课堂教学内容:掌握程序算法设计的核心;掌握高级语言分析、高级语言设计的基本方法和过程,获得利用C语言设计工具进行设计、编程和调试的训练;培养学生进行系统分析和实现系统的能力以及编写分析报告的能力。二、实验教学的基本要求C语言程序设计课程是一门培养学生利用高级语言(c)进行程序设计的基本方法和过程,具备一定的进行系统分析、设计、编程和调试能力的专业基础课。本课程在培养实践能力方面着重设计构
2、思、编程、分析调试技能的基本训练以及本课程对其专业的应用。实验教材选用C语言程序设计习题与实验指导(高克宁著 吉林大学出版社)。除指定的16学时课程实验外,学生应利用业余时间,加强动手实践,上机实习按1:2增加时间。实验环境为Turbo C2.0/3.0或Visual C+。实验项目安排:(1)设计环境与程序调试:自行安排(4学时)(2)程序控制结构(分支、循环与输入/输出等): 4学时/自行安排(4学时)(3)函数(函数定义、声明、调用(嵌套调用、递归调用递归)等):4学时/自行安排(8学时)。(4)数组(排序、查找、矩阵、字符串等):4学时/自行安排(8学时)。(5)指针(利用指针处理字符
3、串等):4学时/自行安排(8学时)。(6)文件(基本文件操作):自行安排(4学时)。综合程序设计(1次):要求学生结合自己专业分组完成一个中等难度的程序设计和调试工作,每组中的每个学生至少独立完成程序中一部分模块的编写,并提交上机报告一份。三、实验内容实验一:(选做)实验目的:1)熟悉C语言的集成编译环境;熟练地掌握C程序的编辑、编译、链接以及运行等步骤;熟悉常用的调试信息并根据系统提示的信息进行C程序的修改;掌握查看程序运行结果的方法。2)体会编程的方法。示范内容:(1)输入并运行下面程序。main() int a,b,c; scanf(d,d,a,b); ca/b; printf(dn,c
4、); 要求:调试通过后,运行该程序。1)输入值:50,4 察看运行结果。2)输入值:50.4,10.8 察看运行结果。3)输入值:50000,100 察看运行结果。4)输入值:10,0 察看运行结果。分析输出结果。实验题:C语言程序设计习题与实验指导(高克宁著):P82 第1,2题实验二:实验目的:1)熟练掌握scanf(getchar)/printf(putchar)库函数的调用格式及其使用,能够正确使用各种格式转换控制符。掌握各种类型数据的输入/输出的方法。2)熟练掌握if 、ifelse、ifelseif语句和switch语句格式及使用方法,利用if语句和switch语句实现分支选择结构
5、。3)熟练掌握while语句、do while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。4)掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。示范内容:(1)在分析下面程序的运行结果后进行上机验证。 main( ) int a=3,b=4,c=5,x; x=c/b+(float)a/b&(float)(a/c); printf(n x=%dn,x); x=a+&b-; printf(n%d,%d,%d,%dn,a,b,c,x); 上机运行的结果与你分析的结果是否一致
6、?不一致的原因是什么?(2) 分析调试以下程序,了解continue语句和break语句的应用方法#include main() int i; for(i=1;iy?x:y; return(z); 分析:本程序实现的功能是从键盘输入3个整型数据,找出其中的最大值并显示出来。/*设计思想:定义一个函数max(int x,int y),用来求两个数中的最大值;运用函数求出其中两个数的最大值,然后用函数求出最大值与第三个数中的最大值,最后得到的最大值即为所求得的最大值。*/分析并理解程序结构、函数定义和调用的方法,初始参数传递和结果传递的途径。实验题:C语言程序设计习题与实验指导(高克宁著):P88
7、 第2,3题实验四:实验目的:1)掌握数组的基本概念,包括:数组的定义、数组的类型、数组的初始化、数组的赋值、数组元素下标的范围、数组元素的正确以及引用数组元素的输入/输出。2)掌握字符数组与字符串的使用方法。理解字符数组与其它数组的区别、理解字符串及其特点。掌握常用的字符串处理库函数的用法并清楚对字符串的简单处理。3)掌握与数组相关的算法,包括排序算法和查找算法等。示范内容:以下程序是实现从键盘输入10个整型数据,找出其中的最大值并显示。上机运行程序,并分析和理解程序的实现过程,从中学会数组问题的程序设计。#include stdio.h main() int array10,i,Max;
8、for (i=0;i10;i+) scanf(%d,&arrayi); Max=array0; for(i=0;i10;i+) if(Maxarrayi) Max=arrayi; printf(The Max Number is:%d,Max); 分析:首先将数据中的第一个数赋值给最大值,然后用最大值依次与其他数比较,直到求出最大值。1)如果不将第一个数赋值给最大值,程序应怎样修改?2)思考一下实验题:C语言程序设计习题与实验指导(高克宁著):P90 第1,2,题实验五:实验目的:1)掌握指针的基本概念和基本用法。包括:变量的地址和变量的值,指针变量的说明、指针变量的初始化、指针的内容与定义格
9、式、指针的基本运算等。2)掌握数组与指针的关系并能够利用指针解决数组的相关问题。3)掌握字符串与指针的关系并能够利用指针处理字符串的问题。4)掌握指针与函数的关系并能够利用指针处理函数问题。5)能够使用指针进行程序设计。 示范内容:在分析下面程序后进行上机验证并分析运行结果,从中了解指针变量的定义及运算方法。 main() inta=1,b=2,sum,*pa,*pb; pa=&a; pb=&b; s=*pa+*pb; printf(a=%dnb=%dna+b=%dn ,a,b,a+b); printf(sum=%dn ,sum); printf(*pa=%dn*pb=%dn ,*pa,*pb
10、);printf(pa=%dnpb=%dn ,pa,pb); 分析:本程序首先要*说明pa,pb为整型指针变量,并给指针变量pa、 pb赋值,pa指向变量a、pb指向变量b ,其次计算a+b之和(变量计算,指针引用)。1)将程序的第3句、第4句改成 *pa=&a; *pb=&b; 后,程序是否正确?运行结果是多少?为什么?2)比较3句与4句修改前后pa,pb的值。实验题:C语言程序设计习题与实验指导(高克宁著):P93 第1, 3题实验六:(选做)实验目的:1)理解结构体类型的含义;掌握结构体类型变量的定义方法和使用;结构体类型变量的说明以及初始化方法。3)掌握对文件的简单操作,应用文件系统进
11、行程序设计。示范内容:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件stud中。#include stdio.hstruct student char num6;char name8;int score3;float avr; stu5;main() int i,j,sum;FILE *fp;/*input*/for(i=0;i5;i+) printf(n please input No. %d score:n,i);printf(stuNo:);scanf(%s,stui.num);prin
12、tf(name:);scanf(%s,stui.name);sum=0;for(j=0;j3;j+) printf(score %d.,j+1);scanf(%d,&stui.scorej);sum+=stui.scorej;stui.avr=sum/3.0;fp=fopen(stud,w);for(i=0;i5;i+)if(fwrite(&stui,sizeof(struct student),1,fp)!=1)printf(file write errorn);fclose(fp);分析程序,上机运行程序并分析运行结果。通过此例的实习,你是否掌握了结构体定义和应用以及读取文本文件的方法?实验题:C语言程序设计习题与实验指导(高克宁著):P90 第2题、P90 第2题。6 / 6