实验(7)-指针

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C 语言程序设

实验教学

( 7)

【实验目的】 指针是 C 语言中非常重要的一章内容。通过实验让学生掌握 各类指针的定义与引用、例如:指向一般变量的指针、指向数组的指针应 用、字符指针的应用、指针数组的应用、指向指针的指针的应用。

【实验要求】 使用指针来完成变量的引用,编写程序理解指针的含义。 【实验课时】 8.0

【实验内容】

1. 通过指针变量求三个变量中的最大值和最小值。

#include <stdio.h>

#include <conio.h> void main() { int a,b,c,*pmax,*pmin; clrscr(); printf("Please input three numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); if(a>b) /* 使 pmax 指向 a,b 中大的数, pmin 指向 a,b 中小的数 */ {pmax= /**/

/**/ ;pmin= /**/ else

{pmax= /**/ /**/ ;pmin= /**/ if(c>*pmax) pmax= /**/ /**/; if(c<*pmin) pmin=/**/ /**/; printf("max=%d\nmin=%d\n", /**/ } 2. 输入 3 个整数,按照从小到大的次序输出。

#include <stdio.h>

#include <conio.h> void main( )

{ int a,b,c; int *pa=&a,*pb=&b,*pc=&c,*temp; clrscr();

printf("Please input three numbers:\n");

/**/;} /**/;}

/*使 pmax 指向变量 a,b,c 中最大的数

*/ /*使 pmin 指向变量 a,b,c 中最小的数

*/ /**/,/**/ /**/);

scanf("%d,%d,%d",&a,&b,&c);

if(*pa>*pb)

{/**/ if(*pa>*pc)

{/**/ if(*pb>*pc)

{/**/ /**/;} /*使 pb 指向 a,b,c 中次小的数 */ printf("%d,%d,%d\n",*pa,*pb,*pc);

} 运行结果如下:

Input three in tegers n 1, n2, n3: 34,21,25 /

Now, the order is: 21,25,34 3.将输入的 10 个整数存入一数组 a 中,然后输出数组元素中的最大值与 次最大值。

#include <stdio.h>

#include <conio.h> void main()

{int a[10],i,*p; int *pmax,*pnmax; clrscr();

/**/ /**/; /*使指针变量 p 指向数组 a*/

printf("Please input array a:\n");

for(i=0;i<10;i++)

{printf("input a[%d]:",i);

scanf("%d", /**/

/**/ ); } /*用指针变量 p 表示数组元素地址 */ if(p[0]>p[1])

pmax=p,pnmax=p+1;

else pmax=p+1,pnmax=p;

for(i=2;i<10;i++) if(*pmax<p[i])

{/**/ /**/;} /*将 pmax 指向数组最大值元素 */

else if(*pnmax<p[i]) /**/

/**/;

/*将 pnmax 指向数组次最大值元素 */

printf("max=%d,nmax=%d\n",*pmax,*pnmax);} /*输出最大值与次最大值 */ 4.将输入的10个整数存入一数组a 中,输入待查找的X ,输出x 在数组a 中的位置,若数组 a 中没有值为 x 的元素,则输出“ not found ”;

#include <stdio.h> #include <conio.h> void main() {int a[10],i,x,k, *p; clrscr();

/**/ /**/; /*使指针变量 p 指向数组 a*/

printf("Please input array a:\n"); for(i=0;i<10;i++)

{printf("input a[%d]:",i);

/**/;} /*使 pa 指向 a,b 中小的数 */ /**/;} /*使 pa 指向 a,b,c 中最小的数 */

scanf("%d", /**/ /**/);} /*用指针变量p 表示数组元素地址*/

/*以下使用顺序查找*/ printf("input the data to be located:");

scanf("%d",&x); for(i=0;i<10;i++)

if(x==/**/

/**/) break; /*用指针变量p 引用数组元素*/

if(i==10)

printf("%d is not found.\n",x); else

printf("%d in a[%d].\n",x, /**/ /**/);} /*输出找到的数组元素位置*/ 5.将输入的10 个整数存入一数组 a 中,按从小到大的次序输出。

#include <stdio.h>

#include <conio.h>

void main()

{int a[10],i,j,k,temp, *p; clrscr(); p=a; /*使指针变量p 指向数组a*/ printf("Please input array a:\n"); for(i=0;i<10;i++)

{printf("input a[%d]:",i);

相关文档
最新文档