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

北京交通大学C语言课件总结.ppt

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

Q A! 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * 例15:以下程序的输出结果是 #include stdio.h #include string.h int printlength(int a[]) { printf(%d\n, sizeof(a)); return 0; } int printlength2(char *a) { printf(%d\n, strlen(a)); return 0; } int main() { int a[10]; char *b=hello world; printlength(a); printlength2(b); } 4 11 下列程序段的输出结果为( )。 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的人出列(即删除该节点) h

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档