网站大量收购独家精品文档,联系QQ:2885784924

实验14 指针(3).doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验14 指针(3) 一、实验目的#include stdio.h #include string.h #include stdlib.h int main() { char *p_char; int *p_int,n,i; p_char=(char*)malloc(50); //行1 strcpy(p_char,Memory Allocation);//行2 printf(请输入数组元素的个数: );//行3 scanf(%d,n); p_int=(int*)calloc(n,sizeof(int));//行4 printf(\n请输入数组元素的值: \n);//行5 for(i=0;in;i++) scanf(%d,p_int+i); printf(\n字符串内容: %s\n\n,p_char); printf(数组元素的值: \n); for(i=0;in;i++) printf(%d ,*(p_int+i)); free(p_char);//行6 free(p_int);//行7 printf(\n\n);//行8 return 0; } 问题: (1)函数malloc()、calloc()各有什么功能?返回值是什么?为什么要进行强制类型转换? (2)函数free()的功能是什么?占用的堆空间是否可以不释放? (3)动态数组有什么优点? 2、编写程序,求任意n个随机数(10-99)的最小值和最大值。要求程序中用指针(指向每一个数组元素)对数组array进行访问;部分代码如下,请将程序代码补充完整。 【分析】 1) 动态数组的生成:数组的长度n是在程序执行时由用户指定的。程序执行时,用户先根据提示输入要产生的随机数个数n,然后程序再根据这个n值在堆中动态申请一个大小为n*sizeof(int)字节的空间; 2) 产生随机数:利用随机函数产生n个两位(10~99)的随机数; 3) 寻找最值:默认数组首元素为最值,然后定义指针变量p扫描每一个元素,找出最大值和最小值。 #include stdio.h #include stdlib.h #include time.h int main() { int n,i; int *p; int max_array,min_array; srand(time(0)); printf(请输入随机数个数:); scanf(%d,n); int *array; //array指向分配区域第一个字节的地址 array=___⑴____; //产生n个随机数(10-99)分别放在所分配区域中 for(i=0;in;i++) *(array+i)=___⑵_____; //输出n个随机数(10-99) printf(随机数为:); for(i=0;in;i++) printf(%d ,____⑶____); //求最大值和最小值 max_array=min_array=array[0]; for(p=array;parray+n;p++) { if(__⑷____ )max_array=(*p); else if(___⑸____)min_array=(*p); } //输出最大值和最小值 printf(\n最大数:%d\n最小数:%d\n,max_array,min_array); return 0; } 3、分析、运行程序,指出其所实现的功能: #include stdio.h struct tm { int hours ; int minutes ; int seconds ; }; int main() { void update(struct tm *t); void display (struct tm *t ); void delay (int n); struct tm time ; time.hours=0; time.minutes =0; time.seconds =0 ; for(int i=0;i100;i++) { update(time); display(time); } delay(9000000); return 0; } void delay(int n) { int t; for (t=1;tn;++t); } void update(struct tm *t) { t-seconds++; if(t-seconds==60 ) { t-seconds=0; t-minutes++; }

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档