C语言程序设计实验报告
更新时间:2023-10-25 00:47:01 阅读量: 综合文库 文档下载
C语言程序设计实验报告
学院 数学与信息技术 班级 11软工转本1 学号 11130730 姓名 史 稳 瑶 指导教师 田 丰 春
实验1 简单程序设计
1. 实验目的
(1) 熟悉C语言开发环境并掌握在该环境下如何编辑、编译、连接和运行一个C程序。 (2) 通过运行一个简单的C程序过程,初步了解C程序的基本结构及特点。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 输入三个整数,请把这三个数由小到大输出。试编写多种方法。 (3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3.实验重点和难点
(1) C程序是由一个个函数构成,当一个函数调用另一个函数时,需要对被调函数作声明。 (2) 用户自定以的函数最好写在一个头文件中,在需要的地方用文件包含命令即可。
(3) system(“cls”)函数的作用是清屏,它的声明在头文件stdlib.h中。如果是在Linux操作系统的gcc环境下,清屏用system(”clear”)。
4. 常见错误
(1) 数据声明或语句后面缺少分号。 (2) 对被调函数没有声明。
(3) 没有main函数或者有多个main函数。
5. 程序代码
#include
float a,b,c,t;
printf(\请输入三个数:\ scanf(\ if(a>b) {
t=a;a=b;b=t;} if(a>c)
{t=a;a=c;c=t; }
if(b>c)
{t=b;b=c;c=t; }
printf(\}
6. 实验结果
7. 心得体会
刚开始学习C语言,有一些小问题,数据声明时,分号会忘记,语句后面缺少分号。而且\\n斜杠会写反,有时会忘记声明函数。
实验2 顺序结构程序设计
1. 实验目的
(1) 掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量。 (2) 掌握数据的输入输出的方法,能正确使用各种格式控制符。 (3) 掌握算术运算符和赋值运算符。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 输入圆半径和圆柱高,求圆周长、圆面积、圆球表面积、圆球体积和圆柱体积。输入输出要有文字说明,输出结果取小数点后2位。 (3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3.实验重点和难点
(1) 用scanf和printf对数据进行输入输出时,不同的数据类型用不同的格式控制符。 (2) scanf函数中的格式控制后面应当是变量地址,而不是变量名。
4. 常见错误
(1)变量没有定义,直接使用。
(2)企图利用整数除以整数得到精确结果。例如1/4结果不是0.25而是0,1/4.0结果才是0.25。 (3) printf和scanf函数中格式控制符的个数与变量或变量地址的个数不一致。 (4) scanf函数的地址表列因该是变量地址,而不是变量名。
(5) scanf函数在格式控制字符串中除了格式说明以外还有其他字符时,在输入数据时(6) 没有在对应的位置输入与这些字符相同的字符。
5. 程序代码
#include
int main() {
float h,r,l,s,sq,vq,vz; float p=3.141526;
printf(\请输入圆半径r,圆柱高h\ scanf(\
l=2*p*r; //圆周长 s=r*r*p; //圆面积 sq=4*p*r*r; //圆球表面积 vq=4.0/3.0*p*r*r*r; //圆球体积 vz=p*r*r*h; //圆柱体积 printf(\圆周长为: l=%6.2f\\n\ printf(\圆面积为: s=%6.2f\\n\ printf(\圆球表面积为: sq=%6.2f\\n\ printf(\圆球体积为: vq=%6.2f\\n\ printf(\圆柱体积为: vz=%6.2f\\n\ return 0; }
6. 实验结果
7. 心得体会
这边是基础的用scanf和printf对数据进行输入输出,不同的数据类型用不同的格式控制符。有点小睇混淆。才刚开始,还是觉得挺简单的。
实验3 选择结构程序设计
1. 实验目的
(1) 了解C语言表示逻辑变量的方法 (2) 学会正确使用关系运算符和逻辑运算符。 (3) 熟练掌握if语句和switch语句。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 把百分制成绩转换成5级记分制,要求分别用if else 和switch语句。
90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下:E
(3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3.实验重点和难点
(1) 注意关系运算符==和复制运算符=的区别。 (2) if和else的匹配原则。
(3) 在switch语句中正确使用break。
4. 常见错误
(1) 赋值运算符=和关系运算符等号=搞混。 (2) 在if语句为复合语句时,忘记写{}。 (3) if语句出现嵌套时,没正确配对。 (4) switch语句中,没正确使用break。
5. 程序代码
#include
int main() {
float score; char grade;
printf(\请输入学生成绩:\ scanf(\
while(score>100 || score<0) {
printf(\输入有误,请重新输入!\ scanf(\ }
switch ((int)(score/10)) {
case 10:
case 9:grade='A';break; case 8:grade='B';break; case 7:grade='C';break; case 6:grade='D';break; case 5: case 4:
6. 实验结果
7. 心得体会
有时候函数没定义就使用,有时候会定义函数,然后没有使用,定义函数时,形参没规定类型。函数调用时,实参前加类型。会把形参与实参搞混
实验7 指针的应用
1. 实验目的
(1) 熟练掌握指针的定义、赋值和使用。
(2) 掌握用指针引用数组的元素、熟悉指向数组的指针的使用。 (3) 熟练掌握字符数组与字符串的使用,掌握指针数组。 (4) 掌握指针函数与函数指针的用法。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 有一个班4个学生,5门课程。①求第1门课程的平均分;②找出两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90以上或全部课程成绩在85分以上的学生。分别编3个函数实现以上3个要求。 (3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3.实验重点和难点
(1) 列指针变量的定义、赋值以及利用它引用数组元素。 (2) 行指针变量的定义、赋值以及它在二维数组中的使用。 (3) 函数指针变量的定义、赋值和利用它进行函数调用。
4. 常见错误
(1) 混淆变量值和变量地址。
(2) 指针变量没有初始化,就利用该指针变量引用变量。
(3) 利用指针变量引用一维数组元素和二维数组元素或地址时,引用的方法不对。 (4) 函数指针概念清楚。 (5) 混淆行指针变量和指针数组。
5. 程序代码
#include
void avsco(float *,float *);
void avcour1(char (*)[10],float *);
void fali2(char course[5][10],int num[],float *pscore,float aver[4]); void good(char course[5][10],int num[4],float *pscore,float aver[4]); int i,j,*pnum,num[4];
float score[4][5],aver[4],*pscore,*paver; char course[5][10],(*pcourse)[10]; printf(\ pcourse=course; for (i=0;i<5;i++)
scanf(\
printf(\ printf(\
for (i=0;i<5;i++)
printf(\ printf(\
pscore=&score[0][0]; pnum=&num[0];
for (i=0;i<4;i++) {
scanf(\ for (j=0;j<5;j++)
scanf(\}
paver=&aver[0]; printf(\
avsco(pscore,paver);
avcour1(pcourse,pscore); printf(\
fali2(pcourse,pnum,pscore,paver); printf(\
good(pcourse,pnum,pscore,paver); return 0; }
void avsco(float *pscore,float *paver)
{
int i,j;
float sum,average; for (i=0;i<4;i++) {
sum=0.0;
for (j=0;j<5;j++)
sum=sum+(*(pscore+5*i+j)); average=sum/5;
*(paver+i)=average; } }
void avcour1(char (*pcourse)[10],float *pscore) {
int i;
float sum,average1; sum=0.0;
for (i=0;i<4;i++)
sum=sum+(*(pscore+5*i)); average1=sum/4;
printf(\}
void fali2(char course[5][10],int num[],float *pscore,float aver[4]) {
int i,j,k,labe1;
printf(\ printf(\ for (i=0;i<5;i++)
printf(\ printf(\ for (i=0;i<4;i++) {
labe1=0;
for (j=0;j<5;j++)
if (*(pscore+5*i+j)<60.0) labe1++; if (labe1>=2) {
printf(\ for (k=0;k<5;k++)
printf(\ printf(\ } } }
void good(char course[5][10],int num[4],float *pscore,float aver[4]) {
int i,j,k,n;
printf(\
printf(\ for (i=0;i<5;i++)
printf(\ printf(\ for (i=0;i<4;i++) {
n=0;
for (j=0;j<5;j++)
if (*(pscore+5*i+j)>85.0) n++; if ((n==5)||(aver[i]>=90)) {
printf(\ for (k=0;k<5;k++)
printf(\ printf(\ } } }
6. 实验结果
7. 心得体会
指针这章有点小混乱 混淆变量值和变量地址。会忘记给指针变量没有初始化,就利用该指针变量引用变量。数组元素或地址有些模糊
实验8 结构体的应用
1. 实验目的
(1) 掌握结构体变量、结构体数组以及结构体指针的定义和使用。 (2) 掌握动态存储分配函数的用法和单向链表的创建、输出等操作。 (3) 掌握用typedef定义类型。
2. 实验要求
(1) 认真阅读和掌握和本实验相关的教材内容。
(2) 编写建立链表的函数creat,输出链表的函数print,删除链表中节点的函数del,插入节点的函数insert,再编写一个主函数,先后调用这些函数,在主函数中指定需要删除和插入的节点的数据。 (3) 上机运行程序。
(4) 保存和打印出程序的运行结果,并结合程序进行分析。
3.实验重点和难点
(1) 结构成员引用的三种方法。 (2) 链表节点数据类型的定义。
(3) malloc函数用于动态分配存储空间,它的返回值类型是void *,在实际使用中一般需要强类型转换成多需要的类型。该函数的声明在stdlib.h头文件中。 (4) 链表操作中,节点指针域的使用。
4. 常见错误
(1) 引用结构体成员时,成员运算符.和指向运算符->的使用混淆。 (2) 链表操作过程中不能正确利用指针域进行操作。 (3) 不能正确使用typedef声明新类型名。
5. 程序代码
#include
#define LEN sizeof(struct Student) struct Student {
long num; float score;
struct Student *next; };
int n;
int main() //主函数 {
struct Student *creat();
struct Student *del(struct Student *,long);
struct Student *insert(struct Student *,struct Student *); void print(struct Student *);
正在阅读:
C语言程序设计实验报告10-25
丙烯酸及酯GC参考分析条件 - 图文03-14
证券投资学期末考试复习题10-08
中国现当代作家作品专题研究及答案04-11
文化娱乐行业研究报告06-11
材料力学实验思考题01-07
某阜南服装公司年产150万套团体服装生产线建设项目可行性研究报07-07
八年级英语上册 Unit 7 Will people have robots?Section A(Grammar focus-3c)教学案05-31
一年级大写字母表读法唱法12-08
啤酒品牌营销缺失与问题对策05-11
- 高一物理牛顿运动定律全套学习学案
- 水处理一级反渗透加还原剂亚硫酸氢钠后为什么ORP会升高
- 毕业设计(论文)-正文董家口 - 图文
- 荣盛酒店经营管理公司录用通知及入职承诺书II
- 第二讲 大学英语四级快速阅读技巧
- 质量管理体系文件(2015年委托第三方医药物流配送企业专用版本)
- 214071收款办法
- 苏轼对《文选》选文的评价
- 《诊断学基础B》1-8作业
- 广东省东莞市高一数学下学期期末教学质量检查试题
- 海南电网公司VIS推广应用管理办法
- 红星照耀中国习题
- 苏教版小学语文六年级上册期末复习资料之生字词整理
- 局域网组建与应用—王向东
- 税务稽查内部管理文书样式
- 环保社会实践调查表
- 九年级思品第一单元复习
- 2016年全国注册咨询工程师继续教育公路路线设计规范试卷
- 毕业设计-青岛港董家口港区防波堤设计
- 撞背锻炼方法与益处
- 程序设计
- 语言
- 实验
- 报告
- 当前农村干部存在的问题及对策
- 高等数学试卷(一)
- 防汛防台应急预案
- 2013智慧东城东城区党委系统政务内网协同办公及门户网站建设项目(第三册)v1.5
- 天津文综精校版-2011普通高等学校招生统一考试
- 望江县安监局学习贯彻党代会精神 突出抓好四项重点工作
- 《软件测试》期末大作业2015-16学年第一学期
- 8学年上学期高二期中考试政治试题(B卷)(附答案) - 图文
- 文学思潮:- 语法文献库管理系统
- 没搞教室卫生的检讨书500字
- 医院感染护理学答案1
- 人力资源答案
- 数据结构之内排序(包括快速排序,希尔,归并排序,插入排序,选择排序等)
- 上海大学电子信息材料系导师介绍
- 2015-2016学年度北师大版小学五年级数学下册第二单元测试卷
- 人教版地理八年级上册第三章第一、二节复习提纲
- 操作系统试卷2008B - 完成版 - 图文
- 学校后勤工作简报
- 全民守法是依法治国的基础
- 小数乘除法易错题统计