创新释放梦想,实践创造未来
不知不觉,大学第一学期已经过去了。 朋友们看着自己颤抖的成绩,心里默默发誓,下学期一定要努力! 最重要的是提高成绩,拿到奖学金,下学期学习。 最基本的计算机编程语言——c语言。 我们的小伙伴们已经通过光节作品的制作初步了解了它的魔力,那么就让我们一起回顾、学习新的内容,摆脱这种“小学生坐在马桶上就能学会”的C语言吧!
C语言兼有高级语言和汇编语言的特点。 它可以用作系统设计语言来编写工作系统应用程序; 它还可以用作应用程序设计语言来编写不依赖于计算机硬件的应用程序。 因此,它具有广泛的应用范围。
对于操作系统和系统应用程序,以及需要操作硬件的场合,C语言明显优于其他解释型高级语言。 一些大型应用软件也是用C语言编写的。
赶快拿起你的笔记本,记录下来吧!
理解C语言程序的结构
用一个简单的C程序例子来介绍C语言的基本结构、格式以及良好的写作风格,让朋友们对C语言有一个初步的了解。
示例 1:计算两个整数之和的 C 程序:
#
主要的()
{
整数a,b,总和; /*定义变量a,b,sum为整型变量*/
a=20; /*将整数20赋值给整型变量a*/
b=15; /*将整数15赋值给整型变量b*/
总和=a+b; /*将两个数字的和赋给整型变量sum*/
("a=%d,b=%d,sum=%d\n",a,b,sum);
/*将计算结果输出到显示器*/
}要点:
1、任何C语言程序必须包含以下格式:
主要的()
{ }
这是C语言的基本结构,任何程序都必须包含这个结构。 括号内可以不写任何内容,那么程序将不会执行任何结果。
2. main()----C语言中称为“主函数”。 AC 程序有且只有一个主要功能。 任何 C 程序总是从 main 函数开始执行。 main函数后面的一对括号不能省略。
3、大括号{}括起来的内容称为main函数的函数体。 这部分内容就是计算机要执行的内容。
4. { } 中每句话后面有一个分号(;)。 在C语言中,我们把以分号结尾的句子称为C语言语句。 分号是语句的结尾。
5. (“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执行C语言系统提供给我们直接使用的这个屏幕输出函数,用户就可以看到运行结果。 程序运行后,显示器上会显示如下结果:
a=20,b=15,总和=35
6.#
注意:(1)以#开头(2)不要以分号结尾
该行没有分号,因此它不是语句。 在C语言中称为命令行,或者“预编译处理命令”。
C程序生成过程
AC程序首先由源文件编译生成目标文件,然后连接生成可执行文件。
源程序的扩展名为.c,目标程序的扩展名为.obj,可执行程序的扩展名为.exe。
标识符
编写程序时,必须给函数、变量等命名,这个名称称为标识符。 C语言中标识符的命名规则如下:
合法标识符如下:
A6、b_3、_mn
非法标识符如下:
ab#12、8m、tr3:4、是 否
标识符不能与程序中具有特殊含义的关键字相同,也不能与用户编写的函数名或C语言库函数相同。 程序中各种标识符尽量不要重复,以方便区分。 选择变量名称和其他标识符时,应注意通过名称来理解它们。
标识符分为三类:
1. 关键词
关键字是一类具有特定含义的标识符,专门用于描述 C 语言的特定组件。 它们不能用作用户标识符。
自动中断
案例 字符
工会做
其他
枚举
转到如果
整型长整型
短
大小
无效
一会儿
浮动
2. 预定义标识符
预定义标识符在C语言中也有特定的含义,但可以用作用户标识符。 预定义标识符分为两类:
(1)库函数名,如(、scanf、sin等)
(2)编译处理命令名,如(,)
3. 用户标识符
用户根据自己的需要定义的标识符称为用户标识符。 无论您如何自定义标识符,都必须遵守标识符的三个命名规则。
持续的
在程序运行期间其值不能改变的量称为常量。 常量有 5 种类型:整型常量、实数常量、字符常量、字符串常量和符号常量。
(1) 数值转换
(这是我们第一次接触C语言,一开始以为它好高级,但最后……我们一起回顾一下吧!)
数字的四种表示方法:
①:二进制:所有的数字都是由0和1组成的。当两个数字输入1时,二进制数中不会出现2。
例子:
②:八进制:以数字0开头(注意不是以字母O、o开头),所有数字均由0~7组成,每八进一,八进制中不会出现8数字。
例如:0112、0123、077 等。
③:十进制:所有数字均由0~9组成。 计算小数时,十进制中不会出现10。
示例:0,12,-15 等。
④:十六进制:以0x或0X开头(数字0加字母,D、E、F分别代表10、11、12、13、14、15)
示例:0x4A等
在计算机中,数字以二进制形式表示和存储。 用户输入的普通十进制数必须经过计算机转换为二进制后才能存储在计算机内部。 同样,计算机的计算结果也是二进制的,一般都要转换成十进制数然后输出给用户读取,而这种转换通常是由计算机自动进行的。
(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、、、0x、、-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)写成指数形式时,e前面必须有数字,e后面的指数必须是整数(注:整数代码可以是正数、负数,也可以是八进制数或十六进制数,但它必须是整数)。
(4) 字符常量
字符常量的符号是一对单引号 ' '。 C语言中的字符常量有两种类型:
(1) 由一对单引号括起来的字符,例如'a'、'r'、'#'。 注意:'a'和'A'是两个不同的字符常量。
(2) 用一对单引号括起来,以反斜杠\开头,后跟一些数字或字母,如'\n',其中“\”表示转义,后面跟不同的字符表示不同的含义。 这种类型的字符常量称为转义字符。 详细信息如图所示。
转义字符 转义字符的含义 ASCII 码\n 回车换行 10
\t 水平跳转到下一个制表符位置 9
\b 退格键 8
\r 输入 13
\f 进纸和换页 12
\\ 反斜杠字符“\” 92
\' 单引号 39
\” 双引号 34
\a 响铃7
\ddd 由1到3个八进制数字表示的字符
\xhh 1到2个十六进制数字表示的字符
(5) 字符串常量
在C语言中,用双引号括起来的几个字符的序列就是字符串常量。
例如:“你好”“快乐”等。
(6) 符号常数
符号常量是由宏定义“#”定义的常量。 标识符可用于表示 C 程序中的常量。
示例:计算圆面积的C程序。
#
#PI 3.14159
主要的()
{
浮动 r,s;
r=12.5;
S=PI*r*r;
(“s=%f”,s);
}
阐明:
# 是宏定义。 该程序中所有出现的 PI 都代表 3.14159,PI 称为符号常数。 我们习惯上用大写字母表示符号常量,用小写字母表示变量,这样更容易区分。
C语言,我爱你!
看看我的左手和右手都握着C,你就知道我有多爱你!
多变的
变量是其值可以改变的量。 变量必须有变量名并在内存中占据一定的存储单元。 存储单元存储变量的值。 不同类型的变量有不同的存储单元大小,变量在使用前必须定义。
(1) 整型变量
整型变量分为4种类型:基本类型(int)、短整型(short int或short)、长整型(long int或long)和无符号类型(int、short、long)。
不同的编译系统对上述四类整型数据所占的位数和数值范围有不同的规定。
类型说明符
阐明:
该词用于描述“有符号”(即有正数和负数)。 如果不写,也暗示它是有符号的,用来描述“无符号”(只代表正数)。
(2) 实变量
在C语言中,实变量分为两种类型:单精度类型(float)和双精度类型()。 喜欢:
浮动 a 、 b ;
米;
在vc中,float类型数据在内存中占用4个字节(32位),type数据占用8个字节。 单精度实数提供 7 位有效数字,双精度实数提供 15 至 16 位有效数字。 实数类型常量不分为float类型和类型。 实型常量可以赋值给浮点型或类型变量,但变量根据其类型截取实型常量中对应的有效数。
注意:实型变量只能存储实型值。 整型变量不能用来存储实型值,实型变量也不能用来存储整型值。
(3) 字符变量
字符变量用于存储字符常量,其定义形式为:
字符变量名;
关键字char定义了字符数据类型,占用一个字节的存储单元。
示例: char cr1,cr2;
cr1='A',cr2='B';
将字符赋值给字符变量时,该字符本身并不存储在内存中,而是将该字符对应的ASCII码存储在内存单元中。 例如,字符“A”的ASCII码为65,在内存中的存储形式如下:
由于字符在内存中以ASCII码存储,其存储形式与整数类似,因此C语言中的字符数据和整数数据可以互换使用。 字符可以以字符或整数的形式输出。 字符数据还可以以算术运算的形式输出,相当于对其ASCII码进行运算。
类型的自动转换和强制
当同一个表达式中的数据类型不同时,编译器会在计算前自动将它们转换为相同的类型。 转换优先级为:
字符 < 整数 < 浮点数 <
即左边的“低”类型转换到右边。 具体来说,如果表达式中优先级最高的数据是type,那么表达式中的所有其他数据都会转换为type,计算结果也为type; 如果表达式中优先级最高的数据为float类型,则该表达式中的所有其他数据都转换为float类型,计算结果也为float类型。
进行赋值操作时,如果赋值号左右两侧的类型不同,则将赋值号右侧的类型转换为左侧的类型; 当右边的类型高于左边的类型时,转换时会截取右边的数据。
除了自动转换之外,还有强制转换,其表示为:
(类型)(表达式);
示例:(int)(a+b)
讨论:当a的值赋值为3.4,b的值赋值为2.7时,(int)(a+b)和(int)a+b的值分别是多少?
C运算符知识
C语言的运算符种类繁多,可分为以下几类:
1.算术运算符:用于各种数值运算。 有加(+)、减(-)、乘(*)、除(/)、余数(%)、自增(++)、自减(--)七种类型。
2、赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=、-=、*=、/=、%=)和复合位运算赋值(&=、|=、当^=,>>=,=0,方程有两个实根,否则(b^2-4ac
d=b*b-4*a*c;
如果(d>=0)
{x1=(-b+sqrt(d))/2a;
x1=(-b-sqrt(d))/2a;
("x1=%8.4f,x2=%8.4f\n",x1,x2);
别的
{r=-b/(2*a);
我=sqrt(-d)/(2*a);
(“x1=%8.4f+%8.4fi\n”r,i);
(“x2=%8.4f-%8.4fi\n”r,i)
③嵌套分支语句:其语句格式为:
if(条件 1) {分支 1};
else if (条件 2) {分支 2}
else if (条件 3) {分支 3}
……
else if (条件 n) {分支 n}
否则{分支n+1}
嵌套分支语句虽然可以解决多入口、多出口的问题,但嵌套超过三层后,语句结构就变得非常复杂,对于程序的阅读和理解极为不便。 建议嵌套在三层以内,超过三层。 您可以再次使用以下语句。
④语句:该语句也是多分支选择语句。 执行哪一个块取决于开关设置,即表达式值与常量表达式匹配的块。
它与 if...else 语句不同。 它的所有分支都是平行的。 程序执行时,从第一个分支开始查找。 如果匹配,则执行后面的块,然后是第二个分支、第三个分支……的块,直到遇到break语句; 如果不匹配,则查找下一个分支是否匹配。
应用该语句时,要特别注意条件的合理设置和break语句的合理应用。
好像有点明白了~~
3.循环结构
循环结构可以减少源程序重复编写的工作量,用于描述重复执行某种算法的问题。 这是最能利用计算机编程专业知识的程序结构。 C语言提供了四种类型的循环,即goto循环和while循环。 循环、do-while 循环和 for 循环。
可以使用四种类型的循环来处理同一问题。 一般来说,它们是可以互相替代的。 但一般不建议使用goto循环,因为强行改变程序的顺序往往会给程序的运行带来不可预测的错误。 在学习过程中,我们主要学习三种类型的循环:while、do...while、for。
学习三种常用的循环结构的重点是了解它们的异同,以便能够在不同的情况下使用。 这就需要了解三个循环的格式和执行顺序,并且透彻理解每个循环的流程图。 将了解如何使用替换。
例如,以 while 循环为例,使用 for 语句重写程序,以便更好地理解其功能。 要特别注意循环体内那些趋于结束的语句(即循环变量值的变化),否则可能会变成死循环。 这是初学者中常见的错误。
学习完这三个循环后,应该明确它们的异同:使用while和do...while循环时,循环变量的初始化操作应该在循环体之前,而for循环一般在语句1中执行;
while循环和for循环都是先判断表达式再执行循环体,而do...while循环先执行循环体再判断表达式。 也就是说,do...while的循环体至少执行一次,而while循环和for可能连一次都不会执行。
另外,需要注意的是,这三类循环都可以使用break语句跳出循环,并使用该语句结束循环。 但goto语句和if形成的循环不能用break和语句控制。
顺序结构、分支结构和循环结构不是相互孤立的。 循环中可以有分支和顺序结构,分支中也可以有循环和顺序结构。 其实,无论是哪一种结构,我们都可以大体上把它们看成是一种说法。
在实际编程过程中,常常将这三种结构相互结合起来,实现各种算法并设计相应的程序。 然而,编程是一个大问题。 编写的程序往往很长,结构重复,可读性差,难度大。 明白解决这个问题的方法就是将C程序设计成模块化结构。
4. 模块化程序结构
C语言的模块化程序结构是通过函数来实现的,即将复杂的C程序分成若干个模块,每个模块写成一个C函数,然后主函数调用函数,函数调用函数来实现大型C程序编写。
因此,常说:C程序=主函数+子函数。 因此,要特别注意函数定义、调用、值返回等的理解和应用,并通过计算机调试来巩固。
C语言是一门非常适合编程入门的语言,打好基础的重要性不言而喻。 然而,C语言并不是一门纯粹的理论课程。 这是一门应用课程。 一定要注重实践方面,理解流程和思想,通过大量的例子学会如何设计算法、构造程序。 希望我的朋友们能够从小胖写的这条推文中受益。
这么有趣的C语言学习太多了!
务必发送至朋友圈签到
~其实,小学生坐在马桶上不一定能学c,也不可能把书当厕纸。 不过我们大学生坐马桶就不一样了,哈哈哈哈哈哈哈。 。 。 。 。
C语言的学习博大精深,需要我们完整、系统地学习。 小伙伴们可以向兄弟姐妹借一本《C程序设计》自行系统学习。 还有帅哥小胖子给你推荐一套视频教程。 skr~skr~~
什么? 不知道如何从外部进行 ftp? 别再犹豫了! 还有一套教程! ! 我们一起来学习小乌龟的C语言吧。 (我个人比较推荐)我觉得于老师的讲课超级给力! 呼呼~skr~
提取码:7kg9 复制此内容后,打开百度网盘手机应用,操作更方便。
别着急,点赞就走,记得常飞来看看!