湖北理工学院C语言实验报告六答案(完整版)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(i=0;i<5;i++)
p[i]= (1) ;
for(i=0;i<5;i++)
{ *(p[i]+ (2) )=1;
*(p[i]+5- (3) )=1;
}wenku.baidu.com
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
printf("%2d",p[i][j]);
(4) ;
}
}
(1) A.&a[i][0]
运行结果分析:首先要清楚二维数组与指针的结合运用时,注意指针所指向的是数 组的第一个元素的地址;其次要注意数组指针的概念和使用,弄清楚指针指向的是 什么,也要清楚指针使用时的规则。
7、任务名称 源代码:
#include <stdio.h> void main() {
void fun(int *,int *,int ); int a[5]={4,6,8,10,12},s=1,*p=&s; fun(a,p,5); printf("%d\n",s); } void fun(int *a,int *s,int n) { int i; for (i=0;i<n;i++)
scanf("%d%d",&a,&b); sum(a,b,p); swap(&a,&b); printf("sum=%d\n",c); printf("a=%d,b=%d\n",a,b); } void sum(int a,int b,int *c) { *c=a+b; } void swap(int *a,int *b) { int t; t=*a; *a=*b; *b=t; } 运行结果:(需要截图)
运行结果分析: 把数组 a[12]的首地址赋给指针变量 p,指针 p 指向数组 a 的第一个元素。在 for 循环中依次输入 12 个数,最后输出数组中的元素。
4、任务名称 源代码: #include <stdio.h> void main( ) { int a,b,c,*p=&c; void sum(int ,int ,int *); void swap(int * ,int * );
printf("%d,%d,%d,%d\n",a[i],p[i],*(p+i),*(a+i)); } 运行结果:(需要截图)
运行结果分析:把数组 a[3]的首地址 a 存入指针变量 p,所以 a[i]和 p[i],*(p+i), *(a+i)表示数组 a[3]中的元素。
3、任务名称 源代码: #include <stdio.h> void main() { int j,a[12],*p=a; for(j=0;j<12;j++) scanf("%d",p++); p=a; for(j=1;j<=12;j++) { printf("%4d",*p++); if(j%4 == 0) printf("\n"); } } 运行结果:(需要截图)
运行结果分析:函数 lookup 的功能是找到数组 t 中的最小值并把他赋给指针变 量 a 所指向的变量。在主函数中输入是个整数到数组 table[10],调用 lookup 函 数找到最小值,然后输出最小值。
6、任务名称
源代码:
#include <stdio.h>
void main()
{ int a[5][5]={0},*p[5],i,j;
运行结果 :
5
7 -34 -32
-34 5 -32
7
运行结果分析:指针的值与指针指向的变量值的区别。在 VC 环境下,以上运行结 果中的负数是另一个值。
2、任务名称 源代码: #include <stdio.h> void main() { int i,a[]={1,2,3},*p;
p=a; /*将数组 a 首地址赋给指针 p*/ for (i=0;i<3;i++)
实验六 指针
实验课程名:高级语言程序设计(C)
专业班级:
学号:
实验时间:
实验地点:
姓名: 指导教师:
一、实验目的和要求
1. 通过实验进一步掌握指针的概念,会定义和使用指针变量; 2. 能正确使用数组的指针和指向数组的指针变量; 3. 能正确使用字符串的指针和指向字符串的指针变量; 4. 能正确使用指向函数的指针变量; 5. 了解指向指针的指针的概念及其使用方法。
运行结果分析: 输入两个整型数给变量 a,b,指针 p 指向整型变量 c,调用函数 sum,把实参 中的 a,b 传给形参 a 和 b,实参 p 和形参 c 指向同一个变量,把 a,b 之和赋给 p 所指的变量 c。然后调用 swap 函数使变量 a 和 b 的值交换。
5、任务名称 源代码: #include <stdio.h> int table[10]; void lookup(int *t,int *a,int n) { int k; *a=t[0]; for(k=1;k<n;k++) if(*a>t[k]) *a=t[k]; } void main() { int k,min,*p=&min; for (k=0;k<10;k++) scanf("%d",table+k); lookup( table , p ,10); printf("min=%d\n",min); } 运行结果:(需要截图)
B.&a[i][1]
(2) A.0
B.1
(3) A.0
B.1
(4) A.putchar("\n"); B. putchar('\n');
答:A,C,D,B
运行结果:(需要截图)
C.&p[i] C.i C.i C. putchar(\n);
D.&a[0][i] D.(i+1) D.(i+1) D.printf('\n');
二、实验内容
1、任务名称
1.上机验证以下 c70101.c 程序的运行结果
#include <stdio.h> void main() { int i,j,*pi,*pj;
pi=&i; pj=&j; i=5; j=7; printf("\n%d\t%d\t%d\t%d",i,j,pi,pj); printf("\n%d\t%d\t%d\t%d",&i,*&i,&j,*&j); }
*s*=a[i];
} 运行结果:(需要截图)
运行结果分析:指针变量 p 指向变量 s,fun 函数的功能是求出一个数组所有元 素的乘积,并赋给形参 s 指向的整型变量。这样 p 所指的变量 c 的值就是数组 a[5]中元素的乘积。最后输出 c。
三、结论 通过本次实验,我进一步掌握指针的概念,会定义和使用指针变量;.学会了使用数 组的指针和指向数组的指针变量;掌握了字符串的指针的使用方法以及指向字符 串的指针变量和指向函数的指针变量的使用方法了解指向指针的指针的概念及其 使用方法。