二级C语言强化班_第1页
二级C语言强化班_第2页
二级C语言强化班_第3页
二级C语言强化班_第4页
二级C语言强化班_第5页
已阅读5页,还剩277页未读 继续免费阅读

下载本文档

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

文档简介

1、 1,基本概念; 2,考点较少,不断重复; 3,注重细节;各种各种“程序程序”的概念的概念程序:程序:人们把需要用计算机完成的工作写成一条条指令,并把这些指令存储在内存中,当人们给出执行命令后,计算机就按指令顺序自动进行操作。这些可以连续执行的一条条指令的集合称为“程序”。程序设计语言的发展机器语言:CPU指令系统,由0、1序列构成的指令码组成汇编语言:用助记符号描述的指令系统 低级语言:机器语言和汇编语言 高级语言:分为面向对象的语言及面向过程的语言两种。 用汇编语言和高级语言写的程序,称为源程序。C语言即为高级语言,C语言源程序文件的扩展名为.c各种程序之间的转换汇编语言-汇编程序-机器语

2、言高级语言-编译程序-目标程序(二进制语言)-链接程序-可执行程序(二进制语言)计算机只能执行机器语言程序,对于汇编语言和高级语言源程序必须经过转换后才能被计算计算机只能执行机器语言程序,对于汇编语言和高级语言源程序必须经过转换后才能被计算机执行。机执行。真题实战真题实战1.下列叙述中错误的是A、计算机不能直接执行用C语言编写的源程序B、C程序经编译后,生成后缀为.obj的文件是一个二进制文件C、后缀为.obj的文件,经连接程序生成后缀为.Exe的文件是一个二进制文件D、后缀为.obj和.exe的二进制文件都可以直接运行2.以下叙述中错误的是A、C语言源程序经编译后生成后缀为.obj的目标程序

3、B、C程序经过编译、连接步骤之后才能形成一个真正可以执行的二进制机器指令文件C、用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D、C语言中的每条可执行语句和非执行语句最终都将转换成二进制的机器指令3.计算机能直接执行的程序是A、源程序B、目标程序C、汇编程序D、可执行程序4.C语言源程序的后缀是A、.exeB、.cC、.objD、.cp5.以下说明中正确的是、C语言比其它语言高级、C语言可以不用编译就能被计算机执行、C语言以接近英语和数学言语作为语言的表达式、C语言出现最晚,具有其它语言的一切优点以下叙述中正确的是A、C语言的源程序不必通过编译就可以直接运行B、C语言

4、中的每条可执行语句最终都将被转换成二进制的机器指令C、C程序经编译形成的二进制代码可直接执行D、C语言中的函数不可以单独进行编译1.算法的概念:算法是指为解决某个特定问题而采取的确定且有限的步骤。2.算法的五个特点有穷性:一个算法包含的步骤是有限的。即在若干个步骤后结束,并且每一步都在合理时间内完成确定性:算法中每一条指令必须有确切的含义,不能有二义性,对于相同的输入必能得出相同的执行结果。可行性:算法中指定的操作,都可以通过已经验证可以实现的基本运算执行有限次后实现。有零个或多个输入:算法都是用来处理数据对象的,通常情况下这些数据对象需要通过输入来得到有1个或多个输出:算法的目的是为了求解。

5、这些“解”只有通过输出得到。3.评价算法的标准:时间复杂度 空间复杂度 真题实战真题实战 1 算法中,对需要执行的每一步骤操作,必须给出清楚、严格的规定,这属于算法的是 A、正当性 B、可行性C、确定性D、有穷性 2 以下叙述中错误的是 A、算法正确的程序最终一定会结束 B、算法正确的程序可以有零个输出 C、算法正确的程序可以有零个输入 D、算法正确的程序对于相同的输入一定有相同的结果 参考答案:参考答案:1C 2B 牛刀小试牛刀小试 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是 A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 参考答案:参考答案

6、:B 知识点知识点 结构化程序的三种基本结构 顺序结构:执行时按顺序逐条执行,没有分支,没有转移。可由赋值语句、输入/输出语句等构成。 选择结构:根据不同的条件执行不同分支中的语句。可由if语句、switch语句等构成。 循环结构:根据各自的条件使一组语句重复执行多次或一次也不执行。可由for语句、while语句等构成。 由上述三种基本结构可以构成任意复杂的程序。由上述三种基本结构可以构成任意复杂的程序。 模块化结构:将复杂任务分解成若干个子任务,每个子任务又可分解成多个小子任务,每个小子任务只需完成一个简单的功能。在程序设计时用一个小模块实现这些功能。称这样的程序设计方法为“模块化”方法,由

