市面上有很多介绍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
跑马灯:前面板:水平指针滑动杆——用于调节彩灯间的延时时间。
指示灯——用以显示程序运行结果。
开关——用于结束当前操作。
程序框图:本程序主要用到平铺式顺序结构和层叠式顺序结构顺序执行程序语句,用真假常量来控制灯亮与不亮。
本程序还用到了while循环和for循环,循环是用于达到闪烁和同步递进循环,整个程序几乎每一帧都用到了延时,单位是毫秒,延时的目地是使本程序更具有可观性,特别效果:单个流水闪烁·双路同步流水闪烁·四路同步流水闪烁·全体同步闪烁谢谢老师的观赏!
2023/11/8 11:35:52 408KB 跑马灯
1
图书管理系统毕业论目录一、序言4二、需求分析说明书42.1系统介绍42.2系统面向的用户群体42.3系统的功能性需求42.4系统的非功能性需求52.4.1用户界面需求52.4.2软硬件环境需求52.4.3软件质量需求5三、可行性分析报告53.1技术可行性53.2人员可能性53.3时间、设备可能性53.4系统工作量53.5代码工作量53.6文档要求5四、开发环境与项目规划54.1开发环境54.2项目规划与管理54.2.1开发人员安排54.2.2开发进度安排6五、软件界面设计标准与规范65.1编写目的65.2界面设计思想65.3界面设计原则65.4界面设计样式65.5常见提示信息样式65.6常见错误信息样式75.7其他界面约定7六、软件编码设计标准与规范76.1对象命名约定76.2常量和变量命名约定86.3结构化编码约定86.4数据源的约定96.5数据库访问约定96.6其他约定9七、数据库分析与设计107.1数据库环境说明107.2数据库命名标准与规范107.3数据库逻辑设计107.4数据库物
2023/10/23 19:48:31 472KB 图书管理系统
1
编译原理课程设计词法分析器:1实现自动化词法分析程序2要求至少支持科学计数法常量和标识符字符3根据输入的源程序输出Token串若为非法单词则输出错误信息语法分析器:1要求使用LL(1)文法算符优先文法LR1文法三种分析方法之一进行语法分析2输入上下文无关文法输出语法分析程序3输入待检测的Token串输出检测结果同时可以处理分析中的异常和错误">编译原理课程设计词法分析器:1实现自动化词法分析程序2要求至少支持科学计数法常量和标识符字符3根据输入的源程序输出Token串若为非法单词则输出错误信息语法分析器:1要求使用LL(1)文法算符优先[更多]
2023/10/12 4:16:06 4.9MB 编译原理
1
简介:本程序为朱福喜、朱三元、伍春香编著的《人工智能原理》(清华大学出版社)一书的关于合一算法的演示程序。
合一算法:文字L1和L2如果经过执行某个代换s,满足L1s=L2s,则称L1与L2可合一,s称为其合一元。
本程序可判断任意两个文字能否合一,若能合一,则给出其合一元。
1.合一:文字1和文字2必须是有效的(目前没有对非法的文字做判别);
2.谓词项中首字母为大写的为常量,小写为变量,函数名首字母应该为小写;
3.表格化:将文字表格化,为合一算法的基础算法。
2023/9/22 1:26:03 196KB 合一 ,算法
1
表达式计算说明 很久就想编一个这样的计算器,只可惜一直没什么思路,最近突然灵感来了,所以就写下这个程序。
现在还在测试阶段,所以功能不是很完善。
程序功能:基本的表达式运算,可以自定义函数跟常量,分别保存在“常数.txt”和“函数.txt”,方便自己添加。
双击相应的函数名或常数名就可以将函数或常量添加到表达式中。
计算过程只能当表达式只有一行时有效。
实例1:计算sqr(19+tan(98)*tan(91)-sin(122)*(5*5-(19-11)))/2 计算过程sqr(19+tan(98)*tan(91)-sin(122)*(5*5-(19-11)))/2 =sqr(19+-7.11536972238419*tan(91)-sin(122)*(5*5-(19-11)))/2 =sqr(19+-7.11536972238419*-57.2899616307588-sin(122)*(5*5-(19-11)))/2 =sqr(19+-7.11536972238419*-57.2899616307588-.848048096156426*(5*5-(19-11)))/2 =sqr(19+-7.11536972238419*-57.2899616307588-.848048096156426*(5*5-8))/2 =sqr(19+-7.11536972238419*-57.2899616307588-.848048096156426*17)/2 =20.3032618253667/2 =10.1516309126834实例2:计算 a=34 b=55 c=a+1 圆的面积(c) a*b c=a+b 圆的面积(c) 以下是计算结果: 圆的面积(c)=3848.4510006475 a*b=1870 圆的面积(c)=24884.5554090847 内置函数: !(x) -x的阶乘 lg(x),log(x) 以10为底的对数 ln(x) 以e为底x的对数 pow(x,y) x的y方次幂 prime(x) 判定x是否是素数,如果是直接将s2返回,否则将其各因子用连乘返回 sqr(x),sqrt(x) -x的二次方根 arcsin(x) -x的反正弦 arccos(x) -x的反余弦 arcsec(x) -x的反正割 arccsc(x) -x的反余割 atn(x),arctg(x) -x的反正切 arcctg(x) -x的反余切 sin(x) -x的正弦 cos(x) -x的余弦 sec(x) -x的正割 csc(x) -x的余割 tg(x),tan(x) -x的正切 ctg(x) -x的余切 harcsin(x) -x的反双曲正弦 harccos(x) -x的反双曲余弦 harcsec(x) -x的反双曲正割 harccsc(x) -x的反双曲余割 harctg(x),harctan(x) -x的反双曲正切 harcctg(x) -x的反双曲余切 hsin(x) -x的双曲正弦 hcos(x) -x的双曲余弦 hsec(x) -x的双曲正割 hcsc(x) -x的双曲余割 htg(x),htan(x) -x的双曲正切 hctg(x) -x的双曲余切有什么意见或建议可以跟我联系Email: ldm.menglv@gmail.com
2023/9/19 9:57:10 29KB 表达式 计算 vb
1
JList多选值的获取,由JList组件实现的列表框有3种选取模式,设置方法为通过JList类的setSelectionMode(intselectionMode)方法,该方法的入口参数可以通过ListSelectionModel类中的静态常量设置。
2023/9/12 6:06:49 72KB JList多选值的获取
1
代码架XCPC模板的代码架。
作者:NogiNonoka数据:2020年11月9日C++CodeStyleGuide档案文件名称为$AlgorithmName.h或$AlgorithmName.cpp如果将代码定义为头文件,则提交($AlgorithmName)_Test.cpp进行测试。
标头允许但不建议使用bits/stdc++.h;不要使用#define为常量,使用const代替;不使用typedef的变量类型,使用template或使用int和double;评论使用//或/**/;结构/模板注释:您在算法中使用的其他算法;
分析时间和空间的复杂性;
函数/变量注释:选修的在单行中使用//;
算法推荐使用结构/模板的数据结构和算法;
使用PascalCase或CamelCase来命名Struct
2023/8/31 17:15:06 41KB C++
1
源代码:#include#include#include#include#definePI3.1415926/*定义常量*/#defineUP0x4800/*上移↑键:修改时间*/#defineDOWN0x5000/*下移↓键:修改时间*/#defineESC0x11b/*ESC键:退出系统*/#defineTAB0xf09/*TAB键:移动光标*//*函数声明*/intkeyhandle(int,int);/*键盘按键判断,并调用相关函数处理*/inttimeupchange(int);/*处理上移按键*/inttimedownchange(int);/*处理下移按键*/intdigithour(double);/*将double型的小时数转换成int型*/intdigitmin(double);/*将double型的分钟数转换成int型*/intdigitsec(double);/*将double型的秒钟数转换成int型*/voiddigitclock(int,int,int);/*在指定位置显示时钟或分钟或秒钟数*/voiddrawcursor(int);/*绘制一个光标*/voidclearcursor(int);/*消除前一个光标*/voidclockhandle();/*时钟处理*/doubleh,m,s;/*全局变量:小时,分,秒*/doublex,x1,x2,y,y1,y2;/*全局变量:坐标值*/structtimet[1];/*定义一个time结构类型的数组*/main(){intdriver,mode=0,i,j;driver=DETECT;/*自动检测显示设备*/initgraph(&driver,&mode,"");/*初始化图形系统*/setlinestyle(0,0,3);/*设置当前画线宽度和类型:设置三点宽实线*/setbkcolor(0);/*用调色板设置当前背景颜色*/setcolor(9);/*设置当前画线颜色*/line(82,430,558,430);line(70,62,70,418);line(82,50,558,50);line(570,62,570,418);line(70,62,570,62);line(76,56,297,56);line(340,56,564,56);/*画主体框架的边直线*//*arc(intx,inty,intstangle,intendangle,intradius)*/arc(82,62,90,180,12);arc(558,62,0,90,12);setlinestyle(0,0,3);arc(82,418,180,279,12);setlinestyle(0,0,3);arc(558,418,270,360,12);/*画主体框架的边角弧线*/setcolor(15);outtextxy(300,53,"CLOCK");/*显示标题*/setcolor(7);rectangle(342,72,560,360);/*画一个矩形,作为时钟的框架*/setwritemode(0);/*规定画线的方式。
mode=0,则表示画线时将所画位置的原来信息覆盖*/setcolor(15);outtextxy(433,75,"CLOCK");/*时钟的标题*/setcolor(7);line(392,310,510,310);line(392,330,510,330);arc(392,320,90,270,10);arc(510,320,270,90,10);/*绘制电子动画时钟下的数字时钟的边框架*//*绘制数字时钟的时分秒的分隔符*/setcolor(5);for(i=431;i<=470;i+=39)for(j=317;j<=324;j+=7){setlinestyle(0,0,3);circle(i,j,1);/*以(i,y)为圆心,1为半径画圆*/}setcolor(15);line(424,315,424,325);/*在运行电子时钟前先画一个光标*//*绘制表示小时的圆点*/for(i=0,m=0,h=0;i<=11;i++,h++){x=100*sin(
2023/8/25 8:11:27 142KB c语言实现电子时钟 课程设计
1
把关键字、算符、界符称为语言固有的单词,标识符、常量称为用户自定义的单词。
为此设置三个全程量:SYM,ID,NUM。
SYM:存放每个单词的类别,为内部编码的表示形式。
ID:存放用户所定义的标识符的值,即标识符字符串的机内表示。
NUM:存放用户定义的数。
GETSYM要完成的任务:1. 滤掉单词间的空格。
2. 识别关键字,用查关键字表的方法识别。
当单词是关键字时,将对应的类别放在SYM中。
如IF的类别为IFSYM,THEN的类别为THENSYM。
3. 识别标识符,标识符的类别为IDENT,IDRNT放在SYM中,标识符本身的值放在ID中。
关键字或标识符的最大长度是10。
4. 拼数,将数的类别NUMBER放在SYM中,数本身的值放在NUM中。
5. 拼由两个字符组成的运算符,如:>=、<=等等,识别后将类别存放在SYM中。
6. 打印源程序,边读入字符边打印。
由于一个单词是由一个或多个字符组成的,所以在词法分析程序GETSYM中定义一个读字符过程GETCH。
2023/8/13 6:20:38 4KB 编译原理 词法分析
1
共 117 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