《程序设计语言》课程实验教学大纲Word格式.docx
《《程序设计语言》课程实验教学大纲Word格式.docx》由会员分享,可在线阅读,更多相关《《程序设计语言》课程实验教学大纲Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
2
专业
验证
本、专科
必开
最简单的C语言程序设计
3
综合
选择结构程序设计
5
设计
2~3
4
循环控制
数组的定义与算法
6
函数
7
指针
8
结构体与共用体
9
位运算与文件
七、实验教学的目的和要求
指本门实验课总的目的和要求,通过实验培养学生总体上了解或掌握什么方法或技能,达到什么目的;
对学生有什么具体要求(比如:
理解实验原理及实验方案,掌握正确操作规程;
掌握各种仪器的使用,了解其性能参数、适应范围及注意事项等)。
八、实验项目的内容和要求
实验1:
数据类型、运算符和表达式
1、实验内容:
内容1:
掌握符号常量的使用
(1)分析以下程序的功能
#definePI3.14
main()
{floats,r;
printf(“inputafloatnumber:
\n”);
scanf(“%f”,&
r);
s=PI*r*r;
printf(“s=%f\n”,s);
}
(2)写出以下程序的运行结果
#defineM5+6
{inta=5,b;
b=M*a;
printf(“b=%d\n”,b);
(3)写出下列程序的运行结果,并比较与
(2)程序的区别,从而得出符号常量定义的本质。
#defineM(5+6)
内容2:
大小写字母转换。
运行下面的程序并写出运行结果
{charc1,c2;
c1=’a’;
c2=’b’;
c1=c1-32;
c2=c2-32;
printf(“%c%c”,c1,c2);
内容3:
考虑将下面的程序c1和c2赋以整数为初值
c1=97;
c2=98;
内容4:
本章小知识综合题。
写出下列程序执行的屏幕输入以及显示的结果!
认真思考每一步的原理!
#defineX5.3+9.1
{inta1,a2,a3,zj1,zj2;
unsignedintu1=8;
floatb1,b2,b3;
charc1=’h’,c2=’i’,c3=’s’;
printf(“u1=%d\n”,u1);
printf(“inputaintnumbera1=\n”);
scanf(“%d”,&
a1);
printf(“inputaintnumbera2=\n”);
a2);
a3=a1+a2+u1;
printf(“a1=%d,a2=%d,u1=%d,a3=a1+a2+u1=%d\n”,a1,a2,u1,a3);
a3=a3-(int)(x);
printf(“a3=a3-(int)(x)=%d\n”,a3);
printf(“%d,%c,%c##\bfloat\t\’\\int\x01\x03\n”,c1,c2,c3);
zj1=1;
zj2=++zj1;
printf(“1:
zj1=%d,zj2=%d\n”,zj1,zj2);
zj2=zj1--;
printf(“2:
printf(“a1=%d,a2=%d,a3=%d\n”,a1,a2,a3);
a3*=a1+2*a2;
printf(“a3=a3*(a1+2*a2)=%d\n”,a3);
printf(“%d,%d,%d\n”,-0x13,011,-024);
2、实验要求:
(1)掌握定义整型、字符型和实型变量的方法,以及对它们的赋值方法。
(2)学会使用C语言的有关算术运算符,以及包含这些运算符的表达式。
(3)学会编辑、编译、连接和运行C语言程序。
实验2:
编程序,输出如下图形。
*
***
*****
*******
*********
编写程序,输入变量x值,输出变量y的值,并分析输出结果。
(1)y=2.4*x-1/2
(2)y=x%2/5-x
(3)y=x>
10&
&
x<
100
(4)y=(x-=x*10,x/=10)
运行下述程序,分析输出结果
{inta=10;
longintb=10;
floatx=10.0;
doubley=10.0;
printf(“a=%d,b=%ld,x=%f,y=%lf\n”,a,b,x,y);
printf(“a=%ld,b=%d,x=%lf,y=%f\n”,a,b,x,y);
printf(“x=%f,x=%e,x=%g\n”,x,x,x);
}
请写出下面程序的输出结果:
{inta=6,b=3;
floatx=37.8534,y=-729.124;
charc=’B’;
longn=7654321;
unsignedu=65535;
printf(“%d%d\n”,a,b);
printf(“%4d%5d\n”,a,b);
printf(“%f,%f\n”,x,y);
printf(“%-10f,%-10f\n”,x,y);
printf(“%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n”,x,y,x,y,x,y);
printf(“%e,%10.2e\n”,x,y);
printf(“%c,%d,%o,%x\n”,c,c,c,c);
printf(“%ld,%lo,%lx\n”,n,n,n);
printf(“%u,%o,%x,%d\n”,u,u,u,u);
printf(“%s,%5.3s\n”,”BUTTER”,”STUDENT1”);
(1)掌握赋值语句的使用。
(2)掌握数据的输入/输出方法,学会输入/输出函数的使用方法
实验3选择结构程序设计
范例1:
p101例5.6。
计算下列分段函数值:
①用if语句实现分支。
②变量x用scanf函数输入,结果的输出采用以下形式:
x=具体值,f(x)=具体值
③分别输入x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0,运行该程序。
范例2:
p103例5.7。
用scanf函数输入一个百分制成绩(整型量),要求输出成绩等级A,B,C,D,E。
其中90~100为A,80~89为B,70~79为C,60~69为D,60分以下为E。
题目要求:
①用if语句实现分支
②用switch语句实现分支
选择结构程序设计是最基本最常用的一种程序设计技能,要求:
(1)进一步掌握各种表达式的使用;
(2)利用IF语句实现选择结构;
(3)利用switch语句实现多分支选择结构;
(4)练习调试与修改程序。
实验4循环控制
利用循环实现九九乘法表。
打印如下数字方阵(打印行数n可输入)
12345
22345
33345
44445
55555
“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁母雏各几何?
”
进一步联系选择结构的程序设计。
练习并掌握实现循环结构的三种方法
练习并掌握选择结构与循环结构的嵌套
练习调试与修改程序
实验5数组的定义与算法
定义一个含有30个整型元素的数组,按安顺序分别赋予从2开始的偶数,然后安顺序每5个数求出一个平均值,放在另一个数组中并输出。
设计一个程序,实现如下功能:
(1)定义一个数组输入30个整数。
(2)给数组赋初值
(3)按顺序每5个求出一个平均值,并存放在另外一个数组中
(4)输出数组。
数组的定义、赋值与输入输出。
有一个字符串(“adfgikmnprs”)存放在一个数组中,输入一个字符,要求用折半查找法找出该字符是数组中第几个元素的值。
如果该字符不在数组中,则输出“**”。
学会对数组的有关操作,学会运用字符数组与系统所提供的字符串函数,要求:
(1)数组的定义、赋值;
(2)数组的输入输出方法;
(3)字符数组和字符串函数的使用;
(4)数组有关的算法(排序算法);
实验6函数
写一个用迭代法求平方根的函数。
(1)能输入n个整数。
(2)用选择法对n个整数实现排序的通用函数。
(3)能输出n个整数。
求组合数。
用递归函数实现计算k阶裴波那契数列的第m项,所求第m项大于等于给定的数值max,其前一项小于给定的数值max。
要求2:
用2个文件实现该程序,用户自定义函数放在文件mysource.c中,主函数放在mymain.c中。
函数是c程序的基本组成单位,要求熟练掌握:
(1)函数的定义及调用;
(2)函数参数的传递,形参、实参的关系,函数原型;
(3)变量的存储类别及它们之间的差别;
(4)作用域概念,全局变量与局部变量的比较。
(5)掌握函数的嵌套调用、递归调用,掌握递归法编程;
(6)掌握程序的多文件组织。
实验7指针
将两组整型数据中的相同元素合并为一组降序排列的序列,要求时间复杂度最小。
要求:
(1)能输入这两组的数据。
(2)调用实验a编好的排序算法对分别两组进行排序。
(3)将两组已升序排好的数据序列中的相同元素合并为一个降序排列的数据序列,要求时间复杂度最小。
(4)能输出合并后的数据。
40个学生4门课程,4门课程分别为:
语文、数学、英语、物理,求出
(1)每个学生的平均分并输出;
(2)每门课程的最高分并输出;
(3)单科最高分并输出;
(4)总分最高的学生的姓名与学号并输出。
以上题目要求函数的形参用指针定义。
在图形态下设计绘图软件,该软件具有如下功能:
(1)通过菜单选择的方式在指定的位置画点、线、矩形;
(2)能够给矩形着色,能够填充矩形。
(1)指针的定义与使用;
(2)指针和数组的相互关系;
(3)数组或指针作为函数参数的函数定义及调用方法;
(4)字符串与运算。
(5)会设计dos提示符命令
实验8结构体与共用体
有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
(1)用input函数输入10个学生的数据。
(2)用average函数求总平均分。
(3)用max函数找出最高分的学生数据。
(4)总平均分和最高分学生的数据都在主函数中输出。
13个人围成一圈,从第一个人开始顺序报号1、2、3。
凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。
要求用链表实现。
(1)结构体类型变量的定义与使用;
(2)结构体类型数组的概念和使用;
(3)链表的概念,初步学会对链表进行操作;
(4)共用体的概念与使用
实验9位运算与文件
设计一个函数,使给出一个数的原码,能得到该数的补码。
用八进制形式输入和输出。
从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,输出到磁盘文件“upper.txt”中保存。
输入的字符串以“!
”结束。
然后在将文件upper.txt中的内容读出显示在屏幕上。
学会对文件的基本操作。
(1)位运算的概念的方法,学会使用位运算符;
(2)学会使用文件打开、关闭、读、写等文件操作
九、实验课考核方式:
(1)实验报告:
班级:
学号:
姓名:
课程名称:
实验教师:
实验时间:
实验题目
需求分析:
程序设计的任务,强调需要做什么,明确规定任务。
输入的形式和输入值的范围:
输出的形式:
程序所能达到的功能:
测试数据:
包括正确的输入输出结果和错误的输入输出结果。
概要设计:
对于面向过程的程序设计,说明用到的数据结构定义、主程序的流程及几个程序模块的调用关系,各个模块的功能。
对于面向对象的程序设计,要说明对象的抽象划分思想、功能、属性、对外提供的服务以及类之间的继承关系图。
详细设计:
提交有注释的源程序或者用伪代码写出每个操作所涉及的算法。
调试分析:
调试过程中所遇到的问题及解决方法。
算法的时空分析。
经验与体会。
程序使用说明书:
用户如何使用你的程序,详细列出每一操作步骤。
实验分数:
实验教师签字:
(2)考核方式:
实验课单独考核,上机考试。