版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一部分二级C简介1、考试环境:软件:操作系统是windows7,应用软件是VC++6Q和MSDN6.0。题型及分值:全国二级C考试满分为100分。选择题(40小题,共40分)、程序填空题(1题,18分)、程序修改题(1题,18分)和程序设计题(1题,24分)。考试时间:120分钟,系统自动计时,考试结束后系统将自动锁定,考生不能继续进行考试。2、考试流程登录:双击桌面的“考试系统”快捷方式启动考试系统,按要求输入准考证号,如果考号正确会弹出考生的信息窗口,要求核对考号、姓名和身份证号;另一方面,系统会为每个考生随机抽题,生成一份二级c的试题。输入正确之后单击”开始考试”按钮,屏幕会显示考试须知,勾选“已阅读”之后单击’’开始考试并计时”,就正式开始考试。答题:界面分为试题内容查阅窗口和考试状态信息条。在试题内容查阅窗口可以查询各题型的题目要求。考试状态信息条可以查询考试的剩余时间,可以随时显示或者隐藏试题内容查阅窗口的按钮,还有一个交卷的按钮。考生文件夹是考生存放答题结果的唯一位置,在考试过程中答题不能脱离考生文件夹,也不要随意删除此文件夹中任何与考试要求无关的文件,否则会影响考试成绩。交卷:系统首先会锁住屏幕,处理完之后会显示交卷正常,オ可以离开。如果确实发生意外,由监考老师确认之后可以延时5分钟。3、考试内容:(1)大纲要求:公共基础知识(10%,选择题)和C语言程序设计。①公共基础知识的大纲要求:算法的基本概念;基本的数据结构及操作;基本的排序和查找算法;结构化程序设计方法;软件工程的基本概念和数据库的设计。②C语言的大纲要求:熟悉VC++6.0的集成开发环境;掌握结构化程序设计的方法,具有良好的程序设计风格;能够阅读简单的程序,掌握其中的数据结构和算法;编写简单的C程序,具有基本的纠错和调试程序的能力。(2)考点分布总分选择题分億考点解读(常考内容)出现位置备注1001程序设计基础结构化程序设计选择第1-2题二级公共基础知识面向对象的程序设计方法2软件工程基础结构化分析方法选择第2-4题结构化设计方法程序的调试4基本数据结构与算法算法的基本概念选择第5-8题栈和队列的定义树的基本概念3数据库设计基础数据模型选择第6-10题
关系代数运算数据库的设计方法和步骤1C语言的结构①程序的构成,main函数和其它函数选择题①②④。程序修改题③抽中概率8%头文件,数据说明,函数的开始和结束标志,程序注释③源程序的书写格式④C语言的风格4数据类型及运算①C的数据类型及其定义方法选择第13-18题。操作题①③④,三种题型均有抽中概率56%②C运算符的种类、运算优先级和结合性③不同类型数据间的转换和匀算@C表达式类型和求值规则基本语句表达式语句、空语句、复合语句操作题,三种题型均有抽中概率35%输入输出函数的调用,正确输入数据和输出格式3选择结构程序设计Ifー选择结构选择题第18-21题。操作题,三种题型均有,且if常与循环结构结合使用抽中概率37%Swich多分支选择结构选择结构嵌套5循环结构程序设计For循环选择题第20-23题。操作题,三种题型均有,且for和while常与循环结构结合使用抽中概率37%While和do-while循环Continue和break语句循环嵌套5数组的定义和引用ー维、二维数组的定义、初始化和数组元素的引用选择题第23-27题。操作题,三种题型均有抽中概率28%字符串与字符数组6函数①库函数的正确调用选择题⑥⑦。操作题②③④⑤,三种题型均有抽中概率37%②函数的定义方法③函数的类型和返回值④形参和实参,参数值的传递⑤函数的正确调用、嵌套调用、递归调用⑥局部变量和全局变量⑦变量的存储类别,变量的作用域和生存期1编译预处理①宏定义和调用选择题第抽中概率
②“文件包含”处理28-30题。操作题①2%5指针①地址与指针变量的概念,地址运算符与间址运算符选择题第31-35题。操作题,三种题型均有抽中概率35%②ー维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据③用指针做函数参数④返回地址值的函数⑤指针数组,指向指针的指针3结构体与共同体①用typedef说明一个新类型选择题第35-38题。操作题,三种题型均有抽中概率7%②结构体和共用体类型数据的定义和成员的引用③通过结构体构成链表,单向链表的简历,结点数据的输出、删除与插入1位运算①位运算符的含义和使用选择题第38-39题。抽中概率2%②简单的位运算2文件操作①文件类型指针选择题第39-40题〇程序填空和修改②文件的打开与关闭③文件的读写、定位18基本语句Printf语句程序填空题11%赋值语句23%数据类型、运算符及表达式运算符20%变量的初始化10%分支结构If条件表达式36%循环结构For循环语句34%While循环语句19%数组数组变量赋值19%函数函数定义15%函数返回值14%18基本语句赋值语句程序修改题18%数据类型、运算符及表达式运算符15%变量的初始化20%分支结构If条件表达式21%循环结构For循环语句17%While循环语句13%函数函数定义28%指针指针变量25%24基本语句赋值语句程序设计题23%数据类型、运算符及表达式运算符90%字符串结束标志29%变量的初始化81%分支结构If条件表达式50%逻辑运算14%循环结构For循环语句71%While循环语句18%数组字符串操作48%数组变量操作40%函数函数返回值43%指针指针变量48%指针操作33%结构体与共用体结构体16%第二部分C语言考点第1章:二级公共基础知识另附文件第二章C语言概述C语言基础知识C语言的构成(1)源程序由函数构成,每个函数完成相对独立的功能。(2)每个源程序中必须有且只有一个主函数,可以放在任何位置,但程序的执行总是从主函数开始的。(3)函数体的概念:在函数后面用ー对花括号括起来的部分。(4)每个语句以分号结束,但预处理命令、函数头之后不能加分号。(5)注释:括在/**/之间,允许出现在程序的任何位置。(6)预处理命令:以“ザ开头的语句。C程序的生成过程(1)C程序是先由源文件编译生成目标文件,然后经过连接生成可执行文件。(2)源程序的扩展名为.c,目标程序的扩展名为.obj,可执行程序的扩展名为.exe。相关真题:(1)关于算法,以下叙述中错误的是A某个算法可能会没有输入
B某个算法可能会没有输出C一个算法对于某个输入的循环次数是可以事先估计出来的D人和算法都能转换成计算机髙级语言的程序,并在有限时间内运行完毕〃算法的特征:①有穷性:能在有限的时间内并且执行有穷步后结束。②确定性:算法中的每一步都有确切的含义。③可行性:算法中的操作是有意义的,并且不会陷入死循环。④ー个算法有零个或者多个输入。零个输入表示算法本身确定了初始条件。⑤ー个算法有一个或者多个输出,用于反映数据加工的结果。,没有输出的算法是没有意义的。C语言程序的模块化通过以下哪个选项来实现A变量B函数C程序行 D语句(3)以下不能用于描述算法的是A文字叙述 B程序语句 C伪代码和流程图 DE-R图〃算法的描述有伪代码、流程图、N-S结构图等。E-R是实体联系模型。(4)以下叙述中正确的是A程序必须包含所有三种基本结构オ能成为ー种算法。〃可以不包含,也可以包含其中一种或者多种,错误。B我们所写的每条C语句,经过变异最终都将转换成二进制的机器指令。C如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达。〃三种结构都可以表示任何复杂的算法,错误。D只有简单算法才能在有限的操作步骤之后结束。〃只要是正确的算法,都得在有限的操作步骤自后结束,这就是算法的有穷性,错误。(5)以下叙述正确的是A在算法设计时,可以把复杂任务分解成一些简单的子任务。B在C语言程序设计中,所有函数必须保存在ー个源文件中。〃函数不一定放在同一个源文件中,可以分别放在不同源文件中,通过#include命令来引用,错误。C只要包含了三种基本结构的算法就是结构化程序。D结构化程序必须包含所有的三种基本结构,缺ー不可。〃C、D错误,因为结构化程序可以包含三种基本结构中的ー种或者多种。C语言主要是借助以下哪种手段来实现程序模块化A定义函数 B定义常量和外部变量C使用丰富的数据类型 D使用三种基本结构语句(7)以下叙述正确的是AN-S流程图只能描述简单的顺序结构的程序。〃N-S流程图可以描述循环、选择、顺序等多种结构的程序。B程序的算法只能使用流程图来描述。〃也可以用伪代码、N-S结构图等方法来表示。C结构化程序的三种基本结构是循环结构、选择结构、顺序结构。D计算机可以直接处理C语言程序,不必进行任何转换。〃计算机只能处理二进制表示的目标程序,不能直接执行由C语言编写的源程序,错误。
(8)以下叙述中正确的是A书写源程序时,必须注意缩进格式,否则程序会有编译错误。〃C语言源程序対缩进没有要求。B程序的主函数名除mainタト,也可以使用Main或者ーmain。Z/C语言中严格区分大小写,错误。C程序可以包含多个主函数,但总是从第一个主函数处开始执行。〃ー个C程序可以由多个子函数,主函数有且只有一个,错误。D在C程序中,模块化主要是通过函数来实现的(9)以下叙述正确的是A用户自己定义的函数只能调用库函数。〃用户也可以调用自定义的函数,错误。B实用的C语言源程序总是由一个或多个函数组成。C不同函数的形式参数不能实用相同名称的标识符。〃可以使用。D在C语言的函数内部,可以定义局部嵌套函数。〃函数的定义不可以嵌套,但函数的调用可以嵌套,错误。(10)以下叙述正确的是AC语言程序所调用的函数必须放在main函数的前面。〃放在主函数前后都可以。BC语言程序总是从最前面的函数开始执行。〃(し语言程序总是从En函数开始执行。CC语言程序中main函数必须放在程序的开始位置。〃main函数放在开始、中间或者最后都可以。DC语言程序总是从main函数开始执行(11)以下叙述中正确的是A每个后缀为.c的C语言源程序都可以单独进行编译。B每个后缀为.c的C语言源程序都应该包含一个main函数。〃ー个普通的C函数可以单独作为ー个C的程序文件存在被包含到其他程序中。C在C语言程序中,main函数必须放在其他函数的最前面。〃En函数放在开始、中间或者最后都可以。D在C语言程序中,只有main函数才可以单独进行编译。〃每个后缀为.c的C语言源程序都可以单独进行编译,错误。(12)我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是A一条C语句可能会被转换成零条机器指令B一条C语句可能会被转换成多条机器指令C一条C语句对应转换成一条机器指令D某种类型和格式的C语句被转换成机器指令的条数是固定的〃ー个C语句经过编译之后产生若干条机器指令,声明部分不是语句,不产生机器指令,只是対有关数据的声明。而固定类型和格式的C语句被转换成机器指令的条数固定。常量、变量和数据类型标识符.标识符的命名规则:①只能由字母、数字或下划线组成。②第一个字符必须是字母或者下划线,不能是数字。③区分字母的大小写。.标识符的分类:ー共3类:①关键字:C语言规定的专用的标识符,它们有固定的含义,不能更改。②预定义标识符:和“关键字”ー样也有特定的含义。③用户标识符:由用户根据需要定义的标识符,命名应注意到“见名知义”,不能和关键字相同。.2.2常量定义:在程序运行中,其值不能被改变的量。常量的类型:①整形常量:十进制(书写形式:基本数字范围0-9)、ハ进制(以。开头,基本数字范围0-7),十六进制(以Ox开头,基本范围0-15,其中10-15写成A-F或者a-f).②实型常量:小数形式(小数点两边必须有数字)、指数形式(e前必须有数字,e后必须为整数)。③字符常量:ー个字符常量代表ASCH码字符集里的ー个字符,在程序中用单撇号括起来,区分大小写。特殊的字符常量,即转义字符。其中“ヽ”是转义的意思,后面跟不同的字符表示不同的意思。例如:ヽn:换行:\\:反斜杠字符“'”;'dddl-3位ハ进制数所代表的ー个ASCII字符:'xhh:1-2位十六进制数所代表的ー个ASCII字符。④字符串常量:是用双撇号括起来的一个或者ー串字符。⑤符号常量:是由预处理命令“#define”定义的常量,在C程序中可用标识符代表ー个常量。.2.3变量定义:值可以改变的量。①变量要有变量名,在使用前必须先定义。②在内存中占据一定的存储单元,不同类型的变量其存储单元的大小不同。③存储单元里存放的是该变量的值。变量的类型有:整形变量、实型变量、字符变量。.整形变量(1)分类:基本型(int)、短整型(shortint或short)、长整型(longint或long)和无符号型(unsignedint,unsignedshort,unsignedlong)(2)数值范围:整型16位,短整型16位,长整型32位,无符号型16位,无符号短整型16位,无符号长整型32位。.实型变量(1)分类:单精度类型(float)和双精度类型(double)(2)定义方法:floata;,doublem;o(3)所占字节:float型在内存中占4个字节(32位),double型占8个字节(64位)。单精度实数提供7位有效数字,双精度实数提供15-16位有效数字。(4)实型常量:不分float型和double型,一个实型常量可以赋给ー个float型或double型变量,但变量根据其自身类型截取实型常量中相应的有效数字。.字符变量作用:用来存放字符常量。定义:用关键字char定义,每个字符变量中只能存放ー个字符。(3)定义形式:charcrl,cr2;»(4)赋值:crl=,m)cr2=W。(5)存储方法:存储字符对应的ASCII码到内存单元中。字符型数据与整型数据之间可以通用,ー个字符能用字符的形式输出,也能用整数的形式输出。字符数据进行算术运算,相当于对他们的ASCII码进行运算。2.2.4类型的自动转换和强制转换.类型的自动转换(1)当同一表达式中各数据的类型不同时,编译程序会自动把他们转变成同一类型后再进行计算。(2)转换的优先级为:char<int<float<double,即左边级别低的类型向右边转换。(3)在做赋值运算时,若赋值号左右两边的类型不同,则赋值号右边的类型向左边的类型转换;当右边的类型高于左边的类型时,则在转换时对右边的数据进行截取。.类型的强制转换:表示形式:(类型)表达式。相关真题:(1)以下选项中不属于C语言标识符的是A常量B用户标识符 C关键字D预定义标识符//C语言的标识符分为3类:关键字、预定义标识符和用户标识符。常量是指在程序运行过程中其值不能被改变的量,比如5、1.0、字符‘ヨ等。(2)以下叙述中正确的是A语言中的关键字不能作变量名,但可以作函数名。〃C语中的关键字既不能作变量名也不能作函数名。B标识符的长度不能任长,最多只能包含16个字符。〃标识符的命名规则:由下划线、字母和数字组成,且必须以下划线或者字母开始,也不能和关键字一致。不同的C语言编译器规定标识符的有效长度可能会不同,但没有限制最大长度,所以错误。C标识符总是由字母、数字、下划线组成,且第一个字符不得为数字。D用户自定义的标识符必须见名知义,如果随意定义,则会编译错误。〃用户定义的标识符只要满足标识符命名规则就可以了,没有特殊要求,不必一定"见名知意”。C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是A关键字可用作用户标识符,但失去原有含义。〃关键字不可以用作标识符。B预定义标识符可用作用户标识符,但失去原有含义。C在标识符中大写字母和小写字母被认为是相同的字符。〃C语言中严格区分大小写,标识符中大小写字母作为不同字符处理。D用户标识符可以由字母和数字任意顺序组成。〃标识符不可以由数字开头。(4)以下叙述正确的是A只能在函数体内定义变量,其他地方不允许定义变量。〃变量可以定义在函数体内外。B常量的类型不能从字面形式上区分,需要根据类型名来决定。〃常量的类型可以从字面形式上来区分,比如1为整型常量,1。为实型常量,a为字符型常量,所以错误。C预定义的标识符是C语言关键字的ー种,不能另作他用。〃预定义的标识符不是C语言的关键字。D整型常量和实型常量都是数值型常量(5)以下叙述正确的是A在C程序中的八进制和十六进制,可以是浮点数。〃(Z程序的实型常量只有十进制ー种。B整型变量可以分为int型、short型、long型和unsigned型四种。Cハ进制数的开头要使用英文字母。,否则不能与十进制区分开。〃八进制数以。打头。D英文大写字母X和英文小写字母x都可以作为二进制数字的开头字符。〃C計整数只有十进制、八进制和十六进制三种,没有二进制数。(6)以下选项合法的常量是A999 〃含有非法的空格B2.7e〃实型常量中e的前后必须均有数据,且其后面必须为整数,所以B和D错误COxabD123E0.2(7)以下叙述中错误的是A数值型常量有正值和负值的区分。〃数值型常量有整型常量、实型常量,无论是整型还是实型常量都有正负值之分。B常量可以用一个符号名来代表。C定义符号常量必须用类型名来设定常量的类型。〃C语言的预编译处理中,可以用符号名代表ー个常量,定义时不必指定常量类型,所以C错误,B正确。D常量是在程序运行过程中值不能被改变的量。(8)以下选项中合法的实型常量是A0 〃整型数据B3.13e-2.1 〃e后面必须为整数C.914D2.0*10〃D是表达式,不是常量(9)以下选项中非法的C语言字符常量是A'\007' B'\b' C'aa' D'\xaa’〃(2是字符串常量,应该用双引号(10)以下选项中非法的C语言字符常量是A'\x9d'B'9' C'\x09' D''09'〃本题考查字符常量,字符常量是用单引号括起来的一个字符。例如:‘ヨ、’=‘、‘+‘等。转义字符是ー种特殊的字符常量,以反斜线幵头,后面跟ー个或者几个字符。D中、。表示后面的字符是ハ进制数,但是出现了9,所以D错误。(11)下面选项中合法的字符常量是A"X"B'X'C'abc'D'\'//A和B中,字符常量用单引号括起来,C中,字符串常量应该用双引号括起来,D反斜线开头是转义字符。(12)以下叙述正确的是A转义字符要用双引号括起来,以便于普通的字符常量分开。〃转义字符以反斜线开头B字符常量在内存中占2个字节。〃占1个字节C字符常量需要用单引号括起来。D字符常量是不能进行关系运算的。〃字符常量可以进行关系运算,不能参与数值运算。(13)以下叙述正确的是AへO’表示字符。〃表示结束B“a”表示一个字符常量〃字符常量用单引号括起来C表达式:'a,>,b’的结果是假Dヤ''是非法的〃,ヽ",是双引号符(14)以下叙述正确的是A字符变量在定义时不能赋初值〃可以赋初值B字符常量可以参与任何整数运算C同一英文字母的大写和小写形式代表的是同一个字符常量〃(:语言严格区分大小写。代表的是不同的字符常量D转义字符用@符号开头〃以反斜线开头(15)以下叙述正确的是A字符串常量,'Hello'会被隐含处理成一个无名字符型数组,它有5个元素。〃有6个元素B不能用字符串常量对字符数组名进行整体赋值操作CcharstH7]="string!”;在语法上是合法的,运行也是安全的。〃此字符串常量包含8个字符,不能赋值在strp]中。Dchar*str;str="Hello":与charstr[];str=''Hello”;效果是ー样的。〃后者赋值错误。〃字符串中的字符依次存储在内存中一块连续的区域内,并且把空字符’、。自动附加到字符串的尾部作为字符串的结束标志,所以字符个数为n的字符串在内存中应占n+1个字节。(16)以下叙述中正确的是A在语句charstr[ド''string!”中,数组str的大小等于字符串的长度。〃数组长度比字符串长度小一个字节,字符串中包含隐含的结尾符。B语句charstr[10]="string!”;和charstr[10]={"string!”};并不等价。〃等价C对于一维字符数组,不能使用字符串常量来赋初值。〃可以使用字符串常量来给ー维字符数组赋值,就像B选项中一样D对于字符串常量''string!”,系统已自动在最后加入了'、。'字符,表示串结尾。(17)下列叙述中正确的是A空字符串不占用内存,其内存空间大小是。。〃字符串常量占的内存字节数等于字符串中字节数+1,错误。B两个连续的单引号«)是合法的字符常量。C可以对字符串进行关系运算。〃B和C(两个连续的单引号表示空字符,空字符不占内存,故其不能直接用关系运算符进行正确比较,可以用字符串比较函数strcmp来实现。D两个连续的双引号(“つ是合法的字符串常量。〃是空字符串,但因其占ー个字节,故其是字符串常量。(18)关于C语言的符号常量,以下叙述中正确的是A符号常量的符号名是标识符,但必须大写。B符号常量是指在程序中通过宏定义用一个符号名来带代表ー个常量C符号常量在整个程序中其值都不能再被重新定义。D符号常量的符号名必须是常量。〃(z语言中,可以用一个标识符来代表一个常量,称为符号常量,这个标识符必须在程序中进行特别的‘指定”,并符合标识符的命名规则。用作符号常量的标识符通常采用大写字母表示,在主函数中其值不能再被定义。所以选择B。(19)关于C语言的变量,以下叙述中错误的是A变量所占的存储单元地址可以随时改变B所谓变量是指在程序运行过程中其值可以被改变的量C程序中用到的所有变量都必须先定义后才能使用D由三条下划线构成的符号名是合法的变量名〃ー个变量实质上是代表了内存中的某个存储单元,必须先定义后使用,且在定义时为之分配存储单元,不能随时改变,変量名第一个标识符必须是字母式下划线ハ所以选A。(20)以下选项中合法的变量是A5aB_10_CA%Dsizeof〃变量的命名也要符合标识符的命名规则,即由下划线、字母或者数字组成,且必须以下划线或字母开始,也不能和关键字相同。(21)以下叙述中正确的是A函数的形式参数不属于局部变量。〃函数的形参属于局部变量。B对于变量而言,'‘定义"和''说明”这两个词实际上是同一个意思。〃声明变量不分配空间,定义变量要分配空间。C在复合语句中不能定义变量。〃复合语句中可以定义变量。D全局变量的存储类别可以是静态类(22)C语言中double类型数据占字节数为A4B8C12D16〃内存中,double类型数据占8个字节,float型数据占4个字节,Int型数据占2个字节,char型数据占1个字节。(23)若有定于语句charc=へ101,;则变量c在内存中占个字节A1B2C3D4〃本题考查字符变量的存储空间。以上是cha■型。(24)若有以下程序#include<stdio.h>main(){charcl,c2;clゴC'+'8'-'3';c2ゴ9'-'〇;printf(M%c%d\n,,,cl,c2);1则程序的输出结果是AH9BH9CF9D表达式不合法输出无定值〃本题考查字符变量和printf函数的相关知识,字符变量口统ー用ASSQI码运算,,C'8,ぎ就是67+54必9=72,最后以字符变量输出,就是H。c2结果为9,以十进制型变量输出。(25)有以下程序#include<stdio.h>main(){intx=35,B;Charz='B';B=((x)&&(z<,b,));printf(“%d\n”,B);}程序运行后的输出结果是A1B0C35D66〃本题考査逻辑运算符和关系运算符的相关知识。B=((x)&&(z<’ti))中。用于逻辑运算符的值是非〇和0,x=35,非0.B的ASSCI!码小于b的ASSCII码,zぐti的值也是非a1&&!值为1.(26)若有定义语句:chara='\82;则变量aA说明不合法 B包含1个字符 C包含2个字符 D包含3个字符〃这个是字符变量,就是ー个字符,值为1个字节长度。(27)有以下程序#include<stdio.h>main(){charcl='A',c2='Y';printf(**%d,%d\n,,,cl,c2);}程序的输岀结果是A输出格式不合法,输出错误信息 B65,89C65,90DA,Y〃输出的是整型数字,就是A和Y的ASSCII码(28)C语言中char类型数据占字节数为A1B2C3D4(29)若有以下程序段doublex=5.16894;printf(**%f\n,,,(int)(x*1000+0.5)/double1000);则程序段的输出结果是A5.170000B5.175000C5.169000 D5.168000〃本题考查强制类型转换与输出格式、%f的输出格式是以带小数点的数学形式输出浮点数。x*1000结果为5168.94I再+0.5就是5169.44.然后强制类型转换成整型就是5169.然后除以双精度数据1000,结果也为双精度数据5.169,输出时按照%f的格式输出,结果就是J第3章运算符与表达式C语言运算符简介C运算符简介算术运算符:+,-,*,/,%关系运算符:>,>=,==,!=,<,<=位运算符:>>,«,〜,&,I»へ逻辑运算符:!,||,&&条件运算符:?:指针运算符:&.*赋值运算符:=逗号运算符:,字节运算符:sizeof强制运算符:(类型名)(表达式)其他:下标,分量,函数运算符的结合性和优先级结合性:所有的单目运算符、条件运算符、赋值运算符及其扩展运算符,结合方向都是从右到左,其余运算符的结合方向是从左到右。优先级比较:初等运算符〉单目运算符〉算术运算符(先乘除后加减)〉关系运算符〉逻辑运算符(不包括"!")〉条件运算符〉赋值运算符〉逗号运算符。强制类型转换运算符可以利用强制类型转换符将一个表达式转换成所需类型。一般形式:(类型名)(表达式)逗号运算符和逗号表达式.逗号表达式:用逗号运算符将几个表达式连接起来。.一般形式:表达式1,表达式2,...,表达式3..求解过程:一次求解表达式1,2,...n。表达式n的值就是整个逗号表达式的值。相关真题:sizeof(double)是Aー个整型表达式 Bー个双精度型表达式Cー个不合法的表达式 Dー种函数调用//sizeof是C语言中的ー个操作符,不是函数调用,简单的说其作用就是返回一个对象或者类型所占的内存字节数,由于结果是无符号整数,因此可以把它看做是无符号整型表达式,所以选A。(2)以下选项中不属于C语言程序运算符的是Asizeof B〇 C() D&&〃不等于是"!="(3)不能正确表示数学式a•b/c的表达式是Aa/c*bBa*b/cCa/b*cDa*(b/c)〃ノ除号和★乘号的优先级是平级,结合性都是从左到右,所以选Co(4)有以下程序#include<stdio.h>main(){intsum,pad,pAd;sum=pad=5;pAd=++sum,pAd++,++pad;prinlf("%d\n”,pad);)程序的输出结果是A5B6C7D8//C语言区分大小写,所以pad和pAd是不同的变量。将5赋值给第一和第二个变量,由于赋值运算符的优先级高于逗号运算符,所以先计算pAd=++sum,此时pAd=6,sum=6.然后计算pAd++,pAd变为7,++pad,pad的值为6.(5)若有以下程序#include<stdio.h>main(){inta=0,b=0,c=0;c=(a-=++a),(a+=b,b+=4);printf(u%d,%d,%d\nM,a,b,c);)则程序的输出结果是A0,4,0B0,4,4C1,4,1DI,4,4〃逗号运算符的结合性是从左到右,也就是表达式从左到右计算。且逗号运算符的的优先级最低,所以要先计算c=(±=++a)这部分。括号内都是赋值运算符,所以从右往左计算,先执行++a,自增1后再赋值,所以a的值为1,再执行a=a-1,a的值变为〇,再将。赋给变量c。第二部分,先执行a=>b,即a=00=0,然后执行b=E4,即b=O4=4。所以输岀结果为0,4,0.(6)若有以下程序#include<stdio.h>main(){inta=O,b=O,c=O,d;c=(a+=b,,b+=a);} /・第4行・/d=c;; /*第5行・/; /・第6行・/;printf(''%d,%d,%d\n”,a,b,c); /*第7行・/)编译时出现错误,你认为出错的是A第4行B第5行C第6行D第7行〃第4行逗号表达式中间的第二个表达式为空,不合法,应该去掉ー个逗号,或者补充一个表达式。(7)若有以下程序#include<stdio.h>main(){inta=O,b=O,c=O;c=(a+=++b,b+=4);printf(44%d,%d,%d\n,\a,b,c);)则程序的输出结果是A1,5,1B1,5,5C-l,4,4D-l,4,-1〃和前面第5题ー样都是考查逗号表达式。逗号表达式的值为其中最后一个表达式的值。先计算ア=++b,即3=#(++功=〇1=1,这时候8=1,曲1。再计算b+=4,即b=b+4=1+与ス这是表达式的值为5,所以C=£ab,c的值分别为1,55(8)有以下程序#include<stdio.h>intfun(inta)(intbニ〇;staticintc=3;a=(c++,b++);retum(a);)main()(inta=2,i,k;for(i=0;i<2;i++)k=fun(a++);printf(44%d\n,,,k);}程序的输岀结果是A4BOC1D2〃先看主函数的for循环体,ー共循环i=0和1两次,所以fun函数一共被执行2次。两次执行之后都是返回了函数内部的a的值。a=b++,先复制再计算,所以ヨb自增前的值,也就是为〇.3.2算术运算符和算术表达式基本的算术运算符.分类:+(加法运算符或正直运算符)、-(减法运算符或负值运算符)、・(乘)、/(除)、%(求余)。%运算的两端必须都是整型,其余的运算对象都可以是整型或者实型。.双目运算符两边的数值类型必须一致才能进行运算,如果不一致,系统先进行一致性转换。转换规则:char->short->int->unsigned->long->double->floato.所有实数的运算都是以双精度方式进行的,若是单精度数值,则需要在尾数后面补。转换为双精度数。.2.2算术表达式和运算符的优先级与结合性.定义:用算术运算符和括号将运算量连接起来的、符合C语言语法规则的表达式。.运算对象:函数、常量和变量等。.运算规则:(1)可使用多层圆括号,但是括号必须配对。运算时由内向外依次计算各表达式的值。(2)对于不同优先级的运算符,按运算符的优先级由高到低进行运算,若优先级相同,则按结合方向进行运算。(3)若运算符两侧的操作数类型不同,则先利用自动转换或者强制类型转换,然后进行运算。.2.3自加、自减运算符.作用:自加运算符“++”使运算变量的值增1,自减运算符“-”使运算变量的值减1..均是单目运算符。运算对象可以是整型或实型变量,但不可以是常量和表达式。.均可作为前缀运算符,也可作为后缀运算符构成一个表达式。++i,-i:使用i之前,先使i的值加1或者减!,再使用此时的表达式的值参加运算。i++,i-:在使用i之后,使i的值加1或者减!,再使用此时的表达式的值参加运算。.结合方向:自右向左。相关真题:(1)C语言程序中,运算对象必须是整型的运算符是A&& B/ C%D*〃%是取余运算是二目运算符,且要求运算对象必须为整数。(2)若有以下程序#include<stdio.h>intf(intm){staticintn=0;inta=2;n++;a++;returnn+m+a;)main(){intk;for(k=0;k<4;k++)printf(“%d,”,f(k));)则程序的输出结果是A 3,5,7, 9, B 4,7, 10,13,C 4,5,6, 7, D 4,6, 8,10,〃本题考查静态局部变量以及自增运算符,静态局部变量在函数调用结束后并不释放,仍然保留它的值。在本题中:k为〇时returnn+rma之前,n=1,a为局部变量是3,m为〇,所以第一个返回值为4;k为1时,在函数返回值之前,静态局部变量n为2,a仍然是3,m为1,所以第二个返回值为6.以此类推答案为Do(3)若有以下程序#include<stdio.h>intfun(inta,intb)〃功能是返回两个形参的和。{returna+b;}main(){intx=6,y=7,z=8,r;r=fun(fun(x,y),z-);printf(4t%d\n,,,r);}程序运行后的输出结果是A21B15C20D31〃本题是函数嵌套题。调用函数fun(x,y),x=6,y=7,将13返回主函数。继续调用函数fun(13,z-),z」就是先参与运算再将z自减1,所以降13和8分别传送变量a和b,即21返回给主函数。因此选Ao(4)有以下程序#include<stdio.h>main(){inta=3;a+=a-=a*a;printf(u%d\n,,,a);}程序的输出结果是A0B9C3D-12〃本题考査运算符的结合性和优先级。等号=运算符是从右到左,且与+、ー、・相比,优先级较低,先计算aセ结果为9,再计算a=a-9i结果为a=-6,再计算a=>a即a=-6-6=-12赋值运算符和赋值表达式赋值运算符和赋值表达式.“=”称作赋值运算符,作用是将一个数值赋给ー个变量或将一个变量的值赋给另ー个变量,由赋值运算符组成的表达式成为赋值表达式。.一般形式:变量名=表达式。(1)赋值运算符的优先级别高于逗号运算符。(2)赋值运算符=和等于运算符==有很大区别。(3)赋值运算符的左侧只能是变量,不能是常量或者表达式。右侧可以是表达式,包括赋值表达式。(4)规定最左边变量所得到的新值就是整个赋值表达式的值。复合的赋值运算符在赋值运算符之前加上其他运算符可以构成复合赋值运算符。例如+=、ー=、・=、/=、%=等。两个符号之间不可以有空格。复合赋值运算符的优先级与赋值运算符的相同。赋值运算中的类型转换如果赋值运算符两侧的类型不一致,在赋值前系统将自动先把右侧表达式求得的数值按赋值号左边变量的类型进行转换(也可以用强制类型转换的方式)。相关真题:(1)有以下程序#include<stdio.h>main(){inta=3;printf(44%d\n,,,(a+=a-=a*a));1程序的输出结果是A0B9C3D-12〃同上题。(2)以下叙述中正确的是Aa是实型变量,a=10在C语言中式允许的,因此可以说,实型变量中可以存放整型数B在赋值表达式中,赋值号的右边可以是变量,也可以是任意表达式C若有inta=4,b=9;执行了a=b/r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年个人房屋借款抵押合同
- 工程做外墙合同模板
- 兼职会计解聘合同模板
- 液氨运输销售合同模板
- 2024年工厂监控设备安装协议
- 房屋卖合同模板
- 大型体育馆穹顶结构施工方案
- 兽药制造转让合同模板
- 喷淋施工合同模板
- 2024年委托车辆修理合同
- 老年友善医院创建汇报
- 科学素养培育及提升-知到答案、智慧树答案
- 消防设施操作员报名工作证明(操作员)
- 市政道路施工工程重难点分析及对策
- 素描教案之素描基础
- 2024-2030年中国丝苗米行业发展趋势及发展前景研究报告
- JTJ034-2000 公路路面基层施工技术规范
- 《现代控制理论》课程教学大纲
- 《娱乐场所管理条例》课件
- 特殊儿童心理辅导理论与实务 课件 第4、5章 特殊儿童心理辅导与治疗的基本方法、特殊儿童常见的心理行为问题及辅导
- 北师大版2024-2025学年六年级数学上册典型例题系列第一单元圆概念认识篇【八大考点】(原卷版+解析)
评论
0/150
提交评论