7、一个个功能模块构成的程序结构为模块化结构。真题实战真题实战以下叙述中错误的是A、C语言是一种结构化的程序设计语言B、结构化程序由顺序、分支、循环三种基本结构组成C、使用三种基本结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法参考答案:参考答案:C牛刀小试牛刀小试C语言中用于结构化程序设计的三种基本结构是A、顺序结构、选择结构、循环结构B、if、 switch 、breakC、for 、while 、do-whileD、if、for、continue参考答案:参考答案:AC程序的结构和格式程序的结构和格式知识点知识点1 格式特点1)习惯用小写字母,大小写敏感;2)不使用行号,

8、无程序行概念;3)可使用空行和空格;4)常用锯齿形书写格式;2 结构特点 2.1函数与主函数函数与主函数程序由一个或多个函数组成;必须有且只能有一个主函数main();程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行; 2.2程序语句程序语句C程序由语句组成;用“;”作为语句终止符; 2.3注释注释/* */为注释,不能嵌套不产生编译代码 2.4 编译预处理命令编译预处理命令: 命令行,不是C语句真题实战真题实战1 对于一个正常运行的C程序,以下叙述中正确的是 A、程序的执行总是从main函数开始,在main函数结束 B、程序的执行总是从程序的第一个函数开始,在main函

9、数中结束 C、程序的执行总是从main函数开始,在程序的最后一个函数中结束。 D、程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束。2 以下关于函数的叙述中正确的是 A、 每个函数都可以被其他函数调用(包括main 函数) B、每个函数都可以被单独编译 C、每个函数都可以单独运行 D、在一个函数内部可以定义另一个函数3 以下叙述中正确的是 A、 C语言程序将从源程序中第一个函数开始执行 B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C、C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D、main可作为用户标识符,用以命名任意一个函数作

10、为主函数4 以下叙述中正确的是 A、 C程序的基本组成单位是语句 B、 C程序中每一行只能写一条语句 C、简单C语句必须以分号结束 (复合语句) D、 C语句必须在一行内写完 参考答案:参考答案:1A2B3C4C知识点知识点1、 标识符的概念:标识符是用来标识变量、符号常量、函数、数组、类型、标号以及一些具有专门含义的有效字符序列。通俗地讲,标识符就是一个名字。2 、标识符分为三类: 关键字 预定义标识符 用户标识符3、 标识符 3.1 组成: 只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线; 大小写敏感; 不能使用关键字; 3.2长度:最长32个字符; 3.3 命名原则: 见名

11、知意; 不宜混淆 如1与I, o与0;真题实战真题实战1.下列定义变量的语句中错误的是 A、int _int;B、double int_; C、char For; D、float US$;2.以下叙述中错误的是 A、用户所定义的标识符允许使用关键字 B、用户所定义的标识符应尽量做到“见名知意” C、用户所定义的标识符必须以字母或下划线开头 D、用户定义的标识符中大、小写字母代表不同标识3.下列不合法的用户标识符是 A、 j2_KEY B、DoubleC、 4d D、_8_4.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是: A、大写字母 B、连接符 C、数字字符 D、下划线5.可在

12、C程序中用做用户标识符的一组标识符是 A) and B) Date C) Hi D) case _2007 y-m-d Dr.Tom Bigl6.以下选项中不合法的标识符是 A、printB、FORC、 &aD、 _00 参考答案:参考答案:1D2A3C4B5A6C知识点知识点1.常量的概念:程序运行时其值不能改变的量(即常数)2.常量的分类符号常量:用标识符代表常量用标识符代表常量定义格式: #define 符号常量 常量一般用大写字母是宏定义预处理命令,不是C语句直接常量整型常量 实型常量 字符常量 字符串常量3.整型常量(三种形式):十进制整数:由数字09和正负号表示.如 123

13、,-456,0八进制整数:由数字0开头,后跟数字07表示.如0123,011十六进制整数:由0 x开头,后跟09,af,AF表示. 如0 x123,0Xff 八进制和十六进制只能是正数。 要掌握三种形式之间的转换关系。4.实型常量(实数或浮点数) 表示形式: 十进制数形式:(必须有小数点):(必须有小数点) 指数形式:(e或或E之前必须有数字;指数必须为整数)之前必须有数字;指数必须为整数) 在计算机中,实数一律是以指数形式存储的。计算机中存储整数不会出现误差,存储实型数往往存入误差。5.字符常量:用单引号单引号括起来的单个普通字符或转义字符. 6.字符串常量:用双引号双引号(“”)括起来的字

14、符序列,存储时,每个字符串尾自动加一个 0 作为字符串结束标志。 真题实战真题实战 有以下程序,其中%u表示按无符号整数输出,程序运行后的输出结果是 #include “stdio.h” main() unsigned int x=0 xFFFF; /* x的初值为16进制数 */ printf(“%un”,x); A-1B65535C32767D0 xFFFF 下列不合法的数值常量是 A、 011B、 1e1C、 8.0E0.5D、0 xabcd 参考答案:参考答案:1、B2、C 3、88C语言基本数据类型及其定义规则(变量)语言基本数据类型及其定义规则(变量)知识点知识点变量概念:其值可以

