- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计实验六指针上机报告
《C语言程序设计》
实验六 指针程序设计
专业:班级:学号:
姓名:1
实验目的
进一步理解指针的概念,掌握指针变量间接地址访问的本质;
掌握利用指向数组的指针变量表示一维数组元素及元素地址的方法;
掌握利用指向二维数组的行指针变量表示二维数组元素及其地址的方法;
掌握字符串的指针和指向字符串的指针变量;
掌握指针数组和二级指针;
熟悉通过动态内存分配实现动态数组,并体会指针在其中的作用。
实验内容及要求(鼓励一题多解)
深入理解《上机实践训练教程》2.6实验六案例示范和有关概念 文字描述中的知识点,给出你的理解。#include stdio.h
#include string.h
void main()
{
char c[100],*p=c;
int a[50],*q=a,num=0,i;//定义字符数组c和数组a,用p,q分别定义并赋初值
printf(输入一个字符串,内有数字和非数字符号);
gets(c);//录入字符串
for(;*p!=\0;p++)
{
if(*p=0 *p=9)
{
*q=(*p)-0;//指针实现c[]到a[]的赋值
p++;
if(*p=0 *p=9)
*q=(*q)*10+(*(p++)-0);//将数字字符串变为数字存入
num+=1;//if下的加1
q++;
}
}
for(i=0,q=a;inum;i++,q++)
{
printf(a[%d]=%d\n,i,*q);
}
putchar(\n);
printf(一共输入了%d个数字。\n,num);
}
利用指向指针的二级指针变量对N个字符串按字典顺序排序并输出。(用二维数组保存6个字符串,排序只能使用设标签的选择法和交换法两种)
利用指向指针的二级指针变量对N个整数排序并输出。(二选一)
注:指向指针的指针变量就是二级指针变量,其定义格式为int **pp;或char
#includestdio.h
#includestring.h
#includestdlib.h
#define SIZE 50
#define N 6
void main()
{
char str[N][SIZE],temp[SIZE];
char *pstr[N];
char **ppstr=pstr;
int i,j,k;
for(i=0;iN;i++)
*(ppstr+i)=*(str+i);
printf(输入6个长度不超过%d的字符串\n,SIZE);
for(i=0;iN;i++)
scanf(%s,*(ppstr+i));
for(i=0;iN;i++)
{
k=0;
for(j=i+1;jN;j++)
{
if(strcmp(*(ppstr+k),*(ppstr+j))0)
{
k=j;
}
}
if(k!=i)
{
strcpy(temp,*(ppstr+k));
strcpy(*(ppstr+k),*(ppstr+i));
strcpy(*(ppstr+i),temp);
}
}
puts(按字典顺序输出为:);
for(i=0;iN;i++)
puts(*(ppstr+i));
system(pause);
}
深入理解内存管理专题中的堆区内存使用和释放规则,在此基础上,找出下面代码错误的原因,并给出1-2个解决方案(至少有一个方案使用malloc/free或new/delete[])。
#include iostream.h
char *GetString(void)
{
char p[ ] = hello world;
return p; // p指针指向哪一类内存空间?
}
void main(void)
{
char *str = NULL;
str = GetString();
cout str endl;
} char *GetString(void){}返回临时指针变量。调用完成后被释放。将其声明为静态变量或外部变量#include iostream.h
exstern char *p;
char *GetString(void)
{
char p[ ] = hello world;
return p; // p指针指向哪一类内存空间?
}
void main(void)
{
char *str = NULL;
str = GetString();
cout str endl;
} #includeiostream.h
#includemalloc.h
char *GetS
文档评论(0)