全国计算机等级考试_二级C_培训义.doc_第1页
全国计算机等级考试_二级C_培训义.doc_第2页
全国计算机等级考试_二级C_培训义.doc_第3页
全国计算机等级考试_二级C_培训义.doc_第4页
全国计算机等级考试_二级C_培训义.doc_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

88全国计算机等级考试二级C培训讲义 第一章 程序设计和C语言本章考纲:1. 程序的构成,main函数和其他函数。2. 头文件,数据说明,函数的开始和结束标志以及程序中的注释。3. 源程序的书写格式。4. C语言的风格。本章考试方式:以笔试和上机两种形式考核。笔试中常考查(1)、(2)、(4),分值约占2%。上机程序改错中常考查(3),抽中几率约为8%。本章知识要点:1. 了解程序设计的基本概念2. 熟记计算机语言的分类3. 重点掌握算法的概念及特性4. 重点掌握C程序构成及书写格式5. 重点掌握上机步骤及编程环境本章内容:一、 程序:是指可以被计算机连续执行的一条条指令的集合,是人与机器进行对话的语言。用程序设计语言编写程序的过程称为程序设计。二、 计算机语言是人与计算机进行交流的工具。分为机器语言、汇编语言和高级语言。三、 算法:是为解决一个问题而采取的方法和步骤,可以采用伪代码、流程图和N-S图等进行算法描述。算法具有:有穷性、确定性、有效性、零个或多个输入、一个或多个输出的特性。四、 三种基本的控制结构:顺序、选择、循环结构。五、 C程序构成及书写特点C程序的基本单位是函数。一个C程序由一个或多个函数构成,有且只能有一个主函数(main)。不论main函数在整个程序中的位置如何,C程序的执行总是从main开始到main结束,各函数之间可以相互调用,但其他函数不能调用主函数。函数的构成形式:编译预处理命令返回值类型 函数名称(形参类型 形参)变量定义 执行语句 /*注释*/ 或者 /注释执行语句书写格式:标识符区分大小写,一般变量采用小写,符号常量采用大写。C语句用分号(;)表示结束。但是在预处理命令、函数头、花括号之后不能加分号。六、 上机步骤及开发环境1. 编辑源程序,源程序以“.c”作为扩展名2. 编译,将源程序转换成目标代码,形成“.obj”的二进制文件3. 连接,将目标文件和库函数及其他文件连接,形成可执行的二进制文件“.exe”4. 运行开发环境:VC6.0历年考试真题:1、下列叙述中错误的是( D )2006年4月选择第44题A. C语言源程序经编译后生成后缀为.obj的目标程序B. C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令2、下列叙述中错误的是(B)2006年4月选择第45题A. 算法正确的程序最终一定会结束B. 算法正确的程序可以有零个输出C. 算法正确的程序可以有零个输入D. 算法正确的程序对于相同的输入一定有相同的结果3、下列叙述中错误的是(A)2006年9月选择第11题A. 一个C语言程序只能实现一种算法B. C程序可以由多个程序文件组成C. C程序可以由一个或多个函数组成D. 一个C函数可以单独作为一个C程序文件存在4、下列叙述中正确的是(D)2006年9月选择第12题A. 每个C程序文件中都必须要有一个main()函数B. 在C程序中main()函数的位置是固定的C. C程序中所有函数之间都可以相互调用,与函数所处位置无关D. 在C程序的函数中不能定义另一个函数5、在算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的(C)2007年4月选择第11题A. 正当性B. 可行性C. 确定性D. 有穷性6、下列叙述中错误的是(D)2007年4月选择第12题A. 计算机不能直接执行用C语言编写的源程序B. C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C. 后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D. 后缀为.obj和.exe的二进制文件都可以直接运行7、下列叙述中错误的是(C)2007年4月选择第14题A. C语言是一种结构化程序设计语言B. 结构化程序由顺序、分支、循环3种基本结构组成C. 使用3种基本结构构成的程序只能解决简单问题D. 结构化程序设计提倡模块化的设计方法8、对于一个正常运行的C程序,下列叙述中正确的是(A)2007年4月选择第15题A. 程序的执行总是从main函数开始,在main函数结束B. 程序的执行总是从程序的第一个函数开始,在main函数结束C. 程序的执行总是从main函数开始,在程序的最后一个函数中结束D. 程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数结束9、C语言源程序名的后缀是(B)2007年9月选择第11题A. .exeB. .cC. .objD. .cp10、下列叙述中正确的是(C)2007年9月选择第14题A. C语言程序将从源程序中第一个函数开始执行B. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C. C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D. main可作为用户标识符,用以命名任意一个函数作为主函数第二章 数据类型及运算本章考纲:1. C的数据类型(基本类型、构造类型、指针类型、空类型)及定义方法。2. C运算符的种类、运算优先级和结合性。3. 不同类型数据间的转换与运算4. C表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。本章考试方式:以笔试和上机两种形式考核。笔试中多出现在选择题第13至18题,填空题第6、7题,分值约占10%。上机考中,(1)、(3)和(4)是考查重点,在3种题型中均有体现,抽中几率约为56%。本章知识要点:1. 重点掌握标识符的合法性判断,符号常量的使用2. 重点掌握整型变量和实型变量的分类及说明以及整型常量和实型常量的表示方法3. 熟记字符常量和字符串常量的表示,重点掌握字符运算原理4. 重点掌握数据类型的转换原理及执行过程5. 重点掌握算术运算符的分类及运算符的优先级和结合性6. 重点掌握复合的赋值表达式及表达式类型转换7. 重点掌握自增自减运算符的用法(优先级、结合性和执行过程)8. 重点掌握逗号运算符的执行过程本章内容:一、标识符:由字母、数字和下划线组成,并且必须以字母或下划线开头。C语言中的关键字不能用作其他用途,如不能用作变量或函数名。1、 以下选项中合法的标识符是(C)(2009年3月)A) 1_1 B)1-1 C)_11 D)1_2、 以下选项中不合法的标识符是(C)(2008年4月) A)print B)FOR C)&a D)_003、 可在C程序中用做用户标识符的一组标识符是(A)(2007年9月)A)and B)Date C)Hi D)case _2007 y-m-d Dr.Tom Bigl4、 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)(2007年4月)A)大写字母 B)连接符 C)数字字符 D)下划线5、以下不合法的用户标识符是(C)(2006年4月)A)j2_KEY B)Double C) 4d D) _8_二、常量和变量在程序运行过程中,其值不能被改变的量称为常量。符号常量的表示:#define 标识符 常量#define PI 3.14159 /* PI 就是一个符号常量,代表3.14159 */main()float r,area; r=3; area=PI*r*r;printf(narea=%f,area);在程序运行过程中,其值可以改变的量称为变量。一个变量具有两个要素:变量名和变量值。一个变量名实质上是代表内存中的一个存储单元,该单元中的存储的内容就是变量值,通过变量名来引用变量的值。三、整型数据整型常量有3种表示方法:十进制表示法:123,-456,112L等八进制表示法:014,077十六进制表示法:0xA0F注: 只有十进制数可以是负数,其余进制只能是无符号数。无符号数可用后缀u(U)表示。整型变量分为以下3类:基本整型:用int表示,在VC6内存中占4个字节短整型:用short int或short表示,在内存中占2个字节长整型:用long int或long表示,在内存中占4个字节还可以加上unsigned,将变量定义为无符号型。四、实型数据实型常量有两种表示方式:十进制小数形式:3.1415、0.123、.145、34.、123f指数形式:6.0E3(E或e之前必需有数,之后必须是整数)实型变量分3类:单精度:float 占4个字节,有6-7位有效位数双精度:double 占8个字节,有15-16位有效位数长双精度:long double 占16个字节,有18-19位有效位数五、字符型数据(在内存中存放的是字符量的ASCII码)字符常量:一对单引号括起来的单个字符。(转义字符),a、n字符变量:类型说明符char,在内存中占一个字节。C语言允许对整型变量赋字符值,也允许对字符变量赋整型值。1、 以下选项中不属于字符常量的是(B)(2008年4月) A)C B)C C)xCC0 D)0722、 以下合法的字符常量的是(A) A)x13 B)081 C)65 D)”n”3、 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。下列不能将变量c中的大写字母转换为对应小写字母的语句是(D)(2007年4月)A)c=(c-A)%26+a B)c=c+32 C)c=c-A +a D)c=(A+c)%26-a4、 以下选项中,值为1的表达式(B)。(2006年9月) A)1-0 B)1-0 C)1-0 D)0-0六、字符串常量:用一对双撇号括起来的零个或多个字符序列。如:”china”在存储字符串时,系统会在字符串的末尾自动加上一个0作为字符串的结束标志,所以“china”在内存中实质是占6个字节的空间。C语言没有字符串变量,对字符串的处理都是通过字符数组来完成。1、以下选项中,能用作数据常量的是(D)(2009年3月)A)o115 B) 0118 C)1.5e1.5 D) 115L2、以下选项中不能作为C 语言合法常量的是(A)。A)cd B)0.1e+6 C)a D)0113、以下不合法的数值常量是(C)A)011 B)lel C) 8.0 E0.5 D) 0xabcd4、C 源程序中不能表示的数制是(A)。(2008年9月)A)二进制 B)八进制 C)十进制 D)十六进制5、以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D)(2007年9月)A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定6、以下选项中,合法的一组C语言数值常量是(B)(2007年9月)A)028 B)12. C).177 D)0x8A. 5e-3 0Xa23 4e1.5 10,000-0xf 4.5e0 0abc 3.e5七、变量的定义C语言规定,变量必须先定义后使用。变量定义形式: 数据类型 变量名1,变量名2,.; 如:int sum,a; float score,b; char c; 变量在定义时可以初始化,如: int sum=0,a=1; float score=0.0,b=1.5; char c=a; 此赋初值错误:int sum=a=1;赋初值只能对单个变量进行。1、以下选项中正确的定义语句是(C)。(2008年9月)A)double a; b; B)double a=b=7; C)double a=7, b=7; D)double, a, b;2、以下定义语句中正确的是(B)(2008年4月) A)int a=b=0 ; B)char A=65+1,b=b; C)float a=1,*b=&a,*c=&b ; D)double a=0.0;b=1.1;3、下列定义变量的语句中错误的是(D)。(2006年9月) A)int _int; B)double int_; C)char For; D)float US$八、不同数据类型之间的转换doublefloatlongunsignedintchar,short一个运算符两边的运算数类型不一致时,需转换成相同类型,即较低类型转换成教高类型(此过程编译系统自动完成)。 类型转换图:可以使用强制类型转换,格式:(类型说明符)(表达式)如:(double)a; (int)(x+y); (int)x+y;main()float x;int i;x=3.6;i=(int)x;printf(x=%f,i=%d,x,i);结果:x=3.600000,i=3main()float x,y;int i,j;x=3.6;y=3.8;i=(int)x+(int)y;j=(int)(x+y);printf(i=%d,j=%d,i,j);九、算术运算符加(+)、减(-)、乘(*)、除(/)、求余(%)、自增(+)、自减(-)注:当两个整数进行除法运算时,得到的结果仍然为整数,如5/2=2,要想得到小数,必须将分子或分母中的任意一个转换成浮点数,如1.0/2=0.5。求余运算要求两侧的操作数均为整型。运算符都有优先级和结合性,见书后附录。除单目运算、赋值运算符和条件运算符是右结合性外,其他运算都是左结合性。1、表达式(int)(double)(5/2)+2.5)的值是【6】(2009年3月)答案:42、以下不能正确表示代数式2ab/cd的C 语言表达式是(D)。(2008年9月)A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*d3、以下选项中,当x为大于1的奇数时,值为0的表达式(D)A)x%2=1 B)x/2 C)x%2!=0 D)x%2=04、表达式3.6-5/2+1.2+5%2的值是(D)(2006年4月)A)4.3 B) 4.8 C) 3.3 D) 3.8十、赋值运算符合表达式C语言中的赋值运算符是“=”,其功能是将右侧表达式的值赋给左侧的变量如:a=5;b=c=8;复合的赋值表达式:变量operater=表达式,operater代表运算符。如:a+=5,等价于a=a+5;a+=x+y,等价于a=a+(x+y)1、设变量已正确定义并赋值,以下正确的表达式是(C)(2008年4月) A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,+y D)x=25%5.02、若变量均已正确定义并赋值,以下合法的C语言赋值语句是(A)(2007年9月)A)x=y=5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;3、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是(A)(2006年9月) A)+x,y=x- B)x+1=y C)x=x+10=x+y D)double(x)/104、设变量a 和b 已正确定义并赋初值。请写出与a-=a+b 等价的赋值表达式 【6】 (2008年9月)答案:a=-b;十一、自增和自减运算+和-运算,其功能是使变量的值自动加和减1。如:a+,等价于a=a+1自增和自减有两种用法:前置运算:如+a,其运算规则是先使变量的值增(减)1,然后再以变化后的表达式值参与其他运算。后置运算:如a+,其运算规则是变量先参与其他运算,然后再使变量的值增(减)1。1、 设有定义:int x=2;,以下表达式中,值不为6的是(D)(2009年3月)A) x*=x+1 B) x+,2*x C)x*=(1+x) D)2*x,x+=22、 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A) (2007年4月)A) k+ B)k+=1 C)+k D)k+1十二、逗号表达式表达式1,表达式2,表达式3,.,表达式n其计算过程是从左到右逐个求每个表达式的值,取最右边一个表达式的值作为该逗号表达式的值。#include void main()int a,b; a=1; b=(a+,a+3); printf(a=%dn,a); printf(b=%dn,b); a=2 b=51、有以下程序 main() int x,y,z; x=y=1; z=x+,y+,+y; printf(%d,%d,%dn,x,y,z); 程序运行后的输出结果是(C)。(2006年9月) A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,12、设变量已正确定义为整型,则表达式n=i=2,+i,i+的值为 答案:33、以下程序输出结果是 (2007年4月)main() int a=10; a=(3*5,a+4); printf(“a=%dn”,a);答案:14第三章 基本语句本章考纲:1. 表达式语句、空语句、复合语句。2. 输入输出函数的调用,正确输入数据并正确设计输出格式。本章考试方式:多以上机形式考核,在3种题型中均有体现,抽中几率约为35%。本章知识要点:1. 重点掌握各种语句的使用。2. 熟记scanf和printf函数的格式3. 重点理解scanf函数中地址列表的含义,重点掌握格式控制串中不同字符的作用。4. 重点理解printf函数中格式控制串的含义,重点掌握格式控制串中不同字符的作用。5. 重点理解getchar和putchar函数的作用。本章内容:一、C语句分类C语句可以分为5类:1. 控制语句:用来实现对程序流程的选择、循环、转向和返回等进行控制。如:if等2. 函数调用语句,如:printf(this is a c program”);3. 表达式语句:在表达式的末尾加上分号构成的语句。如:a=a+4; 4. 空语句:单独的一个分号“;”构成的语句。空语句的执行不产生任何动作,有时用来作流程的转向点,也可以用来作循环语句的循环体。5. 复合语句:由一对花括号“”把一些语句括起来,在语法上作为一个整体对待,相当于一条语句。如:z=x+y;z+;1、若函数中有定义语句:int k;,则(B)(2009年3月)A)系统将自动给k赋初值0B)这时k中值无定义C)系统将自动给k赋初值-1D)这时k中无任何值2、以下能正确定义且赋初值的语句是(B)。(2005年9月)A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;二、scanf函数用来从标准输入设备(键盘)输入数据到计算中。一般格式: scanf(格式控制串,地址表列)如:scanf(“%d%f%c”,&a,&b,&c);“格式控制串”用来指定每个输入项的输入格式。通常由若干个格式说明组成,格式说明由 “%”开头,后跟格式字符,如“%d”,“%c”等。格式字符说明见辅导教材p43页。“地址表列”需要读入的是所有变量的地址或字符串的首地址。使用说明:1. 除了格式说明符和附加格式字符外,如果还有其他字符,则在输入数据时要求按一一对应的位置原样输入这些字符。形式1:scanf(“%d,%d”,&a,&b);正确的输入方式:12,35形式2:scanf(“a=%d,b=%d”,&a,&b);正确的输入方式:a=12,b=352. 可以指定输入数据所占的列数,系统自动按指定的数据截取所需的数据。如:scanf(“%4d%4d”,&a,&b);当输入12345678时,系统自动将1234赋给a,将5678赋给b。如:scanf(“%4c”,&ch);如果从键盘输入xyz3个字符,由于ch只能接收一个字符,系统自动将第一个字符x赋给ch。3. 输入的数值数据之间用间隔符(空格、制表符或回车符)隔开,间隔符数量不限,如果在格式说明中认为制定宽度时,也可以使用此方式。4. 在%后有一个“*”附加格式字符,表示跳过它指定的列数。5. 地址表应该是变量的地址,因此,应该在变量名前加上取地址的运算符“&”。6. 在用“%c”格式输入字符时,空格和转义字符都将作为有效字符进行输入。如:scanf(“%c%c%c”,&c1,&c2,&c3);如果输入 a b 后按下回车键,则c1、c2、c3的值分别为a、空格、b7. 键盘输入数据的个数应该与格式要求的个数相同,少于要求个数时,函数等待输入,直到满足要求或遇到非法字符为止;多于要求个数时,多余的数据将留在缓冲区作为下一次输入操作的输入数据。8. 在输入数据时,遇到以下情况时该输入结束l 遇到空格,或按回车键或按跳格(TAB)键l 按指定的宽度结束l 遇到非法输入1、 若有定义语句:double x,y,*px,*py,执行了px=&x, py=&y;之后,正确的输入语句是(B)(2009年3月)A)scanf(“%f%f”,x,y);B) scanf(“%f%f”,&x,&y);C) scanf(“%lf%le”,px,py);D) scanf(“%lf%lf”,x,y);2、 程序段:int x=12;double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是(A)(2009年3月)A)123.141593B)12 3.141593C)12,3.141593D) 123.1415933、 有以下程序#includemain() int a1,a2;char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,a1,c1,a2,c2);若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(A)(以下_代表空格,代表回车)(2009年3月)A)12a34bB)12_a34_bC)12,a,34,bD)12_a34_b4、 若变量已正确定义为int 型,要通过语句scanf(%d, %d, %d, &a, &b, &c);给a 赋值1、给b 赋值2、给c 赋值3,以下输入形式中错误的是( 代表一个空格符)(B)(2008年9月)A) 1,2,3 B)1 2 3C)1, 2, 3 D)1,2,35、若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是(C)A)scanf(%d,a,b,c); B)scanf(%d%d%d,a,b,c);C)scanf(%d,p); D)scanf(%d,&p);6、有以下程序段int j; float y; char name50;scanf(%2d%f%s,&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为(B)(2007年9月)A)55566.0 B)566.0 C)7777.0 D)566777.07、 设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式正确的是(注:代表空格字符)(D)(2007年4月) A)10X20Y回车 B)10X20Y回车 C)10X回车 D)10X回车20Y回车 20Y回车8、 设有定义:int a; float b;执行scanf(%2d%f,&a,&b);语句时,若从键盘输入876 543.0,a和b的值分别是(B)。(2006年9月) A)876和543.000000 B)87和6.000000 C)87和543.000000 D)76和543.0000009、执行以下程序时输入1234567,则输出结果是 . (2007年9月)#include main() int a=1,b;scanf(%2d%2d,&a,&b);printf(%d %dn,a,b);答案:12 34三、printf函数用于按指定得格式在屏幕上输出若干任意类型的数据。一般格式: printf(格式控制串,输出表列);如:printf(“a=%d,b=%dn”,a,b);“格式控制串”用来指定每个输出项的输出格式。组成格式控制串的字符通常由格式说明、转移字符和按原样输出的字符3部分组成。l 格式说明由“%”开头,后跟格式字符(p46页),用来指定数据的输出格式。输出格式中的格式说明的个数和输出表列中的数据个数应一样。l 转义字符是以“”开始的字符,用来实现换行、跨越指标为或输出单引号、双引号等。l 除了以上两类字符之外,在格式串中的其他字符将按原样输出。 输出表列是要输出的各项数据,可以是常量、变量、函数或表达式,其具体类型有格式控制串中的格式字符决定。使用说明:1. 掌握格式字符和附加格式字符的作用。2. 在格式控制串中,格式说明和输出项在类型上必须一一对应。并且格式说明的个数和输出项的个数应该相同,如果不同,系统则作以下处理:l 如果格式说明的个数小于输出项数,多余的数据项不显示l 如果格式说明的个数多于输出项数,对多余的格式将输出不定值或0值1、有以下程序段 char ch; int k; ch=a; k=12; printf(%c,%d,ch,ch,k); printf(k=%dn,k); 已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是(D)(2008年4月) A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=122、有以下程序,其中%u表示按无符号整数输出main()unsigned int x=0xFFFF;/* x的初值为十六进制数 */Printf(“%un”,x);程序运行后的输出结果是(B)(2007年4月)A)-1 B)65535 C)32767 D)0XFFFF3、有以下程序 main() int a=0,b=0; a=10; /*给a赋值 b=20; 给b赋值 */ printf(a+b=%dn,a+b); /* 输出计算结果 */ 程序运行后输出结果是(B)(2006年9月) A)a+b=0 B)a+b=30 C)30 D)出错4、若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(【 】,x/y);补充完整,使其输出的计算结果形式为:x/y=11(2009年3月)答案:”x/y=%d”5、若整型变量a 和b 中的值分别为7 和9,要求按以下格式输出a 和b 的值:a=7b=9请完成输出语句:printf ( 【 】 ,a,b); (2008年9月)答案:a=%dnb=%dn6、以下程序运行后的输出结果是 【 】 。main() int m=011,n=11; printf(%d %dn,+m,n+);答案:10 117、若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句【 】。(2006年4月)答案:printf(“a=%d,b=%d”,a,b);四、getchar函数其功能是从键盘上输入一个字符,格式为: getchar();函数值就是从输入设备得到的一个字符。如:a=getchar();说明:1. 输入回车符时才结束,回车前的所有字符都会逐个显示在屏幕上。2. 此函数将输入的第一个字符作为函数的返回值。通常将寒暑的返回值赋给一个字符型变量或整型数据。五、putchar函数作用是向输出设备上输出一个字符,格式为: putchar(ch);其中ch可以使常量、变量、转义字符或表达式等,其数据类型可以是字符型或整型。1、当用户要求输入的字符串中含有空格时,应使用的输入函数是(C)(2007年9月)A)scanf() B)getchar() C)gets() D)getc()2、已知字符A的ASCII码值为65,以下程序运行时若从键盘输入:B33,则输出结果是【 】 #include “stdio.h” main() char a,b;a=getchar();scanf(“%d”,&b);a=a-A+0;b=b*2;printf(“%c %cn”,a,b);答案:1 B第四章 选择结构程序设计本章考纲:1. 用if语句实现选择结构。2. 用switch语句实现多分支结构。3. 选择结构的嵌套。本章考试方式:以笔试和上机两种形式考核。笔试中多出现在选择题第18至21题,填空题第8、9题,分值约占8%。上机考中, 3种题型中均有体现,并且(1)常与循环结构结合使用,抽中几率约为37%。本章知识要点:1. 熟记关系、逻辑运算符的种类,重点记忆其运算符的优先级。2. 熟记条件运算符的格式,重点掌握条件表达式的执行原理。3. 熟记if语句的基本形式,重点掌握if语句的执行原理。4. 熟记switch语句的基本形式,重点掌握if语句的执行原理。本章内容:一、关系运算符和表达式关系运算符就是将两个值进行比较的运算符。C提供6种:小于()、小于等于(=)、等于(=)、不等于(!=)前四种运算符的优先级相同,后两者的优先级相同,且前四种的优先级高于后2种;关系运算符都是左结合的。用关系运算符将两个表达式联结起来的式子称为关系表达式。基本形式为; 表达式1 关系运算符 表达式2说明:l 表达式1和表达式2可以是常量、变量、算术表达式、关系表达式、逻辑表达式、赋值表达式及字符表达式等。l 关系运算的结果是一个逻辑值,当关系成立,值为真,否则为假。由于C语言没有逻辑型数据,所以用1代表真,用0代表假。如:53 值 1 5= =3 值为 0 若a=2,b=1,c=0 则:(ab)= =c 值 0 d=ab值 1 f=abc值 1二、逻辑运算符和逻辑表达式C提供3种逻辑运算符:与(&)、或(|)、非(!)说明:l 优先级为:非与或,与和或运算符具有左结合性,非运算符具有右结合性。l 逻辑运算的值也只有真和假两个,分别用1和0表示。由逻辑运算符和运算对象所组成的表达式称为逻辑表达式,一般形式为: 表达式1 逻辑运算符 表达式2说明:l 逻辑运算的对象可以是C语言中任意合法的表达式。l 逻辑表达式的运算结果为逻辑量真或假。在C语言中,逻辑假用数值0表示,逻辑真用数值1表示。但是当判断一个量是否为真时,以非0代表真,以0代表假。l 在逻辑运算过程中,并不是每一个表达式都会被执行,当执行与运算时,如果第一个运算量为假,那么后一个运算量将不被执行,因为与运算时,有一个操作数为0结果就会为0;当执行或运算时,如果第一个运算量为真,那么后一个运算量将不被执行,因为或运算时,有一个操作数为1结果就会为1。如a=1,b=2,c=3,d=4,m=1,n=1 (m=ab)&(n=cd)运算后,m=0,n=11、执行以下程序段后,w 的值为(C)(2008年9月)int w=A, x=14, y=15;w=(x | y)&(w=2&c=2&c=2&c=A&kk=Akk=a&(kk+32)=z D)isalpha(kk)&(kkc,a+cb,b+ca。 请填空。(2006年4月)main()float a,b,c;scanf(“%f%f%f”,&a,&b,&c);if(【 】)printf(“YESn”);/*a,b,c能构成三角形*/else printf(“NOn”);/*a,b,c不能构成三角形*/答案:(a+bc)&(a+cb)&(b+ca)7、已有定义:char c= ;int a=1,b;(此处c的初值为空格字符),执行b=!c&a;后b的值为【 】。(2008年4月)答案:0三、if语句if语句是一种选择结构控制语句,对给定的条件进行判断,然后决定执行哪种操作。C提供以下几种if语句形式:1. 单分支结构形式为: if(表达式) 语句体说明:l 其中的表达式可以是任意合法的C语言表达式。l 语句体部分可以是一条语句,也可以是用花括号括起来的语句组(复合语句)。l 其执行过程是,先计算表达式的值,若为真(逻辑值为1),即条件成立,执行语句体,否则不执行语句体,而去执行if语句的下一条语句。如:if (xy) printf(“%d”,x);2. 双分支结构形式为: if(表达式) 语句体1 else 语句体2执行过程:先计算表达式的值,若为真(逻辑值为1),即条件成立,执行语句体1,否则执行语句体2。 如: if (xy) printf(“%d”,x); else printf(“%d”,y);3. 多分支结构:当出现多种选择情况时使用形式为: if(表达式1)语句体1 else if(表达式2) 语句体2 . else if(表达式n)语句体n else 语句体n+1执行过程:先判断表达式1的条件是否成立,如果成立,执行语句体1,否则判断表达式2,若成立,执行语句体2,否则继续判断表达式3,以此类推,若所有表达式都不成立,则执行语句体n+1。4. 嵌套结构在if或else子句中又包含一个或多个if语句。注:else总是与它上面的最近的、未配对的if配对,且else后不跟条件(表达式)。1、main() int x; scanf(“%d”,&x); if(x- -0) y=1; B) y=0;else if(x=0) y=0;if(x0) y=1;else y=-1;else if(x=0)if(x=0);if(x0) y=1;if(x0) y=1;else y=0;else y=-1; else y=-1;3、以下是if语句的基本形式: if(表达式)语句其中“表达式” (D)(2009年3月)A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式4、有以下程序段int a, b, c;a=10; b=50; c=30;if (ab)

温馨提示

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

评论

0/150

提交评论