15、改变的量变量定义应遵循原则:先定义,后使用。变量的分类整型变量实型变量字符型变量注意:无字符串变量真题实战真题实战以下程序运行后的输出结果是main( ) int x=0210; printf(%Xn,x); 参考答案:参考答案:1、88基本类型数据的相互转换基本类型数据的相互转换知识点知识点doublefloatlongunsignedintchar,short低高低高转换的优先级:doublefloatlongunsignedintchar,short低高强制类型转换一般形式:(类型名)(表达式) 真题实战真题实战 以下选项中值为1的表达式是 A、 1-0B、 1-0 C、 1-0D、 0

16、-0 设有定义:float x=123.4567;,则执行下列语句 printf(%fn,(int)(x*100+0.5)/100.0); 后的输出结果是 已知字母A的ASCII码为65。以下程序运行后的输出结果为 main( ) char a,b; a=A+5-3; b=a+6-2; printf(%d %cn,a,b); 参考答案:参考答案:1、B2、123.4600003、67 G 有以下程序,程序运行后的输出结果为 main() unsigned int a; int b=-1; a=b; printf(“%u”,a); A、-1B、65535C、32767D、-32768 以下程序运

17、行后的输出结果是 main() int a,b,c; a=25;b=025;c=0 x25; printf(“%d %d %dn”,a,b,c); 参考答案参考答案:1、B2、25 21 37常见算术运算符的使用常见算术运算符的使用基本的算术运算符:、 (减法/取负) 、/、% (取余数)除法运算:C语言规定:两个整数相除,其商为整数,小数部分被舍弃。求余数运算:要求两侧的操作数均为整型整型数据,否则出错。两边运算数类型不一致:系统将自动进行转换,使两边一致后再进行运算。实型数的运算:所有实型数的运算均以双精度方式进行,若是单精度,则在尾数部分添0,转换为双精度。算术表达式的概念表达式的概念:

