void main()
{
int a,b;
unsigned c,d;
long e,f;
a=100;
b=-100;
e=50000;
f=32767;
c=a;
d=b;
printf(“%d,%d\n”,a,b);
printf(“%u,%u\n”,a,b);
printf(“%u,%u\n”,c,d);
c=a=e;
d=b=f;
printf(“%d,%d\n”,a,b);
printf(“%u,%u\n”,c,d);
}
3.实验结果
4.实验出错:
在实验中,可能出错的地方有:
(1)输入和输出函数的使用过程中在格式控制的地方可能会出现错误。要严格按照格式控制的形式输入和输出数据。
(2)不同的数据类型的取值范围不同,所以在不同数据类型之间相互复制可能会出现错误
六、 实验总结
通过这次实验,对数据类型的意义有了一定的了解:因为数据的类型决定了数据在内存中的存储空间。会使用输入输出函数进行数据的正确输入和输出。
实验四 运算符与表达式
一、实验学习目标
1.理解常用运算符的意义;
2.掌握C语言算术、赋值、自增、自减运算符及相应表达式;
3.学会根据表达式,编写相应程序,验证表达式结果的方法。
4.注意各个运算符的运算优先级和结合性;
二、实验内容
1.整数除危险性
分析下面三个表达式的值,再设计测试程序,进行比较和分析
int a=5,b=7,c=100,d,e,f;
d=a/b*c;
e=a*c/b;
f=c/b*a;
2.分析下面的程序
试比较x++与++x之间的区别
#includemain()
{int a=5,b=8;
printf(“a++=%d”,a++);
printf(“a=%d”,a);
printf(“++b=%d”,++b);
printf(“b=%d”,b);
3. 分析下列表达式的值
编写测试程序对这些表达式的值时行比较,并使各表达式在相同的初始条件下执行
b+a+++a
b+(a++)+a
b+a+(++a)
b+a+++a++
三、实验原理
1.丰富的运算符和表达式使C语言功能十分完善。
2.自增运算使单个变量的值增1,自减运算使单个变量的值减1
3.运算符具有不同的优先级和结合性。
4.结合性是其它高级语言的运算符所没有的,因此也增加了C语言的复杂性。
四、实验设备
微型计算机、TurboC 2.0语言环境或者其它编程语言环境
五、实验步骤
1.设计算法,写出程序(源程序代码,本次程序不需N-S图)
2.在Turbo C2.0 下编辑,得到源程序(.C)
3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法)
4.记录并分析上述程序的运行结果。
5.实验程序实例:
6.实验结果:
六、实验总结
通过本次实验我学会了编写程序来验证表达式的结果。赋值转换原则:赋值号右边的数据类型转化为赋值号左边的数据类型,然后赋值给赋值号左边的变量。
项目二:流程控制、指针、数组、模块化程序设计
实验五 分支程序设计
一、 实验学习目标
1. 掌握分支程序的设计方法。
2. 进一步掌握关系表达式和逻辑表达式的使用。
3. 熟悉选择结构程序设计。
4. 熟练使用if语句进行程序设计。
5. 使用switch语句实现多分枝选择结构。
二、 实验内容
1.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。
2.任意输入三个数,判断能否构成三角形?若能构成三角形,是等边三角形(equalateral triangle)、等腰三角形(isosceles triangle)还是其它三角形(other triangle)? (不能:输出no triangle)
三、 实验原理
1. 程序if语句的结构和嵌套的结构。
2. 构成三角形的基本原理:两边之和大于大三边,两边之差小于第三边;以及等边三角形、等腰三角形的特性。
四、 实验设备
微型计算机、TurboC 2.0语言环境或者其它编程语言环境
五、 实验步骤
1.设计算法,写出程序(上机前做好,含N-S图及源程序代码)
2.在Turbo C2.0 下编辑,得到源程序(.C)
3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法)
六、 实验总结
通过本次实验进一步熟悉C语言程序的基本结构,回顾学过的程序结构形式,明白其中的原理,上机实际操作,运行实现结果,同时训练一种编程的基本思想。真正懂的分支程序设计的结构。
实验六 循环程序设计
一、实验学习目标
1. 掌握循环程序的设计方法。
2. 掌握while语句、do-while语句和for语句实现循环的方法。
3. 理解循环结构程序段中语句的执行过程。
4. 进一步掌握循环结构程序的应用。
二、 实验内容
1. 有一个分数序列:,求出这个序列的前20项之和。
2. 用牛顿迭代法求方程的近似解,误差范围e由键盘输入。
3. 有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各有几只?设计求解该问题的C语言程序。
三、 实验原理
1. 总结推导公式设计程序方案。
2. 牛顿迭代法的基本原理。
四、实验设备
微型计算机、TurboC 2.0语言环境或者其它编程语言环境。
五、实验步骤
1.设计算法,写出程序(上机前做好,含N-S图及源程序代码)
2.在Turbo C2.0 下编辑,得到源程序(.C)
3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法)
六、 实验总结
通过本次实验进一步熟悉C语言程序的基本结构,回顾学过的程序结构形式,明白其中的原理,上机实际操作,运行实现结果,同时训练一种编程的基本思想。掌握循环程序设计的几种基本结构形式。
实验七 函数
一、实验学习目标
1. 掌握函数的定义、声明及调用的方法。
2. 了解函数调用时参数传递的本质。
二、实验内容
1.计算s=22!+32!
本题可编写两个函数,一个是用来计算平方值的函数f1,另一个是用来计算阶乘值的函数f2。主函数先调f1计算出平方值,再在f1中以平方值为实参,调用 f2计算其阶乘值,然后返回f1,再返回主函数,在循环程序中计算累加和。
2. 在main()函数中输入正方体的长宽高l,w,h。编写函数Vs(int l,int w,int h)求体积及三个面x*y,x*z,y*z的面积并在main()函数输出计算结果。(提示:三个面积可定义为全局变量。)
3.运行以下程序,并对其结果作出分析,为什么两个k会得到不同的值。
main()
{
int i=2,j=3,k;
k=i+j;
{
int k=8;
printf("%d\n",k);
}
printf("%d\n",k);
}
三、 实验原理
1. 阶乘的基本原理:5!=5*4*3*2*1。
2. 函数编写的基本思想,类似数学公式,即自己自定义通用的函数式子再利用c语言的结构进行编写
四、 实验设备
微型计算机、TurboC 2.0语言环境或者其它编程语言环境。
五、 实验步骤
1.设计算法,写出程序(源程序代码,本次程序不需N-S图)
2.在Turbo C2.0 下编辑,得到源程序(.C)
3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法)
六、 实验总结
通过本次实验上机操作,理解函数了的使用方法,训练函数的编写思想,综合练习了函数的应用及c语言各种程序结构的使用。
实验八 数组
一、实验学习目标
1.熟练掌握一维数组和二维数组的定义、赋值、引用和输入输出的方法。
2.掌握字符数组的定义、初始化和引用,并掌握字符串函数的使用。
3.掌握与数组有关的插入、删除、排序、查找等常用算法。
二、实验内容
1.将10个实数存储在一个数组中,设计一个程序输出这个数组的最大值和最小值。
2.输入一行字符,统计其中大写字母出现的次数。
3.输入若干有序数放在数组中。然后输入一个数,插入到此有序数列中,插入后,数组中的数仍然有序。请对以下三种情况运行你的程序,以便验证你的程序是否正确。
(1)插在最前 (2)插在最后 (3)插在中间
三、实验原理
1.比较数组中的数据,取出最大值、最小值。
2.判断字符的大小写并计数。
3.比较数组中数据在适当的位置插入。
四、实验设备
微型计算机、TurboC 2.0语言环境或者其它编程语言环境
五、实验步骤
1.设计算法,写出程序(源程序代码,本次程序不需N-S图)
2.在Turbo C2.0 下编辑,得到源程序(.C)
3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法)
4.实验程序实例:将10个实数存储在一个数组中,设计程序输出这个数组的最大值和最小值。
5.实验结果:(含实验数据及程序运行结果)
六、实验总结
通过本次试验熟练掌握了数组的定义、引用、输入输出的方法。了解字符、字符串和字符数组之间的关系。并能编程实现数组有关的插入、删除、排序、查找操作。
实验九 指针
一、实验学习目标
1.掌握指针的概念,会定义和使用指针变量。
2.基本掌握指针的C程序设计。
3.巩固所学的理论知识,培养锻炼进行复杂C程序设计的能力。
二、实验内容
1.调试下面的程序,指出出错的原因
main()
{
int x=10,y=5,*px,*py;
px=py;
px=&x;
py=&y;
printf(“*px=%d,*py=%d”,*px,*py);
}
2.下面的程序试图有如下运行结果。
which style you want to:
capital (c) or uncaptial(u):c
COMPUTER
which style you want to:
capital (c) or uncaptial(u):u
computer
请调试下面的程序,使其有如上执行结果。
#include main()
{
char *s;
char c;
printf(“which style you want to:1n”);
printf(“capital (c) or uncaptial(u):”);
;
}
三、实验原理
1、指针变量的定义与引用;
2、使用指针编写应用程序;
四、实验设备
微型计算机、TurboC 2.0语言环境或者其它编程语言环境
五、实验步骤
1.设计算法,写出程序(源程序代码,本次程序不需N-S图)
2.在Turbo C2.0 下编辑,得到源程序(.C)
3.编译、连接、调试程序(含编译及调试中出现的问题及解决方法)
4.实验程序实例:从键盘输入两个整数,按由小到大的顺序输出,用指针实现。
5.实验结果:
六、实验总结
通过本次实验进一步熟悉C语言程序熟悉了指针变量的使用,分清了指针变量和指针变量所指向的变量两个概念。
项目三:综合程序设计——竞赛编排及优胜排序
任务:世界杯足球赛决赛阶段N个队参加,每个队有如下属性:(1)所属州(2)是否种子,共有2*M个种子队;(3)队伍的当前积分排序。
共分为M组,每组K人,已知K*M=N。
一、 请设计程序,输出分组方案,规则如下:
(1) 每组分配2名种子队;
(2) 每组同州的球队不超过3支;
(3) 每组球队的积分排序尽可能平均。
二、 设计程序,记录每队的小组赛结果,每一轮比赛后输出排名结果,排名的规则按以下先后次序进行:
(1) 积分,胜队3分,平1分,负0分;
(2) 净胜球;
(3) 进球数;
(4) 两队之间的胜负关系;
(5) 原积分排序。
16 / 16