1、C语言入门代码大学实验报告2这是本人当年做实验亲手码的代码,结合许多的课后及实验课题目,并附上代码及执行结果。适合初学者。(第二部分)-David Yu计算机程序设计基础(C语言)实验报告实验编号: 5 实验名称: 善用指针(一) 实验设备: 微型计算机 软件环境: WINDOWS7,C语言 学院: 班级: 姓名: 学号: 指导教师: 实验日期: 信息与计算机科学技术实验中心 一、实验目的掌握指针和间接访问的概念,会定义和使用指针变量;能正确使用数组的指针和指向数组的指针变量。能正确使用字符串的指针和指向字符串的指针变量。二、实验内容习题7.1输入3个整数,按由小到大的顺序输出。习题7.2输入
2、3个字符串,按由小到大的顺序输出。习题7.6 写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。三、实验记录习题7.1输入3个整数,按由小到大的顺序输出。#includeint main() int i,j,t,*p,a3; printf(请输入三个数字(回车输入):n); for(i=0;i3;i+) scanf(%d,&ai); for(i=0;i2;i+) for(j=0;jaj+1) t=aj;aj=aj+1;aj+1=t; printf(数字由小到大排序:n); for(p=a;p(a+3);p+) printf(%4d,*p); printf(n); ret
3、urn 0;习题7.2输入3个字符串,按由小到大的顺序输出。#includeint main() char a3100,*t; char *p3=a0,a1,a2; int i; printf(请输入三个字符串(回车输入):n); for(i=0;i*p1) t=p0;p0=p1;p1=t; if(*p1*p2) t=p1;p1=p2;p2=t; if(*p0*p1) t=p0;p0=p1;p1=t; printf(字符串由小到大排序:n); for(i=0;i3;i+) printf(%s ,pi); printf(n); return 0;习题7.6 写一个函数,求一个字符串的长度。在ma
4、in函数中输入字符串,并输出其长度。#include int lenstr(char* str) int i = -1; while (str+i); return i;int main() char p100; printf(请输入一个字符串:n); gets(p); printf(字符串长度为: %dn, lenstr(p); return 0;四、心得体会通过此次实验,对利用指针间接访问数据这个方法,有了更深的认识。活用了while语句,使算法更加简单,提高了执行效率。当然,也灵活运用了冒泡排序算法,二维数组等等,巩固了所学知识,收获挺大。五、指导教师意见 100签名: 2017年5 月
5、20日计算机程序设计基础(C语言)实验报告实验编号: 6 实验名称: 善用指针(二) 实验设备: 微型计算机 软件环境: WINDOWS7,C语言 学院: 班级: 姓名: 学号: 指导教师: 实验日期: 信息与计算机科学技术实验中心 一、实验目的(1)进一步掌握指针的应用;(2)能正确使用数组的指针和指向数组的指针变量;(3)能正确使用字符串的指针和指向字符串的指针变量。二、实验内容1 整型数组a有10个元素,从键盘输入10个元素,然后按逆序输出数组中的全部元素(要求使用指针法)。2 将数组a中n个整数按相反顺序存放(要求指针法)。3 编定用选择法对10个整数排序(由小到大顺序)的函数,在主函
6、数中调 用此函数时,用指针变量作实参。三、实验记录题目1.#includeint main() int *p,i,a10; printf(请输入10个数字:n); for(i=0;i=a;p-) printf(%5d,*p); printf(n); return 0;题目2.#includeint main() void inv(int *x,int n); int i,a10=3,4,12,6,25,15,8,37,9,1; printf(原顺序的数组为:n); for(i=0;i10;i+) printf(%5d,ai); printf(n); inv(a,10); printf(逆序后的
7、数组为:n); for(i=0;i10;i+) printf(%5d,ai); printf(n); return 0;void inv(int *x,int n) int*p,*i,*j,t,m=(n-1)/2; i=x;j=x+n-1;p=x+m; for(;i=p;i+,j-) t=*i;*i=*j;*j=t;题目3.#includevoid sort(int *x,int n) int i,j,min,t; for(i=0;in-1;i+) min=i; for(j=i+1;jn;j+) if(*(x+j)*(x+min) min=j; t=*(x+i);*(x+i)=*(x+min)
8、;*(x+min)=t; int main() int *p,i,a10; printf(请输入数字:n); for(i=0;i10;i+) scanf(%d,&ai); p=a; sort(p,10); printf(数字由小到大排序结果:n); for(i=0;i10;i+) printf(%5d,*(p+i); printf(n); return 0;四、心得体会通过此次试验,我对函数定义以及函数的调用掌握更加熟练,对指针的认识与理解也提高了不少,能正确使用数组的指针和指向数组的指针变量以及字符串的指针和指向字符串的指针变量。同时也发现对以前的知识掌握的有些欠缺,对代码不够熟练,争取多加
9、练习,掌握熟练。五、指导教师意见 100签名: 2017年5月25日计算机程序设计基础(C语言)实验报告实验编号: 7 实验名称: 使用结构体 实验设备: 微型计算机 软件环境: WINDOWS7,C语言 学院: 班级: 姓名: 学号: 2 指导教师: 实验日期: 2017年6月5日 信息与计算机科学技术实验中心 一、实验目的1. 掌握结构体类型变量的定义和使用;2掌握结构体类型数组的概念和应用。二、实验内容1.输入两个学生的学号、姓名和成绩,输出成绩较高成绩者的全部信息,如果两学生成绩相同,则输出两人的全部信息。2. 有3名候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被
10、选人的名字,最后输出各人得票结果。三、实验记录题目1.#includeint main()struct Student int num;char name20;float score;student1,student2;scanf(%d %s %f,&student1.num,student1.name,&student1.score);scanf(%d %s %f,&student2.num,student2.name,&student2.score);printf(成绩较高的学生信息:n);if(student1.scorestudent2.score)printf(%d %s %6.2f
11、n,student1.num,student1.name,student1.score);else if(student1.scorestudent2.score)printf(%d %s %6.2fn,student2.num,student2.name,student2.score);else printf(%d %s %6.2fn,student1.num,student1.name,student1.score);printf(%d %s %6.2fn,student2.num,student2.name,student2.score);return 0;题目2.#include#in
12、cludestruct person char name20; int count;leader3=Li,0,Zhang,0,Fun,0;int main() int i,j; char leader_name20; for(i=1;i=10;i+) scanf(%s,leader_name); for(j=0;j3;j+) if(strcmp(leader_name,leaderj.name) = 0) leaderj.count+; printf(n投票结果为:n); for(i=0;i3;i+) printf(%5s:%dn,leaderi.name,leaderi.count); re
13、turn 0;四、心得体会通过此次实验,更加深刻理解结构体:结构体是由一系列相同类型或不同类型的数据构成的集合,可以将结构体定义成想要的数据类型。也就是说,结构体将几种数据封装起来,使它们有一个共同的外壳,便于计算。五、指导教师意见 100签名: 2017年6月8日计算机程序设计基础(C语言)实验报告实验编号: 8 实验名称: 文件操作 实验设备: 微型计算机 软件环境: WINDOWS7,C语言 学院: 班级: ) 姓名: 学号: 指导教师: 实验日期: 信息与计算机科学技术实验中心一、实验目的(1)掌握文件以及缓冲文件系统、文件指针的概念。(2)学会使用文件打开、关闭、读、写等文件操作函数
14、。(3)学会对文件进行简单的操作。二、实验内容1. 从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“!”为止。2. 将一个磁盘文件中的信息复制到另一个磁盘文件中。今要求将上题建立的file1.dat文件中的内容复制到另一个磁盘文件file2.dat中。三、实验记录题目1.#include#includeint main() FILE*fp; char ch,filename20; scanf(%s,filename); if(fp=fopen(filename,w)=NULL) printf(cannot open filen); exit(0); ch=getchar(); ch=
15、getchar(); while(ch!=!) fputc(ch,fp); putchar(ch); ch=getchar(); fclose(fp); putchar(10); return 0;题目2.#include #include #define MAX_SIZE_READ 128int main() FILE *fp1 = fopen(file1.dat, r); FILE *fp2 = fopen(file2.dat, w) char szReadMAX_SIZE_READ = 0; size_t iNumOfRead = 0; if( !fp1 ) printf(Failed
16、to open file:file1.dat.n); exit(0); if( !fp2 ) printf(Failed to open file:file2.dat.n); exit(0); while( fread(szRead, sizeof(char), MAX_SIZE_READ, fp1) ) fwrite(szRead, sizeof(char), MAX_SIZE_READ, fp2); fclose(fp1); fclose(fp2); return 0;四、心得体会 通过本次实验学会使用文件打开、关闭、读、写等文件操作函数,第一个实验没有问题,但是第二个实验用书上的方法显示结果为cannot open infile,故使用其他方法。五、指导教师意见 100 签名: 2017年6月15日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1