C语言程序设计II实验指导书.doc

上传人:飞****2 文档编号:52205580 上传时间:2022-10-21 格式:DOC 页数:18 大小:209KB
返回 下载 相关 举报
C语言程序设计II实验指导书.doc_第1页
第1页 / 共18页
C语言程序设计II实验指导书.doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《C语言程序设计II实验指导书.doc》由会员分享,可在线阅读,更多相关《C语言程序设计II实验指导书.doc(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、课程实验指导书第二部分实验内容实验一:数组定义、初始化和引用运算一、实验目的1、掌握一维数组的定义和引用2、掌握一维数组的初始化方法3、了解与一维数组有关的应用编程方法二、实验意义在解决实际问题或实现某些算法时,数组是经常使用的构造数据类型,掌握数组的定义,元素引用特征和数组的编程特色,可加强学生解决实际问题的能力,同时可接触到更多的经典算法,这些算法很多都是通过数组类型存储数据并实现的,有了这些基础后,学生可以在今后的编程中应用这些知识。数组的实验能让学生进一步的提高程序设计编程和调试的能力,对于数组元素引用及循环控制的特点,也可以在实验中得以加深理解和巩固知识。三、实验重点1 一维数组的定

2、义、元素的引用。2 一维数组编程的循环控制特色。3 排序等相关算法的实现。四、实验难点一维数组编程的循环控制特色,程序调试时的数组越界问题排序算法的理解和记忆五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1. 运行下面的程序。根据运行结果,可以说明什么?main( ) int i,x5=1,2,3,4,5; for (i=0;i=5;i+) printf(%4d,xi);2、编程:输入一个长度为10的一维数组,然后将其向右循环移动一位后输出。 如:输入的一维数组啊10为:0 1 2

3、 3 4 5 6 7 8 9 10 则向右循环移动一位后,数组a10变为:10 0 1 2 3 4 5 6 7 8 9 3、从键盘输入10个整数,找出最大的数并输出该数及其下标。4、用scanf函数给二维数组a34输入12个数据,并求出每一行的正数之和,每一行的最小值以及下标值。5、编一程序,将两个字符串连接起来,分别有strcat函数和不要用strcat函数两种方法实现。提示:字符串输入输出可用scanf、printf函数或者gets、puts函数七、实验总结和实验报告的撰写1、以为数组的定义和一维数组初始化的方法。2、一维数组相关算法设计。实验二:字符串处理和数组常用算法实验一、实验目的1

4、 掌握二维数组的定义、元素引用、编程方法。2 掌握字符数组的定义、元素引用、编程方法。3 掌握字符串常用程序设计方法。二、实验意义在解决实际问题或实现某些算法时,数组是经常使用的构造数据类型,掌握数组的定义,元素引用特征和数组的编程特色,可加强学生解决实际问题的能力。在数组的使用中,字符数组及相关字符串操作是经常使用的操作。增强字符数组的编程练习,提高相关程序设计经验对于提高学生的程序设计和调试的能力具有很重要的作用。三、实验重点1 二维数组的定义、元素引用、使用方法。2 字符数组的定义、元素引用、使用方法。3 二维数组编程时的程序设计方法4 字符串的操作及常用程序设计方法。四、实验难点二维数

5、组的相关算法字符串操作的循环控制方法。五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1、编程:随机输入一个长度为20的一维数组a20,对数组a的前10个元素用选择法从小到大排序,后10个元素用冒泡法从大到小排序,最后用数组a的前10个元素分别减去后10个元素,得到的结果存放在长度为10的一位数组b10中;程序要求把排序前和排序后的数组a和数组b输出。2、把第一题的数组b的最大和最小删除,然后插入最大值和最小的平均值,要求插入后不改变数组的排序。3、找出一个二维数组的“鞍点”,即该位

6、置上的元素在该行上最大,在该列上最小。也可能没有鞍点。至少准备两组测试数据:()二维数组有鞍点9 80 205 4090 -60 96 1 210 -3 101 89()二维数组没有鞍点 9 80 205 40 90 -60 96 1 210 -3 101 89 45 54 156 7用scanf函数从键盘输入数组的各元素的值,检查结果是否正确,题目未指定二维数组的行数和列数,程序应能处理任意行数和列数的数组。程序提示:输入矩阵flag2=0;/矩阵中无鞍点for(i=0;in;i+)/找第i行的鞍点max=ai0;maxj=0;用for循环语句找第i行的最大值存放在max中,其下标j保存到m

7、axj中for(k=0,flag1=1;kakmaxj) flag1=0;/max不是该列的最小元素if(flag1)printf(n第%d行第%d列的%d是鞍点n,i+,maxj+,max);flag2=1;/endforiif(!flag2) printf(n矩阵中无鞍点n);4、 输入一行字符,统计其中的单词个数,已知单词之间用空格分隔开。5、从键盘输入一个字符串,分别输出其完全大写和完全小写的形式。6、输入6个字符串,输出最大的字符串。七、实验总结和实验报告的撰写实验三:函数的申明、定义和简单函数的应用一、实验目的1、掌握模块化编程方法中自定义函数和主调函数的模块关系。2、函数的申明格

8、式和申明的位置3函数的定义格式4函数的调用二、实验意义采用模块化程序设计的方法,是解决复杂问题的基础。将一个复杂的较大的问题,分解为一个个独立的简单模块。模块在C语言中是用函数来实现的,因此掌握好函数的定义、调用,及了解函数模块之间的连接关系对于开发大型项目具有非常重要的意义,函数的实验对于巩固和理解函数的知识是非常必要的。三、实验重点掌握函数的申明和定义的格式,自定义函数和主函数与系统函数的区别,自定义函数的的调用的格式,以及各函数执行的顺序。四、实验难点函数的申明和定义以及函数的调用五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填

9、写到实验报告上,实验完成时上交实验报告。六、实验内容1、编写一个函数,输出语句:“I Love China!”。2、调试下面的程序,记录系统给出的出错信息,并指出错误原因。main( ) int x,y; printf(%dn,sum(x+y);int sum(a,b); int a,b; return(a+b);3、编写两个函数分别实现:sum实现1到m的累加,mul实现1到n累乘; 在主函数main里调用sum和mul函数求1到30累加和1到15累乘,最后 把累加和累乘结果输出。4、编写一个函数prime实现:判断任何一个数是否为素数;并在main函数里调用prime函数判断一个数是否为素

10、数。5、编写函数,判断指定的字符是否是数字字符,如果是返回1,不是则返回0。在主函数中输入该字符,调用函数判断该字符并输出是否是数字字符。6、编写一个函数,计算一个整数m的n次幂,在主函数中输入m和n,并在主函数中输出计算结果。7、编写一个函数,输出如下图形* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *七、实验总结和实验报告的撰写实验四:有参、无参函数应用实验一、 实验目的1、掌握定义无参函数和有参函数的定义及调用方法。

11、2、掌握函数调用时如何处理函数的返回值。二、实验意义在模块化程序设计中通常有值的传递,也就是在调用函数的时候,主调用函数在调用被调用函数的时,通过参数向被调用的函数传递数据,一般情况下,执行被调用函数时会得到一个函数值,共主调用函数使用,这叫有参函数;而在有时在调用函数时,主调用函数不想被调用函数传递传递数据,也就是无参函数,无参函数一般用来执行指定的一组操作,无参函数可以带回或者不带回函数值,但一般以不带回函数值的居多。三、实验重点1 无参函数的定义和调用2 有参无返回值函数的定义和调用3 对于有返回值函数调用时的处理方法 四、实验难点有参函数调用时,实参和形参的概念理解和对应关系。有返回值

12、函数调用时返回值的处理五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1、理解下面的程序,填空完善程序。main()int a, b, c; scanf(“%d %d”, ); c= (a, b); printf(“a=%d b=%d max=%dn”, a, b, c);int max(x, y) ;int z; if(xy) z=x; else z=y; ;2、编写一个函数:其功能是求n个学生的平均分,并且把把学生的成绩从小到大排序。学生的成绩在主函数里用scanf函数输入存放在

13、一维数组里。3、编写一个函数trans:其功能是实现一个三行四列二维数组转置,并求转置后第一行和最后一列之和;把转置后的数组和第一行、最后一列元素之和输出。三行四列的数组在main函数里用scanf函数输入。4、求1!+2!+n!,要求:编写两个函数,分别实现求n!功能,和1!+2!+n!功能,在主函数输入n值,并在主函数中输出计算结果。三、实验要求实验之前掌握顺序控制程序设计的相关算法。四、课堂作业提交把所编写的程序复制到一个以学号命名Word文件里,并且把运行结果截图粘贴在每程序的后面;下课前提交Word文件。五、实验总结和实验报告的撰写实验五:函数的常用算法和综合应用一、 实验目的1、掌

14、握函数的相关的算法的实现2、掌握函数的嵌套调用和递归调用3、内部函数和外部函数的定义和区别4、掌握全局变量和局部变量,动态变量、静态变量的概念和使用方法。5、学会对多文件程序的编译和运行。二、实验意义一个C程序由一个或多个程序模块组成每一个程序模块作为一个源程序文件,对较大的程序,一般不希望把所有内容全放在一个文件中,而是将它们分别放在若干个源文件中,由若干个源文件组成一个C程序。这样便于分别编写和编译,提高效率;每个文件又有若干和函数,每个函数都实现某个特定的功能,也有相应算法。三、实验重点1、函数的的嵌套调用和递归调用2、函数的相关算法的实现四、实验难点1、函数的的嵌套调用和递归调用2、函

15、数的相关算法的实现五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1、函数fun的功能是:使一个字符串按逆序存放,请填空。void fun(char str )char m; int i, j; for(i=0, j=strlen(str); i ; i+, j-) m=stri; stri= ; strj-1=m; printf(“%sn”, str);2、指出下列各变量的存储属性,分析程序的应得结果,并上机验证。#include int n=1;void func( ) stat

16、ic int a=2; int b=5; a+=2; b+=5; n+=12; printf(a=%d,b=%d,n=%dn,a,b,n);void main( ) int a=0,b= -10; printf(a=%d,b=%d,n=%dn,a,b,n); func( ); printf(a=%d,b=%d,n=%dn,a,b,n); func( );3、 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用者两个函数,并输出结果。两个整数有键盘输入。4、 有一个班,有4个学生,5门课。求各门课的平均分;找出有两门以上课程不及格的学生,输出它们的学号和全部课程成绩及平均成绩。找出

17、平均成绩在90分以上或全部课程成绩在85分以上的学生,输出它们的学号和全部课程成绩。分别编三个函数实现以上三个要求。五、实验总结和实验报告的撰写实验六:指针变量定义、赋值与指针和数组的应用一、 实验目的1、掌握C语言中指针的概念,定义和使用指针变量; 2、掌握指针数组和数组指针的使用方法;3、掌握字符串指针和指向字符串的指针变量的使用方法;4、掌握指向函数的指针变量的使用方法;5、掌握指向指针的指针概念的使用方法;二、实验意义指针是C语言的一个重要概念,也是C语言的一个重要特色,正确而灵活地运用它,可以使程序简洁,紧凑,高效。每一个学习C语言的人,都应当深入地学习和掌握指针,可以说,不掌握指针

18、就是没有掌握C语言的精华。三、实验重点1、指针变量的定义和指针的含义2、掌握指针数组和数组指针的使用方法;3、掌握字符串指针和指向字符串的指针变量的使用方法;4、掌握指向函数的指针变量的使用方法;5、掌握指向指针的指针概念的使用方法;四、实验难点1、掌握指针数组和数组指针的使用方法;2、掌握字符串指针和指向字符串的指针变量的使用方法;3、掌握指向函数的指针变量的使用方法;4、掌握指向指针的指针概念的使用方法;五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1、 1、调试下面的程序,指

19、出错误的原因。main( ) int x=10,y=5,*px,*py; px=py; px=&x; py=&y; printf(*px=%d,*py=%dn,*px,*py);2、 定义一个数组,用指针去访问每个元素,进行输入与输出。3、 有一段文字,共有5行,分别统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。4、 编写一个程序,将字符数组str2中的全部字符拷贝到字符数组str1中。不要使用strcpy函数。七、实验总结和实验报告的撰写实验七:指针和函数的应用实验一、实验目的1 理解指针的含义2 掌握指针作为函数参数的意义,及实参的表达形式。3 了解返回指针值的函数。二、

20、实验意义指针是C语言特殊的数据类型,通过指针可以实现对变量的内存地址空间进行访问,因此能够实现其它开发语言不具备的特殊功能。函数间进行数据传递时,由于函数本身只能返回一个值给调用函数,当需要返回多个处理结果时,就必须要使用指针参数。正确的理解指针的含义,使用指针参数在主调函数与被调函数传递数据,能够极大的拓展程序的功能,进一步的提高程序设计的能力。三、实验重点1 指针变量的含义及定义、使用。2 指针作为函数参数的使用。3 指针参数的函数调用时实参形式要求。4 返回指针值的函数调用。四、实验难点指针参数的定义及调用时实参的形式。正确理解指针传递数据的过程。五、实验方式提前编写程序,写好实验报告,

21、上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1、下面的程序通过函数average计算数组中各元素的平均值,请填空。float average(int *pa,int n)int i; float avg=0.0; for(i=0;in;i+) avg=avg+ ; avg= ; return avg;main()int i,a5=2,4,6,8,10; float mean; mean=average(a,5); printf(“mean=%fn”,mean);2、编写函数,以指针为参数,从N行N列的矩阵找出各行的最大

22、数,再求着N个最大值中最小的的那个数作为函数值返回。3、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。五、实验总结和实验报告的撰写实验八:结构体和共用体的定义赋值和应用一、实验目的1 掌握结构体类型的定义、变量定义、使用方法。2 掌握结构体编程的特色。3 掌握结构体数组的使用。4 掌握结构体指针的使用5 掌握结构体作为函数参数的编程二、实验意义在解决实际问题时,常需要构造具有现实意义的复杂数据类型结构体类型。结构体类型知识与前面所学的循环、数组、函数等知识结合使用,使编程者具备了比较全面的编程素质,因而能够开发一些具有实际意义的项目。学好本章知识,可将程序设计从算法

23、实现上拓展到现实应用中,同时本章知识也是综合编程能力的一个表现。三、实验重点1 结构体类型的定义、结构体变量定义、结构体变量的使用。2 结构体数组的使用。3 结构体指针4 结构体类型作为函数参数四、实验难点结构体数组使用结构体指针访问结构体数组结构体作为函数参数的函数编程。五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1. 编写和调试下列题目的程序:定义结构体变量,任意给定一天,求该日是本年中的第几天;2. 编写和调试下列题目的程序:定义结构体的学生成绩数组,其中包括学号、姓名、分数等,输入和输出学生的各门成绩。 3、编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score3,用主函数输入这些记录,用print函数输出这些记录。4、在第三题的基础上,编写一个函数input,用来输入5个学生的数据记录。5. 编写和调试下列题目的程序:建立一个链表,每个结点包括学号、姓名、性别、年龄。输入一个年龄,删除链表中该年龄的结点。七、实验总结和实验报告的撰写

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com