《指针实验-陈正宁-2015123349》由会员分享,可在线阅读,更多相关《指针实验-陈正宁-2015123349(21页珍藏版)》请在金锄头文库上搜索。
1、1 淮海工学院计算机科学系实 验 报 告 书课 程 名 :C语言程序设计题目:实验 9 指针班级:软嵌 151 学号:2015123349 姓名:陈正宁评语:成绩:指导教师:批阅时间:年月日C 语言程序设计实验报告2 1、实验内容或题目(1)设计一个程序,将两个变量的值进行交换,要求通过函数和指针实现。具体要求: 编写一个函数swap(int *p,int *q) ,交换两个参数指针所指的数据,再编写 main 主函数,通过调用swap()函数将两个变量的值进行交换。(2)编写一个程序,判断用户输入的两个字符串是否相同,其中字符串可能含有空格等,以回车键表示输入结束。(不允许使用strcmp
2、函数)(3)设计一个程序,用选择法或冒泡法将若干字符串按字母顺序进行排序。要求用函数和指针完成。具体要求: 编写一个函数strsort(char *p,int n) ,对一组给定的字符串进行排序(非递减)。其中 p 的每一个元素为一个字符串指针,长度n。最后编写main 主函数对下列单词进行排序后输出:include ,define ,main,if ,else ,for ,while ,switch ,break ,continue 。(4)教材 p291 页习题的第11 题。(5)教材 p292 页习题的第12、第 15 第 18 题。2、实验目的与要求 进一步掌握指针的概念,会定义和使用
3、指针变量。 能正确地使用数组的指针和指向数组的指针变量。 能正确地使用字符串的指针和指向字符串的指针变量。C 语言程序设计实验报告3 3、实验步骤与源程序 实验步骤(1)、开始swap(p1,p2);输出a,b结束int a,b,*p1,* p2; tempp1=p2=temp=*p*p=*q; *q=temp;C 语言程序设计实验报告4 (2)、开始char aN,bN;compare(char *a,char *b)while(*ab+; return *a=*b;结束They are same!They are different!C 语言程序设计实验报告5 (3)、开始Char*p=
4、“include“,“de fine“,“main“,“if“,“el se“,“for“,“while“,“sw itch“,“break“,“contin ue“;Int n=10;Strsort(c har*p,i nt n)Print(cha r*p,int n)for(i=0;i 0)k=j;if(k!=i)temp=pk ;pk=pi;pi =tempC 语言程序设计实验报告6 (4) 、开始char *temp i,j:intfor(i=0;i0temp=*(s+j); *(s+j)=*(s+j+1);*(s+j+1)=temp;char str106,*p i:int输入 10
5、个等长的字符串主函数调用过程输出排序好的字符串结束YC 语言程序设计实验报告7 (5-1 ) 、开始输入 10个不等长字符串char *temp i,j:intfor(i=0;i0temp=*(s+j); *(s+j)=*(s+j+1);*(s+j+1)=temp;char str106,*p i:int主函数调用过程输出排序好的字符串结束YC 语言程序设计实验报告8 (5-2 ) 、开始函数 1 求每个学生平均成绩函数 2 第一课程的平均成绩函数 3 两门以上课程不及格 的学生的函数 4 成绩优秀学生定义课程学号录入成绩计算个学生 的平均成绩计算第一门 课程的平举 成绩找出 2门课不及 格的
6、学生找出成绩好的学 生输出结束函数调用函数调用函数调用函数调用C 语言程序设计实验报告9 (5-3 ) 、开始char*name12=“Janua ry“,“February“,“March “,“April“,“May“,“June “,“July“,“August“,“Se ptember“,“October“,“N ovember“,“December“输出对应的英文名称结束C 语言程序设计实验报告10 源代码(1) 、#include void swap(int *p,int *q) int t; t=*p; *p=*q; *q=t; / 交换 p1 和 p2 所指向的内容 void
7、main() int a,b; int *pointer_1, *pointer_2; printf(“请输入两个数字a b Enter:“); scanf(“%d%d“, pointer_1= pointer_2= swap(pointer_1,pointer_2); / 函数调用,指针作为实参printf(“n则交换以后为:%d %dn“,a,b); (2) 、#include #include int main() char a255=0,b225=0; printf(“请输入第一个字符串:“); gets(a); printf(“请输入第二个字符串:“); gets(b); int i
8、; if(strlen(a)=strlen(b) for(i=0;i #include C 语言程序设计实验报告11 void strsort(char *p) int i,j; char *temp; for(i=0;i0)/字符串比较 :0表示前面的字符串比后面的大 则交换 temp=pj; pj=pj+1; pj+1=temp; void print(char *p) int i; for(i=0;i #include void sort(char *s) char *temp; int i,j; for(i=0;i0) temp=*(s+j); *(s+j)=*(s+j+1); *(s
9、+j+1)=temp; void main() int i; char str106, *p10; printf(“请输入 10 个等长的字符串:n“); for(i=0;i #include void sort(char *s) char *temp; int i,j; for(i=0;i0) temp=*(s+j); *(s+j)=*(s+j+1); *(s+j+1)=temp; void main() int i; char str106, *p10; printf(“请输入 10 个不等长的字符串:n“); for(i=0;i int main() void avsco(float *
10、,float *); C 语言程序设计实验报告14 void avcour1(char (*)10,float *); void fali2(char course510,int num,float *pscore,float aver4); void good(char course510,int num4,float *pscore,float aver4); int i,j,*pnum,num4; float score45,aver4,*pscore,*paver; char course510,(*pcourse)10; printf(“Please input course:“);
11、 pcourse=course; for (i=0;i=2) printf(“%d“,numi); for (k=0;k85.0) n+; if(n=5)|(averi=90) printf(“%d“,numi); for(k=0;k #include void main() int n; char*name12=“January“,“February“,“March“, “April“,“May“,“June“, “July“,“August“,“September“, “October“,“November“,“December“; C 语言程序设计实验报告17 printf(“请输入月份
12、:“); scanf(“%d“, printf(“n“); printf(“输入月份的英文名为:%sn“,*(name+n-1); 4、测试数据与实验结果(可以抓图粘贴)(1) 、C 语言程序设计实验报告18 (2) 、C 语言程序设计实验报告19 (3)、(4)、C 语言程序设计实验报告20 (51)、(52)、C 语言程序设计实验报告21 (53)、5、结果分析与实验体会(1)由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象地称为“指针” 。(2)所谓数组元素的指针就是数组元素的地址。(3)牢记*(a+i )和 ai是等价的。(4)注意函数的形参和实参可以分别用字符数组名或指针变量。(5)指针是 C语言的精华,必须要深入钻研。