C语言学习笔记(2)

2019-04-23 20:23

条件运算符由两个符号 ?和 :组成,必须一起使用,是C语言里唯一的一个三目运算符。 三目运算符:要求要有三个运算对象(操作数)。 条件表达式的一般形式为:

表达式1?表达式2:表达式3

执行过程:表达式1的值为真,条件表达式取表达式2的值;表达式1的值为假,条件表达式取表达式3的值。

特别注意:条件运算符的优先级别大于赋值运算符,小于关系运算符和算术运算符。

2.4. 位运算

? 按位与运算 &

规则:0&0=0 0&1=0 1&0=0 1&1=1 ? 按位或运算 |

规则:0|0=0 0|1=1 1|0=1 1|1=1 ? 按位异或运算 ∧

规则:0∧0=0 0∧1=1 1∧0=1 1∧1=0 ? 求反运算 ~ 规则:~0=1 ~1=0 ? 左移运算 <<

规则:把<<左边的运算数的各二进位全部左移若干位,高位丢弃,低位补0。左移一位相当于该数乘以2。左移n位相当于该数乘以2n。

? 右移运算 >>

把>>左边的运算数的各二进位全部右移若干位。高位补0,低位丢弃。右移一位相当于该数除以2。右移n位相当于除以2n。

2.5. 使用switch语句实现多分支选择结构

注意:

? switch语句的圆括号中的表达式的值必须是整型或字符型,不能为实型。 ? case后的表达式可以是求得整型和字符型的常量表达式,但不能含有变量。 ? default的位置对程序的执行没有影响。

3. 循环结构程序设计

while循环语句:

while循环语句的一般形式:

while(表达式)

{语句}

其中,“语句”就是循环体,循环体只能是一个语句,只要当循环条件为真(即给定的

条件成立),就执行循环体语句。

注意:

? while语句的特点是:先判断条件表达式,后执行循环体语句。

? 如果第一次判断表达式的值为0,则循环一次也不执行。即while循环体最少执行

0次。 do...while循环语句:

do...while循环语句的一般形式:

do{语句}

while(表达式);

其中,“语句”就是循环体,先执行循环体,然后再检查条件是否成立,若成立,再执

行循环体。

注意:

? do...while语句的特点是,先无条件的执行循环体,然后判断循环条件是否成立。 ? do-while循环体最少执行1次。 for循环语句:

for循环语句的一般形式为:

for(表达式1;表达式2;表达式3) {语句}

表达式1:设置初始条件,只执行一次。可以为零个、一个或多个变量设置初值。 表达式2:循环条件的表达式,用来判定是否继续循环,在每次执行循环体前先执行此表达式,决定是否继续执行循环。

表达式3:作为循环的调整,例如使循环变量增值,它是在执行完循环体后才进行的。 因此,for语句可以理解为:

for(循环变量赋初值;循环条件;循环变量增值) {语句} 表达式1; while(表达式2) { }

语句; 表达式3;

可以改写成为while循环的形式:

注意:

? 表达式1、表达式2、表达式3可以缺省,但两个分号不能省略。 ? 表达式1和表达式3也可以是逗号表达式。

3.1. break语句

break语句作用是使流程跳到循环体之外,接着执行循环体下面的语句。 注意:

? 功能:跳出整个switch语句;跳出循环体,防止死循环。

? break语句只能出现在switch、while、do-while、for循环中,不能出现在其他地方。 ? 作用范围:所在循环体从属的最内层循环,而不是外层的某个循环。

3.2. continue语句

cintinue语句作用是结束本次循环,即跳过循环体中下面尚未执行的语句,转到循环体结束点之前,接着继续执行循环条件判定。

continue语句只结束本次循环,而不是终止整个循环的执行,而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

注意:

? 功能:结束本次循环,接着判断是否继续下一次循环。 ? continue语句只能出现在while、do-while、for循环中。

? 作用范围:所在循环体从属的最内层循环,而不是外层的某个循环

4. 数组

数组(array)是一组有序数据的集合。数组中的每一个元素都属于同一个数据类型。

4.1. 定义和引用一维数组

定义一维数组

类型符 数组名[常量表达式];

引用一维数组

数组名[下标];

初始化一维数组

? 在定义的数组时对全部数组元素赋予初值。例如

int array[5] = {0,1,2,3,4};

