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

北京交通大学C语言总结概要.ppt

  1. 1、本文档共81页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京交通大学C语言总结概要

下列程序段的输出结果为( )。 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

文档评论(0)

宝贝计划 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档