18、 用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合语言语法规则的式子,称为表达式。算术表达式的概念:表达式中的运算符都是算术运算符。强制类型转换表达式转换格式为: (要转换成的数据类型要转换成的数据类型)(被转换的表达式被转换的表达式)注意:强制转换类型得到的是一个所需类型的中间量,原表达式类型并不发生变化。 以下选项中,当x为大于1的奇数时,数为0的表达式为( A、x%2=1B、x/2C、x%2!=0D、x%2=0 下列isprime 函数的功能是判断形参a 是否为素数,是素数,函数返回1,否则返回0。请填空 int isprime(int a) int i; for(i=2;

19、i=a/2;i+ +) if(a%i= =0) ; ; 设有定义:int k=1,m=2; float f=7;则下列选项中错误的表达式是 A、k=k =k B、-k+ + C、k%int(f)D、k =f =m 参考答案:参考答案:1、D 2、return 0 return 13、C算术运算符的优先级顺序算术运算符的优先级顺序算术运算符的优先级算术运算符和圆括号的结合性所谓结合性是指,当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。自左至右的结合方向,称为左结合性。反之,称为右结合性。结合性是语言的独有概念。除单目运算符、赋值运算符和条件

20、运算符是右结合性外,其它运算符都是左结合性。算术运算符的结合方向是“自左至右”,即:在执行“a b + c”时,变量b先与减号结合,执行“a - b”;然后再执行加c的运算。 真题实战真题实战 表达式3.6-52+1.2+5%2 的值是_ A、4.3B、4.8C、3.3D、3.8 下列不能正确计算代数式sin2(1/2)/3值的C 语言表达式是_ A、1/3 *sin(1/2)*sin(1/2)B、sin(0.5)*sin(0.5)/3 C、pow(sin(0.5),2)/3D、1/3.0*pow(sin(1.0/2),2) 参考答案:参考答案:1、D2、A 设有定义:float a=2,b=

21、4,h=3;以下C语言表达式与代数式计算结果不相符的是 A、(a+b)*h/2B、(1/2)*(a+b)*hC、(a+b)*h*1/2D、h/2*(a+b) 参考答案:B赋值表达式的求值规则赋值表达式的求值规则赋值运算的一般形式:变量变量 = 赋值表达式赋值表达式赋值运算符的优先级只高于逗号运算符,比其它的运算符优先级都低,且具有自右向左的结合性。如:a=2+7/3赋值运算符不是数学中的“等于号”,而是进行“赋予”操作。赋值运算符左边只能是变量,不能是常量或是表达式。如a+b=c就是错误的。赋值运算符右边也可以是赋值表达式。如a=b=7+1,而a=7+1=b则是错误的。”“视作运算符,a=19

22、是一个表达式,C语言规定最左边变量中所得到的新值就是赋值表达式的值。复合赋值表达式的一般形式:变量变量 双目运算符双目运算符 = 表达式表达式 结合方向:自右向左左侧必须是变量,不能是常量或表达式( 3=x-2*y; 及 a+b=3; 都是错误的)赋值运算中的类型转换当赋值号左边的变量为短整型,右边的值为长整型时,短整型变量只能接受长整型数据低位上的两个字节的数据,高位上的数据将丢失。也就是说,右边的值不能超过短整型的数值范围。当赋值号左边的变量为无符号整型,右边的值为有符号整型时,则把内存中的内容原样复制。右边数据的范围不应超出左边变量可以接受的数据范围。同时要注意,这时负数将转换为正数。当

23、赋值号左边的变量为有符号整型,右边的值为无符号整型时,复制的机制同上,这时,若符号位为1,将按负数处理。以下叙述中错误的是A、C程序中的#include和#define均不是C语句B、除逗号运算符外,赋值运算符的优先级最低C、C程序中,j+; 是赋值语句D、C程序中,+、-、*、/、%是算术运算符,可用于整型和实型数的运算。下列能正确定义且赋初值的语句是A、 int nl=n2=10; B、char c=32;C、float f=f+1.1; D、 double x=12.3E2.5; 若变量x、y 已正确定义并赋值,下列符合C 语言语法的表达式是A、+x,y=x- B、 x+1=yC、x=x

24、+10=x+y D、 double(x)/10参考答案:参考答案:1、D2、B 3、A逗号表达式的求值规则逗号表达式的求值规则知识点知识点逗号表达式的形式:表达式:表达式1,表达式表达式2,表达式表达式n结合性:从左向右优先级:所有运算符中,逗号运算符优先级最低所有运算符中,逗号运算符优先级最低逗号表达式的值:等于表达式n的值用途:常用于循环for语句中真题实战真题实战执行以下程序后的输出结果是main()int a=10;a=(3*5,a+4); printf(a=%dn,a);自加自减运算符自加自减运算符知识点知识点自增、自减运算符只能用于变量,不能用于常量和表达式。5+、-(a+b)等都

25、是非法的。自增、自减运算符和其它运算符混合使用时,其结合性为:至右向左。自增、自减运算符,无论作为前缀(+a,-a)还是后缀( a +, a -)运算符,对于变量本身来说自增1或自减1都具有相同的效果,但对表达式来说却有着不同的值。真题实战真题实战设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是A、k+B、k+=1C、+kD、k+1 有以下程序,程序运行后的输出结果为 main( ) int x,y,z; x=y=1; z=x+ +,y+ +,+ +y; printf(%d,%d,%dn,x,y,z); A、2,3,3B、2,3,2 C、2,3,1D、2,2,1

26、 下列程序的输出结果是 main( ) int m=12, n=34; printf(%d %d, m+ +,+ +n); printf(%d %dn,n+ +,+ +m); A、 12 35 35 14B、 12 35 35 13 C、 12 34 35 14 D、 12 34 35 13 参考答案:参考答案:1、A2、C 3、A 牛刀小试牛刀小试 下列关于单目运算符+、-叙述中正确的是 A、它们的运算对象可以是任何常量和变量 B、它们的运算对象可以是char型变量和int型变量,但不能是float型变量 C、它们的运算对象可以是int型变量,但不能是double型和float型变量 D、它

27、们的运算对象可以是char型变量,int型变量和float型变量 有以下程序,程序运行后的输出结果是 main() char a=a,b; printf(“%c, ”,+a); printf(“%cn”,b=a+); A、b,bB、a,bC、b,cD、a,c 参考答案:参考答案:1、D2、C赋值表达式与赋值语句赋值表达式与赋值语句赋值语句:在赋值表达式的尾部加上一个“;”,又称为表达式语句。赋值语句必须在最后出现分号,分号是语句中必不可少的部分。任何赋值表达式都可以加上分号而成为赋值语句,C语言规定赋值号左边不能为常量或表达式。真题实战真题实战若以下选项中的变量已经正确定义,则正确的赋值语句是

28、A、x1=26.8%3; B、1+2=x2;C、x3=0 x12; D、x4=1+2=3;参考答案:参考答案:1、C数据的输出数据的输出知识点知识点字符输出函数:putchar( c )格式输出函数:printf(“格式控制串格式控制串”,输出,输出表表)格式字符、长度修饰符和附加格式字符以及它们各自的功能。在格式控制字符串中,格式说明与输出项从左到右在类型上必须一一对应匹配。在格式控制串中,格式说明与输出项的个数应相同,若格式说明明少于输出项,则多余的输出项不输出,相反,对于多余的格式将输出不定值。在格式控制串中,可以包含任意的合法字符(包括转义字符)。数据的输入数据的输入字符输入函数 :g

29、etchar( )格式输入函数:scanf(“格式控制串”,地址表)熟知各种格式字符的功能scanf函数中的输入项必须是“地址量”输入数据时,各个数据间可以用空格符、回车符或Tab 键作为分隔符除了3中所述分隔符外,还可以自己指定其它字符作为分隔符,但在输入时应输入与这些字符相同的字符。输入数据时,遇到以下情况时该数据被认为表示结束:遇到空格、Tab键或回车符按指定的宽度结束,如”%4d“,只取4列遇到非法输入。复合语句与空语句复合语句与空语句知识点知识点复合语句:用 括起来的一组语句一般形式: 数据说明部分; 执行语句部分; 空语句:由单独的分号组成真题实战真题实战以下叙述中错误的是A、C语

30、句必须以分号结束 B、复合语句在语法上被看作一条语句C、空语句出现在任何位置都不会影响程序运行D、赋值表达式末尾加上分号就构成赋值语句参考答案参考答案:1、C关系运算关系运算关系运算符= (小于或等于)(大于)(小于)=(等于)!=(不等于)关系运算的优先级关系运算符自身的优先级(=、)四个优先相同(!=、=)两个优先级相同(=、)优先级高于(!=、=)与其它运算符的优先级关系运算符的优先级低于算术运算符,但高于赋值运算符。关系表达式:用关系运算符将两个表达式连接起来,进行关系运算的式子。应避免对实数作相等或不等的判断.关系表达式的结果值为1或0。当关系表达式成立时,其结果值为1当关系表达式不

31、成立时,其值为0。 真题实战真题实战 在以下给出的表达式中,与while(E)中的E不等价的表达式是 A、(!E=0) B、(E0)|(E0) C、(E=0) D、(E!=0) 参考答案:参考答案:1、C 逻辑运算逻辑运算逻辑运算符的种类(三类):! & | 运算量: 0表示“假”,非0表示“真” 运算结果: 0表示“假”,1表示“真”逻辑运算符的优先级与结合方向 优先级(!高-&中-|低) 结合方向(自左向右)短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符 若&的左边运算结果已经为0, 则&

32、amp;右边的表达式将不再进行计算,结果总为0; 若|左边运算结果已经为1,则|右边的表达式也不再进行计算,结果总为1。 若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|10的是 A、abs(x-y)10 & x-y10 C、(x-y)10D、(x-y)*(x-y)a) |(m=ab); printf(“%d %d n”,k,m); A、0,0 B、0,1C、1,0D、1,1 参考答案:参考答案:1、C2、C条件表达式及其构成的选择结构条件表达式及其构成的选择结构条件运算符由两个符号“?”和“:”组成,要求有3个操作对象,称为三目运算符,它也是C语言中唯一的三元运算符。条