数组元素间用逗号分隔。 ? 只给数组中一部分元素赋值。例如

int array[10] = {0,1,2,3,4};

定义数组有10个元素,但是花括号只提供了5个初值,系统自动给后面5个元素赋初值为0。

? 如果在定义数值型数组时,指定了数组的长度并对之初始化,凡未被“初始化列表”

指定初始化的数组元素,系统会自动把它们初始化为0。(如果是字符型数组,则初始化为’\\0’,如果是指针型数组,则初始化为NULL,即为空指针) 注意:

? 在定义数组时,需要指定数组中元素的个数,方括号的常量表达式用来表示元素的

个数,即为元素长度。

? 下标是从0开始的。例如:array[10],则这个数组有10个元素,其次,第一个元

素是array[0],最后一个元素是array[9],不存在数组元素array[10]。 ? 定义数组时用到的“数组名[常量表达式]”和引用数组元素时的“数组名[常量表达

式]”形式相同,但是含义是不同的。

4.2. 排序算法

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。

排序分为很多种,其中书上主要讲解冒泡法和选择法。(见附录表5) 冒泡法:略 选择法:略

4.3. 定义和引用二维数组

定义二维数组

类型符说明符

数组名[常量表达式] [常量表达式];

例如定义array为3x4(3行4列)的数组:

float array[3][4];

C语言对二维数组采用这样的定义方式,使得二维数组可被看作一种特殊的一维数组;它的元素又是一个一维数组。

C语言中,二维数组中的元素排列是按行存放的,即在内存中先顺序放第1行的元素,接着存放第2行的元素。

引用二维数组

数组名[下标] [下标];

初始化二维数组

略(和一维数组初始化无差异)

4.4. 字符数组

字符型数据是字符的ASCII代码储存在存储单元中的,一般占一个字节。

定义字符数组、初始化字符数组和引用字符数组的方法和数值型数组类似,这里不详细讲解。

字符数组用来存放字符数据的数组时字符数组。字符数组中的一个元素存放一个字符。

4.4.1. 字符串和字符串结束标志

C语言中,是将字符串作为字符数组来处理的。

C语言规定以 ‘\\0’ 作为字符串的结束标志。‘\\0’ ASCII代码为0,即为空操作。

4.4.2. 字符数组的输入输出

字符数组的输入输出有两种方法:

? 逐个字符的输入输出。用格式符“%c”输入或者输出一个字符。

? 将整个字符串一次输入输出。用格式符“%s”,意思是对字符串(string)的输入输

出。 ? 输出的字符串中不包括结束符“\\0”。

? 用“%s”格式符输出字符串时,printf和scanf函数中输出项是字符数组名,而不

是数组元素名。 ? 使用scanf函数输入多个字符串时,以空格键分隔后输入。

? 如果一个字符数组中包含一个以上的“\\0”,则遇见第一个“\\0”输出就结束。

4.4.3. 使用字符串处理函数(见附录表6)

? puts(字符数组):将一个字符串输出到终端。其中输出字符串时默认后面自动补上

换行符。 ? gets(字符数组):从终端输入一个字符串到字符数组,并且得到一个函数值,为该

字符数组的首地址 ? strcat(字符数组1,字符数组2):连接两个字符数组中的字符串,数组1必须足够大。 ? strcpy(字符数组1,字符串2):将字符串2拷贝到字符数组1中。

? strcmp(字符串1,字符串2):比较字符串,相等返回0,字符串1>字符串2,返回

正数,小于返回负数。 ? strlen(字符数组名):求字符串长度。

? strlwr( 字符串):将字符串中的大写字母转换成小写 ? strupr( 字符串):将字符串中的小写字母转换成大写

5. 用函数实现模块化程序设计

5.1. 定义函数

C语言要求,在程序中用到的所有函数,必须“先定义,后使用”。 定义函数一般形式

类型名 函数名(形式参数列表) {

函数体 }

函数体包括声明部分和语句部分。

在定义韩式要用“类型标识符”(即类型名)指定函数值的类型,即指定函数带回来的值的类型。

5.2. 函数调用

定义函数的目的就是为了调用函数,以得到预期的结果。 函数调用一般形式

函数名(实参表列)

注意:


C语言学习笔记(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:记叙文阅读训练(B卷)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: