- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下列程序段的输出结果为( )。 int a[] = {6, 7, 8, 9, 10}, *ptr = a; *(ptr + 2) += 2; printf (%d, %d\n, *ptr, *(ptr+2)); A. 8, 10 B. 6, 8 C. 7, 9 D. 6, 10 D 例16: 例17:设以下程序生成可执行文件test.exe,当键入test C Programming Exam后的输出结果是? #include stdio.h int main (int argc, char *argv[]) { int i; printf(%d, argc); for (i = 0; i argc; ++i) printf(Args[%d]: %s\n, i, argv[i]); return 0; } 要点十:动态内存分配 C程序中内存的分配 程序区 数据区 栈(动态存储区) 堆(动态存储区) 静态存储区 常量区 动态内存分配和指针 malloc() calloc() realloc() 动态内存分配时要防止空指针 if(p==NULL) {……} 要点十一:文件 文件的打开与关闭 FILE *fp; //char fname[]=“file.txt”; //fp=fopen(fname “w”); fp=fopen(“file.txt”, “w”); fclose(fp); 文件的读写 fgetc() fputc() fgets() fputs() fread() fwrite() 文件的格式化读写 fscanf() fscanf(fp,”%d”, n); fprintf() 文件的定位 rewind() fseek() ftell() 要点十二:结构与链表 结构的定义及使用 会定义学生结构、会结构上的输入、输出、统计操作 共用体的定义及使用 链表的定义和其上的操作 创建 插入 删除 遍历->统计 例18 设有n个人围成一个圆圈,从编号为m的人开始由1开始报数,每次正好报到数k的人退出游戏,后面一个人重新由1开始报数,请求出最后剩下的那个人的编号。 如何用链表实现? head 1 next 2 next m next 解题思路 首先建立一个单向链表,每一个人是一个节点。 单向链表的结构: 不停往后报数,直到报到k就删除当前节点 直到最后只剩下1个节点 单向链表的结构: struct person { int num; struct person *next; }; 最初状态(假设n=7,m=2,k=3) head 1 next 2 next 3 next 4 next 5 next 6 next 7 next 找到第一个报到3的人 head 1 next 2 next 3 next 4 next 5 next 6 next 7 next 第一个报到3的人出列(即删除该节点) head 1 next 2 next 3 next 5 next 6 next 7 next 找到第二个报到3的人 head 1 next 2 next 3 next 5 next 6 next 7 next 第二个报到3的人出列(即删除该节点) head 1 next 2 next 3 next 5 next 6 next 找到第三个报到3的人 head 1 next 2 next 3 next 5 next 6 next 第三个报到3的人出列(即删除该节点) head 1 next 2 next 5 next 6 next 找到第四个报到3的人 head 1 next 2 next 5 next 6 next 第四个报到3的人出列(即删除该节点) head 2 next 5 next 6 next 找到第五个报到3的人 head 2 next 5 next 6 next 第五个报到3的人出列(即删除该节点) head 2 next 5 next 找到第六个报到3的人 head 2 next 5 next 第六个报到3的人出列(即删除该节点) 5 next head 只剩下一个节点 5 next 判断只剩下一个节点?head-next == head? 输出结果:head-num head 涉及到的几种链表操作 构造链表 删除链表节点 插入链表节点 遍历链表节点 构造链表 n=7 一个循环,总共循环7次,每次构造一个节点,并将新构造的节点插入到链表的最后 while(i=0; i7; i++) { p=(struct
您可能关注的文档
最近下载
- 《装配式多层混凝土墙板建筑技术规程》.pdf VIP
- 建设工程造价咨询业务指导规程.docx VIP
- 监狱电网工程施工方案(3篇).docx
- 2025年中国婴儿纸尿裤市场调查研究报告.docx
- 鼎捷ERP全套操作参考手册.doc VIP
- 牛津译林六上Unit 3 Holiday fun Cartoon time课件.ppt VIP
- 「备战2024高考语文」重点古诗文篇目默写复习:《谏太宗十思疏》理解性默写精选.docx VIP
- 2025年秋最新人教版七年级上册英语单词默写版 .pdf VIP
- 普通高中语文课程标准(2017年版2020年修订).pdf VIP
- 教育事业发展“十五五”规划.docx
文档评论(0)