33、件表达式的一般形式为:表达式表达式1?表达式?表达式2:表达式:表达式3表达式1值为真时,取表达式2的值,表达式1的值为假时,取表达式3的值。通常情况下,表达式1可以是关系表达式或是逻辑表达式,用于描述表达式中的条件,表达式2和表达式3可以是常量、变量或表达式。条件运算符的优先级:高于赋值运算符,但是低于高于赋值运算符,但是低于关系运算符和算术运算符关系运算符和算术运算符条件运算符的结合方向:为为“自右向左自右向左”。 以下程序运行后的输出结果是 main() int x,a=1,b=2,c=3,d=4; x=(ab)?a:b; x=(ax)?x:d; printf(“%dn”,x); 有以下

34、程序段,执行该程序后,k的值是 int k=0,a=1,b=2,c=3; k=ac?c:k; A、3B、2C、1D、0 参考答案:B真题实战真题实战有以下程序,程序运行后的输出结果是main()int i=1, j=2,k=3;if(i+=1 & (+j=3 | k+=3)printf(“%d %d %dn”,i,j,k)A、1 2 3B、2 3 4C、2 2 3D、2 3 3有以下程序,程序运行后的输出结果是main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=a0?p/10:p%3); 参考答案参考答案:1、3if语句语句if语句是选择结构的一种形式,又称

35、为条件分支语句。格式为:if (expression) statementif语句的流程控制方式是:根据给定的条件进行判定,由判定的结果(真或假)决定执行给出的两种操作之一。真题实战真题实战当把以下四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是A、k%2B、k%2=1C、(k%2)!=0D、!k%2=1以下程序运行后的输出结果是main( ) int a=3,b=4,c=5,t=99;if(ba&ac)t=a; a=c; c=t;if(ac&b0 & y!=0); C、if(xy)x-D、if(ybc) printf(“%dn”,d)

36、; else if(c-1=d)=1)printf(“%dn”,d+1); elseprintf(“%dn”,d+2); 参考答案参考答案:3嵌套的嵌套的if语句语句 if - else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对真题实战真题实战在嵌套使用if语句时,C语言规定else总是A、和之前与其具有相同缩进位置的if配对B、和之前与其最近的if配对C、和之前与其最近不带else的if配对D、和之前的第一个if配对设变量 a,b,c,d和y都已经正确定义并已经赋值。若有以下if语句,该语句所表示的含义是if(ab)if(c= =d) y=0;else y=1; 参

