C语言期末课程笔记

C语言期末课程笔记
第一章 为什么学C语言
主要介绍了C语言的产生和发展及重要性,还有就是编程四步,分别是-需求分析、设计、编写程序、调试程序。

第二章 C数据类型
主要介绍常量、变量,整型、实型,定义变量及赋值,和简单的输入、输出以及简单的运算。学习了最简单的程序-Hello Wold。明白了程序最基本的框架
#include
using namespace std;
int main()
{
cout<<“Hello, World!”;
return 0;
}
整型
基本整型 int,长整型 long int, 短整型 short int,
实型
单精度实型 float, 双精度实型 double, 长双精度实型 long double
定义变量
(1)标识符只能由英文字母、数字和下划线组成;
(2)标识符必须以字母或下划线开头;
(3)不允许使用C关键字为标识符命名;


sizeof()是专门用于计算指定数据类型字节数的运算符。
例如,计算imt型数据所占内存的字节数用sizeof(int)计算即可。
使用 sizeof(变量名)的形式还可以计算一个内存的字节数。

第三章 简单的算数运算和表达式
主要介绍算数运算符、复合赋值运算符、数学函数、赠1和减1运算符、定义宏常量,const常量,以及程序运算过程中注意数据类型转换,还有强制类型转换。
数学函数 注意 头文件cmath
sqrt(x)计算x的平方根,x应大于或等于0
fabe(x)计算x的绝对值
log(x) 计算加lnx的值,x应大于0
log10(x)计算lgx的值,x应大于0
定义宏常量
#define 标识符 字符串
例 #define PI 3.14159
const常量 可以声明具有某种数据类型的常量
例 const double PI=3.14159

第四章 键盘输入和屏幕输出
这一章着重讲解输入、输出,以及要注意各种常量、变量在不同情况下的输入输出要求,比如现阶段更方便的输入输出cin和cout,可以以各种格式进行任意类型数据输入输出的scanf和printf,以及用来输入输出字符的puchar和getchar。使用时注意头文件。

第五章 选择控制结构
第五章就涉及到了算法,其中讲解了关系运算符和分支控制以及逻辑运算符。关系运算符不必多说,只需要注意"=="是相等。分支结构分为单分支、双分支、多分支。
单分支
if(表达式) 语句
双分支
if(表达式) 语句1
else 语句2
多分支
if(表达式) 语句1
else if (表达式2)
.
else if (表达式n)
else 语句m
分支控制就涉及到选择,当问题出现多种情况时,就选择分支结构来导出不同的结果。
除了以上分支控制还有一种用于多路选择的switch语句,又称为开关语句。主要应用于问题情况较多时。
条件运算符
一般形式如下:
表达式1?表达式2:表达式;
其含义是:若表达式1的值非0,则该条件表达式的值是表达式2的值,否则是表达式3的值。

exit(code);
函数exit()的作用是终止整个程序的执行,强制返回操作系统,并将int型参数code 的值传给调用进程(一般为操作系统)。当code值为0或为宏常量EXIT_ SUCCESS I时, 表示程序正常退出;当code值为非0值或为宏常量EXIT_ FAILURE时,表示程序出现某种错误后退出。

第六章 循环控制结构
循环形式
循环控制可分为计数控制和条件控制,计数控制是指重复处理次数已知,而条件控制是指重复处理次数未知但是由给定条件控制的。
循环结构还可分为当型循环结构和直到型循环结构。当型是先判断条件是否成立,条件成立时反复执行循环体,直到条件不成立时结束循环。直到型是先执行一次循环体,再判断条件是否成立,若条件成立则反复执行循环体,直到条件不成立时。

本章主要讲了三种循环语句
while do-while for

while语句属于当型循环,且是条件控制的循环
其形式为
while(循环控制表达式)
{
循环体
}

do-while语句属于直到型循环,为条件控制的循环
其形式为
do
{
循环体
}while(循环控制表达式)
因为是当型循环,所以循环体至少执行一次。

for语句属于当型循环,是计数控制的循环
其形式为
for(初始化表达式;循环控制表达式;增值表达式)
{
循环体
}
注意
for语句的三个表达式之间的分割符号是分号,有且仅有两个分号,既不能多,也不能少
for语句也可用while语句来等价实现,其形式为
初始化表达式;
while(循环控制表达式)
{
语句序列
增值表达式;
}
for语句也还有其他的形式
如 循环控制变量赋值在前时
初始化表达式;
for(;循环控制表达式;增值表达式)
{
语句序列
}
如又当已在循环体中改变循环控制变量时
初始化表达式;
for(;循环控制表达式;)
{
语句序列
增值表达式;
}
但无论for语句形式如何改变表达式之间的两个分号是不可改变的。
在for语句中当遇到多个可并列的表达式时,可用逗号运算符连接,但循环控制表达式只能在一个循环中有一个。
循环选择规则
(1)如果循环次数确定,计数控制的循环用for语句。
(2)如果循环次数未知,条件控制的循环用while语句。
(3)如果循环体至少循环一次,用do-while语句。
嵌套循环
嵌套循环即为将一个循环语句放在另一个循环语句的循环体中构成的循环。
while语句、do-while语句、for语句这三种循环都可相互嵌套。
零散知识
break语句
当执行循环体遇到break语句时,循环立即终止,从循环语句后的第一条语句开始继续执行。
continue语句
当循环体中遇到continue语句时,程序将跳过continue语句后面尚未执行的语句,开始下一次循环,即只结束本次循环的执行,并不终止整个循环的执行。
注意
在循环嵌套中,break语句和continue语句只对包含它们的最内层循环语句起作用。
在就是,在循环中设计值的运算是,有些值在循环之前赋值。

