实验八、指针(1).docVIP

  • 5
  • 0
  • 约7.78千字
  • 约 10页
  • 2017-08-03 发布于河南
  • 举报
实验八、指针(一) 1.教学教学进程: 序号 章节 名称 1 §9.1 地址和指针的概念 2 §9.2 指针变量 3 §9.3 指针与数组 2.考查知识点: 指针变量的使用,指针与数组。 3.实验目的: (1) 掌握指针变量的定义与引用。 (2) 掌握指针与变量、指针与数组的关系。 4.实验内容: 课外实验题目(90分): 如下图所示,本程序由若干个文件组成。其中主函数在文件“main.c”中。其它文件中包含了相应的子程序、变量定义和宏定义。请阅读程序完成题目要求。 (1)文件“fun1.c”包含了三个函数:fun1()、swap()和swap_point()。其中函数swap()实现地址传递的两个参数交换;函数swap_point()实现两个变量地址的交换。请完成程序的空白。(每空3分,共15分) 序号 内容 1 2 3 4 5 (2)在文件“fun1.c”中,编写函数swap()的内容,使其完成对应功能。(10分) (3)请回答fun1()的最后一行的输出结果是否实现从小到大的排序?为什么?(5分) (4)有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3),凡报到3的人退出圈子,问最后留下的是原来第几号的那个人。在文件“fun2.c”中使用函数fun2()实现上述功能。请根据主函数中对该函数的调用形式填写程序中的空白。(每空3分,共30分) 序号 内容 1 2 3 4 5 6 7 8 9 10 (5)有一个班3个学生,4门课存储在二维数组score中(学生编号从1开始)。①求所有成绩的平均分;②输出指定学号学生的所有成绩;③找出有不及格成绩的学生,并输出其所有成绩。上述功能在文件“fun3.c”中实现。请填写程序中的空白。(每空3分,共30分) 序号 内容 1 2 3 4 5 6 7 8 9 10 提示:可以改变数组score的分数再观察函数find的输出结果。 程序代码(题目部分): /*************************fun1.c*****************************/ #includestdio.h void fun1() { void swap(int *p1,int *p2); void swap_pointer(int *p1,int *p2); int n1,n2,n3,*p1,*p2,*p3; printf(请输入三个整数 n1,n2,n3:); scanf(%d,%d,%d,n1,n2,n3); getchar(); p1=n1; p2=n2; p3=n3; if(n1n2) ; if(n1n3) ; if(n2n3) ; printf(\n 现在,按顺序排列的数为:%d,%d,%d\n,n1,n2,n3); printf(\n请再次输入三个整数 n1,n2,n3 :); scanf(%d,%d,%d, ); //要求用指针形式 getchar(); if(n1n2) swap_pointer(p1,p2); if(n1n3) swap_pointer(p1,p3); if(n2n3) swap_pointer(p2,p3); printf(\n 现在,按顺序排列的数为:%d,%d,%d\n,*p1,*p2,*p3); } void swap(int *p1,int *p2) { } void swap_pointer(int *p1,int *p2) { int ; p=p1;p1=p2;p2=p; } /*************************fun2.c*****************************/ #includestdio.h void fun2( ) { int i,k,m,n; printf(请输入游戏人数:n=); scanf(%d,n); ; for(i=0;in;i++) *(p+i)= ; //以1到n为序给每个人编号 i=0; //i为每次循环时计数变量 k=0; //k为按1、2、3报数时的计数变量 m=0; //m为退出人数 while( ) { if(*(p+

文档评论(0)

1亿VIP精品文档

相关文档