文档详情

C语言上机实验题目(指针).doc

发布:2018-01-15约2.15千字共6页下载文档
文本预览下载声明
C语言上机实验(指针) 目 标: 1.熟悉指针变量的含义,熟悉简单变量和指针的关系; 2.熟悉指针变量做为函数的参数; 内 容 熟悉书中案例,熟悉简单变量和指针的关系,了解指针值的变化; (2)通过指针变量访问整型变量。 解题思路:先定义2个整型变量,再定义2个指针变量,分别指向这两个整型变量,通过访问指针变量,可以找到它们所指向的变量,从而得到这些变量的值。 #include stdio.h main() { int a=100,b=10; int *pointer_1, *pointer_2; pointer_1=a; pointer_2=b; printf(“a=%d,b=%d\n”,a,b); printf(“*pointer_1=%d,*pointer_2= %d\n”,*pointer_1,*pointer_2); } (3)输入a和b两个整数,按先大后小的顺序输出a和b。(模仿p119页3.32) 解题思路:用指针方法来处理这个问题。不交换整型变量的值,而是交换两个指针变量的值。 #include stdio.h main() { int *p1,*p2,*p,a,b; printf(“integer numbers:); scanf(“%d,%d”,a,b); p1=a; p2=b; if(ab) { p=p1; p1=p2; p2=p; } printf(“a=%d,b=%d\n”,a,b); printf(“%d,%d\n”,*p1,*p2); } (4)对输入的两个整数按大小顺序输出。(程序改错) (答案略) 现用函数处理,而且用指针类型的数据作函数参数。 解题思路:定义一个函数swap,将指向两个整型变量的指针变量作为实参传递给swap函数的形参指针变量,在函数中通过指针实现交换两个变量的值。 (1) #include stdio.h main() {swap(int *p1,int *p2); int a,b; int*pointer_1,*pointer_2; printf(please enter a and b:); scanf(“%d,%d”,a,b); pointer_1=a; pointer_2=b; if (ab) swap(pointer_1,pointer_2); printf(“max=%d,min=%d\n”,a,b); } swap(int *p1,int *p2) { int *temp; (无确定方向) *temp=*p1; *p1=*p2; *p2=*temp; } (2) #include stdio.h main() {swap(int *p1,int *p2); int a,b; int*pointer_1,*pointer_2; printf(please enter a and b:); scanf(“%d,%d”,a,b); pointer_1=a; pointer_2=b; if (ab) swap(pointer_1,pointer_2); printf(“max=%d,min=%d\n”,a,b); } swap(int *p1,int *p2) { int *temp; (只交换了指针的值) temp=p1; p1=p2; p2=temp; } (5)输入3个整数a,b,c,要求按由大到小的顺序将它们输出。用函数实现。 在函数中通过指针实现交换两个变量的值。 #include stdio.h main() { void exchange(int *q1, int *q2, int *q3); int a,b,c,*p1,*p2,*p3; scanf(%d,%d,%d,a,b,c); p1=a;p2=b;p3=c; exchange(p1,p2,p3); printf(“%d,%d,%d\n,a,b,c); } exchange(int *q1, int *q2, int *q3) { void swap(int *pt1, int *pt2); if(*q1*q2) swap(q1,q2); if(*q1*q3) swap(q1,q3); if(*q2*q3) swap(
显示全部
相似文档