C语言
2022-01-27 08:33:52 22 举报
C语言基础,适合通识课复习,个人整理
作者其他创作
大纲/内容
一、基础
计算机语言
机器语言(一串01序列表示的语言)
01序列中每一位都是一个比特(bit)。8个比特为一个字节(B)。
低级语言(也叫汇编语言)
高级语言(计算机不能直接读取,C语言是一种高级语言)
编译:把高级语言转换成机器语言的过程叫做编译
计算机执行C语言代码流程
C语言三种结构:顺序结构、选择结构(分支结构)、循环结构
数制及表示
十进制 0 1 2 3 4 5 6 7 8 9
二进制(0b) 0 1 (例如:0b11010)
十六进制(0x) 0 1 2 3 4 5 6 7 8 9 A B C D E F (例如:0x5d12)
八进制(0) 0 1 2 3 4 5 6 7 (例如:005124)
ASCII码表规定了字符和整数之间的关系
'a'对应97,'A'对应65
char和int类型可以直接运算,也可以互相赋值
A~Z,a~z,0~9的ASCII码值依次增加
C程序基本单位是函数
所有符号都由英文输入法输入
int main 之间有空格
return 0 后面有分号表示语句结束
大括号位置不影响程序操作
编译预处理
编译预处理是编译源程序之前的操作,以#开头
编译预处理命令包括:文件包含,宏定义,条件编译
文件包含(#include):可以嵌套
宏定义(#define):#define 名称 内容(使用规则:把所有名称替换成对应的内容)
二、基本数据类型
标识符
标识符:变量、函数、数组等等的名字,如x,y,z
以字母或下划线 _ 开头
只能使用字母、数字、下划线_的任意组合
大小写字母表示不同的字符
规定32个关键字不能作为标识符
数据类型
C语言中数据类型有三种:字符型、整型、实型
每种数据类型都有变量和常量
常量
整型常量:整数,如1,5
实型常量:小数,如1.3,-3.12
字符型常量:包括字符常量和字符串常量
字符常量
用单引号括起来的一个字符,'a','2','!'等
用单引号括起来,以\开头的特殊字符序列,也表示一个字符,占一个字节
‘a’字符常量,占一个字节
字符串常量
用双引号括起来的字符组合,如“hello,word”,“a”
每个字符串结尾都有隐藏的'\0'表示字符串的结束,占2个字节
"a"字符串常量,占2个字节
变量
定义:类型 变量名;
赋值:变量名=常量;
初始化:类型 变量名=常量;
所有变量在使用前都必须定义
连续赋值必须保证=左边是变量
三、运算符
运算符
优先级规定了运算的先后顺序:算术>关系>逻辑
C语言逻辑判断:真~整数1或非零数,假~整数0
++ --运算符
i++或++i 相当于 i=i+1
i--或--i相当于i=i-1
参与赋值时有以下两种情况
逗号运算符
从左往右依次运算,最右边的值是最终的值
四、语句
scanf语句 scanf("键盘输入的内容",变量地址);
把固定的内容输出到屏幕上
\n 表示换行
把变量的值输出到屏幕上
%md 输出m位整数
%.nf 输出小数点后n位
scanf语句 scanf("键盘输入的内容",变量地址);
&+变量名获得变量的地址
if-else语句 if(条件为真) 执行操作1;else 执行操作2;
if-else语句运行嵌套
当if或else后面有多个语句时,用{}把这个语句括起来
C语言对嵌套语句的规定:else总是与其之前最近且不带else的if配对
?: 运算 A?B:C
使用规则:先判断A,如果A为真,?:的值为B;如果A为假,?:的值为C
switch-case语句
switch-case语句找到第一个匹配到的case语句开始执行,直到break语句或整个switch-case语句结束
case后面的表达式只能是常量
while语句 while(条件为真){执行操作}
作用:重复执行操作直到不满足该条件为止
执行操作为循环体
步骤:定义循环变量i并赋值→写while(){}→写循环执行操作→更新变量i的值
求阶乘n!
do-while 语句 do{执行操作}while(条件为真)
do-while语句的循环体至少执行一次
for语句 for(初始值;条件为真;变量更新){执行操作};
编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值
输出1-100,每行输出八个数
break语句 break;
结束switch语句;结束循环,直接进入后面的语句
continue语句 continue;
结束本次循环,进行下一次的循环
一些其他语句或函数
sizeof() 用来求括号内容占多少字节
getchar() 从键盘获取一个字符
sqrt(x) 表示对x进行根号运算
fabs(x) 表示对x进行绝对值运算
pow(a,b) 表示求a的b次方运算
sin(x);cos(x);tan(x) 表示对x求正弦余弦正切
以上使用时需要加上#include<math.h>
strcmp(str1,str2) 比较str1和str2的大小
strcpy(str1,str2) 把str2复制(copy)到str1中
strcat(str1,str2) 把str2连接到str1后面。
strlen(str) 计算str中的非'\0'字符个数
gets(字符数组名); 从键盘上输入字符串。 scanf("%s",字符数组名);
puts(字符数组名); 把字符串输出到屏幕上。printf("%s",字符数组名);
以上使用时要加上#include<string.h> 注意:计算时,以"\0'为字符串结束标志。
五、数组和字符串
一维数组 int a[];
定义数组:数据类型 数组名[元素个数];
从键盘上输入数组的元素,用for循环逐个赋值
单独使用数组中的某个元素:数组名[标号]
长度为n的数组内元素的下标范围是0~n-1
举例:定义数组a[6]={10,7,15,20,3,1},求出该数组的最大值,并输出其下标。
二维数组 int a[i][j];
数据类型 数组名[数组长度2][数组长度1]
未被赋值的元素会自动设置为0
字符串数组 char str[i];
定义:char 字符数组名[元素个数];
牢记每一个字符串后面有一个'\0'占一个字节
六、函数
函数的定义与声明
返回类型 函数名(数据类型 形式参数...) { }
形式参数可以定义在main函数前面也可以后面
函数的定义不允许嵌套
函数的调用可以嵌套
main函数不能被其他函数调用
只有被main函数调用时,函数才会执行
形式参数和实际参数之间是单向值传递
在函数内对形参的任何修改都不会影响main函数内的实参
返回类型为void(空)时, 函数没有return语句
函数内定义的变量只在本函数中有效
函数的递归
main函数
main函数就是主函数
每一个C程序只有一个main函数
C程序从main函数开始执行
C程序在main函数中的return 0;结束执行
判断:return语句的作用是结束整个程序的执行(×)
整个main函数被{}包围起来
七、指针
指针的定义
经典例题
year是闰年(year能被4整除但不能被100整除,或year能被400整除)
分段函数
求学生成绩等级:
输出水仙花数(每一位数字的立方和等于这个数)
while语句
for语句
形参函数
输出100以内的素数
嵌套for循环
形式参数
输出斐波那契数列..f(i)=f(i-1)+f(i-2), f(1)=1, f(2)=1 (第一项和第二项为1,后面每一项都是前面两项之和)
选择法排序
冒泡法排序
变换字母大小写
0 条评论
下一页