37、考答案:参考答案:1、C 2、C 牛刀小试牛刀小试 有以下程序,程序运行后的输出结果是 main() int a=3,b=4,c=5,d=2; if(ab) if(bc)printf(“%d”,d+1); elseprintf(“%d”,+d+1); printf(“%dn”,d); A、2B、3C、43D、44 参考答案参考答案:Aswitch语句及其与语句及其与break语句构成的选择结构语句构成的选择结构switch语句及其与break语句构成的选择结构的格式switch(表达式) case E1: 语句组 1; break; case E2: 语句组 2; break; . case

38、En: 语句组 n; break; default: 语句组 ; break; 常量表达式必须是与表达式对应一致的整数、字符或枚举常量。各case语句标号的值应该互不相同。switch后的表达式通常为字符型变量,也允许是枚举型变量,其结果为相应的整数、字符或枚举常量。break语句不是一定需要加上的。在执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不再判断是否与之匹配,直到遇到break语句才停止执行,退出break语句。因此,若想执行一个case分支后立即跳出switch语句,就必须在此分支的后面添加一个break语句。switch语句及其与br

39、eak语句构成的选择结构的执行过程首先计算switch后面圆括号表达式的值,然后用其结果依次与各个case的常量表达式相比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;若圆括号中表达式的值与所有的case后面的常量表达式的值都不相同,则执行default后面的语句n+1,执行后退出switch语句,退出后程序流程转向开关语句的下一个语句。 真题实战真题实战 有以下程序,程序运行后的输出结果是 #include stdio.h main() int k=5,n=0; do switch(k)case 1:

