我们用一个简单的C程序例子来介绍C语言的基本构成、格式和良好的写作风格,以加深朋友对C语言的理解。
例1:计算两个整数之和的c程序:
#包括
main()
{
int a,b,sum/*将变量a、b和sum定义为整数变量*/
a = 20/*将整数20赋给整数变量a*/
b = 15/*将整数15赋给整数变量b*/
sum = a+b;/*将两个数之和赋给整数变量sum*/
printf("a=%d,b=%d,sum=%dn ",a,b,sum);
/*将计算结果输出到显示屏*/
}亮点:
1.任何C语言程序必须包括以下格式:
main()
{ }
这是C语言的基本结构,任何程序都必须包含这种结构。括号里什么都不能写,那么程序就不会执行任何结果。
2.main()-在C语言中称为“主函数”。一个C程序只有一个主要功能。任何C程序总是从主函数开始,主函数后面的一对括号是不能省略的。
3.大括号{}括起来的内容称为主函数的函数体,这部分内容就是计算机要执行的内容。
4.{}中每个句子后面都有分号(;),在C语言中,我们把以分号结尾的句子称为C语言的语句,分号是语句结尾的符号。
5、printf("a=%d,b=%d,sum=%dn ",a,b,sum);-通过执行C语言系统提供给我们直接使用的屏幕输出功能,用户可以看到运行结果。程序运行后,显示屏上将显示以下结果:
a=20,b=15,sum=35
6 、#包括
注意:(1)以#开始(2)不要以分号结束
这一行没有分号,所以不是语句。它在C语言中被称为命令行,或“预编译处理命令”。
7.程序中以/*开头,以*/结尾的部分表示程序的注释部分。注释可以添加到程序的任何地方,以提高程序的可读性。而计算机在执行主功能时完全忽略了注释部分,换句话说,计算机并不存在于主功能中作为注释部分。
常数
在程序运行中,其值不能改变的量称为常数。常量有五种类型:整数常量、实常量、字符常量、字符串常量和符号常量。
(a)数字转换
数字的四种表现形式:
①:二进制:所有数字都由0和1,2组成。当二进制数为1时,不会出现在二进制数中。
示例:110101
②:八进制:以数字0开头(注意不是字母O,O),所有数字由0~7组成。每八进制一个,八进制数中不会出现8。
例如:0112,0123,077等
③:十进制:所有数字由0~9组成,十进制数字中不会出现每一个十进制数字。
例如:0,12,-15等
④:十六进制:从0x或0X(数字0加字母X)开始,所有数字由0~9,A~F(或a~f)组成,每一个都是十六进制(其中A,B,C,D,E,F分别代表10,11,12,13,14,15)
示例:0x4A、0X14c7等
数字在计算机中以二进制形式表示和存储。用户输入的普通十进制数必须由计算机转换成二进制数才能存储在计算机中。同样,计算机的计算结果也是二进制的,通常会转换成十进制数,然后输出给用户阅读。这种转换通常是由计算机自动实现的。
(1)将十进制转换成二进制、八进制和十六进制
除法:将十进制数除以2,记录余数,将得到的商除以2,直到商为0,然后将每次得到的余数按照从后到前的逆序排列,得到的余数序列就是十进制数对应的二进制数。八进制和十六进制的转换方法同上。
例如:十进制数13被转换成二进制数,其值为1101,八进制数为015,十六进制数为d .
(2)将二进制、八进制和十六进制转换成十进制
乘积求和:将二进制的每一位从低位到高位(右侧的低位和左侧的高位)分别乘以20、21和22。。。。,然后对这些乘积求和。
例如:(1101)2 =(13)10(317)8 =(207)10(23e)16 =(574)10
(3)二进制、八进制和十六进制之间的转换
①:从二进制到八进制的转换:每三位从右到左转换成十进制数,得到的数据组合就是对应的八进制数(注意:高位少于三位填零)。
示例:(010 110 111)2=(267)8
②:二进制到十六进制:每四位从右到左转换成十进制数,得到的数据组合就是对应的十六进制数(注意:高位少于四位填零)。
示例:(0101 1011)2=(5B)16
③:八进制到二进制:每个数字转换成三个二进制数字
示例:(13)8=(001 011)2=(1011)2
(注意:去掉前两个00,因为0在高位没有意义)
④:十六进制到二进制:每个数字转换成四个数字
示例:(E3)16=(1110 0011)2
(2)整数常数
整数常量有三种:十进制整数常量、八进制整数常量和十六进制整数常量。
(注意:C语言中没有直接表示二进制的整数常量,C语言源程序中也不会出现二进制。)
行文如下:
十进制整数常量:123,0,-24,85L(长整数常量)等
八进制整数常量:051,-026,0773等。
十六进制整数常量:0x55,0x1101,0x,0x5c 0,-0xFF。
其中l是长整数。
(3)实常数
实常数有两种表示形式:十进制形式和指数形式。
十进制形式:5.4 0.074 -23.0
指数形式:5.4e0 4.3e-3 -3.3e4 (1)小数部分为0的实常数,可以写成453.0或453。
(2)用小数位表示时,小数位两边必须有数字,而不是“. 453”和“453”,它们应该写成“0.453”和“453.0”。
(3)用index写时,E前必须有一个数字,E后的index必须是整数(注意:整数顺序码可以是正数、负数、八进制数或十六进制数,但必须是整数)。
(4)字符常数
字符常量的符号是一对单引号“”。C语言中有两种类型的字符常量:
(1)用一对单引号括起来的字符,如“a”、“r”和“#”。注意:“A”和“A”是两个不同的字符常量。
(2)用一对单引号括起来,以反斜杠,后跟若干数字或字母,如' n ',其中" "表示转义,后跟不同字符表示不同含义,这样的字符常量称为转义字符。具体如图。
转义字符ASCII码的转义字符含义 n返回第10行
t跳转到下一个列表位置9
bBackspace 8
r输入13
f12 n n n n n n
反斜杠字符“”92
'单引号字符39
"双引号34
a戒指7
由1 ~ 3个八位字节表示的DDD字符
xhh用十六进制数表示的1 ~ 2个字符
(5)字符串常量
在C语言中,由几个用双引号括起来的字符组成的序列是一个字符串常量。
例:“倪好”“快乐”等等。
(6)符号常数
符号常量是由宏定义“#”定义的常量,在C程序中可以用标识符表示。
例子:计算圆面积的c程序。
#包括
#定义PI 3.14159
main()
{
float r,s;
r = 12.5
S = PI * r * r
printf("s= %f ",s);
}
描述:
#define是一个宏定义。本程序中出现PI的地方都代表3.14159,PI称为符号常数。传统上我们用大写字母表示符号常量,小写字母表示变量,这样更容易区分。
变量
变量是其值可以改变的量。变量必须有一个变量名,并在内存中占据一定的存储单元,变量的值就存储在这个存储单元中。不同类型的变量有不同的存储单元大小,使用前必须定义变量。
(a)整数变量
整数变量有四种类型:基本类型(int)、短类型(short int或short)、长类型(long int或long)和无符号类型(无符号int、无符号short、无符号long)。
不同的编译系统对以上四个整数数据所占的位数和数值范围有不同的规定。
类型说明符
(二)真实变量
在C语言中,实变量分为单精度类型(浮点)和双精度类型(双精度)。例如:
浮动a,b;
双m;
在vc中,浮点数据在内存中占4字节(32位),双数据占8字节。单精度实数提供7个有效数字,双精度实数提供15 ~ 16个有效数字。实型常量中没有浮点型和双精度型的区别。实型常量可以赋给浮点型或双精度型变量,但变量根据其类型截取实型常量中相应的有效数字。
注意:实变量只能存储实值,既不能存储整数变量,也不能存储整数值。
(三)性格变量
字符变量用于存储字符常量,并定义形式:
Char变量名;
其中关键字char定义字符数据类型,占用一个字节的存储单元。
例:char cr1,cr2
cr1= 'A ',cr2 = ' B
当一个字符被分配给一个字符变量时,对应于该字符的ASCII码被存储在存储单元中,而不是该字符本身。比如字符‘A’的ASCII码是65,内存中的存储形式如下:01000001
由于字符存储在内存中的ASCII码中,其存储形式类似于整数,所以字符数据和整数数据在C语言中可以通用。一个字符可以以字符或整数的形式输出,字符数据也可以进行算术运算,相当于它们的ASCII码。
赋值运算符和赋值表达式
1.赋值运算符和赋值表达式
赋值符号“=”是一个赋值运算符,用于将一个数据赋给一个变量或将一个变量的值赋给另一个变量。由赋值运算符组成的表达式称为赋值表达式。一般形式是:
变量名=表达式
在程序中,一个变量可以被赋值多次。每次赋值时,其对应存储单元中的数据都会更新一次,内存中的当前数据就是上次赋值的数据。
例:a = 12该表达式为“将值10赋给变量a”。
描述:
A.如果赋值号两边的操作数类型不一致,系统会自动进行类型转换。转换规则:将赋值号右侧表达式的值类型转换为赋值号左侧变量的类型。
例:int y = 3.5最终存储在变量y中的是整数3。
b、复制的表达式的值可以再次赋值给一个变量,形成连续赋值。
例如,x=y=25是一个连续赋值表达式,x=y=25相当于x=(y=25),所以表达式x=y=25的最终值是25。
第二,复合赋值运算符
在赋值运算符之前添加其他运算符可以形成复合赋值运算符。与算术运算相关的复合运算符有:+=,-=,* =,/=,% =。
两个符号之间可以没有空的情况,复合赋值运算符的优先级与赋值运算符相同。表达式n+=1相当于n=n+1。作用是将变量n中的值增加1后赋给变量n,其他复合赋值运算符的运算规则依次类推。
如果要表示a+的值=a-=a*a,其中a的初始值为12。
步骤:
(1)先进行“a-=a*a”运算,相当于a=a-a*a=12-144=-132。
(2)“a+=-132”运算再次执行,相当于a = a+(-132) =-132-132 =-264。逗号运算符和逗号表达式
在C语言中,除了分隔符-逗号运算符外,逗号还可以用作运算符,几个表达式由逗号运算符连接。比如a=b+c,a=b*c等等就叫做逗号表达式。
一般形式是:
表达式1,表达式2,表达式3,...,表达式n
示例:x=2,y=3,z=4
逗号表达式从左到右组合,即先求解表达式1,再依次求解表达式2,直到表达式n的值,表达式n的值就是整个逗号表达式的值。上述逗号表达式的值是表达式z=4的值。需要注意的是,逗号运算符是所有运算符中最低的。
示例:有以下步骤:
main()
{
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d ",y,x);
}
程序显示y=6,x=6
Y=(x=a+b),(b+c);程序结果是否改为y=((x=a+b),b+c)?
关系运算符和关系表达式
1.c语言中的逻辑值
C语言中只有两个逻辑值:true和flase。真用非零,假用零。因此,对于任何表达式,如果其值为零,则表示为假值,如果其值非零,则表示为真值。只要值不为零,无论是正数、负数、整数还是实数,都代表真值。例如,逻辑值-5为真。
第二,逻辑表达
" & amp& amp”和“| |”有两个操作数,所以是双目运算符,和!只有一个操作数,所以是单目算子。逻辑运算的例子如下:
(1)a & amp;& ampb:什么时候& amp当双方都为真时,表达式a &:& amp;b的值为真。
值得注意的是,在数学中,关系0
(2)a||b:当| |的任意一边为真时,表达式a||b的值为真。
(3)!a:表示取逆,如果a为真,那么!a为假,反之亦然。比如!-5的值为0。
在c语言中,由& amp或者| |,在某些特定情况下,会发生“短路”。
①x & amp;& ampy &。& ampz,只有当x为真(非0)时,才需要判断y的值;只有当x和y都为真时,才需要判断z的值;只要x为假,就不需要区分y和z,整个表达式的值为0。食谱:“一假必有假”。
示例:(!5 = = 1)amp;& amp(+++I = = 0)(!5==1)表达式的值为0,所以在计算机运行时会跳过此表达式(++i==0),(!5 = = 1)amp;& amp(+++I = = 0)表达式的值为0。
(2)x||y||z,只要x的值为真(非零),就不用判断y和z的值,整个表达式有一个值为1,只需要判断x的值为假,x和y的值同时为假,z才需要判断y的值。
位操作
一位运算符
在计算机中,数据是以二进制数的形式存储的,位运算指的是存储单元中二进制位的运算。c语言提供了六种位运算符。
第二,位操作
位运算符&:| ~ & lt;& lt>。>。∧优先级从高到低的顺序是:
在按位运算符中,求反运算“~”的优先级最高,而左移位和右移位是&,排名第二,其次是按位and“&:”,按位异或“↑”和按位or“|”。顺序是~
例1:左移操作符”
例如:
a<。& lt四
意味着将a的每个二进制数左移4位。例如,a = 0000011(十进制3),左移4位后为00110000(十进制48)。
例2:右移位运算符“>:>”是双目符。它的功能是放" >:>;左操作数的所有二进制文件都向右移动几个位,“>:>”右边的数字指定移动的位数。
例如:
设a=15,
a>。>。2
表示将000001111向右移动为00000011(十进制3)。
应该注意的是,对于有符号的数字,当向右移动时,符号位将随之移动。当它是正数时,最高位由0补足,而当它是负数时,符号位为1。最高位是0补还是1补,取决于编译系统。
例3:设二进制数a为00101101。如果a的高4位被异或运算a∧b求反,则二进制数b为。
分析:异或运算常用于翻转特定位,只要要翻转的位与1异或,因为原数中值为1的位与1异或得到0,原数中值为0的位与1异或得到1。而0的异或位将保持其原始值。异或运算也可以用来交换两个没有临时变量的值。
如果int a = 3,b = 4;,想要交换a和b的值,可以使用以下语句:
a = a∧b;
b = b∧a;
a = a∧b;
所以这个问题的答案是:11110000。
c语言是非常适合编程入门的语言,所以打好基础的重要性不言而喻。因此,老九君特此赠送此干货,希望他的朋友能从中受益。
1.《c语言编程 C语言编程基础知识汇总学习,适合初学者!》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《c语言编程 C语言编程基础知识汇总学习,适合初学者!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/tiyu/1605919.html