国家计算机等级考试2级C语言C语言部分知识.docx_第1页
国家计算机等级考试2级C语言C语言部分知识.docx_第2页
国家计算机等级考试2级C语言C语言部分知识.docx_第3页
国家计算机等级考试2级C语言C语言部分知识.docx_第4页
国家计算机等级考试2级C语言C语言部分知识.docx_第5页
已阅读5页,还剩178页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章C语言设计的初步知识第一节 C语言基本常识及标识符一、基本概念1.C语言是用接近人们习惯的自然语言和数学语言作为语言的表达形式。2.main是主函数名,C语言规定必须用main作为主函数名。3.main后的一对圆括号中可以是空的,但这一对圆括号不能省略。4.一个C程序可以包含任意多个不同名的函数,但必须有一个而且只能有一个主函数。5.一个C程序总是从主函数开始执行。6.函数体用“”开始,用“”结束。语句的数量不限。定义语句用分号“;”结束。7.C程序中的每一条执行语句都必须用“;”结束,分号是C语句的一部分,不是语句之间的分隔符。8.在程序中可以对程序进行注释,注释部分必须用符号“/*”和“*/”括起来。“/*”和“*/”必须成对地出现,“/”和“*”之间不可以有空格。注释可以用西文,也可以用中文。注释可以出现在程序中任意合适的地方。注释部分对程序的运行不起作用。9.C语言源程序经过C语言编译程序编译之后生成一个后缀为.OBJ目标文件。最后还要由称为“连接程序”的软件,把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。.c文件.obj文件.exe文件二、标识符1、标识符组成1)标识符可用作变量名、符号名、函数名、数组名、文件名。2)合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。3)在标识符中的大写字母和小写字母被认为是两个不同的字符。4)对于标识符的长度一般取前8个字符有效,如果长于8个字符,多余的字符将不被识别。2、标识符分类1)关键字:C语言规定了一批标识符,它们在程序中都代表着固定的含义,不能另作它用(如main、int),共32个(注意:全部是小写),见下表:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongmainregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidwhile2)预定义标识符:这些标识符也都有特定的含义,如C语言提供的库函数 (如printf、scanf)和预编译处理命令(如define)等。C语言语法允许把这类标识符另作它用,但这将使这些标识符失去系统规定的原意,因此,建议用户不将此类标识符另作它用。 3)用户标识符:用户标识符一般用来给变量、函数、数组或文件命名。如果用户标识符与关键字相同,程序在编译时将给出出错信息;如果与预定义标识符相同,系统并不报错,只是该预定义标识符将失去原定含义。三、算法算法应当具有以下五个特性:1)有穷性。一个算法应包含有限个操作步骤。2)确定性。算法中每一条指令必须有确切的含义。3)可行性。算法中指定的操作,都可以通过已经实现的基本运算执行有限次后实现。4)有零个或多个输入。在计算机上实现的算法,是用来处理数据对象的,在大多数情况下这些数据对象需要通过输入来得到。5)有一个或多个输出。算法的目的是为了求“解”,这些“解”只有通过输出才能得到。四、练习I、选择题:1.下列关于C语言用户标识符的叙述中正确的是( )(03-4-15题) A)用户标识符中可以出现下划线和中划线(减号) B)用户标识符中不可以出现中划线,但可以出现下划线 C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头2.以下不能定义为用户标识符的是( )(03年9月第13题)A)scanfB)VoidC)_3com_D)int3.下列选项中,不能用作标识符的是( )(04-9-14题) A)_1234_ B)_1_2 C)int_2_ D)2_int_4.以下选项中合法的用户标识符是( )(02年9月第13题)A)long B)_2Test C)3Dmax D)A.dat5.以下不能定义为用户标识符的是(05-4-14题)A)MainB)_0C)_intD)sizeof6.以下4组用户定义标识符中,全部合法的一组是( )(04年4月第14题) A)_mainB)IfC)txtD)int enclude -max REAL k_2 sin turbo 3COM _0017.以下叙述正确的是( )(02-4-22题) A)可以把define和if定义为用户标识符 B)可以把define定义为用户标识符,但不能把if定义为用户标识符 C)可以把if定义为用户标识符,但不能把define定义为用户标识符D)define和if都不能定义为用户标识符8.以下叙述中正确的是( )(03-4-11题)A)C语言比其它语言高级 B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现得最晚,具有其它语言的一切优点9.以下叙述中正确的是( )(04-4-12题)A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译10.用C语言编写的代码程序( )(04-9-11题)A) 可立即执行 B) 是一个源程序C) 经过编译即可执行 D) 经过编译解释才能执行 11.算法具有五个特性,以下选项中不属于算法特性的是 ( )A) 有穷性 B) 简洁性 C) 可行性 D) 确定性 12.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是( ) A)有零个或多个输入B)有穷性(04-4-11题)C)有零个或多个输出D)可行性13.以下叙述中正确的是(05-4-13题)A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出第二节 常量、变量及数据类型一、常量在程序运行过程中,其值不能被改变的量,称为常量。在C语言中,常量分为整型常量,实型常量,字符常量和字符串常量。整型常量和实型常量也称数值型常量,它们有正负的区分。基本整型常量只用数字表示,必须不带小数点;如:12、-1、0等。实型常量通常用带小数点的数表示,如:3.14159、-2.71828、0.0等。A,d则是字符型常量。1、整形常量在C语言中,整型常量可以用十进制、八进制和十六进制形式来表示。1)十进制基本常量用一串连续的数字来表示。 2)八进制数用数字0开头(注意:不是字母o)。因此,在C程序中不能在一个十进制整数前面加前导零。【注意】八进制数只能用合法的八进制数字表示,不能写成018,因为数字8不是八进制数字。3)十六进制数用数字0和字母x(或大写字母X)开头。【注意】十六进制数只能用合法的十六进制数字表示,字母a、b、c、d、e、f,既可用大写也可用小写。2、实型常量在C语言中可以用两种形式表示一个实型常量。1)小数形式即数学中常用的实数形式,由数字和小数点组成(注意:必须要有小数点),如0.123、.123、123等都是合法的实型常量。2)指数形式在数学中,一个数可以用幂的形式来表示,如2.3026可以表示为0.23026101、2.3026100、23.02610-1等形式。在C语言中,则以“e”或“E”后跟一个整数来表示以10为底的幂数。2.3026可以表示为0.23026E1、2.3026e0、23.026e-1。【注意】?字母e(或E)之前必须要有数字?e或E后面的指数必须为整数。?在字母e(或E)的前后以及数字之间不得插入空格。3、字符常量1)基本表示方式C语言中,一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量,如a,4等。【注意】?单引号中的大写字母和小写字母代表不同的字符常量。?单引号中的空格符(此处用来代表一个空格)也是一个字符常量。但不能写成(两个连续的单引号)。?字符常量只能包含一个字符。因此abc是非法的。?字符常量只能用单引号括起来,不能用双引号括起来。 字符常量在内存中占一个字节,存放的是字符的ASCII代码值。C语言规定,所有字符常量都作为整型量来处理,在计算机内部,字符对应的整数值就是ASCII码。2)转义字符常量转义字符总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCII字符,这些字符常量也必须括在一对单引号内。下表列出了C语言中的转义字符。【注意】?转义字符常量,如n101、141只代表一个字符。?反斜线后的八进制数可以不用0开头。如:101代表的就是字符常量A,141代表字符常量a。也就是说在一对单引号内,可以用反斜线后跟一个八进制数来表示一个ASCII字符。?反斜线后的十六进制数只可由小写字母x开头,不允许用大写字母X,也不能用0x开头。如:x41代表字符常量A,x6d(也可写成x6D)代表字符常量m。在一对单引号内也可以用反斜线后跟一个十六进制数来表示一个ASCII字符。表1-2-1字符形式功能字符形式功能n回车换行”双引号t横向跳若干格(代表“TAB”键)ddd一至三位八进制数代表的一个ASCII字符v竖向跳格b退格符(代表“backspace”键)xhh一至二位十六进制数代表的一个ASCII字符反斜杠字符“”单引号(撇号)字符0空值4、 字符串常量字符串常量是由双引号括起来的一串字符。在C语言中,系统在每个字符串的最后自动加入一个字符-0作为字符串的结束标志。【注意】字符常量和字符串常量是有区别的,例如:是字符常量,在内存中占一个字节;而“ABCn”、“Z”是字符串常量,前者占五个字节、后者占两个字节的存储空间,其中一个字节用来存放0。两个连续的双引号:“”也是一个字符串常量,称作“空串”。但要占一个字节的存储空间来存放0。5、 符号常量可以用一个符号名来代表一个常量,但是这个符号名必须在程序中进行特别的“指定”。例1.2.1 计算圆面积。#include“stdio.h”#define PI 3.14159 /* 定义符号名PI为3.14159 *main() float r,s; r=5.0;s=PI*r*r;printf(“s=fn”,s);程序运行结果: s=78.539749程序中用#define命令行(注意:不是语句,后面没有分号)定义PI代表一串字符3.14159,在对程序进行编译时,凡本程序中出现PI的地方,编译程序均用3.14159这一串字符来替换,本程序中,可以把PI视为3.14159的替身。这种符号名通常采用大写字母。用define进行定义时,必须用#号作为一行的开头,在#define命令行的最后不得加分号结束。把#define命令行中定义的符号名称为符号常量。二、变量其值可以改变的量称为变量。【注意】?程序中所用到的每一个变量都应该有一个名字作为标识,属于用户自定义标识符。?变量名的命名规则应遵守标识符命名规则。?程序中所要用到的变量应该先定义后使用,否则编译时报错。象常量一样,变量也有类型的区分,如整型变量、实型变量、字符型变量等。C语言在定义变量的同时说明该变量的类型,系统在编译时就能根据定义及其类型为它分配相应数量的存储空间。1、整型变量1)整型数据的分类整型常量和整型变量可以分为基本型(int)、短整型(short int)、长整型(long int)和无符号型(unsigned)四种,其所占用的字节数和数值范围如表1-2-2所示。表中方括号内的单词可写也可不写,各单词的先后次序无关紧要。单词signed用来说明“有符号”,不写signed也隐含为有符号。表1-2-2类 型 名 称占用字节数数 值 范 围signedint2-3276832767signed short int2-3276832767signed long int4-21474836482147483647unsigned int2065535unsigned short int2065535unsigned long int404294967295若要表示一个长整型常量,则应该在一个整型常量后面加一个字母后缀l或L,这些常量在内存中占四个字节。【注意】一个足够大的数,如465356,虽然其面值是在长整型数的范围内,但由于数字后面未加后缀字母L,因此并不能代表一个长整型数。无论是短整型还是长整型数,都被识别为有符号整数,无符号整数在数字的末尾应该加上字母后缀u或U,若是长整型无符号整数常量,则应该加后缀lu或LU。注意:无符号常量不能表示成小于0的负数,例如:-200U是不合法的。2)整型变量的定义整型变量在使用前必须定义,其定义格式如下: int a;/*定义一个基本型整型变量a*/long int b; /*定义一个基本型整型变量b*/【注意】?C语言规定,可以在定义变量的同时给变量赋初值称为变量初始化。如:int i=1,j=0,k=2;?个定义语句必须以一个“;”号结束。在一个定义语句中也可以同时定义多个变量,变量之间用逗号隔开。2、实型变量 C语言中实型变量分为单精度型和双精度型两类,分别用类型名float和double进行定义。计算机系统为float类型的变量分配4个字节的存储单元,为double类型的变量分配8个字节的存储单元。【注意】?实型的变量只能存放实型数,不能用整型变量存放一个实数,也不能用实型变量存放一个整数。?在程序中一个实数可以用小数形式表示,也可以用指数形式表示。但在内存中,实数一律是以指数形式存放的。?在计算机内存中可以精确地存放一个整数,但整型数值的存放范围较小;使用实型数的范围大,但往往存在误差。 ?可以给实型变量赋初值,如:float a=1.5,b=0.0;3、字符变量C语言中,字符变量用关键字char进行定义;在定义的同时可以赋初值。字符变量在内存中占一个字节,字符变量可以存放ASCII字符集中的任何字符。所以字符变量可以作为整型变量来处理,可以参与对整型变量所允许的任何运算。例如:char c1,c2,c3;int k=5;c1=1;c1+;c2=A;c3=(c2+32+k)%25;三、练习I.选择题:1.C语言中最简单的数据类型包括( )(97-4-21题) A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型2.以下选项中不属于C语言类型的是( )(02年4月第19题)A)signed short int B)unsigned long int C)unsigned int D)long short3.C语言提供的合法的数据类型关键字是( )(97-9-21题、98-4-21题) A)Double B)short C)integer D)Char4.C语言提供的合法的数据类型关键字是( )(01年4月第18题)A)swicth B)char C)Case D)default5.在C语言中,合法的长整型常数是( )(97-9-22题、01-9-16题)A)0L B)4962710 C)0.054838743 D) 216D6.在C语言中,不合法的整型常数是( )(99-9-17题)A)32768 B)0 C)037 D)0xAF7.以下选项中可作为C语言合法常量的是(05-4-12题)A)-80.B)-080C)-8e1.0D)-80.0e8.以下选项中可作为C语言合法整数的是( )(03-9-12题)A)10110BB)0386C)0XffaD)x2a29.在C语言中,合法的实型常数是( )( )(02-9-12题、04-4-13题)A)5E2.0 B)E-3 C).2E0 D)1.3EA)1.2E0.5B)3.14159EC).5E-3D)E1510.以下选项中,不能作为合法常量的是(05-4-15题)A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e011.字符(char)型数据在微机内存中的存储形式是( )(95-9-35题) A)反码 B)补码 C)EBCDIC码 D)ASCII码12.设有语句char a=72;则变量a( )(94-4-23题、00-9-29题)A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法13.已定义c为字符型变量,则下列语句中正确的是( )(03-9-31题) A)c=97;B)c=“97”;C)c=97;D)c=“a”;14.在C语言中,合法的字符常量是( )( )(97-9-24题、01-9-18题、98-4-22题)A)t B)A C)65 D)A A)084 B)x43 C)ab D)“0”15.在C语言中,非法的字符常量是( )(01-9-34题)A)t B)17 C) n D)xaa16.下列选项中不正确的转义字符是( )(98-9-21题) A) B) C)074 D)0 E)xaa F)t17.已定义ch为字符型变量,则以下赋值语句中错误的是( )(03-9-25题) A)ch=;B)ch=62+3;C)ch=NULL;D)ch=xaa;18.以下所列的C语言常量中,错误的是( )(01-4-17题) A)0xFF B)1.2e0.5 C)2L D)7219.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量101是( )(02-9-14题) A)字符A B)字符a C)字符e D)非法的常量20.下列变量定义中合法的是( )(00-4-19题)A)short _a=1-.1e-1; B)double b=1+5e2.5; C)long do=0xfdal;D)float 2_and=1-e-3;21.16位C编译系统中,若定义long a;则能给a赋40000的正确语句( )(02-4-21题)A)a=20000+20000;B)a=4000*10; C)a=30000+10000; D)a=4000L*10L;第三节运算符和表达式一、基本的算术运算符1.算术运算符组成: +、-、*、/、加、 减、 乘、 除、 求余运算符【说明】?这些运算符需要两个运算对象,称为双目运算符。?除求余运算符外,运算对象可以是整型,也可以是实型。?求余运算符的运算对象只能是整型。在“”运算符左侧的运算数为被除数,右侧的运算数为除数,运算结果是两数相除后所得的余数。当运算量为负数时,符号与被除数相同。例如17-3的结果为2,-194的结果为-3。?“+”和“-”也可用作单目运算符,运算符必须出现在运算量的左边。【注意】?双目运算符两边运算数的类型必须一致才能进行操作。所得结果的类型与运算数的类型一致。例如1.0/2.0运算结果为0.5;1/2运算结果为0。?如果双目运算符两边运算数的类型不一致,如一边是整型数,一边是实型数时,系统将自动把整型转换为实型数,使运算符两边的类型达到一致后,再进行运算。?在C语言中,所有实型数的运算均以双精度方式进行。若是单精度数,则在尾数部分补0,使之转化为双精度数。2.运算符的优先级、结合性和算术表达式1)算术运算符的优先级单目 双目 ( )、 +、 -、 *、 、 、 +、 - 同级 同级 同级 高 - 低 优 先 级2)算术运算符和圆括号的结合性以上所列的运算符中,只有单目运算符“-”和“+”的结合性是从右到左,其余运算符的结合性都是从左到右。3)算术表达式用算术运算符和一对圆括号将运算量连接起来的、符合C语法的表达式称为算术表达式。运算对象可以是常量、变量和函数等。【注意】?在算术表达式中,可使用多层圆括号。运算时从内层圆括号开始,由内向外依次计算表达式的值。?在算术表达式中,若包含不同优先级的运算符,则按运算符的优先级别由高到低进行,若表达式中运算符的级别相同,则按运算符的结合方向进行。 二、赋值运算符和赋值表达式1.赋值运算符和赋值表达式 在C语言中,“=”号称为赋值运算符,由赋值运算符组成的表达式称为赋值表达式,形式为: 变量名=表达式。【注意】?赋值运算符不同于数学中“等于号”,不是等同的关系,而是进行“赋予”的操作。?赋值号的左边必须是一个代表某一存储单元的变量名,且只能是变量不能是常量或表达式。赋值号的右边必须是C语言中合法的表达式。赋值运算的功能是先求出右边表达式的值,然后把此值赋给等号左边的变量,如a=5+4就是先计算出5+4的值为9,再将9赋给变量a。?赋值表达式x=y的作用是,将变量y所代表的存储单元中的内容赋给变量x所代表的存储单元,x中原有的数据被替换掉;赋值后,y变量中的内容保持不变。?在C语言中,“=”号被视为一个运算符,a=19是一个表达式,而表达式应该有一个值,C语言规定最左边变量所得到的新值就是赋值表达式的值。?赋值运算符的优先级别只高于逗号运算符,且具有自右向左的结合性。2.复合的赋值表达式在赋值运算符之前加上其它运算符可以构成复合赋值运算符,其中与算术运算有关的复合运算符是:+=、-=、*=、/=、=等。表达式n+=1的运算规则等价于n=n+1,表达式n*=m+3的运算规则等价于n=n*(m+3)。【注意】?两个符号之间不可以有空格?复合赋值运算符的优先级与赋值运算符的优先级相同。三、自加(+)、自减(-)运算符自加运算符“+”和自减运算符“-”的运算结果是使运算对象的值增l或减1。如i+,相当于i=i+1;i-,相当于i=i-1。因此,自加或自减运算本身也是一种赋值运算。【注意】?+、-运算符是单目运算符,运算对象可以是整型变量也可以是实型变量,不能是常量和表达式,因此,如+3、(i+j)-等都是不合法的。?+(或-)在变量后面,先取变量原值作为表达式的值,再使变量的值增1(或减1);+(或-)在变量前面,先使变量的值增1(或减1),再取变量新值作为表达式的值,具体情况见下表(设有如下定义:int a=2;)。表达式表达式值变量a的值a+23+a33a-21-a11?+和-运算符的结合方向是“自右至左”。例如有一表达式-i+,负号运算符和自加运算符优先级相同;结合方向“自右至左”,即相当于对表达式-(i+)进行运算。如果需要输出表达式-i+的值,则应先取出i的值使用,输出-i+的值-3,然后使i增值为4。四、逗号运算符和逗号表达式 “,”是C语言提供的一种特殊运算符,用逗号将表达式连接起来的式子称为逗号表达式。逗号表达式的一般形式为:表达式1,表达式2,表达式n【说明】?逗号运算符的结合性为从左到右。即,先计算表达式1,最后计算表达式n。最后一个表达式的值就是此逗号表达式的值。例: 设有定义int a=3,b=4; 则表达式a+b,a-b,a-的值为3?在所有运算符中,逗号运算符的优先级别最低。五、关系运算1.C语言中的逻辑值在C语言中,逻辑值只有两个, “真”和“假”,其中用非零值来表示“真”,用零表示“假”。因此,对于任意一个表达式,如果值为0时,就代表一个“假”值;只要值是非零,无论是正数还是负数,都代表一个“真”值。2.关系运算符C语言提供了6种关系运算符:(小于) (大于) = (大于或等于) = (等于) !=(不等于)-? 相 同【注意】?由两个字符组成的运算符之间不可以加空格。关系运算符是双目运算符,具有自左至右的结合性。?由关系运算符组成的表达式,称为关系表达式。关系运算符两边的运算对象可以是C语言中任意合法的表达式。3.关系表达式及关系表达式的值关系运算的结果得一个整数值:0或1。用零代表“假”,用非零代表“真”。例如,若a=10,b=16,表达式a=b为“假”,值为0;若a=10,b=6时,表达式a=b为“真”,值为1。六、逻辑运算1.逻辑运算符C语言提供了三种逻辑运算符: & 逻辑“与” | 逻辑“或” ! 逻辑“非” 【说明】?&和|是双目运算符,!是单目运算符,应该出现在运算对象的左边。逻辑运算符具有自左向右的结合性.?逻辑运算符的优先级次序是:!(逻辑非)级别最高,&(逻辑与)次之,|(逻辑或)最低。?逻辑运算的对象可以是C语言中任意合法的表达式。2.逻辑表达式和逻辑表达式的值由逻辑运算符和运算对象所组成的表达式称为逻辑表达式。逻辑表达式的运算结果或者为1(“真”),或者为0(“假”)。由逻辑运算符组成的逻辑表达式在运算时,&(与)运算相当于“乘”运算,|(或)运算相当于“加”运算。以a&b为例,其运算规律如下表:a取值b取值&运算|运算0000010110011111“非”运算规律:对“假”取非,结果为“真” 对“真”取非,结果为“假”【注意】?数学关系式0x10表示x的值在大于0、小于10的范围内。但在C语言中不能用0x10这样一个关系表达式,只有采用C语言提供的逻辑表达式Ox&xb?7:6的值为6八、可对字符量进行的运算?在C程序中,字符量可参与任何整数运算。例如:B-A=66-65=1 a+1=97+1=98=b?利用算术运算很容易把大写字母转换成小写字母或把小写字母转换成大写字母。例如:A+32=65+32=97=a b-32=98-32=66=B?可以通过算术运算把数字字符转换为整数值或把一位整数转换成数字字符。例如:9-0=57-48=9 3-0=51-48=3 9+0=9+48=57=9 4+0=4+48=52=4 【注意】要分清诸如整数9和字符9的区别。整数9在程序中直接写成9;字符9在程序中用9表示,它的值是57。?在C语言中,字符量也可以进行关系运算。如:a.圆括号、函数参数表数组元素下标指向结构体成员结构体成员14!+、-+-*&(类型名)sizeof逻辑非按位取反自加1、自减1求正求负间接运算符求地址运算符强制类型转换求所占字节数单目运算13*、/、%乘、除、整数求余双目算术运算12+、-加、减双目算术运算11左移、右移移位运算10、=小于、小于等于、大于、大于等于关系运算9=、!=等于、不等关系运算8&按位与位运算7按位异或位运算6|按位或位运算5&逻辑与逻辑运算4|逻辑或逻辑运算3?:条件运算三目运算2=、+=、-=、*=、/=、%=、&=、=、|=、=赋值、运算且赋值双目运算最低1,顺序求值顺序运算其中,2、3、14的结合性为从右至左,其余为从左至右。十、练习I.选择题1.C语言中,运算对象必须是整型数的运算符是( )(96-9-22、97-4-22、00-9-17)A)% B)/ C) D)! E) F)*G)= H)%= I)=2.假定有以下变量定义:int k=7,x=12;则能使值为3的表达式是( )(99-4-18题)A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)3.设有语句:int a=3;则执行了语句a+=a-=a*a;后,变量a的值是( )(94-4-21题)A)3 B)0 C)9 D)-124.设有语句:int a=12;则执行了语句a+=a-=a*a;后,变量a的值是( )(95-9-22题)A)552 B)264 C)144 D)-2645.设有语句:int x=10;则执行了语句x+=x-=x-x;后,变量x的值是( )(98-9-25题)A)10 B)20 C)40 D)30 6.以下程序的输出结果是( )(02-9-20题) main() int k=2,i=2,m;m=(k+=i*=k);printf(“%d,%dn”,m,i);A)8,6 B)8,3 C)6,4 D)7,47.下列关于单目运算符+、-的叙述中正确的是( )(03-4-17题)A)它们的运算对象可以是任何变量和常量B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量D)它们的运算对象可以是char型变量、int型变量和float型变量8.设有以下定义,则下面语句中错误的是( )(04-4-16题)int a=0;double b=1.25;char c=A;#define d 2A)a+;B)b+;C)c+;D)d+;9.若有说明和语句:int a=5;a+;则表达式a+的值是( )(97-9-25题)A)7 B)6 C)5 D)410.以下程序的输出结果是main() int i=10,j=1;printf(“%d,%dn”,i-,+j);( )(94-4-12题)A)9,2 B)10,2 C)9,1 D)10,1main() int a=12,b=12;printf(“%d%dn”,-a,+b);( )(97-4-26题)A)10 10 B)12 12 C)11 10 D)11 13main() int x=023;printf(“%dn”,-x);( )(01-9 -21题、03-4-25题)A)17 B)18 C)23 D)24main() int x=10,y=10;printf(“%d %dn”,x-,-y);( )(96-9-28题)A)10 10 B)9 9 C)9 10 D)10 9main() int i=010,j=10;printf(“%d,%dn”,+i,j-);( )(99-4-21) A)11,10 B)9,10 C)010,9 D)10,911.设有int x=11;则表达式(x+*1/3)的值是( )(00-4-16题)A)3 B)4 C)11 D)1212.设有语句:int a=5;则执行了语句a*=a/=a+;后,变量a的值是( )(01-4-20题、01-9-23题)A)2B)1C)40D)313.有以下程序(04-9-16题) main() int m=3,n=4,x; x=-m+; x=x+8/+n; printf(%dn,x); 程序运行后的输出结果是 A)3 B)5 C)-1 D)-2 14.有以下程序(04-9-17题) main() char a=a,b; print(%c,+a); printf(%cn,b=a+); 程序运行后的输出结果是 A)b,b B)b,c C)a,b D)a,c 15.若已定义t为double类型,则表达式t=1,t+5,t+的值是( )(98-4-26题)A)1 B)6.0 C)2.0 D)1.016.以下程序的输出结果是( )(96-4-24题)main() int x=100,y=200;printf(“%d”,(x,y); A)200 B)100 C)100 200 D)输出格式符不够,输出不确定的值17.以下程序的输出结果是( )(97-4-25题)main() int x=10,y=3,z;printf(“%dn”,z=(x%y,x/y);A)1 B)0 C)4 D)318.设x,y,z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为( )A)4 B)16 C)32 D)52(99-4-16题)19.执行下面程序中的输出语句后,a的值是( )(96-9-31题) main() int a;printf(“%dn”,(a=3*5,a*4,a+5);A)65 B)20 C)15 D)1020.以下选项中,与k=n+完全等价的表达式是( )(02-9-23题)A)k=n,n=n+1 B)n=n+1,k=n C)k=+n D)k+=n+121.如果下面的变量都是int类型,则输出结果是( )(94-4-11题)main() int sum=pad=5;pad=sum+,pad+,+pad;printf(“%dn”,pad);A)7 B)6 C)5 D)422.以下程序的输出结果是( )(00-9-21题)main() int y=3,x=3,z=1;printf(“%d %dn”,(+x,y+),z+2);A)3 4 B)4 2 C)4 3 D)3 323.下列运算符中优先级最高的运算符是( )(98-4-42题) A)=y)&(y=z)B)(x=y)AND(y=z)C)(x=y=z)D)(x=y)&(y=z)26.能正确表示a10或a0的关系表达式是( )(97-9-33题、00-9-22题)A)a=10 or a=10|a=10|a=10&a=0|b=0)&(a0|b=0&b=0)|(a0&b0)&(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论