40、 case 3: n+=1; k-;break;default: n=0;k-;case 2: case 4: n+=2;k-;break; printf(%d,n); while (k0 & n0)case 1:switch(b0) case 1: printf(); break; case 2: printf(!); break; case 0: switch(c=5) case 0: printf(*); break; case 1: printf(#); break; case 2: printf($); break; default : printf(&); prin

41、tf(n); #& 以下程序运行后的输出结果是2,1 main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y)case 0: a+; break; case 1: b+; break; case 2: a+;b+;break; printf(%d %dn,a,b); 有以下程序,程序运行后的输出结果是 main() int a=15,b=21,m=0; switch(a%3) case 0: m+;break; case 1: m+; switch(b%2)default: m+; case 0: m+; break; printf

42、(”%dn”, m); A、1B、2C、3D、4语句标号和语句标号和GOTO语句语句知识点知识点语句标号标号可以是任意合法的标识符,在标识符后面加上一个冒号,如flag1: stop0:就形成了一个语句标号。通常,标号用作goto语句的转向目标。如:goto stop;stop: 语句goto语句一般形式为:goto语句标号语句标号;功能:无条件转移语句说明:不能用整数作标号只能出现在goto所在函数内,且唯一只能加在可执行语句前面限制使用goto语句While语句语句while语句的一般形式:while( 表达式表达式 ) 循环体语句组;循环体语句组;while后的表达式,可以是C语言中任意

43、合法的表达式,通常为关系表达式或逻辑表达式,但也可以是其它运算表达式当表达式值的值为零时,表示条件为假;表达式值为非零时,表示条件为真。循环体可以是一条简单可执行语句,也可以是复合语句。while语句的执行流程计算“表达式”,根据其结果判断循环是否继续如果表达式值为非0,执行循环体语句组,执行完毕后,再计算表达式的值,根据其值作出判断。如果表达式的值为0,则结束循环,执行执行while语句的下一条语句。如果第一次计算时表达式的值就为0,则循环语句一次也不被执行,流程直接跳过while语句,执行下一条语句。真题实战真题实战有以下程序,执行后的输出结果是A、1B、2C、4D、死循环main( )

44、int k=5;while(-k) printf(%d,k-=3);printf(n);有下列程序,若运行时从键盘输入:18,11,则程序的输出结果是 main( ) int a,b;printf(Enter a,b: ); scanf(%d,%d,&a,&b);while(a!=b) while(ab)a-=b;while(ba)b-=a;printf(%3d%3dn,a,b);参考答案:参考答案:1、A2、1 1 牛刀小试牛刀小试 有以下程序,程序执行后的输出结果是 main( ) int x=0,y=5,z=3; while(z-0 & +x5) y=y-1; p

45、rintf(%d,%d,%dn,x,y,z); 参考答案:参考答案:1、3,2,-1Do while循环结构循环结构do-while语句的格式do 循环体语句组; while(表达式) ;(1)do是C语言的关键字,必须和while 联合使用。(2)循环由do开始,至while结束。while后的分号“;”不能丢,它表示do-while语句的结束。do-while循环体的执行过程执行循环体语句组。计算“循环继续条件”表达式。如果“循环继续条件”表达式的值为非 0(真),则转向(1)继续执行;否则,转向(3)。执行do-while的下一条语句。do-while循环语句的特点:先执行循环体语句组,

46、然先执行循环体语句组,然后再判断循环条件。后再判断循环条件。 有以下程序 main() int s=0,a=1,n; scanf(%d,&n); do s+=1;a=a-2; while(a!=n); printf(%dn,s); 若要使程序的输出值为2,则应该从键盘给n输入的值是 A、-1B、-3C、-5D、0 参考答案:参考答案:1、Bfor语句的一般形式语句的一般形式知识点知识点for语句的格式for(表达式表达式1;表达式;表达式2;表达式;表达式3) 循环体语句组;循环体语句组;for循环的执行过程求解“变量赋初值”表达式。求解“循环继续条件”表达式。如果其值非0,执行(3)

47、;否则,转至(4)。执行循环体语句组,并求解“循环变量增值”表达式,然后转向(2)。执行for语句的下一条语句。 真题实战真题实战 设变量已正确定义,则以下能正确计算f=n!的程序段是A、f=0;for (i=1;i=n;i+) f*=i;B、f=1;for(i=1;i1;i+) f*=i;D、f=1;for(i=n;i=2;i-) f*=i;有以下程序,程序运行时,从键盘输入:0 1,程序执行后的输出结果是main()char k; int i;for(i=1;i=0;i-)t*=i;printf(“%dn”,t);参考答案:参考答案:1、0 牛刀小试牛刀小试 有以下程序,程序运行后的输出结

48、果是 main() int k=4,n=0; for(;nk;) n+; if(n%3!=0)continue; k-; printf(%d,%dn,k,n); A、1,1 B、2,2 C、3,3 D、4,4 参考答案:参考答案:1、C嵌套循环结构嵌套循环结构1 循环语句的循环体内,又包含另一个完整的循环结构,叫做循环的嵌套。三种循环可互相嵌套,层数不限外层循环可包含两个以上内循环,但不能相互交叉嵌套循环的跳转禁止: 从外层跳入内层 跳入同层的另一循环 向上跳转2 循环的嵌套可以有多层,但是第一层循环在逻辑上必须是完整的。有以下程序,程序运行后的输出结果是main()int i,j;for(i

49、=1;i4;i+)for(j=i;j4;j+)printf(%d*%d=%d ,i,j,i*j);printf(n);A、111122133 214226 319B、111122133 224236 339C、111 122224 132236339D、111 212224 313 326339有以下程序,程序运行后的输出结果是#include stdio.hmain()int a44=1,4,3,2,8,6,5,7, 3,7,2,5,4,8,6,1,i,j,k,t;for(i=0;i4;i+)for(j=0;j3;j+)for(k=j+1;kaki) t=aji,aji=aki,aki=t;

50、for(i=0;i4;i+)printf(%d,aii);A、1,6,5,7 B、8,7,3,1C、4,7,5,2 D、1,6,2,1参考答案:参考答案:1、B2、A 牛刀小试牛刀小试 有以下程序,程序运行后输出结果是_ main() int i,n=0; for(i=2;i5;i+) doif(i%3)continue;n+; while(!i); n+; printf(n=%dn,n); 参考答案参考答案:1、n=4break在循环结构中的应用在循环结构中的应用知识点知识点break语句的使用说明:只能在循环体内和switch语句体内使用break语句。当break出现在循环体中的swit

51、ch语句体内时,则执行break后,跳出本层循环体。注意:break语句使流程跳出本层循环体,从而提前结束本层循环。break语句只能跳出一层循环,即从当前循环层中跳出。如果要跳出多层循环,可使用goto语句。真题实战真题实战下列叙述中正确的是A、break 语句只能用于switch 语句B、在switch 语句中必须使用defaultC、 break 语句必须与switch 语句中的case 配对使用D、在switch 语句中,不一定使用break 语句有以下程序,程序执行后的输出结果是main( ) int a=1,b;for(b=1;b=8) break;if(a%2=1)a+=5; c

52、ontinue;a=3;printf(%dn,b);A、3B、4C、5D、6参考答案:参考答案:1、D2、B 牛刀小试牛刀小试 以下程序运行后的输出结果是 main() int i,m=0,n=0,k=0; for(i=9;i=11;i+) switch(i/10) case 0 : m+;n+;break; case 10 :n+;break; default : k+;n+; printf(%d %d %d,m,n,k); 参考答案:参考答案:1、1 3 2continue在循环结构中的应用在循环结构中的应用 continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着

53、再一次进行循环的条件判断。continue语句只是结束循环结构中的本次本次循环,并非跳出整个循环过程。对while和do-while语句,遇continue语句后,转向执行while之后圆括号内的条件表达式的判断。执行continue语句并没有使整个循环终止。真题实战真题实战有以下程序,程序执行后的输出结果是main( ) int i,j,x=0;for(i=0;i2;i+) x+;for(j=0;j=3;j+) if(j%2) continue;x+;x+;printf(x=%dn,x);A、x=4B、x=8C、x=6D、x=12参考答案:参考答案:1、B字符型常量的定义字符型常量的定义知识

54、点知识点字符常量:是用一对单引号括起来的一个字符单引号中的大写字母和小写字母代表不同的字符常量,如A和a是不同的字符常量。字符常量只能包含一个字符。在C语言中,字符常量具有数值,这个值就是该字符在规定的字符集中的ASCII代码值。在ASCII字符集中的256个字符的值为0255。字符常量在机器内以整型常量的形式存放,占一个字节。因此,字符常量与整型量等价。真题实战真题实战已知字符A的ASCII码值为65,以下语句的输出结果是_char ch=B;printf(“%c%dn”,ch,ch)参考答案:参考答案:1、B 66字符型常量的运算字符型常量的运算字符型常量可参与任何整数运算和关系运算。 字

55、符型常量的数值是它们的ASCII码值,字符型常量的运算都是以它们的ASCII代码值为进行运算。真题实战真题实战已知大写字母A的ascii码是65,小写字母a的ascii码是97。以下不能将变量c中的大写字母转换为对应的小写字母的语句是A、c=(c-A)%26+aB、 c=c+32C、 c=c-A+aD、c=(A+c)%26-a参考答案:参考答案:1、D 牛刀小试牛刀小试 数字字符0的ASCII值为48,若有以下程序,程序运行后的输出结果是 main() char a=1,b=2; printf(“%c”,b+); printf(“%dn”,b-a); A、3,2B、50,2C、2,2D、2,5

56、0 有以下程序,执行后的输出结果是 main() char a; a=H-A+0; printf(%cn,a); 参考答案:参考答案:1、D2、7转义字符的定义转义字符的定义转义字符常量:是以一个“”开头的字符序列。转义字符常量只代表一个字符。反斜线后的八进制数可以不用0开头。反斜线后的十六进制数只可由小写字母x开头,不允许用大写字母X,也不能用0 x开头。C语言规定,被一对单引号括起来的字符不允许是单引号或反斜杠,即或真题实战真题实战以下合法的字符常量是A、 x13B、081C、 65D、 “n”已经定义ch为字符型变量,以下赋值语句中错误的是A、ch=; B、ch=62+3;C、ch=NU

57、LL; D、ch=xaa;参考答案:参考答案:1、A2、A字符型变量的定义字符型变量的定义知识点知识点字符型变量的说明格式:char 变量名表;字符变量在内在中占一个字节,只能存放一个字符,可以是ASCII字符集中的任何字符。当把字符放入一个字符变量中时,字符变量中的值就是该字符的ASCII码值。在合法的取值范围内,字符型变量与整型变量可以通用。下列程序的功能是输入任意整数给n 后,输出n 行由大写字母A 开始构成的三角形字符阵列图形。例如,输入整数5 时(注意:n 不得大于10),程序运行结果如下,请填空完成该程序。main( )int i,j,n; char ch=A;scanf(%d,&

58、amp;n);if(n11)for(i=1;i=n;i+ +)for(j=1; j=n-i+1;j+ +) printf(%2c,ch); ; ;else printf(n is too large!n)printf(n);A B C D EF G H IJ K LM NO参考答案参考答案1、ch+ printf(“n”); 牛刀小试牛刀小试 有以下程序编译时出现错误,以下叙述中正确的是 main( ) char a,b,c,*d; a=; b=xbc; c=0 xab; d=“0127”; printf(“%c%c%cn”,a,b,c,*d); A、程序中只有a=;语句不正确 B、b=xbc

59、;语句不正确 C、d=“0127”;语句不正确 D、a=;和c=0 xab;语句都不正确 参考答案:参考答案:1、D字符串常量的定义及其与字符型常量的区别字符串常量的定义及其与字符型常量的区别字符串常量是由双引号括起来的一串字符。在C语言中,系统在每个字符串的最后都自动加入一个字符“0”作为字符串结束的标志。字符串常量与字符常量的区别使用的引号的类型不同容量不同:字符常量只能是单个字符,字符串常量则可以含一个或多个字符。占用内存空间不同:字符常量占一个字节的内存空间,字符串常量中的内存字节数等于字符串中字节数加1。增加的一个字节用来存放字符0作为字符串的结束标志。C语言中没有专门存放字符串的字

60、符串变量,字符串如果需要放在变量中,应该放在一个字符型数组中,即用一个字符型数组来存放一个字符串。 真题实战真题实战 有以下程序,程序运行后的输出结果是 main( ) char a7=a00a0 0; int i,j; i=sizeof(a); j=strlen(a); printf(%d %dn,i,j); A、2 2B、7 6C、7 2D、6 2 参考答案:参考答案:1、C用用printf和和scanf函数对字符进行输出和输入函数对字符进行输出和输入用printf函数输出字符时,只须使用格式说明%c,可以在格式字符前加一个整数,用来指定输出字符的宽度。用scanf函数输入字符时,也要使用格式说明%c.当使用的格式说明%c一个紧接一个时,在输入字符时,字符之间没有间隔符,这时空格、回车符和横向跳格符都将按字符输入。当交叉输入数值和字符数据时,即在输入项表中交替出现字符变量和数值变量:例如: int a1,a2;char c

温馨提示

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

评论

0/150

提交评论