- 博客(25)
- 收藏
- 关注
原创 字符数组与字符串(上)
没有专用的字符串类型(字符串:双引号括起来的有序字符集)- ‘0’与‘\0’不同,表示一个非0值,对应的整数为48。-整数0即字符串中的0元素(char是最小的整数)-每个整数占用一个字节(-128--127)-当字符数组中存在0元素时,可当作字符串使用。-字符数组中的0元素表示了一个字符串的结束。- 存在字符串字面量,但仅能作为常量使用。-0元素对应的字符为‘\0’(转义字符)- 字符数组的元素,不一定是字符串的元素。-一个字符数组不一定是一个字符串。而一个字符串一定是一个字符数组。
2025-01-23 19:01:50
323
原创 多维数组的概念与示例
c[i]=a[i];//类型:int[10]//类型:float[5]//类型:float[8]//类型:int[10]//类型:int[5]//每个元素的类型为 int[4]语法:type Name[N1][N2][N3][N4];- 方式五:int a[ ][3]={1,2,4,5};语法:type Name[N1][N2][N3];-方式二:int [2][3]={1,2,3,4};-数组类型的具体表现类型为:type[N]-方式三:int [2][3]={0};-方式四:int a[ ][3]={
2025-01-23 01:35:00
1655
原创 数组特性的深入剖析
将数组中的元素分别初始化为V0,V1,...,Vn-1}/*S<N,未指定初始值的元素默认为0*/- 数组的大小字节可以用。- 数组在计算机底层是。-数组名只能当作左值使用(可看作常量)//第1.5变量具体是哪个?//常量不能做左值使用!- 将部分数组初始化为0。- 将所有数组初始化为0。对作为下标访问数组元素。- 自动确定数组大小。
2025-01-20 21:39:52
357
原创 初探程序中的数组
/每个元素的类型为double。输入:10输出:55即:0+1+2+...+10。//每个元素的类型为int。输入:1输出:1即:0+1。输入:0输出:0即:0。-数组元素下标固定从0开始(可以使用变量作为下标)数组中的变量没有独立命名,只有在数据中的编号。以上程序用到了二重循环,下面是更有效率的一个循环的。下面的程序中用到了数组但是比上面的效率高。//数组中一共有10个元素(变量)//数组中一共有5个元素(变量)
2025-01-17 20:47:58
404
原创 C语言的常量
通过#define定义,间接表示值的符号,如:FIV→5.5。- 变量是一个“容器”,可以容纳一个值(直接表示值含义的符号,如:5,‘a’,"Delphi"通过enum定义,间接表示值的符号,如First→1。- 常量是相对变量而言的一种程序元素。- 变量的值可以随时使用和改变(- #define定义的宏常量可以是任意类型。const修饰的变量并不是真正意义上的变量。- enum定义的枚举常量只能是整型。修饰的变量并不是真正意义上的变量。- 被const修饰的变量只。- 宏常量(符号化的字面量)
2025-01-16 23:17:21
236
原创 程序中的辅助语句(下)
goto在程序中极具破坏性,会破坏程序结构,造成程序难以理解和维护。现代软件开发与禁用goto。- 不要再一个表达式中混合四则运算与自增运算(自减)运算。- 自增(自减)操作符的结合方向“从右向左”goto是C语言中的一个关键字,用于无条件暴力跳转。goto的跳转位置由标签指定(具体指定某行代码)标签就是c语言中的合法命名,并以冒号(:)结束。现代开发软件已禁用goto(弊大于利)前置:先自增(自减),再取值。后置:先取值,再增值(自减)
2025-01-13 22:39:15
123
原创 程序中的辅助语句(上)
示例:int a= 0;//多行注释中嵌套单行注释,无意义。如:a+=1,a-=2,a*=3,a/=4;-本质:if...else...语句的缩写版。(错误用法:/*...abc.../*d*/...*/)从/*开始到*/结束的所有文本(三目运算符可以理解为if...else...的缩写形式。- 语法:语句1,语句2,语句3,...,语句n。多个赋值操作组合在一起,如:a=b=c...////////////单行注释。- 逗号(,)是一种特殊的运算符。
2025-01-13 20:48:14
554
原创 经典问题剖析
/4*4=16赋值给s。if(a<b)s=b;A.char类型变量必须接收字符型数据,如'a','b',c'B.在赋值语句中,赋值符号左边可以是变量和任意表达式。D.在赋值语句中,赋值符号右边可以是变量和任意表达式。右值:出现在赋值符号右边的值,如:变量,自变量。C.对于整形变量a,b,执行a=b;C.浮点型变量能够在内存中准确无误的表示范围内的数据。B.整形变量能够在内存中准确无误的表示范围内的数据。//在从语言里面浮点数的表示是不精确的,所以错误。左值:可以出现在赋值符号左边的值,如:变量。
2025-01-05 00:40:00
1440
原创 再论数据类型
long long是long long int 的缩写形式。如上图,每一个变量都表示的范围不同,字节也随之不同。- long通常占用4字节内存,也可能占用8字节内存。功能:用于获取类型或者变量所占用的内存大小(字节)- 因为占用的内存大小不同,所以可表示的范围不同。- 不同的数据类型(变量)会占用不同大小的内存。- 不同类型的数据,在内存中使用不同的表示法。整数和浮点数的表示法不同。不同的数据类型,占用不同大小的内存。不同的数据类型对于数据的表示法不同。获取类型或变量占用的内存字节数。
2024-12-29 16:35:08
697
原创 signed与unsigned
signed int与unsigned int 所能表示的整数个数是一样的,仅最小值和最大值不同。(2) 由此实验我们可以得出如果越界就会发生回转,最大值加1回转到最小值,最小值减1回转到最大值。范围:-2147483648~2147483647。- int 能表示的最大值为2147483647,下面的写法正确吗?范围:0~4294967295。- short能表示的最大值为32767,下面的写法正确吗?下面的结果怎么多了个 符号,因为超出范围了。大于了int 能表示的最大值。- 程序中可能出现的关于。
2024-12-24 00:37:55
305
原创 break与continue
如上图这个程序必须输入与之对应的数字才能输出,这样猜的话好像有点难度,下面我来加个给提示的的代码 如下图。循环和switch相互嵌套式时,break如何执行,跳出循环还是跳出switch?以上是含有break和不含break的程序结果,一个能中途停止,一个不能。- break能够强制结束当前结构,阻止程序向下执行。- 打印1000以内能被7整除的整数,并统计数量。》能被整除:打印并统计。根据定义,以下是使不使用continue的结果。使用选择结构,判断是否能被7整除。以上程序的目地是奇数和偶数的判定。
2024-12-09 20:38:31
352
原创 do…while与for
以上是两种输出结果,一种是满足循环条件直至不满足的,一种是一开始就不满足循环条件的。以上输入代码需要手改,那么输入的程序满足条件就执行上面的,不满足就执行下面的。随着循环体的执行,循环条件逐渐趋向于假,最终结束循环!那么只用while不用do程序可以执行吗我们试一试。//条件为逻辑值,真或假。如上图是可以的,只是没有那么直观罢了。- 在循环体中改变循环变量。- 判断循环条件是否为真。是否继续依赖于括号中的。可以看作是一条语句,
2024-12-08 20:59:21
299
原创 while语句编程练习
以上是程序循环100,1000,10000,100000,1000000次的结果 ,达到1000000次循环时近似Π的值.已经满足第一个要求了,但第二个条件还不行。由上图可知,i=21并不是系统的问题,而是程序还需要执行最后一项代码指令i=i+1.- 编写程序,求 2^2 + 4^2 + 6^2 +……- 每次循环计算1/(2*i-1),并乘以flog后累加……提示:Π/4=1-1/3+1/5-1/7+1/9。- 使用同样的方法可以求出2-100中的所有质数。输出累加式的项数i,以及最大的的数n。
2024-11-30 20:17:00
386
原创 程序中的循环结构
编写代码,求1000以内能被3除尽的正整数的和。-循环、反复是生活的常态,程序需要表达这种逻辑结构。- 循环体可以一次也不执行(如:whlie(0))。这是一个循环问题,需要遍历1~1000中的每一个整数。,否则循环永远不会结束(如:while(1))。这是一个选择问题,如果整数能被3除尽,则累加。- if语句(不带else)可以看作。:必须改变i的值,使其往循环结束的方向变化。- if语句与whlie语句可。-程序设计语言需要提供。,执行这里的语句(循环体)(最多执行一次循环体)。
2024-11-29 16:37:56
428
原创 switch多分支选择语句
default分支不是必须的(类似于else分支不是必须的)-当语句全部执行后需要使用break跳出执行分支。-多个case可合并在一起,执行相同的语句。-switch是一种简洁的分支选择结构。-switch仅能适用于。,匹配成功后执行case下的语句。-当语句全部执行后,需要使用break跳出执行分支。根据上图可知是我们期望的结果。-switch仅能适用于整数(每个分支代码的最后必须加上。
2024-11-25 23:18:11
448
原创 if语句编程练习
(2) 如果两个数相等,输出字符串x==y。(1) 如果两个数不相等,输出较大的数。1.比较x和y的大小关系,将较小的值赋值给t。2.比较t和z的大小关系,将较小的值赋值给t。- 编写程序,根据学生成绩给出相应的等级。1.先判断输入是否合法(0-100)2.合法:进一步判断成绩级别。3.t保存的就是3个数中的较小值。2. 每十分为一个等级。这是一个多重嵌套分支选择结构。3.不合法:输出提示信息。,分别放入变量下x,y,z中。1. 大于或等于90分为A。这是一个3分支选择结构。以上是各种情况的结果。
2024-11-24 23:13:48
391
原创 程序中的选择结构
2.多个if...else...组合在一起可描述多个支路选择分支。2.if和else都可以不使用{},此时每个分支只对应一条语句。1.if可以不带else分支,条件为真,则执行对应的语句。1.else后的语句可以是另一个if...else...那我们把b=1改成b=2,他会执行哪一个语句呢?程序只有自上而下的顺序执行方式。可以对if...else...进行剪裁和组合。else分支不能独立存在,必须跟在if之后。那么如何描述3路或更多的分支呢?如上图建剪裁之后的代码没有问题。if分支可以独立存在。
2024-11-18 18:14:32
244
原创 深度剖析位运算
如:short占用2字节,int占用4字节。-不同类型的操作数先自动对齐在进行位运算(1. 正整数用原码表示,负整数用补码表示。-操作数的正数还是负数(占用的内存大小)-正数符号位为0,右移运算时,高位补0,低位移除。-负数符号位为1,右移运算时,高位补1,低位移除。-操作数的类型(占用的内存大小)- 最高位的具体位置,有数据类型决定。-左移运算时,最高位移除,低位补0。如下两幅图可知,最后计算的与实际的不符,(2)如果是左移两位(16《 2)的表示范围不同,本质差异是什么?-字符型,一个字节的整形,
2024-11-17 22:45:19
298
原创 逻辑运算与位运算
设变量a的二进制数10101101,若想通过运算a^b使得a的中间4位取反,其余位不变, 则b的值是多少?设变量a的二进制数10101101,若想通过运算a^b使得a的中间4位取反,其余位不变, 则b的值是多少?(2)我们再将c的值取两次非,-5是非零数,那它就是1,取两次非还是1,如下图。按位或和逻辑或的计算方法相同:两者为0,结果为0,否则为1。按位与和逻辑与的计算方法相同:两者为1,结果为1,否则为0。
2024-11-09 17:07:55
1704
原创 四则运算与关系运算
这里可能会有人感到疑惑,a/b不应该是0.5吗,怎么会是0呢,因为C语言中的/号意思是。(3) 我们把数据类型改一下,把a,b的数据类型改成double,会发生什么。整数除以整数得整数而不是小数,所以我们只取整数部分的商,而%则是取余数。(5) 那么编译的结果会是2吗,不会。(1)如下图,打印的第一个数据逻辑是假为0,第二个数据是真为1。(4) 那我们把下面的那两行代码删掉,看结果,没问题。我们把a的值换成5,看结果。-取余(%)运算也是一种除法运算,结果为余数。-比较的结果为逻辑值:真(1),假(0)
2024-11-08 22:31:54
321
原创 程序中的数据输入
:接受键盘输入的变量,必须加上&前缀。如下图,编译程序出现了输入光标,表示你可以进行输入了。scanf:是从键盘输入的工具。如下图,任意填入一个变量,i的值发生了改变!如何连续的从键盘输入两个数据到不同变量?解析:上述代码中一些数据的用意如。若取用方法二,效果如下图。例:键盘输入7,回车。
2024-11-03 13:01:37
330
原创 数据类型与变量
如:-0.5,0.0,3.14···如:’D','T','\N'···浮点数类型:带小数点的数据类型。如:-1,0,1,2,3···同一个数据(如数字2)可能有不同的解读类型,因此显示的指出对应的数据类型,如下图所示,浮点类型的变量和整型变量没有问题,只要是在范围内就不会出错。如下图所示 b给a赋值,缩所赋值在a的范围之内,所以没问题。如下图实验可得,a给b赋值,a的范围大于b的范围所以溢出。如下图,f赋值给i,因为i是整数所以,后面的小数会省略。把带有小数点的值送给不能带小数点的变量,不能正常接收。
2024-11-02 23:54:49
335
原创 程序中的数据输出
1.那我们现在开始测试,打开我们的编译软件(Code Blocks),create a new project 创造一个新的项目。12.编译得到的可执行程序在这里,我们点开它发现只是一闪消失,因为我们编译的程序没有停止功能那怎么查看到呢?15.如图所示,进去了,我们输入文件名,按回车打开,我们看到了程序的结果。那我们回去把程序改回来。8.现在文件已经处理好了,我们就可以开始编辑-编译进行检查了,如图所示没有问题。11.我们返回桌面,这里有我们设置好的文件点开。10.如图所示 ,打印之后的数据不换行了。
2024-10-06 18:35:42
625
原创 预处理指令#include用法
处理过程:就是将头文件的内容插入到该命令所在位置,从而把头文件和当前源文件连接成一个源文件,与复制粘贴的效果一样。右击source group选择包含STC的文件夹,但STC89C5xRC.h已被剪切到桌面,那么我们开始编译。那么和编译出来的单片机代码相连接的文件在哪里呢?源代码的转换过程叫“编译”,做这个工作的程序叫“编译器”。首先我们选一个单片机的代码,此编译代码与文件夹中的相连接。
2024-09-28 22:55:35
293
原创 点亮单片机上的第一盏灯
然后我们就可以编写如上的代码,今日我们的任务是点亮单片机上的第一个灯,以上便是要求的代码,可以看到编译之后没有问题。之后会弹出以下窗口,我们在device那边的边框中下拉选择STC类型,因为本博主今天测试的板子就是STC类型,随后我们在下框选择该芯片的种类,我选用STC89C52RC series 进行测试,点OK.接下来我们将左边的工程进行扩展,点开文件夹一看除了系统自动给我们的文件,实际上我们一个文件也没有,那么我们需要创立一个新的文件,首先右击鼠标点击source group,然后按照以下顺序操作。
2024-09-23 23:20:01
490
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人