标签分类
当前位置:首页 > 程序设计电子书 > C语言电子书网盘下载
C语言程序设计进阶教程 C语言程序设计进阶教程
43088031

43088031 提供上传

资源
36
粉丝
9
喜欢
93
评论
12

    C语言程序设计进阶教程 PDF 影印清晰版

    C语言电子书
    • 发布时间:

    给大家带来的一篇关于C语言相关的电子书资源,介绍了关于C语言、程序设计、进阶教程方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小75.4 MB,陆永祥编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.5,更多相关的学习资源可以参阅 程序设计电子书C/C++视频、等栏目。

  • C语言程序设计进阶教程 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1dCRqGS2Hlhq2oeoCnrB1ZA
  • 分享码:lvc9
  • C语言程序设计进阶教程 PDF

    C语言程序设计进阶教程》解读了栈、堆、表针、文档等各种程序编写定义和数据结构以及运用,根据比照程序编写中的普遍不正确与恰当的程序流程中间的差别来提升用户的程序编写专业技能,详细介绍怎样变成程序猿的工作经验和方法。特别是在是这书将离散数学中的有关定义与编程设计密不可分相接,细腻地论述递归程序流程的观念、保持和运用,使用户可以从这当中习得大量专业知识,把握高級程序编写方法。这书可做为高等学校c语言有关课程内容的本科毕业教材内容,也可做为中等水平程序编写水准的大学生提高程序编写专业技能的教材。

    Yung-Hsiang Lu(陆永祥),现为普度大学电子器件和电子计算机工程学校副教授职称。他是ACM优秀生物学家和优秀讲者, IEEE重新启动测算方案(Rebooting Computing initiative)组员。他還是2015年第一届功耗图像识别技术比赛的关键策划者,IEEE多媒体通信技术性联合会的多媒体通信系统软件兴趣爱好组的现任主席(2014-2016)。他2002年得到了斯坦福学校电子器件工程系博士研究生。

    目录

    • 出版者的话
    • 译者序
    • 前言
    • 第一部分 计算机存储:内存和文件
    • 第1章 程序的执行 2
    • 1.1 编译 2
    • 1.2 重定向输出 6
    • 第2章 栈内存 7
    • 2.1 值和地址 7
    • 2.2 栈 8
    • 2.3 调用栈 9
    • 2.3.1 返回位置 9
    • 2.3.2 函数实参 12
    • 2.3.3 局部变量 14
    • 2.3.4 值地址 15
    • 2.3.5 数组 16
    • 2.3.6 获取地址 17
    • 2.4 可见度 17
    • 2.5 习题 20
    • 2.5.1 绘制调用栈I 20
    • 2.5.2 绘制调用栈II 20
    • 2.5.3 地址 21
    • 2.6 习题解答 21
    • 2.6.1 绘制调用栈I 21
    • 2.6.2 绘制调用栈II 22
    • 2.6.3 地址 22
    • 2.7 在DDD(命令行调试程序)上检测调用栈 22
    • 第3章 预防、检测及消除bug 26
    • 3.1 开发软件≠编码 26
    • 3.1.1 编程前 26
    • 3.1.2 编程中 27
    • 3.1.3 编程后 28
    • 3.2 常见错误 28
    • 3.2.1 未初始化变量 28
    • 3.2.2 错误数组下标 28
    • 3.2.3 错误数据类型 28
    • 3.3 后执行式和交互式调试 28
    • 3.4 生产代码与测试代码分离 29
    • 第4章 指针 30
    • 4.1 作用域 30
    • 4.2 swap函数 31
    • 4.3 指针 33
    • 4.4 再论swap函数 37
    • 4.5 类型错误 39
    • 4.6 数组和指针 40
    • 4.7 类型规则 43
    • 4.8 指针运算 44
    • 4.9 习题 47
    • 4.9.1 swap函数1 47
    • 4.9.2 swap函数2 48
    • 4.9.3 swap函数3 48
    • 4.9.4 swap函数4 48
    • 4.9.5 swap函数5 49
    • 4.9.6 15 552种变化 49
    • 4.10 习题解答 50
    • 4.10.1 swap函数1 50
    • 4.10.2 swap函数2 50
    • 4.10.3 swap函数3 51
    • 4.10.4 swap函数4 51
    • 4.10.5 swap函数5 51
    • 第5章 编写和测试程序 52
    • 5.1 不同的数组元素 52
    • 5.1.1 main函数 52
    • 5.1.2 areDistinct函数 53
    • 5.1.3 编译和链接 54
    • 5.1.4 make工具 55
    • 5.2 使用Makefile测试 57
    • 5.2.1 生成测试用例 58
    • 5.2.2 重定向输出 58
    • 5.2.3 使用diff去比较输出 58
    • 5.2.4 添加测试到Makefile 59
    • 5.3 无效的内存访问 60
    • 5.4 使用valgrind检查内存访问错误 62
    • 5.5 测试覆盖 64
    • 5.6 限制内核大小 67
    • 5.7 带有死循环的程序 67
    • 第6章 字符串 69
    • 6.1 字符数组 69
    • 6.2 C语言中的字符串函数 72
    • 6.2.1 复制函数:strcpy 72
    • 6.2.2 比较函数:strcmp 73
    • 6.2.3 寻找子字符串函数:strstr 73
    • 6.2.4 寻找字符函数:strchr 74
    • 6.3 理解argv 74
    • 6.4 对子字符串计数 77
    • 第7章 编程问题和调试 80
    • 7.1 实现字符串函数 80
    • 7.1.1 C语言库 80
    • 7.1.2 头文件 80
    • 7.1.3 mystring.h 82
    • 7.1.4 创建输入和正确输出 82
    • 7.1.5 Makefile 86
    • 7.1.6 mystring.c 86
    • 7.1.7 使用const 88
    • 7.2 调试 89
    • 7.2.1 找到死循环 90
    • 7.2.2 找到无效内存访问 91
    • 7.2.3 检测无效内存访问 92
    • 第8章 堆内存 94
    • 8.1 用malloc函数创建数组 94
    • 8.2 栈和堆 96
    • 8.3 返回堆地址的函数 98
    • 8.4 C语言中的二维数组 99
    • 8.5 指针和参数 101
    • 第9章 使用堆内存的编程问题 104
    • 9.1 对数组排序 104
    • 9.1.1 生成测试输入和期望输出 104
    • 9.1.2 重定向输入 105
    • 9.1.3 整数排序 107
    • 9.1.4 使用valgrind检测内存泄漏 110
    • 9.2 使用qsort进行排序 111
    • 9.2.1 qsort 111
    • 9.2.2 比较函数 112
    • 9.2.3 执行范例 114
    • 9.2.4 对字符串排序 115
    • 第10章 读写文件 118
    • 10.1 通过argv传递一个文件名 118
    • 10.2 读取文件 119
    • 10.2.1 读取字符型:fgetc 119
    • 10.2.2 读取整型:fscanf(...%d...) 121
    • 10.3 写入文件 123
    • 10.4 读写字符串 125
    • 第11章 编程解决使用文件的问题 128
    • 11.1 对文件中的整数进行排序 128
    • 11.2 计算字符出现的次数 130
    • 11.3 计算单词出现的次数 132
    • 11.4 如何注释程序 134
    • 第二部分 递归
    • 第12章 递归 138
    • 12.1 在限制条件下选取小球 138
    • 12.1.1 双色球问题 138
    • 12.1.2 三色球问题 139
    • 12.1.3 附加限制条件 140
    • 12.2 单行道 142
    • 12.3 汉诺塔 143
    • 12.4 计算整数分拆 145
    • 12.4.1 计算“1”的个数 147
    • 12.4.2 仅使用奇数进行分拆 148
    • 12.4.3 使用递增数进行分拆 148
    • 12.4.4 交替使用奇偶数进行分拆 149
    • 12.4.5 整数分拆问题的推广 151
    • 12.4.6 解决分拆问题的错误方法 151
    • 第13章 递归函数 152
    • 13.1 在限制条件下选取小球 152
    • 13.2 单行道 155
    • 13.3 汉诺塔 156
    • 13.4 整数分拆 158
    • 13.5 阶乘 159
    • 13.6 斐波那契数列 161
    • 13.7 利用gprof进行性能分析 165
    • 第14章 整数分拆 167
    • 14.1 堆内存和栈内存 168
    • 14.2 追踪递归函数调用 176
    • 14.3 约束条件下的分拆 178
    • 14.3.1 仅使用奇数进行分拆 179
    • 14.3.2 使用递增数进行分拆 179
    • 14.3.3 交替使用奇偶数进行分拆 180
    • 14.3.4 使用gprof和gcov查找性能瓶颈 180
    • 第15章 使用递归解决问题 187
    • 15.1 二分搜索 187
    • 15.2 快速排序 189
    • 15.3 排列组合 195

    上一篇:互联网金融时代:消费信贷评分建模与应用  下一篇:计算机组成原理

    展开 +

    收起 -

    码小辫二维码
     ←点击下载即可登录

    C语言相关电子书
    学习笔记
    网友NO.994644

    node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小

    node.js版 遍历文件夹下最大的文件,并输出路径,大小 实现代码: /* 遍历文件夹下最大的文件,并输出路径,大小*/ function findmax(basepath){ //只能执行一次 if(findmax.s) return; findmax.s = true; var fs = require('fs'); var maxfile = 0; var count = 0; var begin = new Date().getTime(); function Traversal(filepath){ fs.readdir(filepath, function(err,files){ if(err) return; files.forEach(function(file,index,files){ //console.log(index + "=" + filepath +"\\" + file); var tmppath = filepath +"\\" + file; fs.stat(tmppath, function (err, stats) { if (err) { console.log("打开文件错误" + err); return; }; if(stats.isDirectory()) Traversal(tmppath); else { //console.log(++count +" "+ tmppath + " " + stats.size); count++; if(maxfile stats.size) maxfile = stats.size; } }); }); }); } Traversal(basepath); process.on('exit', function () { var end = new Date().getTime(); console.log(count + '结束耗时:' + (end - begin) + "ms " + maxfile); }); console.log(basepath);} findmax('D:\\devtools\\'); C/C++实现代码 #include stdio.h #include windows.h#include time.h DWORD maxsize = 0;clock_t start, end;DWORD count = 0; void find(char * lpPath) { char szFind[MAX_PATH],szFile[MAX_PATH]; DWORD tmpsize = 0; WIN32_FIND_DATA FindFileData; strcpy(szFind,lpPath); strcat(szFind,"\\*.*"); HANDLE hFind=FindFirstFile(szFind, if(INVALID_HANDLE_VALUE == hFind) return; while(TRUE) { if(FindFileData.dwFileAttributes strcat(szFile,"\\"); strcat(szFile,FindFile……

    网友NO.812216

    用C语言操作MySQL数据库的通用方法

    在我们的web应用中,虽然PHP、JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安全性和性能,在这篇文章中能够有所体现。 先看结构体: 以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql_init初始化方能开始进行连接. typedef struct st_mysql { NET net; /* Communication parameters */ gptr connector_fd; /* ConnectorFd for SSL */ char *host,*user,*passwd,*unix_socket, *server_version,*host_info,*info,*db; unsigned int port,client_flag,server_capabilities; unsigned int protocol_version; unsigned int field_count; unsigned int server_status; unsigned long thread_id; /* Id for connection in server */ my_ulonglong affected_rows; my_ulonglong insert_id; /* id if insert on table with NEXTNR */ my_ulonglong extra_info; /* Used by mysqlshow */ unsigned long packet_length; enum mysql_status status; MYSQL_FIELD *fields; MEM_ROOT field_alloc; my_bool free_me; /* If free in mysql_close */ my_bool reconnect; /* set to 1 if automatic reconnect */ struct st_mysql_options options; char scramble_buff[9]; struct charset_info_st *charset; unsigned int server_language; } MYSQL; 这个结构代表返回行的一个查询的(SELECT, SHOW, DESCRIBE, EXPLAIN)的结果。返回的数据称为“数据集”,用过数据库的朋友应该对数据库中查询后得到的结果集不会陌生,在C的API里对应的就是MYSQL_RES了,从数据库读取数据,最后……

    网友NO.781097

    c语言和python之间有什么区别

    Python和C语言都是一种高级编程语言,它们之间有相似之处,也有不少差异。下面本篇文章就来给大家介绍一下c语言和python之间有哪些的区别,希望对大家有所帮助。 1、语言类型 Python是一种基于解释器的,面向对象的解释型语言。解释器会逐行读取代码;首先将Python编译为字节码,然后由大型C程序解释。 C是一种面向过程的编译型语言,完整的源代码将直接编译为机器代码,由CPU直接执行。 2、内存管理 Python使用自动垃圾收集器进行内存管理。 在C语言中,程序员必须自己进行内存管理。 3、语法结构 Python中通过缩进来表示语句体,在Python中每一条语句结尾后没有分号。 C语言通过{}来表示语句体,在C语言中每一条语句结尾后都需要由英文分号结尾。分号是C语言中唯一的语句结束标志。 4、速度 Python编程语言很慢;而,C语言很快。 5、应用 Python是一种通用编程语言,一个多范式。它主要支持面向对象编程,程序编程,函数编程。 C是结构化编程语言。允许使用函数,选择(if / else等),迭代(循环)。它最主要的用途就是系统底层的应用,例:硬件相关的应用程序。 相关视频教程推荐:《C教程》、《python教程》 以上就是c语言和python之间有什么区别的详细内容,更多请关注码农之家其它相关文章! ……

    网友NO.174130

    python和c语言哪个好

    对于初学者在面对python和c语言不知道学习哪一个,更不知道python与c语言的区别?下面码农之家就为您讲解一下有关python和c语言哪个好,希望对你有一定的帮助。 一:python和c语言哪个好 现在很多外国的初学者都使用python作为编程语言,主要是python见效快,并且可以使用高级端口,c语言是比较低层的,一般不建议学习,学习起来也是比较枯燥。 对于初学者,学习c语言肯定是没有什么坏处的,但是相比python,c语言是比较简单的,但是我们在学习c语言之前一定要做好基础准备,一些大学都是要学习c语言的,可见c语言是多么的重要。 二:python与c语言的区别有哪些 1.语言不同 c语言是一种编译的语言,而python一种脚本语言。 2.全局变量方面 在python中,我们需要引用别的模块需要引用import引入,而在c语言中,需要在头部使用include去引入。 3.状态不同 c语言是一种静态语言,而Python是动态的语言。 4.数组和list的不同 c语言中的数组,里面都是数字,而list包含很多不同的元素。 以上就是对python和c语言哪个好的全部介绍,如果你想了解更多有关Python教程,请关注码农之家。 以上就是python和c语言哪个好的详细内容,更多请关注码农之家其它相关文章! ……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明