《C语言程序设计》
实验报告
2012~20##学年第二学期
实验一
实验项目名称:C程序的运行环境和运行C程序的方法
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序;
2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:
教材《C语言程序设计教程》第1章。
三、实验内容:
1. 在Visual C++ 6.0环境下输入并运行下面的程序:
#include <stdio.h>
int main( )
{
printf("This is a C program.\n");
return 0;
}
2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include <stdio.h>
int main( )
{
int a,b,sum
a=3;
b=4;
sun=a+b;
print("%d+%d=%d\n",a,b,sum);
return 0;
}
四、实验结果:
1. 运行结果(或截图):
2. (1) 改正后的源程序:
(2) 运行结果(或截图):
五、思考题:
1. 一个C程序上机的步骤有哪些?
答:
2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?
答:
成绩 指导教师签名
实验二
实验项目名称:数据类型、运算符和表达式
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1.掌握整型、实型与字符型这三种基本类型的概念;
2.掌握常量及变量的使用方法;
3. 掌握基本算术运算符及其表达式的使用方法;
4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。
二、预习内容:
教材《C语言程序设计教程》第2章。
三、实验内容:
1. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误。
#include <stdio.h>
int main( )
{
int 2cd=3;
float π=3.14;
char for=′A′;
printf("%d,%f,%c\n",2cd,π,for);
return 0;
}
2. 在Visual C++ 6.0环境下输入并运行下面的程序,观察分析运行结果。
#include <stdio.h>
int main( )
{
int a=3,b=4,c=8;
float d,e;
d=a+b/c;
e=a+(float)d/c;
printf("d=%f,e=%f\n",d,e);
return 0;
}
3. 在Visual C++ 6.0环境下输入并运行下面的程序,观察分析运行结果。
#include <stdio.h>
int main( )
{
int a,b,c,d,i,j,m,n;
a=b=c=d=3;
i=a++;
j=++b;
m=c--;
n=--d;
printf("a=%d,b=%d,c=%d,d=%d,i=%d,j=%d,m=%d,n=%d\n",a,b,c,d,i,j,m,n);
return 0;
}
4. 在Visual C++ 6.0环境下输入并运行下面的程序,观察分析运行结果。
#include <stdio.h>
int main( )
{
int a=4;
a+=a-=a*a+a;
printf("a=%d\n",a);
return 0;
}
四、实验结果:
1. 该程序为什么出错?
答:
2. 运行结果(或截图):
3. 运行结果(或截图):
4. 运行结果(或截图):
五、思考题:
1. 给变量命名应该注意哪些问题?
答:
2. 程序2的运行结果中,d和e的值为什么不同?
答:
3. 程序1的运行结果中,i和j的值为什么不同?m和n的值为什么不同?
答:
4. 请分析表达式a+=a-=a*a+a的运算过程(写出运算步骤)。
答:
成绩 指导教师签名
实验三
实验项目名称:简单的输入输出及顺序程序设计
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1. 掌握整型、实型与字符型数据的正确输入方法(scanf函数的使用);
2. 掌握整型、实型与字符型数据的正确输出方法(printf函数的使用);
3. 掌握编写顺序程序的方法。
二、预习内容:
教材《C语言程序设计教程》第3章。
三、实验内容:
1. 下面程序的功能是:从键盘输入2个整数,输出它们的和。
#include <stdio.h>
int main( )
{
int a,b,sum;
sum=a+b;
printf("%d+%d=%d\n",a,b,sum);
return 0;
}
请在横线上填写一条合适的语句,使程序完整,然后上机运行该程序。
2. 在Visual C++ 6.0环境下输入并运行下面的程序,观察分析程序运行过程及结果。
#include <stdio.h>
int main( )
{
int a,b,sum;
printf("请输入第一个整数:");
scanf("%d",&a);
printf("请输入第二个整数:");
scanf("%d",&b);
sum=a+b;
printf("%d+%d=%d\n",a,b,sum);
return 0;
}
3. 下面程序的功能是:输出a,b,c三个变量的值。
#include <stdio.h>
int main( )
{
int a=35;float b=43.6578;char c=′A′;
return 0;
}
请在横线上填写一条合适的语句,使程序完整,运行该程序,且让程序的运行结果如下:
a=35,b=43.66,c=′A′
4. 设圆半径r=1.5,圆柱高h=3,编写程序求圆周长、圆面积、圆球表面积、圆球体积和圆柱体积。要求用scanf语句输入半径和高,输出时有文字说明,取小数点后两位。
四、实验结果:
1. (1) 横线上应填写的语句为:
(2) 运行结果(或截图):
2. 运行结果(或截图):
3. (1) 横线上应填写的语句为:
(2) 运行结果(或截图):
4. (1) 程序中用到的变量(类型)
(2) 算法(用伪代码描述)
(3) 源程序清单
(4) 运行结果(或截图)
五、思考题:
程序1和程序2中输入数据的方式有什么不同?你认为哪种方式较好?从两种输入方式的对比中你得到什么启发?
答:
成绩 指导教师签名
实验四
实验项目名称:选择结构程序设计
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1. 正确使用关系运算符和关系表达式;
2. 正确使用逻辑运算符和逻辑表达式;
3. 熟练使用if语句实现选择结构程序;
4. 熟练使用switch语句实现多分支选择结构程序。
二、预习内容:
教材《C语言程序设计教程》第4章。
三、实验内容:
1. 下面程序的功能是:输入学生成绩,若成绩在90分以上,输出“Excellent!”;若成绩在60—89分之间,输出“Pass!”;若成绩在60分以下,输出“Fail!”。请将程序补充完整,并上机运行程序。
#include <stdio.h>
int main( )
{
int score;
printf("请输入分数(0--100):");
scanf("%d", );
if(score>100 || score<0) printf("Input Error!\n");
else if( ) printf("Excellent!\n");
else if( ) printf("Pass!\n");
printf("Fail!\n");
return 0;
}
运行该程序4次,分别输入4个不同的数据,对应4种不同的情况,记录运行结果:
2. 有如下分段函数:
请输入x的值,求解对应的y值。
3. 设计一个简单的计算器程序,用户输入运算数(实型)和四则运算符(+、-、*、/)(例如,输入:45.6/2.4),输出计算的结果(要求结果保留两位小数)。
四、程序中所用的变量及其类型:
2.
3.
五、算法(用伪代码描述):
2.
3.
六、源程序清单:
2.
3.
七、实验结果:
2. 运行结果(执行程序3次,分别输入不同的3个数,对应3种不同的情况):
3. 运行结果(执行程序4次,分别输入4组不同的数据,对应4种不同的情况):
成绩 指导教师签名
实验五
实验项目名称:简单循环程序设计
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1. 掌握循环程序的基本结构;
2. 熟练掌握while、do—while及for语句,并会用来编写循环结构程序。
二、预习内容:
教材《C语言程序设计教程》第4章。
三、实验内容:
1. 输入一个5位正整数,输出该整数的倒序。例如:12345对应输出为:54321。(要求用while语句)
2. 有一个分数序列:,,, …… 编写程序,求这个数列的前20项之和。(要求用for语句,且结果保留6位小数)
四、程序中所用的变量(类型及其初值):
1.
2.
五、算法(用伪代码描述):
1.
2.
六、源程序清单:
1.
2.
七、实验结果:
1. 运行结果(或截图):
2. 运行结果(或截图):
成绩 指导教师签名
实验六
实验项目名称:多层循环程序设计及break、continue语句在循环程序中的应用
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1. 掌握多层循环程序的执行过程及设计方法;
2. 掌握break及continue语句在循环程序中的使用方法。
二、预习内容:
教材《C语言程序设计教程》第4章。
三、实验内容:
1. 编写一个程序,打印一个如下图所示的菱形。
*
***
*****
*******
*****
***
*
2. 编程输出100以内的所有素数。
3. 编程输出前2个水仙花数(所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身,例如,153=13+53+33,所以153是一个水仙花数)。
四、程序中所用的变量(类型及其初值):
1.
2.
3.
五、算法(用伪代码描述):
1.
2.
3.
六、源程序清单:
1.
2.
3.
七、实验结果:
1. 运行结果(或截图):
2. 运行结果(或截图):
3. 运行结果(或截图):
成绩 指导教师签名
实验七
实验项目名称:数组及其应用
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1. 掌握一维数组的定义、赋值、输入输出及其应用;
2. 掌握二维数组的定义、赋值、输入输出及其应用;
3. 掌握字符数组的定义、赋值、输入输出及其应用。
二、预习内容:
教材《C语言程序设计教程》第5章。
三、实验内容:
1. 编程在一个已按从小到大排列好的数组中插入一个数,要求插入该数后的数组仍按原规律排列。
2. 编程输出3行4列矩阵中的最大元素值,矩阵中的每个元素值要求从键盘输入。
3. 编程将一个字符串中的所有英文字母组成一个新的字符串。
四、程序中所用的变量(类型及其初值):
1.
2.
3.
五、算法(用伪代码描述):
1.
2.
3.
六、源程序清单:
1.
2.
3.
七、实验结果:
1. 运行结果(或截图):
2. 运行结果(或截图):
3. 运行结果(或截图):
成绩 指导教师签名
实验八
实验项目名称:函数的定义及调用
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1.熟悉定义函数的方法;
2. 掌握函数的调用方式及主调函数与被调函数间的信息传递方法;
3. 掌握递归方法以及会用函数来实现递归。
二、预习内容:
教材《C语言程序设计教程》第6章。
三、实验内容:
1. 下列程序的功能是求三个整数的最大值,请填空。
#include <stdio.h>
int max(int a,int b)
{
int c;
if(a>b) c=a;
else c=b;
;
}
int main( )
{
int x,y,z,maxi;
scanf("%d%d%d",&x,&y,&z);
maxi= ;
printf("Max of %d、%d and %d is %d.\n",x,y,z,maxi);
return 0;
}
2. 在主函数中输入两个正整数,调用函数求它们的最小公倍数,结果在主函数中输出。
3. 用递归方法求解猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第1天共摘了多少个桃子。
四、程序中所用的变量(类型及其初值):
2.
3.
五、算法(用伪代码描述,只需写被调函数的算法):
2.
3.
六、源程序清单:
2.
3.
七、实验结果:
1. 运行结果(或截图):
2. 运行结果(或截图):
3. 运行结果(或截图):
八、思考题:
1. 函数的调用方式有哪几种?各使用在什么场合?
2. 形参和实参起什么作用?形参和实参有什么不同?
3. 一个问题想用递归方法解决,必须满足什么条件?
成绩 指导教师签名
实验九
实验项目名称:数组名作函数参数及变量的作用域与存储方式
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1.掌握数组名作函数参数时形参与实参的定义方法;
2.会使用数组名作函数参数在主调函数与被调函数间传递多个数据;
3.掌握变量的作用域(局部变量与全局变量);
4. 掌握变量的存储方式(动态存储与静态存储)。
二、预习内容:
教材《C语言程序设计教程》第6章。
三、实验内容:
1. 运行以下程序,并分析结果。
#include <stdio.h>
int x=8,y=3;
int max(int a,int b)
{
int c;
if(a>b) c=a;
else c=b;
return c;
}
int main( )
{
int x=4,maxi;
maxi=max(x,y);
printf("%d\n",maxi);
return 0;
}
2. 运行以下程序,并分析结果。
#include <stdio.h>
int f(int a)
{
static int b=0;
b=b+a;
return b;
}
int main( )
{
int x=1,y1,y2;
y1=f(1);
y2=f(1);
printf("y1=%d,y2=%d\n",y1,y2);
return 0;
}
3. 在主函数中输入10个整数,调用函数sort将它们按从小到大的顺序排序,排序结果在主函数中输出。
四、程序中所用的变量(类型及其初值):
3.
五、算法(用伪代码描述,只需写被调函数的算法):
3.
六、源程序清单:
3.
七、实验结果:
1. 运行结果(或截图):
2. 运行结果(或截图):
3. 运行结果(或截图):
八、思考题:
1. 第1题的结果为什么不是“8”?
2. 第2题的结果中,y1和y2的值为什么不一样?
成绩 指导教师签名
实验十
实验项目名称:指针及其应用
所使用的工具软件及环境:Visual C++ 6.0
一、实验目的:
1.掌握指针和间接访问的概念,会定义和使用指针变量;
2. 能利用指针变量作函数参数得到多个要改变的值;
3.能正确定义指向数组的指针变量,并能用其对数组进行访问;
4.能正确定义指向字符串的指针变量,并能用其对字符串进行访问。
二、预习内容:
教材《C语言程序设计教程》第7章。
三、实验内容:
1. 在主函数中输入2个整数,调用swap函数将它们的值交换,结果在主函数中输出。
2. 在主函数中输入10个整数,调用函数sum求它们的和,结果在主函数中输出(要求:实参用数组名,形参用指针变量)。
3. 在主函数中输入一个字符串,调用converse函数将该字符串逆序,结果在主函数中输出。(要求:实参用字符数组名,形参用指针变量)。
四、程序中所用的变量(类型及其初值):
1.
2.
3.
五、算法(用伪代码描述,只需写被调函数的算法):
1.
2.
3.
六、源程序清单:
1.
2.
3.
七、实验结果:
1. 运行结果(或截图):
2. 运行结果(或截图):
3. 运行结果(或截图):
成绩 指导教师签名
《C语言程序设计》
综合实验实验报告
2011~20##学年第二学期
班 级:
姓 名:
学 号:
指导教师:
一、实验目的:
熟悉C语言的编程和调试环境,熟悉应用程序的设计过程,掌握基本的程序设计方法,培养学生用计算机解决实际问题的能力。
二、实验内容:
设计一个班级学生成绩管理系统,要求实现以下功能:
(1)输入班级学生的信息(学号、姓名及英语、高数、C语言三门课程的期末考试成绩);
(2)统计每名学生三门课程的总成绩;
(3)统计每门课程的平均成绩;
(4)按姓名查找并输出学生的信息;
(5)按总成绩由高到低对学生信息进行排序;
(6)添加记录(每名学生的信息称为一条记录),要求添加的记录与已有的记录不能重复;
三、采用的主要数据结构、函数及需要包含的头文件:
1. 需要包含的头文件
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h
2. 存储学生信息所用的结构体类型
struct Student
{
char code[11]; /*存储学号,假设学号为10位数字*/
char name[20]; /*存储姓名*/
float score[3]; /*存储三门课程的成绩*/
float total; /*存储总成绩*/
};
3. 主要数据结构
常量N(值设为120),用于表示班级的最大人数(假设一个班级的人数不超过120);
全局变量int num:用于存储班级的实际人数;
全局数组float ave[3]:用于存储三门课程的平均成绩;
结构体数组struct Student stu[N]:用于存储班级学生的信息;
字符数组char in_name[20]:用于存储查找学生信息时输入的学生姓名;
结构体变量struct Student insert_stu :用于存储要添加的学生记录。
4. 主要函数
system("cls"):清屏函数(该函数为库函数);
void print(struct Student *p):输出所有学生的信息;
void search(struct Student *p):在所有记录中按姓名进行查找,若找到,则输出该学生的信息,若没找到,则输出提示信息:“未找到该学生!”;
void total(struct Student *p):统计每名学生的总成绩;
void average(struct Student *p):统计每门课程的平均成绩;
void sort(struct Student *p):按总成绩由高到低对所有学生记录进行排序;
void insert(struct Student *p):添加记录,添加的记录与已有的记录不能重复,即学号不能相同。
四、源程序清单
成绩 指导教师签名
东莞理工学院《C语言程序设计》课程设计题目:图书信息管理系统院系:电子工程学院专业:电子信息工程年级:20##班别:2班指导教师:…
C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体…
河南理工大学计算机科学与技术学院课程设计报告20XX20XX学年第一学期课程名称C语言课程设计设计题目《小学算术运算测试》学生姓名…
C语言课程设计报告设计题目专业班级学号姓名任课老师时间目录一课程设计题目及所涉及知识点二课程设计思路及设计流程图三课程设计中遇到的…
C语言程序设计课程设计报告20xx20xx学年第1学期题目专业班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录…
《C语言程序设计》实验报告实验七、结构体和联合体程序设计学号姓名一、实验目的1.掌握结构体类型变量和数组、共用体类型变量和数组以及…
C语言程序设计实验实验报告指导老师专业班级学号姓名日期20xx0529重庆邮电大学计算机科学与技术学院实验一实验名称一维数组程序设…
C语言程序设计实验报告专业班级日期11月26日成绩实验组别第327次实验指导教师李开学生姓名学号同组人姓名实验名称数组实验一实验目…
C语言程序设计实验报告学号姓名1设计一个函数fc统计数组中偶数和奇数的个数数组元素个数不多于10个编写main函数正确调用fc函数…
C语言程序设计实验报告数组1实验目的1熟练掌握一维数组二维数组的定义初始化和输入输出方法2熟练掌握字符数组和字符串函数的使用3掌握…
C语言程序设计实训总结为加强学生的实践动手能力,为贯彻落实教学计划的要求,培养学生的专业实践技能,计算机系05级计算机网络工程与管…