• / 80
  • 下载费用:8 金币  

全国计算机等级考试二级C1

关 键 词:
全国计算机等级考试二级 全国计算机等级考试 二级 全国计算机等级考试 c1c1c1 二级计算机等级考试C1 全国计算机等级考试二级C 计算机等级考试
资源描述:
C C语言程序设计语言程序设计 章节笔试上机 C语言的概述2%2% 数据类型及其运算10%5% 顺序结构程序设计14%10% 选择结 构程序设计8%13% 循环结构程序设计12%17% 函数14%5% 指针18%20% 数组17%18% 结构体与共用体2%7% 位运算2%1% 文件操作1%2% C语言考试大纲及所占考试比例 第一章 C语言概述 1.1.1 1.1.1 什么是程序?什么是程序? 常见的软件:常见的软件:WordWord、、ExcelExcel、、暴风影音等。暴风影音等。 由一系列详细的指令组成,它们用某种计算机语言写成由一系列详细的指令组成,它们用某种计算机语言写成 (如(如C C、、VC++VC++、、JavaJava、、C#C#等),能准确的告诉计算机怎么处等),能准确的告诉计算机怎么处 理文字或数据。理文字或数据。 程序员必须给出计算机要执行的详细指令序列,即程序程序员必须给出计算机要执行的详细指令序列,即程序 。。 ØØ 程序程序就是就是完成某种功能的指令序列完成某种功能的指令序列。。 1.1程序和程序设计 1.1.2 程序设计 一个简单的程序设计一般包含以下几个部分: •确定数据结构。 •确定算法。 •编码。 •调试程序。 •整理并写出文档。 1.2 C程序运行过程 1.2.1 1.2.1 几个基本概念几个基本概念 qq源程序源程序:用高级语言或汇编语言编写的程序称为源程序,以:用高级语言或汇编语言编写的程序称为源程序,以 ASCIIASCII码形式存储。码形式存储。C C源程序的扩展名为源程序的扩展名为“ “.C.C” ”((.CPP.CPP)。)。 qq目标程序目标程序:源程序经过:源程序经过“ “编译程序编译程序” ”翻译所得到的二进制代码翻译所得到的二进制代码 称为目标程序。目标程序的扩展名为称为目标程序。目标程序的扩展名为“ “.OBJ.OBJ” ”。。 qq可执行程序可执行程序:目标程序与库函数连接,形成完整的可在操:目标程序与库函数连接,形成完整的可在操 作系统下独立执行的程序。可执行程序的扩展名为作系统下独立执行的程序。可执行程序的扩展名为“ “.EXE.EXE” ” 。。 #include void main( )void main( ) { { printf(“Thisprintf(“This is a C program!\n“); is a C program!\n“); } } 1.2 C程序的运行过程 C语言中的指令 哎呀… 我理解不了 编译程序/解释程序 可以… 我现在可以 理解了 C语言由编译/解释程序转换为机器代码 这种机器代码计算机可以理解 编译和执行C程序 C 源程序 目标文件 可执行程序 C语言函数库 编译 连接 源程序:是用户创建的文件,以“.c”为文件扩展名 保存 目标文件:是编译器的输出结 果。这类文件的常见扩展名为 .obj” 0 1 形式 头文件:含有函数的声明和 预处理语句,用于帮助访问 外部定义的函数。头文件的 扩展名为“.h”。 可执行文件:是连接器 的输出结果。可执行文 件的扩展名为“.exe” 。 1.2.2 C1.2.2 C程序上机步骤程序上机步骤 一、一、编辑编辑::将源程序输入计算机内存中将源程序输入计算机内存中→→修改源程序修改源程序→→将改正将改正 后的源程序保存为磁盘文件。后的源程序保存为磁盘文件。————以以ASCIIASCII码形式输入和存储码形式输入和存储 --------扩展名为扩展名为.C.C或或.CPP.CPP((源程序)源程序) 二、二、编译编译::先先进行语法检查,并将无语法错误的源程序翻译成进行语法检查,并将无语法错误的源程序翻译成 二进制形式的目标代码二进制形式的目标代码--------扩展名为扩展名为.OBJ.OBJ((目标程序目标程序)) 三、三、链接链接::将各模块的二进制目标代码与系统标准模块连接,将各模块的二进制目标代码与系统标准模块连接, 得到一个可执行文件得到一个可执行文件--------扩展名为扩展名为.EXE.EXE((可执行程序可执行程序)) 四、四、执行执行::执行经过编译和连接的可执行目标文件。执行经过编译和连接的可执行目标文件。 编辑编辑 键盘输入键盘输入源程序源程序 A.cA.c 编译编译 目标程序目标程序 A.objA.obj 链接链接 可执行程序可执行程序 A.exeA.exe 执行执行 结果结果 1.2.31.2.3 VC++ 6.0 VC++ 6.0上机步骤上机步骤 1 1、启动、启动VC++ 6.0VC++ 6.0 ⑴⑴、、启动:启动:开始开始菜单菜单→→程序程序→→VisualVisual C++ 6.0 C++ 6.0 ⑵⑵、、工作窗口工作窗口: : 编辑窗口、工作空间窗口、输出窗口编辑窗口、工作空间窗口、输出窗口 2 2、在编辑状态下输入或修改源文件、在编辑状态下输入或修改源文件 ⑴⑴、编辑新文件、编辑新文件 编辑新文件:编辑新文件:文件文件→→新建新建…→…→文件文件→“→“C++ Source C++ Source File”File” 保存文件:保存文件:文件文件→→保存保存 或或 Ctrl+SCtrl+S ⑵⑵、、编辑已存在的文件编辑已存在的文件 打开文件:打开文件:文件文件→→打开打开 或或 Ctrl+O Ctrl+O 或或 直接双击文件直接双击文件 另存文件:另存文件:文件文件→→另存为另存为…… 编译时的提示信息将显示在输出窗口,双击错误信息则转 编译时的提示信息将显示在输出窗口,双击错误信息则转 到相应出错处,修改完毕再重新编译,直到无任何错误后编译到相应出错处,修改完毕再重新编译,直到无任何错误后编译 成功,显示成功,显示“ “0 error(s), 0 warning(s)0 error(s), 0 warning(s)” ”。。 注意:编译成功只能说明程序无语法错误,不一定代表算注意:编译成功只能说明程序无语法错误,不一定代表算 法正确或运行结果正确。法正确或运行结果正确。 3 3、编译源程序、编译源程序 组建组建→→编译编译 或或 Ctrl+F7Ctrl+F7 编译时若弹出如下提示框,选择编译时若弹出如下提示框,选择“ “是是” ”。。 4 4、运行源程序、运行源程序 组建组建→→执行执行 或或 Ctrl+F5Ctrl+F5 1.2 算法 算法特性 ⑴ 有穷性:经过有限步骤解决问题。 ⑵ 确定性:每个步骤所规定的操作必须是确定的 ⑶ 可行性:每一个步骤必须能够有效地执行 ⑷ 输入和输出特性:有零个或多个输入,有一个 或多个输出。 程序=数据结构+算法 算法概念 算法是指为解决某个特定问题而采取的确定 且有限的 步骤。 – – 自然语言描述自然语言描述 – – 专门的算法表达工具进行算法描述专门的算法表达工具进行算法描述 • •算法描述方法算法描述方法 ØØ 流程图流程图 ØØ N-SN-S图图 ØØ PADPAD图图 ØØ 伪代码伪代码 结构化程序设计由三大基本结构组成:顺序结构、选择结 构和循环结构。 1.顺序结构:(第三章) 语句1 语句2 语句3 1.3 结构化程序设计 2.选择结构 判断表达式 满足 语句1语句2 不满足 3.循环结构 判断表达式 循环体 满足 不满足 第四章内容 第五章内容 1.4 C语言程序的基本结构 1.4.11.4.1 简单C程序介绍简单C程序介绍 #include void main( )void main( ) { { printf(“printf(“ThisThis is a C program!\n is a C program!\n“);“); } } #include void main( )void main( ) { { printf(“Thisprintf(“This is a C program!\n“); is a C program!\n“); } } 编译预处理命令编译预处理命令 函数函数 C语言程序的两大部分:C语言程序的两大部分: ⑴⑴ 编译预处理命令:以编译预处理命令:以“ “# #” ”开头;一般放在程序的最前面开头;一般放在程序的最前面 #include#include表示文件包含,即将后面文件的内容包含到本程序中表示文件包含,即将后面文件的内容包含到本程序中 stdio.hstdio.h是是包含了输入输出函数的头文件包含了输入输出函数的头文件 ⑵⑵ 函数:一个程序中可以有多个,必须有一个函数:一个程序中可以有多个,必须有一个mainmain函数函数 #include void main( )void main( ) { { printfprintf( (“ “ThisThis is a C program!\n is a C program!\n“ “) ); ; } } ⑵ ⑵ 函数:用于实现程序要求的功能函数:用于实现程序要求的功能 包括包括函数首部函数首部和和函数体函数体两部分:两部分: ØØ 函数首部:即函数的第一行,包括函数类型、函数名、参数函数首部:即函数的第一行,包括函数类型、函数名、参数 (放在括号内,可以没有参数(放在括号内,可以没有参数)) ØØ 函数体:即由函数体:即由{ {开始、到开始、到} }结束的内容结束的内容 函数首部函数首部 函数体函数体 #include void main( )void main( ) { { printfprintf( (“ “ThisThis is a C program!\n is a C program!\n“ “) ); ; } } ⑴⑴、、mainmain是函数名,称为主函数。每个程序必须是函数名,称为主函数。每个程序必须有且只能有有且只能有一一 个个mainmain函数。函数。程序总是从程序总是从mainmain函数开始执行函数开始执行。。 ⑵⑵、、voidvoid用于说明函数值的类型,用于说明函数值的类型,voidvoid表示函数表示函数空值空值( (没有值没有值) )。。 ⑶⑶、函数体由一对大括号括起来;范围以、函数体由一对大括号括起来;范围以“ “{ {” ”开始,开始,“ “} }” ”结束。结束。 ⑷⑷、、printfprintf是是C C语言的语言的标准输出函数标准输出函数,表示把,表示把“ “““““” ”内的字符串按内的字符串按 原样输出到显示器上原样输出到显示器上((除非遇到除非遇到%%或或\ \)。)。 ⑸⑸、、“ “\n\n” ”是换行符,即输出完后回车换行。是换行符,即输出完后回车换行。 ⑹⑹、、每个语句必须以分号每个语句必须以分号“ “ ; ; ” ”结束结束。。 This is a C program!This is a C program! EG101.C C语言程序的基本结构:C语言程序的基本结构: #include void mainvoid main( )( ) { { } } 例例. . 输出下列图形:输出下列图形: ********************** very goodvery good ********************** #include void main( )void main( ) { { } } printfprintf(“***********\n“);(“***********\n“); printfprintf(“ very good \n“);(“ very good \n“); printfprintf(“***********\n“);(“***********\n“); 例例2 2:: #include void main( )void main( ) /* /* 主函数主函数 * */ / { { intint a a, ,b b, ,sumsum; ; /* /* 定义三个整型变量定义三个整型变量 * */ / a=2 a=2; ; b=3 b=3; ; /*/* 为为变量变量a a,,b b赋值赋值 * */ / sum=a+b sum=a+b; ; printf(printf(“ “sumsum is is %d%d\n\n“ “, , sumsum) ); ; } } 说明:说明: ⑴⑴、、““/*/*……*/*/””表示注释部分,以表示注释部分,以““/*”/*”开始,以开始,以“*“*/”/”结束;结束;注释注释 只是对程序的说明,仅起帮助阅读程序的作用,不影响程序的运行,只是对程序的说明,仅起帮助阅读程序的作用,不影响程序的运行, 可以放在程序的任意位置。注意不能嵌套注释可以放在程序的任意位置。注意不能嵌套注释( (即即/*…/*…*/…*/)/*…/*…*/…*/)。。 ⑵⑵、定义变量后,系统就为其、定义变量后,系统就为其分配相应大小的存储单元分配相应大小的存储单元,用于存放其,用于存放其 值。C语言要求变量必须值。C语言要求变量必须先定义,后使用先定义,后使用。。 a a b b sumsum ⑶⑶、、““=”=”为赋值运算符,把为赋值运算符,把““=”=”右边表达式的值赋值给左边的变量右边表达式的值赋值给左边的变量 sum is 5sum is 5 eg102.c 2 3 5 ⑷⑷、、““%d%d””表示以表示以““十进制整数十进制整数””形式输出数据形式输出数据,,输出时代以一个十输出时代以一个十 进制整数值,该值由进制整数值,该值由““, ,””后边对应的变量或表达式提供后边对应的变量或表达式提供 更常用的形式:更常用的形式: #include void main( )void main( ) { { intint a,b,sum; a,b,sum; scanf(“%d%d“, ); sum=a+b; sum=a+b; printf(“sumprintf(“sum is %d\n“, sum) is %d\n“, sum); ; } } 说明:说明: ⑴⑴、、scanfscanf是是C C语言的语言的标准输入函数标准输入函数,,“ “ a,b,c; scanf(“%d%dscanf(“%d%d“, “, c=c=max(a, max(a, b)b); ;/*/*函数调用函数调用* */ / printf(“maxprintf(“max=%d\n“, c);=%d\n“, c); } } intint max(intmax(int x, x, intint y) y) { { intint z; z; if (xy) z=x; if (xy) z=x; else z=y; else z=y; return(z); return(z); } } 1.4.21.4.2 程序的基本结构程序的基本结构 #include#include #include#include #define#define … /* … /* 预处理命令预处理命令 * */ / void main( )void main( ) { { 声明部分声明部分 /* /* 定义本函数中用到的变量定义本函数中用到的变量 * */ / 执行部分执行部分 /* /* 完成本函数功能的语句完成本函数功能的语句 * */ / } } 其他函数其他函数 { { 声明部分声明部分 执行部分执行部分 } } 1 1、一个C程序由一个或多个函数构成。程序中应至少包含一、一个C程序由一个或多个函数构成。程序中应至少包含一 个个mainmain函数。函数。函数是C语言的基本单位函数是C语言的基本单位(函数式语言)(函数式语言)。。 2 2、一个C程序、一个C程序总是从总是从mainmain函数开始执行函数开始执行,而不论,而不论mainmain函数在函数在 整个程序中的位置如何;一般说来,又随着整个程序中的位置如何;一般说来,又随着mainmain函数的结束而函数的结束而 整个程序结束。整个程序结束。 3 3、被调用的函数可以是系统提供的库函数,也可以是用户根、被调用的函数可以是系统提供的库函数,也可以是用户根 据需要自己编写的函数。据需要自己编写的函数。 4 4、C语言本身没有输入输出语句,、C语言本身没有输入输出语句,输入和输出操作由库函数输入和输出操作由库函数 scanfscanf和和printfprintf等函数来完成等函数来完成,C对输入输出实行函数化。,C对输入输出实行函数化。 5 5、每个语句和数据定义的最后、每个语句和数据定义的最后必须有一个分号必须有一个分号;分号是C语;分号是C语 句的必要组成部分。句的必要组成部分。 函数的构成:函数的构成: 一个函数由两部分构成:一个函数由两部分构成: 1 1、、函数首部函数首部:即函数的第一行。包括函数名、函数类型、函数参数:即函数的第一行。包括函数名、函数类型、函数参数 ( (形参形参) )名、参数类型。名、参数类型。 intint max(intmax(int x, x, intint y) y) 注意:一个函数名后面必须跟注意:一个函数名后面必须跟““( )”( )”作为函数的标志:作为函数的标志:main( ) main( ) 2 2、、函数体函数体:即函数首部下面:即函数首部下面““{ }{ }””内的部分内的部分 函数体内一般又分为两部分:函数体内一般又分为两部分: ⑴⑴、、变量定义(数据声明)部分变量定义(数据声明)部分:定义在本:定义在本 函数中用到的变量或数组的数据类型;函数中用到的变量或数组的数据类型; ⑵⑵、、执行部分执行部分:由若干语句组成,完成函数:由若干语句组成,完成函数 所规定的功能。所规定的功能。 intint max(intmax(int x, x, intint y) y) { { intint z; z; if (xy) z=x; if (xy) z=x; else z=y; else z=y; return(z); return(z); } } 第二章 数据类型及其运算 2.1 标识符 标识符:在C语言中,有许多符号的命 名,如变量名、函数名、数组名等,都必须 遵守一定的规则,按此规则命名的符号称为 标识符。 1、标识符的命名规则: •由字母、数字和下划线(_)组成。 •第一个字符必须是字母或下划线,不是是数 字。 •区分字母的大小写。 有效名称 principal cost_price marks_3 lastname city 无效名称 123rate currency$ discount% zip code 2、标识符分类: ⑴关键字:c语言规定了一批标识符,他们在c语 言中代表着固定的含义,不能另做它用。 标识数据类型的关键字:int long short char float double signed unsigned struct union enum void const 标识存储类型的关键字:auto static register extern typedef 标识流程控制的关键字:if else switch case default for while do break continue return goto 标识运算符的关键字:sizeof 2、标识符分类: ⑵预定义标识符:一类具有特殊含义的标识符 ,用于标识库函数名和编译预处理命令。 c语言语法允许用户把这类标识符另做它用,但 是这些标识 符将失去系统规定的原意。(可以 用但最好不用) 编译预处理命令:define include ifdef ifndef endif 等。 标准库函数:scanf printf getchar putchar等 ⑶用户标识符:由用户根据需要定义的标识符 称为用户标识符。 图2-1 数据类型分类 短整型(short) 整 型(int) 长整型(long) 浮点型(实型) 单精度型(float) 双精度型(double) 字符类型(char) 整型 基本类型 构造类型 数组类型 结构体类型(struct) 共用体类型(union) 指针类型 空类型(void) 数据 类型 2.2 数据及数据类型 枚举型 2.3、常量 直接 常量 十进制数: 八进制数: 十六进制数: 符号常量 常 量 字符常量 整型 常量 以非0开始的数,如:220、-560、+369等。 以0开始的数,如:06、0106、0677等。 以0X或0x开始的数:0X123、0xab、 0X4e 浮点型常量 (十进制实数) 小数 形式 指数 形式 由数字、小数点以及必要时的正负号组成。 如:29.56、-56.33、0.056、.056、0.0等。 相当于科学计数法,将形如a×10b的数值表 示成如下形式: aEb 或 aeb 如: 2.956E3、-0.789e8、.792e-6等。 用两个英文单引号限定的一个字符,如:'a' 、'9' 、'Z'等。 占一个字节的存储空间,存放的是其ASCII码值(一个整数) 另外,还有以“\”开头的转义字符常数,如'\n'。(见表2-1) 字符串 常量 用英文双引号限定的一个字符序列,如:“Hello world“ 、“a“ STUDY\0 占用一段连续存储单元,每个字符占一个字节。尾部加字符串 结束标志符'\0' ,如字符串“STUDY“的存储形式 : 定义格式: #define 符号常量名 常量 举例: #define PI 3.14159 (例2-1) 常量是在程序运行过程中其值不能被改变的量 整型常量注意以下几点: (1)在C程序中,只有十进制数可以是负数 ,而八进制和十六进制数只能是正数。 (2)在C语言中,在一个整型常量的后面加 上字母L或l,表示长整型数。 (3)十进制转换为N进制的方法---除N取余 倒排 (4)N进制转换为十进制的方法---从右向左 按权展开相加。 实型常量注意以下几点: (1)小数形式必须有小数点。12. .12 (2)指数形式:e的前后必须有数字,比且e 的后面必须为整数(正数或负数) 字符型常量注意以下几点: (1)字符常量只能用单引号括起来,不能用 双引号或其他括号 (2)字符常量只能是单个字符,不能是字符 串 (3)字符型常量可以参与数值运算,此时用 的是字符的ASCII码进行运算的。 例如:’5’+10 5+10 (4)\ddd和\xhh中的ddd和hh分别为八进 制和十六进制的ASCII代码。如\101和\X41都 表示字母’A’, 字符型常量与字符串常量的区别: (1)字符型常量是用单引号括起来的,字符 串常量使用双引号括起来的。’A’ “A” (2)字符常量只能是单个字符,字符串常量 则可以含零个或多个字符。 (3)可以把一个字符常量赋值给一个字符变 量,但不能把一个字符串常量赋给一个字符 变量。 注意:在C语言中没有相应的字符串变量,但 可以用一个字符数组来存放一个字符串变量 。 (4)字符型常量占一个字节的内存空间,字 符串常量占的内存字节数等于字符串中字符 个数加1,增加的一个字节用来存放字符串结 束符’\0’(ASCII码为0) 例如:’a’在内存中占一个字节,”a”在内存中 占两个字节。 表2-1 转义字符表 字符形式功 能 \n换换行,将当前位置移到下一行开头头 \t水平跳格,跳到下一个Tab位置 \b退格,将当前位置移到前一列 \r回车车,将当前位置移到本行开头头 \\反斜杠字符“\” \'单单引号字符' \“双引号字符“ \ddd 1~3位8进进制数表示的对应对应 ASCII码码 字符 \xhh 1~2位16进进制数表示的对应对应 ASCII 码码字符 这样实现:printf(“ I don t like ……. “); 例如输出:“I don't like ……. “ \“\'\“ /* 程序eg2.c */ #include #define PI 3.14159 /* 定义符号常量PI */ void main() { float r=16.7; /* 定义变量r并赋初值 */ float l,s; /* 定义圆周长和圆面积的变量 */ l=2*PI*r; /* 计算圆周长 */ s=PI*r*r; /* 计算圆面积 */ printf(“L=%f S=%f\n“,l,s); /* 输出圆周长、面积的计算结果 */ } 例2-1已知圆的半径,编写程序计算圆的周长和面积。 使用符号常量的好处: ①含义清楚。 ②在需要改变一个常量时能做到“一改全改”。 注意: (1)符号常量在使用之前必须先定义。 (2)符号常量一般用大写 变量的特点: ——变量的值可以改变; ——变量具有特定的数据类型;根据数据类型为其分配存储单元 ——变量有相应的内存空间; ——变量的值存储在它所占的存储空间中。 2.4、变量 变量是在程序运行过程中其值可以被改变的量 变量变量名存储单元 标识值 人 房间 房间号 具体的屋子 常量 变量 变量名 存储单元 变量就是存储常量的量。 变量的分类(分类、标识符、所占字节数): (1)整型变量 (2)实型变量 (3)字符型变量 类类型说说明内存单单元数取值值范围围 char字符型1个字节节(8位)-27~27-1 int整型4个字节节(32位)-231~231-1 short短整型2个字节节(16位)-215~215-1 long 长长整型4个字节节(32位)-231~231-1 unsigned无符号型同有符号型无负负数,没有符号位。 float单单精度实实 型 4个字节节(32位)-3.4E+38~3.4E+38(7个有效位) double双精度实实 型 8个字节节(64位)-1.7E+308~1.7E+308(15-16个有效位 ) 表2-2 变量的分类 eg3 变量定义的一般格式为: 数据类型标识符 变量名表; 说明: (1)数据类型符用来说明变量的数据类型,它可以 是C语言提供的任意一种类型。 (2)变量名表可以是一个变量,也可以是多个变量 ,多个变量之间用逗号分隔。 (3)程序中用到的变量,必须“先定义后使用”。 变量的值: 变量赋值的一般格式为: 变量名=表达式; 变量的赋值一般有以下几种情况: (1)在定义变量的同时为其赋值,也称为初始化。 例如:int x=12,y=9; (2)先定义变量后赋值。 例如: int x,y; x=12; y=19; 或x=y=12; int x=y=12;(×) (3)通过输入函数赋值。 scanf(“%d%d”, 程序中: int i; i=10 内存中每个字节有一个编号-----地址 ….…. 2000 2002 2004 内存 0 2006 10 变量、变量的地址、变量名、变量值 /* program eg4.c */ #include void main() { char ch1='A',ch2; ch2='a'; printf(“%c,%c\n“,ch1,ch 2); } 例2-2 字符型变量应用举例 例2-3 字符型变量与整数的关系举例。 /* program eg4.c */ #include void main() { char ch,ch1; int i; ch='A'; ch1=ch+32; i=ch; printf(“%c,%c,%c\n“,ch,ch1,i); printf(“%d,%d,%d\n“,ch,ch1,i); } 字符型变量与整型变量的关系: ⑴ 字符型变量的值可以赋给一个整型变量; ⑵ 字符型变量可以和整数混合运算; ⑶ 整数值可以以字符的形式输出,反之亦然。 字符数据的存储 将一个字符常量存放到一个字符变量中,是将 该字符的相应的ASCII代码存放到存储单元中 。 运算符的基本特性: 2.5、运算符和表达式 (1)运算对象的数目 (2)优先级 (3)结合性 1. 单目运算符 2. 双目运算符 3. 三目运算符 去掉一个最高级 去掉一个最低级 一、二、三和赋值 算术、关系和逻辑 移位插在算术后 逻辑位插在逻辑前 自左向右 自右向左:单目、三目和赋值 表达式:由运算符和操作数组成的有意义的式子。 注意: (1)操作数可以是常量、变量、表达式、函数等 (2)任何一个表达式都有一个确定的值。 Z = ( X * 2 ) + ( 5 – Y ) 操作数操作数 表达式 表达式表达式 运算符 ㈠ 算术运算 ㈡ 关系运算 ㈢ 逻辑运算 1. 算术运算符: * / % + - 2. 算术表达式: 3. 运算符优先级与结合性: 同级别(高)同级别(低) 举例 左结合性 1. 关系运算符: = c+d x==y (x-3)(y+1)y+1=yx-3的值。 若有如下定义: char c='d'; int m=2,n=5; 求下列表达式的值: (1)c+1=='e' (2)c+'A'-'a'!='D' (3)m-2*nb a=b=c=1; ++a printf(“%d,%d,%d\n“,a,b,c); --a||++b||++c; printf(“%d,%d,%d\n“,a,b,c); a=b=c=1; ++a printf(“%d,%d,%d\n“,a,b,c); ++a||--b printf(“%d,%d,%d\n”,a,b,c); } 逻辑运算的短路特性: 在逻辑表达式的求值过程中,并不是所有的运 算对象都参加运算,而是按照自左向右的计算 机顺序,当某个运算对象的值计算出来后,可 以确定整个表达式的值时,其余的运算对象将 不参加运算。 注意:自增自减表达式的操作数只能是变量, 不能是常量或表达式。 赋值运算 1. 运算符: =,+=,-=,*=,/=,%=等 3. 表达式: 2. 运算符优先级与结合性:右结合性 4. 计算结果:赋值号左边变量的值 赋值表达式:由赋值运算符和操作数组成的式子。 变量名=操作数 说明: (1)赋值号的左边必须是变量名,右边可以是C语言 中任何合法的操作数。 (2)赋值运算的功能是先求出右边操作数的值,然后 把此值赋给赋值号左边的变量。 (3)赋值表达式的值为赋值后左边变量的值。 (4)复合赋值表达式的等价: a+=3 a*=a+3 a=a+3 a=a*(a+3) /*eg7.c*/ #include void main() { int a=10,b=10; printf(“%d\n“,a+=a-=a*a); printf(“%d\n“,b+=b-=b*=b); } 条件运算 1. 运算符: ? : 3. 表达式: 2. 运算符优先级与结合性:右结合性 4. 计算结果: 条件表达式:由条件运算符和操作数组成的式子。 操作数1?操作数2:操作数3 说明: 条件表达式的求值过程:先计算操作数1的值,若为非 0,则取操作数2的值作为整个表达式的值,否则取操 作数3的值作为整个表达式的值。 /*eg8.c*/ #include void main() { int a,b,c; a=5; b=4; c=6; c=ab?a:b; printf(“%d\n“,c); } 逗号运算 1. 运算符: , 3. 表达式: 2. 运算符优先级与结合性:左结合性 4. 计算结果: 逗号表达式:由逗号运算符和操作数组成的式子。 操作数1,操作数2,……操作数n 说明: 逗号表达式的求值过程:先求操作数1的值,再求操作 数2的值,……,最后求操作数n的值,并且把操作数n 的值作为整个逗号表达式的值。 /*eg9.c*/ #include void main() { int a,b,c; c=(a=5,b=a*2); printf(“%d,%d,%d\n“,a,b,c); } 2.6 表达式中数据类型的转换 1、数据类型的自动转换 自动转换发生在不同数据类型的数据进行混合 运算时,由编译系统自动完成。 2、数据类型的强制转换 强制转换是用户根据自己的需要通过类型转换 运算来完成的。 1、数据类型自动转换的规则 Ø 若参与运算量的类型不同,则先转换成同一类型,然后 进行运算。 Ø 转换按数据长度增加的方向进行,以保证精度不降低。 如int型和long型运算时,先把int量转成long型后再进行运 算。 Ø 所有的浮点运算都是以双精度进行的,即使仅含float单 精度量运算的表达式,也要先转换成double型,再作运算。 Ø char型和short型参与运算时,必须先转换成int型。 Ø 在赋值运算中,赋值号两侧量的数据类型不同时, 赋值 号右侧量的类型将转换为左侧变量的类型。当右侧量的数据 类型长度比左侧长时,会降低精度。 数据类型自动转换示意图 2、数据类型的强制转换 强制类型转换的运算格式如下: (类型标识符)表达式 例如: (int)3.14 /*将3.14转换为整型,其值为3*/ (int)(3.14+4.78) /*将表达式3.14+4.78的结果转换为整型 ,其值为7*/ (int)3.14+4.78 /*将3.14转换为整型,然后再加上4.78,其 值为7.78*/ 在使用类型转换时注意以下几个问题: (1)类型说明符和表达式都必须加括号(单个 变量可以不加括号),如把(int)(x+y)写成 (int)x+y则成了把x转换成int型之后再与y相加 了。 (2)无论是强制类型转换还是自动转换,都只 是为了本次运算的需要而对变量的临时性转换, 而不改变数据定义时对该变量的类型说明。 程序演示eg10 谢谢!
展开阅读全文
  麦档网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:全国计算机等级考试二级C1
链接地址:https://www.maidoc.com/p-15695366.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2018-2020 maidoc.com版权所有  文库上传用户QQ群:3303921 

麦档网为“文档C2C模式”,即用户上传的文档所得金币直接给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的金币归上传人(含作者)所有。
备案号:蜀ICP备17040478号-3  
川公网安备:51019002001290号 


收起
展开