市面上有很多介绍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
根据需要的电阻(电容)自动选取电阻(电容)通过串并联的方式达到你需要的值.
2023/11/8 11:37:13 33KB 自动 电阻电容
1
扫描枪模拟键盘模式输入数据,从而无法区分键盘人工输入数据和扫描枪的数据,造成数据混乱。
使用HID接口模式调用WindowsAPI读取的方式由于受到不同操作系统有不同情况的问题,难以解决问题。
因此采用键盘钩子区分键盘输入和扫描枪数据。
键盘人工输入时间不均匀,而扫描枪一次数据间隔均匀,因此采用键盘钩子获得所有的键盘消息,如果连续多个键按键间隔小于30ms,且最后一个键以后连续500ms没有输入,就表明此串信息为扫描枪数据。
2023/11/7 4:47:52 78KB HID 键盘钩子 扫描枪 条形码
1
更新说明:v3.0版本更新1、增加超级终端模式,可像超级终端一样显示和发送数据2、超级终端支持'\r'、'\b'特殊字符3、增加流控制和RTS、DTR信号控制,兼容部分不识别的串口转USB驱动4、普通模式可鼠标调整发送区和接收区大小5、增加接收区字体设置功能6、优化数据显示和发送显示v2.1版本更新1、串口端口下拉时重新搜索串口号,有插拔USB串口是不必重新关闭程序v2.0版本更新1、修复在大量数据时接收不全的BUGv1.0版本1、字符串与十六进制的相互转换和十六进制与十进制的相互转换以及十进制与字符串转换。
2、接收区可显示汉字。
3、可设置一次性发送数据包长度。
4、可以通过计数清零按钮对RX和TX计数同时清零,也可以通过鼠标双击分别清零。
5、文本框右键菜单有撤消、剪切、复制、粘贴、删除、全选以及进制转换功能。
6、接收显示相应速度快,几乎无延时。
7、气泡提示功能。
8、按十六进制发送、十六进制和十进制转换成其它进制数据间相隔的多个空格可智能识别。
9、保存文件功能强大,可保存为不同格式的文件。
10、打开文件如果是文本文件则直接显示到发送区,如果是其它文件则以十六进制显示到发送区。
2023/11/6 4:31:48 27KB 串口 超级终端 串口助手 串口调试
1
泰和安调试编程软件TX3816TX3000编程注意事项USB方式下载需在电脑安装USB驱动才能正常使用。
双击VCPDriver_V1.1_Setup.exe安装。
安装完成后需重启电脑。
TX3000控制器进入菜单⑨离线编程界面,连接线接好后可将数据库进行下载(电脑中的数据库下载到控制器中)和上传(控制器中的数据库上传到电脑中);
查看虚拟串口号:首先接好线TX3000控制器进入离线编程界面,打开电脑后选中“我的电脑”图标,按右键选择属性,依次选择:硬件、设备管理器、端口(COM和LPT)、(如图1)STMVirtualCOMPortCOM6。
COM6就是虚拟串口号,在离线编程软件中要使用该串口号才能正常通讯。
2023/10/29 15:31:53 12.73MB 泰和安调试
1
VB语言写的一些经典小程序,比如登录窗口(实现三次错误输入后禁止登录),多项式就和,判断一个字符串是否是回文串,判断一个数是否是素数,抽奖程序等。
2023/10/27 13:07:19 3.61MB VB.NET程序 百钱买白鸡 登录 抽奖
1
1.调用LibTomCrypt库函数实现2.程序输入:文本串s3.使用RSA算法对s加密,输出加密结果s’4.解密s’,得到明文s’’,比较s与s’’是否相同5.加解密过程要求支持RSAES-OAEP和RSAES-PKCS1-V1_5两种机制6.相同密钥对条件下,多次对s加密,比较每次加密得到的s’是否相同.
2023/10/26 14:57:03 1.16MB RSA lib TomCrypt库
1
目录第1章绪论 1.1通信系统的基本概念  1.1.1通信系统的组成  1.1.2通信系统的基本特性  1.1.3通信系统的信道  1.1.4通信系统中的信号  1.1.5通信系统中的发送与接收设备 1.2信号传输的基本问题  1.2.1信号通过线性系统  1.2.2信号通过线性系统  1.2.3干扰 1.3通信电路的基本形式 1.4关于本书的内容  1.4.1关于信号变换的理论和技术  1.4.2关于电路第2章滤波器 2.1引言 2.2滤波器的特性和分类  2.2.1滤波器的特性  2.2.2滤波器的分类 2.3LC滤波器  2.3.1LC串、并联谐振回路  2.3.2般LC滤波器 2.4声表面波滤波器 2.5有源RC滤波器  2.5.1构成有源RC滤波器的单元电路  2.5.2运算仿真法实现有源RC滤波器  2.5.3级联法实现有源RC滤波器(x)  2.5.4自动校正有源RC滤波器(x) 2.6抽样数据滤波器(x)  2.6.1抽样数据单元电路  2.6.2抽样数据滤波器  2.6.3连续域到离散域的映射 2.7小结  习题第3章高频放大器 3.1引言 3.2晶体管的高频小信号等效电路和参数  3.2.1双极型晶体管混合x型等效电路和参数  3.2.2场效应管的等效电路和参数  3.2.3晶体管的y参数等效电路 3.3高频小信号宽带放大器  3.3.1概述  3.3.2共发射极放大器  3.3.3共基极放大器  3.3.4共发共基级联电路  3.3.5场效应管高频小信号放大器  3.3.6展宽频带的措施(x)  3.3.7自动增益控制(ACC)电路 3.4放大器的噪声  3.4.1电阻的热噪声  3.4.2电子器件的噪声  3.4.3噪声系数  3.4.4接收机的灵敏度与最小可检测信号  3.4.5噪声温度  3.4.6低噪声放大器(x) 3.5宽带功率放大器(x)  3.5.1A类功率放大器的基本电路特性  3.5.2B类与AB类功率放大器  3.5.3传输线变压器  3.5.4宽频带放大器晶体管工作状态的选择  3.5.5功率的合成与分配 3.6小结  习题第4章线性电路及其分析方法 4.1引言 4.2线性电路的基本概念与线性元件  4.2.1线性电路的基本概念  4.2.2线性元件 4.3线性电路的分析方法  4.3.1线性电路与线性电路分析方法的异同点  4.3.2线性电阻电路的近似解析分析  4.3.3线性动态电路分析简介(x) 4.4线性电路的应用举例  4.4.1C类谐振功率放大器  4.4.2D类和E类功率放大器(x)  4.4.3倍频器  4.4.4模拟相乘器  4.4.5时变参量电路与变频器 4.5小结附录余弦脉冲系数表习题第5章正弦波振荡器第6章 调制与解调第7章锁相环路第8章频率合成技术名词索引参考文献注:带(x)者为作者建议可列为选读内容的部分
2023/10/25 11:35:46 7.33MB 通信 电路 微波 射频
1
这是用XS128驱动OLED的程序。
------------------------------------CodeWarrior5.0/1Target:MC9S12XS128Crystal:16.000Mhzbusclock:16.000MHzpllclock:32.000MHz============================================使用说明:OLED电源使用5V。
----------------G电源地3.3V接5V电源,电源跟模块之间串接100欧姆电阻,并加3.3V钳位二极管D0PORTE_PE2单片机跟模块之间串接2k-3.3k电阻D1 PORTE_PE3单片机跟模块之间串接2k-3.3k电阻RSTPORTE_PE4单片机跟模块之间串接2k-3.3k电阻DCPORTE_PE5单片机跟模块之间串接2k-3.3k电阻CS已接地,不用接============================================如果用户使用的是5V单片机,请看用户手册,切勿烧毁模块!============================================*/#include"derivative.h"#include#include#include"OLED12864.h"//PLL初始化子程序BUSClock=16MvoidSetBusCLK_48M(void){CLKSEL=0X00;//disengagePLLtosystemPLLCTL_PLLON=1;//turnonPLLSYNR=0xc0|0x05;REFDV=0x80|0x01;POSTDIV=0x00;//pllclock=2*osc*(1+SYNR)/(1+REFDV)=96MHz;_asm(nop);//BUSCLOCK=48M_asm(nop);while(!(CRGFLG_LOCK==1));//whenpllissteady,thenuseit;CLKSEL_PLLSEL=1;//engagePLLtosystem;}voidDly_ms(intms){intii,jj;if(ms<1)ms=1;for(ii=0;ii<ms;ii++)for(jj=0;jj<1335;jj++);//16MHz--1ms//for(jj=0;jj<4006;jj++);//48MHz--1ms//for(jj=0;jj<5341;jj++);//64MHz--1ms}//============================MAIN()===========================/*********************主函数************************************/voidmain(void){bytei=0;SetBusCLK_48M();DDRB=0XFF;DDRE=0XFF;PORTB=0XFF;LCD_Init();DisableInterrupts;for(;;){//LCD_Fill(0xff);//Dly_ms(100);//LCD_Fill(0x00);//Dly_ms(2000);//LCD_CLS();//LCD_Print(12,0,"广州Beyond科技");//LCD_Print(15,2,"飞思卡尔智能车");//LCD_Print(43,4,"专营店");//LCD_Print(15,6,"智能车首选液晶");//LCD_P8x16Str(48,4,"OLED");//LCD_P6x8Str(16,6,"b
2023/10/17 14:34:33 255KB OED例程
1
共 355 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