- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言-实验八-指针的使用
实验八
实验项目名称:指针的使用
实验时间:
实验地点:
实验目的:
掌握指针和间接访问的概念,会定义和使用指针变量。
能正确使用数组的指针和指向数组的指针变量。
能正确使用字符串的指针和指向字符串的指针变量。
主要的实验所需仪器、设备:PC机。
实验内容与步骤:
求一个整形数组a[10]的最大元素。(注意:数组元素由用户自由输入,求最大值要求用指针处理)
按要求编写程序,写出源程序:
#includestdio.h
void main()
{
int *p,i,a[10],t,max;
p=a;
printf(please enter 10 integers:\n);
for(i=0;i10;i++)
scanf(%d,p++);
p=a;
for(i=0,max=p[0];i9;i++)
if(maxp[i+1])max=p[i+1];
printf(max=%d\n,max);
}
运行结果是:
Please enter 10 integers:
34 67 87 77 98 100 23 1 29 32
max=100
与人工分析程序所得结果是否一致,有何结论:
任意输入3个字符串,按由小到大的顺序输出。(注意:处理过程要求用指针)。
按要求编写程序,写出源程序:
#includestdio.h
#includestring.h
void main()
{
char a[20],b[20],c[20],*p1,*p2,*p3,*t;
p1=a,p2=b,p3=c;
printf(please enteer three strings:\n);
gets(a);gets(b);gets(c);
if(strcmp(p1,p2)0)
t=p1,p1=p2,p2=t;
if(strcmp(p1,p3)0)
t=p1,p1=p3,p3=t;
if(strcmp(p2,p3)0)
t=p2,p2=p3,p3=t;
printf(由小到大排列是%s %s %s\n,p1,p2,p3);
}
运行结果是:
与人工分析程序所得结果是否一致,有何结论:
将一个3*3的整形二维数组转置。主函数中用scanf函数输入以下数组元素:
3 5
9 11
13 15 19
子函数实现行列互换,要求将数组第一行第一列元素的地址作为函数参数,
函数调用结束后在主函数输出已转置的二维数组。
按要求编写程序,写出源程序:
#includestdio.h
void main()
{
void trans(int (*w)[3]);
int a[3][3],(*p)[3],i;
printf(请按行输入矩阵: \n);
for(p=a;pa+3;p++)
for(i=0;i3;i++)
scanf(%d,(*p)[i]);
trans(a);
printf(转置后的矩阵: \n);
for(p=a;pa+3;p++){
for(i=0;i3;i++)
printf(%4d,(*p)[i]);
printf(\n);
}
printf(\n);
}
void trans(int (*w)[3])
{
int i,j,t;
for(i=0;i3;i++)
for(j=0;ji;j++)
{
t=*(*(w+i)+j);
*(*(w+i)+j)=*(*(w+j)+i);
*(*(w+j)+i)=t;
}
}
运行结果是:
与人工分析程序所得结果是否一致,有何结论:
求一个字符串的长度。主函数输入字符串,并输出其长度。子函数求其长度,要求函数形参用指针变量或数组名。
按要求编写程序,写出源程序:
#includestdio.h
#includestring.h
void main()
{
int length(char *p);
char str[30];
char *q;
printf(please enter the string:\n);
gets(str);
q=str;
printf(zhe length of zhe string is:%d\n,length(q));
}
int length(char *p)
{
int a;
a=strlen(p);
return(a);
}
运行结果是:
与人工分析程序所得结果是否一致,有何结论:
本次上机实验的心得。
文档评论(0)