市面上有很多介绍C语言的书,但这是第一本将C语言以简洁而实用的方式介绍给读者的书籍。
用C语言进行编程不仅仅是在程序中使用正确的句法,编程的风格以及程序的调试在编写程序的过程中也占有相当大的篇幅,从而有助于程序的良好运行且易于维护。
本书不仅仅向你介绍编程的机制,同时也告诉你如何创建易于阅读、调试和更改的程序。
本书也强调了实用的原则。
例如在讨论C中运算优先级时,15种级别被归纳为下面两条原则:-先乘除,后加减;
-在所有该加括号的地方都加上括号第三版除介绍UNIX上的编程工具之外,还介绍了流行的Windows系统上集成开发环境(IntegratedDevelopmentEnvironments)。
第一部分基础11第一章什么是C13编程原理14C语言简史17C如何工作17如何学习C19第二章编程基础21程序从概念到运行21编写一个真正的程序22使用命令行编译器编程23使用集成开发环境(IDE)编程27获取UNIX帮助45获取集成开发环境帮助45集成开发环境菜单45编程练习48第三章风格49基础编码练习54编码盲从56缩进与编码格式56清晰57简明58小结59第四章基本定义与表达式60程序要素60程序的基本结构61简单表达式62变量和存储64变量定义65整型66赋值语句66printf函数68浮点型70浮点数与整数的除法运算70字符73答案74编程练习75第五章数组、修饰符与读取数字76数组76串78读取串81多维数组84读取数字86变量初始化88整型90浮点型92常量说明93十六进制与八进制常量93快捷运算符94副作用95++x或x++96更多的副作用问题97答案98编程练习99第六章条件和控制语句101if语句101else语句102怎样避免误用strcmp函数104循环语句104While语句105break语句107continue语句108随处赋值的副作用109答案111编程练习111第七章程序设计过程113设置115程序规范116代码设计116原型118Makefile119测试123调试124维护126修改126代码分析127注释程序128使用调试器128用文本编辑器浏览128增加注释128编程练习131第二部分简单程序设计133第八章更多的控制语句135for语句135switch语句139switch,break和continue145答案145编程练习147第九章变量作用域和函数149作用域和类149函数153无参数的函数157结构化程序设计158递归160答案161编程练习162第十章C预处理器163*define语句163条件编译170包含文件173带参数的宏174高级特征176小结176答案177编程练习180第十一章位运算181位运算符183与运算符(&)183按位或(\)186按位异或(^)187非运算符(~)187左移与右移运算符(<>)188设置、清除和检测位190位图图形194答案200编程练习201第十二章高级类型202结构202联合205typedef207枚举类型209强制类型转换210位字段或紧缩结构210结构数组212小结213编程练习213第十三章简单指针215函数自变量指针220常量指针222指针和数组224如何不使用指针229用指针分隔字符串231指针和结构235命令行参数236编程练习242答案242第十四章文件输入/输出245转换程序249二进制和ASCII码文件252行尾难题253二进制I/O255缓冲问题257非缓冲I/O258设计文件格式264答案266编程练习267第十五章调试和优化268调试268交互调试器280调试一个二分查找程序285实时运行错误297公开
2023/11/8 22:50:27 20.09MB C语言 编程
1
华中科技大学汇编实验源代码及实验报告2.1任务1.《80X86汇编语言程序设计》教材中P31的1.14题。
要求:(1)直接在TD中输入指令,完成两个数的求和、求差的功能。
求和/差后的结果放在(AH)中。
(2)请事先指出执行指令后(AH)、标志位SF、OF、CF、ZF的内容。
(3)记录上机执行后的结果,与(2)中对应的内容比较。
(4)求差运算中,若将A、B视为有符号数,且A>B,标志位有何特点?若将A、B视为无符号数,且A>B,标志位又有何特点?2.2任务2.《80X86汇编语言程序设计》教材中P45的2.3题。
要求:(1)分别记录执行到“MOVCX,10”和“INT21H”之前的(BX),(BP),(SI),(DI)各是多少。
(2)记录程序执行到退出之前数据段开始40个字节的内容,指出程序运行结果是否与设想的一致。
(3)在标号LOPA前加上一段程序,实现新的功能:先显示提示信息“Pressanykeytobegin!”,然后,在按了一个键之后继续执行LOPA处的程序。
2.3任务3.《80X86汇编语言程序设计》教材中P45的2.4题的改写。
要求:(1)实现的功能不变,对数据段中变量访问时所用到的寻址方式中的寄存器改成32位寄存器。
(2)内存单元中数据的访问采用变址寻址方式。
(3)记录程序执行到退出之前数据段开始40个字节的内容,检查程序运行结果是否与设想的一致。
(4)在TD代码窗口中观察并记录机器指令代码在内存中的存放形式,并与TD中提供的反汇编语句及自己编写的源程序语句进行对照,也与任务2做对比。
(相似语句记录一条即可,重点理解机器码与汇编语句的对应关系,尤其注意操作数寻址方式的形式)。
(5)观察连续存放的二进制串在反汇编成汇编语言语句时,从不同字节位置开始反汇编,结果怎样?理解IP/EIP指明指令起始位置的重要性。
2.4设计实现一个学生成绩查询的程序。
1、实验背景在以BUF为首址的字节数据存储区中,存放着n个学生的课程成绩表(百分制),每个学生的相关信息包括:姓名(占10个字节,结束符为数值0),语文成绩(1个字节),数学成绩(1个字节),英语成绩(1个字节),平均成绩(1个字节)。
2、功能一:提示并输入待查询成绩的学生姓名(1)使用9号DOS系统功能调用,提示用户输入学生姓名。
(2)使用10号DOS系统功能调用,输入学生姓名。
输入的姓名字符串放在以in_name为首址的存储区中。
(3)若只是输入了回车,则回到“(1)”处重新提示与输入;
若仅仅输入字符q,则程序退出,否则,准备进入下一步处理。
3、功能二:以学生姓名查询有无该学生(1)使用循环程序结构,在成绩表中查找该学生。
(2)若未找到,就提示用户该学生不存在,并回到“功能一(1)”的位置,提示并重新输入姓名。
(3)若找到,则将该学生课程成绩表的起始偏移地址保存到POIN字变量中。
4、功能三:计算所有学生的平均成绩使用算数运算相关指令计算并保存每一个学生的平均成绩。
平均成绩计算公式:(A*2+B+C/2)/3.5,即将语文成绩A乘以权重2、英语成绩C除以权重2后,与数学成绩B一起求和,再计算该生的平均成绩。
要求避免溢出。
5、功能四:将功能二查到的学生的平均成绩进行等级判断,并显示判断结果。
(1)平均成绩等级显示方式:若平均成绩大于等于90分,显示“A”;
大于等于80分,显示“B”;
大于等于70分,显示“C”;
大于等于60分,显示“D”;
小于60分,显示“F”。
提示:使用分支程序结构,采用2号DOS系统功能调用显示结果。
(2)使用转移指令回到“功能一(1)”处(提示并输入姓名)
2023/11/8 19:29:41 282KB 汇编
1
3DxWareSDK第三版的主要动机是支持3DxWare10的新功能:•结合3DxWare10,您的应用程序现在可以支持多个同时连接的设备和这些设备的运行时即插即用(PnP)。
•您的应用程序可以查询连接设备的数量和类型。
如果需要,您可以单独处理每个设备,或者将它们作为一个组。
•这开启了各种有趣的可能性,并满足了我们不断收到的最受欢迎的请求之一。
•当应用程序启动时,3Dx设备不再需要连接。
终端用户可以随时连接、断开和更换设备。
•当设备离开或到达时,一个新事件被发送到您的应用程序。
•3DxWare10还支持使用其他MicrosoftAPI(除了SDK中的API)。
•简化API结构。
不支持SiCfg保存功能和SiSync扩展。
•SDK许可证不再允许重新分发DLL二进制文件(这些文件总是包含在驱动程序用户安装中)。
•只支持USB设备。
•静态库都被移到lib(x86/x64)下的同一个目录中。
•为四种CRT用法添加预构建的静态库版本:多线程DLL(默认)、多线程调试DLL(D后缀)、多线程(静态)(MT后缀)、多线程调试(静态)(MTD后缀)。
•一些包含的文件已被清理和分割。
这应该不会影响现有代码。
2023/11/6 2:35:50 3.17MB 3DxWar 插件
1
可可描述CocoaAMF是一组类,可以进行AMF0和AMF3远程调用或充当服务器来处理AMF请求。
例子有关发送远程呼叫的信息,请参见SimpleRemotingCallExample。
有关设置服务器的信息,请参见ServerExample。
为了测试现有的AMF服务器,提供了一个更复杂的工具,即AMFClient,因此请务必将其签出!如果要从Cocoa发送自定义类,请确保实现NSCoding协议。
您可以对键控和非键控进行编码,后者表示您正在对可类进行编码。
反序列化时,如果未找到接收对象的类名的类,则CocoaAMF将创建ASObject的实例,该实例将包含该对象的所有属性及其类名,作为ivar“类型”。
去做完整的测试范围接触抱歉,我现在不积极维护该项目!谢谢CocoaAsyncSocket的Deusty设计()BGHUDAppKit的二进制神(
2023/11/5 22:34:56 193KB Objective-C
1
除法器可以直接改变范围变换多位除法器,可以在数码管显示输入输出的数值!
2023/11/5 17:27:11 851B VHDL;除法器
1
计算机系统基础实验lab4-LinkLab逐步修改一个由多个二进制模块(.o文件)组成的程序(称为“linkbomb”),使其在运行时满足实验指定的行为要求基于ELF文件格式和程序链接过程的理解,修改给定二进制可重定位目标文件的数据内容、机器指令、重定位记录等部分
2023/11/4 16:04:46 86KB 计算机系统
1
NASM是一个为可移植性与模块化而设计的一个80x86的汇编器。
它支持相当多  的目标文件格式,包括Linux和'NetBSD/FreeBSD','a.out','ELF','COFF',微软16  位的'OBJ'和'Win32'。
它还可以输出纯二进制文件。
它的语法设计得相当的简  洁易懂,和Intel语法相似但更简单。
它支持'Pentium','P6','MMX','3DNow!',  'SSE'and'SSE2'指令集,
2023/11/3 18:10:20 214KB nasm
1
LED灯二进制计数实验加一减一和归零,用灯代表0,1进行计数
2023/11/3 12:38:27 904B 二进制
1
可以实现把文本文件转为二进制加密文件,且保证写入前后数据不发生变化
2023/11/3 0:36:46 32.01MB C++ 可执行文件
1
《单片机原理及接口技术》一、单项选择题1、十进制数(79.43)10的二进制数为()。
A、1001111.0110B、1111001.0110C、1111001.1001D、1001111.10012、某存储器芯片有11根地址线,8根数据线,该芯片有()个存储单元。
A、1KBB、8KBC、2KBD、4KB3、单片机复位时,堆栈指针(SP)的值是()。
A、00HB、07HC、05HD、30H4、PC的值是()。
A、当前指令前一条指令的地址B、当前正在执行指令的地址C、下一条指令的地址D、控制器中指令寄存器的地址5、下列指令或指令序列中,能将外部数据存储器3355H单元的内容传送给A的是()。
A、MOVXA,3355HB、MOVDPTR,#3355HMOVXA,@DPTRC、MOVP0,#33HMOVR0,#55HMOVXA,@R0D、MOVP2,#33HMOVR2,#55HMOVXA,@R26、80C51单片机要用传送指令访问片内程序存储器,它的指令操作码助记符是以下()。
A、MOVB、MOVXC、MOVCD、MUL7、假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为()。
A、36HB、37HC、38HD、39H8、在80C51中,可使用的堆栈最大深度为()。
A、80个单元B、32个单元C、128个单元D、8个单元9、下列条件中,不是中断响应必要条件的是()。
A、TCON或SCON寄存器中相关的中断标志位置1B、IE寄存器中相关的中断允许位置1C、IP寄存器中相关位置1D、中断请求发生在指令周期的最后一个机器周期10、执行中断返回指令,要从堆栈弹出断点地址,以便去执行被中断了的主程序。
从堆栈弹出的断点地址送给()。
A、AB、CYC、PCD、DPTR11、下列叙述中,不属于单片机存储器系统特点的是()。
A、程序和数据两种类型的存储器同时存在。
B、芯片内外存储器同时存在C、扩展数据存储器与片内数据存储器存储空间重叠D、扩展程序存储器与片内程序存储器存储空间重叠12、PSW=18H,当前的工作寄存器是()A、0组B、1组C、2组D、3组13、MCS-51的中断允许寄存器内容为8AH,CPU可以响应的中断请求是()。
A、T1B、T0,T1C、T1,串行接口D、T014、指令AJMP的跳转范围是()。
A、64KBB、2KBC、256BD、128B15、下列指令中正确的是()。
A、MOVP2.1,AB、JBCTF0,L1C、MOVXB,@DPTRD、MOVA,R3二、填空题。
1、一个机器周期包括个状态周期,一个状态周期包含个时钟周期。
2、执行如下指令序列:MOVC,P1.0ANLC,P1.1ANLC,/P1.2MOVP3.0,C后,所实现的逻辑运算式为P3.0=。
3、假定(A)=0C3H,R0=0AAH,CY=1。
执行指令:ADDCA,R0后,累加器A的内容为
2023/11/2 19:27:50 99KB 单片机 真题
1
共 566 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