admin管理员组文章数量:1794759
零基础学C语言
从零开始学C语言 目录
- 第一章 前言
- 1.1 计算机的基础知识
- 第二章 C语言基础
- 2.1 标识符
- 2.2 关键字
- 2.3 常量
- 2.3.1 数值常量
- 2.3.2 字符常量
- 2.3.3 字符串常量
- 2.3.4 符号常量
- 2.4 变量
- 2.4.1 变量的定义
- 2.4.2 变量的初始化
- 2.5 常变量
- 2.6 标识符
- 第三章 C语言数据类型,运算符
- 第四章 C语言顺序结构
- 4.1C语句概述 (语句描述了一种行为,是向计算机发出的执行某一操作的指令)
- 4.1.1表达式语句
- 4.1.2 流程控制语句
- 4.1.3 空语句
- 4.1.4 复合语句
- 4.1.5 函数调用语句
- 4.2 常用库函数的使用
- 4.2.1 库函数的使用
- 4.2.2 输出函数
- 4.2.2.1 字符输出函数(putchar)
- 4.2.2.2 格式输出函数(printf)
- 4.2.3输入函数
- 4.2.3.1 字符输入函数
- 4.2.3.2 格式输入函数
- 4.3 顺序结构程序设计举例
C语言的诞生是现代程序语言革命的起点,是程序设计语言发展史中的一个里程碑。——Dennis M Ritchie(C语言之父)
1.1 计算机的基础知识常用的数制: 数据在内存中的储存 1、内存 内存是由一系列电子线路单元组成,每个电子线路单元有两种稳定状态,分别是二进制的0或1,称之为位,位是组成内存的最小单元。 (1)内存中的数据单元 ①字节(Byte)。一个字节由8个连续二进制组成,每个二进制都有一个编号,其编号顺序按位自右向左为0~7,也可称为第0位、第1位·····第7位、第8位。字节是数据储存的最小单元, ②字(Word)。连续的两个字节称为字。连续的两个字又称为双字。连续的两个双字称为4字。如下图所示: ③字长。中央处理器在单位时间内一次处理的二进制数的位数叫字长。 数据在内存中的存储: 数据在内存中的存储形式称为机器码,机器码所表示的实际值称为真值。
第二章 C语言基础 2.1 标识符标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。 标识符的命名规则如下: ❑ 标识符由字母(包括大写字母和小写字母)、数字及下画线组成,且第一个字符必须是字母或者下画线。 ❑ 在C语言中,大写字母和小写字母是有区别的,即作为不同的字母来看待,应引起注意。下面是合法的C语言标识符: year,Day,ATOK,X,_ CWS,HAO ❑而下面的标识符名是不合法的: #123,.COM,$100,1996Y,1_2_3,Win3.2,LOOP, A=2
2.2 关键字关键字是指在高级语言中,那些已经定义过的标识符,用户不能再将这些字作为变量名、常量名、函数名、数组名等。 C语言共有32个关键字,具体可分为4类,如下:
数据类型关键字(12个) | char、double、enum、float、int、long、short、signed、struct、union、unsigned、void。 |
控制语句关键字(12个 | breakcase、continue、default、do、else、for、goto、if、return、switch、while |
存储类型关键字(4个) | auto、extern、register、static |
其他关键字(4个) | const、sizeof、typedef、volatile |
常量是指在程序运行过程中其值不随程序的运行而改变的量。常量在程序中不需要进行任何说明就可以直接使用,常量本身就隐含了它的类型。常量分为直接常量和符号常量。
2.3.1 数值常量数值常量由数字构成的常量。 如100、250、1000这种整数在C语言中叫做整型常量–整数型常量; 如1.22、3.142等带有小数点的称为实型常量–实数型常量。
2.3.2 字符常量字符常量即为用字符构成的常量。 也可由两种表现形式: ❑普通字符:26个英文字母如‘a’‘b’,用单引号括起来后都是普通字符,事实上这些字符常量在计算机中是以ascll码表示的,因此可以把它看成变化的数值,如‘a’在计算机中代表的就是97这个数值。 ❑转义字符:这是C语言自己定义的字符,是一种控制字符,以字符\\开头,如经常使用的‘\\n’就代表换行,‘\\t’代表空格。
2.3.3 字符串常量字符常量的集合版本,将多个字符用双引号括起来,就是字符串常量。 ❑定义:用双引号(“”)括起来的0个或者多个字符组成的序列 ❑存储:每个字符串尾自动加一个 ‘\\0’ 作为字符串结束标志 例如下面的是合法的字符串常量: “hello”,“CHINA”,“a”,"$123.456",“C language programming”,“a\\n”,“#123”,“ ”
2.3.4 符号常量符号常量是在C语言中,可以用一个标识符来表示一个常量,这个标识符称之为符号常量。其特点是编译后写在代码区,不可寻址,不可更改,属于指令的一部分。 1、#define 定义: 符号常量在使用之前必须先定义,其一般形式为:
#define 标识符 enum EnumName{标识符,标识符,...};其中#define 也是一条预处理命令(预处理命令都以"#"开头),称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。 2、const定义 : 形式为 :
const type name = vcalue; 例如:const int MONTHS = 13;这样就可以在程序中使用MONTHS而不是13了。常量(如MONTHS)被初始化后,其值就被固定了,编译器将不允许再修改该常量的值。
2.4 变量变量是指在程序运行过程中其值可以改变的量。程序中使用的变量名是用户根据需要而取名的,变量名必须符合标识符的命名规则。
2.4.1 变量的定义变量必须先定义,后使用。凡未被定义的,不能作为变量名,这就能保证程序中变量名正确使用。变量定义的语法为:
数据类型 变量名;请注意区分变量名和变量值这两个概念。变量名实际上是以一个名字代表一个储存地址。 定义变量时需要注意以下几点: ❑ 每个变量定义语句都必须以分号结尾。 ❑ 变量定义语句可以出现在变量使用之前的任何位置。程序设计时只要不违背“先定义,后使用”的原则即可。 ❑ 变量一经定义,每个变量就有一种确定的类型,在编译时就能为其分配相应的存储单元。 ❑ 一个变量在内存中占据一定的存储单元,用变量名来标识在内存中所分配的存储单元,在该存储单元中存放变量的值。
2.4.2 变量的初始化变量的初始化就是对变量赋初值。 对变量的赋值主要通过使用赋值表达式:
变量名 = 值 ;变量的初始化有两种方法:一种是定义初始化,即定义变量的同时对其赋予初始值。例如:
int x=1; int y=2; double z=3.0;另一种是先定义变量,然后再进行赋值。例如:
int x,y; double z; x = 1;y = 1; z = 3.0;对于变量的初始化,可以归纳出以下几点:(1)初始化实际上是一个赋值语句。 (2)在定义变量的时候,可以只给部分变量赋值。 (3)如果同时对几个变量赋相同的初值,应该注意书写格式。 (3)如果同时对几个变量赋相同的初值,应该注意书写格式。
在C语言中使用变量时,如果它出现在表达式中,事先必须有一个初始值,否则其值将是一个不确定的值。变量获取初始值有以下几种方法。 ❑ 赋值语句:“=”在C语言中是赋值符号,运用赋值符号可以对变量进行赋值。例如:ch=’A’。 ❑ 读取语句:有些程序的值是不确定的,需要用户自己输入,因此需要用读取语句从外部的输入。
2.5 常变量C99允许使用常变量,方法是在定义变量时,前面加一个关键字const 例如:
const int a = 3;定义a为一个整形变量,指定其职位3,而且在变量存在的期间其值不能改变。
2.6 标识符标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。标识符通常由字母和数字以及其它字符构成。
以下是合法的标识符:
a, x, x3, BOOK_1, sum5以下是非法的标识符:
3s 不能以数字开头 s*T 出现非法字符* -3x 不能以减号(-)开头 bowy-1 出现非法字符减号(-) 第三章 C语言数据类型,运算符 第四章 C语言顺序结构 4.1C语句概述 (语句描述了一种行为,是向计算机发出的执行某一操作的指令) 4.1.1表达式语句表达式后加一个“;”构成表达式语句。 例:
加入存在变量定义: int a,b; 以下语句存在意义: a=3; //赋值表达式构成语句,赋值变量a b=a+3; //赋值表达式构成语句将a+3的结果赋给b a++; //自加表达式构成语句,执行后变量a自加 a=3,b=4; //逗号表达式构成语句,执行后变量a的值为3,b的值为4 4.1.2 流程控制语句(1)选择结构的控制语句:if双分支选择结构,which多分枝选择结构。 (2)循环结构控制语句:while语句和for语句控制的当型循环结构,do~while控制的直到型循环结构。 (3)控制流程转换语句:又称为跳转语句,包括break,contiune,goto,return语句。
4.1.3 空语句只有一个分号,用于完善选择结构和循环结构。
4.1.4 复合语句以花括号“{ }”括起来的功能相对完善的程序段。 例:
#include <stdio.h> int add(int x, int y) { int t; t = x + y; return (t); } void main() { int a, b, sum; scanf("%d%d", &a, &b); sum = add(a, b); printf("sum=%d\\n", sum); } 4.1.5 函数调用语句 #include <stdio.h> #include <math.h> //编译预处理命令,不是C语言 void main() { int x, y; //变量定义 scanf_s("%f", &x); //函数调用语句,调用库函数scanf_s() if (x < 0) //控制选择结构的if的语句 { x = -x; y = sqrt(x + 6); //赋值语句 } //复合语句 else y = 1; printf("y=%f", y); //函数调用语句,调用库函数printf() } 4.2 常用库函数的使用 4.2.1 库函数的使用-
函数调用的一般形式为 函数名(参数表列)。
-
用“函数名”表示调用的是哪个函数。“参数表列”是确定的值构成的表列,是传递给函数的参数,“参数表列”中的参数必须和函数原型中生命的参数的个数和类型保持一致。函数调用后加“;”就构成了函数调用语句。
-
库函数是放在函数库中的函数,调用函数时必须告诉编译系统该库函数属于哪一个函数库,以便编译器能检查函数是否合法,并有效地执行该函数,这一过程称为声明。
-
标准库函数声明为:#include<头文件>。 以下为常用标准库函数表 例:正弦函数原型为:*double sin(double x)*
- putchar向终端输出单个字符。
一般格式:putcahr(实参)实参可以是cahr数据类型也可以是int数据类型。 例:
#include <stdio.h> int main() { putchar('a'); //输出变量a中存储的字符 } #include <stdio.h> int main() { putchar('\\n'); //输出换行字符 } #include <stdio.h> int main() { putchar('\\101'); //输出字符'A' } 4.2.2.2 格式输出函数(printf)-
printf函数调用的一般形式:printf(格式控制,输出列表)
-
"格式控制"是一个字符串,由普通字符、以“%"开头的格式控制字符构成;”输出列表“是需要输出的数据项列表,数据项之间用逗号隔开。
-
格式控制(用双引号引起来): 格式控制字符、转义字符、普通字符
-
输出列表:常量、变量、表达式、函数调用。
%c控制单个字符输出。 %s控制字符串输出。
4.2.3输入函数 4.2.3.1 字符输入函数-
getchar由终端向程序中输入一个字符。使用时必须包含stdio.h函数库,预处理命令:#includde <stdio.h>
-
字符输入函数getcahr( )调用的一般形式:getcahr( )
-
scanf函数调用一般形式:scanf(格式控制,地址表列);
-
格式控制:格式字符、普通字符
-
地址表列:取地址运算符:&;变量地址的表示:&a。
//这里使用的是vc2019版,scanf不够安全呗,所以vs就弄了个scanf_s出来,不过貌似这个代码只能在vs上编译 #include <stdio.h> #pragma warning(disable:4996) int main() { int k; float f; scanf_s("%3d%*4d%f",&k,&f); printf("%d,%f",k,f); } 4.3 顺序结构程序设计举例
- 已知三角形的三边边长,求三角形的面积 area=(a+b+c)/2
- 交换两个变量的值
- 输出一个3位整数的逆序数。比如输入123,输出321。
版权声明:本文标题:零基础学C语言 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686995847a126716.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论