第八章 数组
本章主要内容包括一维数组、二维数组、简单的排序和查找算法、字符串数组。
一维数组(数组)
数组是一组具有相同类型的变量的集合。
一维数组定义格式
类型 数组名[元素个数]
假设定义一数组 int a[10] 则a就为数组名,10表示有十个数据,但数组下标是从 0 到 9 ,且数据都为整数。
注意
(1)c语言中数组的下标都是从0开始的。
(2)定义数组时不能使用变量定义数组的大小。列如 int a[n] 则n必须是确定的数。
(3)一般定义数组是都要比要求的大一部分,这样可以防止数组数据溢出。
(4)因为同一数组在程序中会出现多次,当修改元素个数时,会很麻烦。所以我们可以把维数定义为宏常量。这样修改时会很方便。
列如 #define n 100;
int a[n];
二维数组
二维数组一般定义格式
类型 数组名[第一维长度][第二维长度]
二维数组类似于一个表格,第一维的长度代表数组每一列的元素个数,第二维长度代表数组每一行的元素个数。
例如 int a[3][4]
注 一维数组的注意事项也适用于二维数组
排序和查找
排序
主要有选择排序、冒泡排序、插入排序以及sort排序。
查找
推荐折半查找
相较于顺序查找,折半查找更快捷。
字符数组
字符数组是指元素为字符的数组。字符数组是用来存放字符序列或字符串的。
普通数组的基本规则也适用于字符数组,字符数组也分一维、二维、三维。
1一般定义格式
char x[n];
于一般数组,所不同的是数组类型是字符型,第一个元素同样是从ch1[0]开始,而不是ch1[1]。
2 字符数组的赋值
(1)用字符初始化数组
例如 char chr[4]={‘a’ ,‘b’,‘c’,‘d’}
字符数组中也可以存放若干个字符,也可以来存放字符串。两者的区别是字符串有一结束符\0。即在一维字符数组中存放着带有结束符的若干个字符称为字符串。

字符串是一维数组,但是一维字符数组不等于字符串。

char chr[5]={‘a’,‘b’,‘c’,‘d’,’\0’};即在数组chr2中存放着一个 字符串"abcd" 。
(2).用字符串初始化数组
用一个字符串初始化一个一维字符数组,可以写成下列形式 char chr[5]=“abcd”
对二维字符数组来讲,可存放若干个字符串。可使用由若干个字符串组成的初始值表给二维字符数组初始化。
例如: char chr[3][4]={“abc”,“mno”,“xyz”}在数组chr中存放3 个字符串,每个字符串的长度不得大于3。
(3)数组元素赋值
字符数组的赋值是给该字符数组的各个元素赋一个字符值。
例如:
char chr[3];
char[0]=‘a’ ;chr[1]=‘b’;chr [2]=‘c’;
对二维、三维字符数组也是如此。
3字符串的输入与输出
1、输入
输入一个字符数组可以使用 scanf语句或gets语句。
scanf语句
格式:scanf("%s",字符数组名);
说明
(1)系统会自动在输入的字符串常量后添加’\0’标志,因此输入时,仅输入字符串的内容即可。
(2)输入多个字符串时,以空格分隔。
gets语句
格式:gets(字符数组名)
说明 使用gets只能输入ー个字符串。读入的是一整行,包括空格。
例如: scanf("%s",s1); gets(s2);
对于相同的输入Hello World。s1获取的结果仅是Hello,而s2获取的结果则是Hello World!
2、输出
输出一个字符串可以使用 printf语句或puts语句
printf语句
格式: printf("%s",字符数组名)
puts语句
格式:puts(字符串名称)
说明:puts语旬输出一个字符串和一个换行符。
对于已经声明过的字符串a, printf("%s\n",a)和puts(a)是等价的。

第七章 函数
自定义函数
对形参进行处理,使用return返回最后结果。
函数形式
类型 函数名(形式参数)
{
语句序列;
}

long Fact(int a)
{
语句序列;
}
函数的调用
调用函数时,必须提供一个称为实际参数( Argument,简称实参)的表达式,给被调用的函数。

a=Fact (m) 调用函数Fact ( ),并将函数返回值存入a。
注意
函数的返回值只能有一个,函数返回值的类型可以是除数组以外的任何类型。函数中的 return语句可以有多个,但不表示面数 可以有多个返回值。
当函数返回值类型被定义为void类型时,表示函数没有返回值,这时函数可以没有return语句,此时程序一直运行到函数的最后一条语句后再返回。如果程序不是运行到 函数的最后一条语句才返回,那么必须使用 return语句返回,无须返回任何值的 return语句可写成 return;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值