计算机等级考试二级c语言真题辅导_第1页
计算机等级考试二级c语言真题辅导_第2页
计算机等级考试二级c语言真题辅导_第3页
计算机等级考试二级c语言真题辅导_第4页
计算机等级考试二级c语言真题辅导_第5页
已阅读5页,还剩260页未读 继续免费阅读

下载本文档

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

文档简介

全国计算机等级考试辅导(二级),信息技术学院 张开利,全国计算机等级考试大纲内容,笔试考试(90分钟) 满分100分 (统一试卷)C语言、Visual Basic 70分公共基础 30分数据结构程序设计软件工程数据库设计原理上机考试(90分钟) 满分100分 (随机抽题),基本操作题 30分 简单操作题 40分 综合操作题 30分,程序填空题 30分 程序改错题 30分 程序编程题 40分,C语言,Visual Basic,考试时间:下半年为9月18日至22日。第一天上午考笔试,上机考试从笔试的当天下午开始 。 前者是在全国规定的时间进行统考,后者是由上机考试系统进行分时分批考试。考试成绩划分为优秀、良好、及格和不及格四个等第成绩,笔试或上机考试成绩只有一门及格的,下次考试及格的一门可以免考,两部分考试均及格者,由教育部考试中心颁发统一印制的合格证书。,辅导时间安排,第六周:4.8第七周:4.12,4.15第八周:4.19,4.22第九周:4.26,4.29 五一放假 五一假后11次课,时间待定下学期2次课,时间待定辅导形式:理论,上机随机安排,学习建议,熟悉教材抓住重点全面复习适当模拟,一、 C语言的结构,1.函数是程序的基本构成,包括main函数和其 他函数。2.头文件,数据说明,函数的开始和结束标志。3.源程序的书写格式。4.C语言的风格。,C语言的结构,C语言发展历史:当代最优秀的程序设计语言 C语言的特点 :语言是一种结构化程序设计语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。 语言简洁、紧凑、灵活运算符和数据类型丰富程序设计结构化、模块化生成目标代码质量高可移植性好,语言的字符集,字符是组成语言的最基本的元素。语言字符集由字母,数字,空格,标点和特殊字符组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。1.字母:小写字母a-z共26个,大写字母A-Z共26个 2.数字09共10个3.空白符空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用, 编译程序对它们忽略。因此在程序中使用空白符与否,对程序的编译不发生影响,但在程序中适当的地方使用空白符将增加程序的清晰性和可读性。4.标点和特殊字符,语言词汇,1.标识符 在程序中使用的变量名、函数名、标号等统称为标识符。 除库函数的函数名由系统定义外,其余都由用户自定义。 C 规定,标识符只能是字母(AZ,az)、数字(09)、下划线()组成的字符串,并且其第一个字符必须是字母或下划线。 以下标识符是合法的:a x _3x BOOK_1 sum5 以下标识符是非法的:3s s*T -3x bowy-1注意问题: 长度 字母大小写有区别 尽量见名知意,2.关键字,关键字是由语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。语言的关键字分为以下几类: (1)类型说明符 用于定义、说明变量、函数或其它数据结构的类型。如int,double等 (2)语句定义符 用于表示一个语句的功能。如if else就是条件语句的语句定义符。 (3)预处理命令字 用于表示一个预处理命令。,32个关键字:(由系统定义,不能重作其它定义),auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while,9种控制语句:,if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturn,3.运算符,语言中含有相当丰富的运算符。运算符与变量,函数一起组成表达式,表示各种运算功能。运算符由一个或多个字符组成。,34种运算符,算术运算符:+ - * / % + -关系运算符: = !=逻辑运算符:! & |位运算符 : | &赋值运算符:= 及其扩展条件运算符:?:逗号运算符:,指针运算符:* &求字节数 :sizeof强制类型转换:(类型)分量运算符:. -下标运算符:其它 :( ) -,4.分隔符,在语言中采用的分隔符有逗号和空格两种。 例如 int a; inta; C编译器会把inta当成一个标识符处理,其结果必然出错。,5.常量,C 语言中使用的常量可分为数字常量、字符常量、字符串常量、符号常量、转义字符等多种。,6.注释符,注释符:在“/*”和“*/”之间的内容即为注释;当前行/之后的内容即为注释。程序编译时,不对注释作任何处理。注释可出现在程序中的任何位置。注释用来向用户提示或解释程序的意义。在调试程序中对暂不使用的语句也可用注释符括起来,使翻译跳过不作处理,待调试结束后再去掉注释符。,C程序格式和结构特点例1.1 第一个程序 Hello,World!,/* example1.1 The first C Program*/#include main() printf(“Hello,World!”);,输出:Hello,World!,例1.2,/* example1.1 calculate the sum of a and b*/#include /* This is the main program */main() int a,b,sum; a=10; b=24; sum=add(a,b); printf(”sum= %dn,sum);/* This function calculates the sum of x and y */int add(int x,int y) int z; z=x+y; return(z);,运行结果:sum=34,格式特点习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式,main( ) . . . . . . .,main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(%dn,sum);,优秀程序员的素质之一:使用TAB缩进对齐有足够的注释有合适的空行,结构特点函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。源程序语句C程序由语句组成用“;”作为语句终止符注释/* */为注释,不能嵌套不产生编译代码,例: /*This is the main /* of example1.1*/ */,编译预处理命令,源程序的结构特点,1.一个语言源程序可以由一个或多个源文件组成。 2.每个源文件可由一个或多个函数组成。3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。4. 是函数开始和结束的标志,不可省5.源程序中可以有预处理命令(include 命令仅为其中的一种,include称为文件包含命令,扩展名为.h的文件也称为头文件或首部文件 ),预处理命令通常应放在源文件或源程序的最前面。6.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“”之后不能加分号。7.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。,书写程序时应遵循的规则,从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则: 1.一个说明或一个语句占一行。2.用 括起来的部分,通常表示了程序的某一层次结构。一般与该结构语句的第一个字母对齐,并单独占一行。3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。,C程序,(1) C程序是由函数构成的。 这使得程序容易实现模块化。 (2) 一个函数由两部分组成: 函数首部:例add函数首部 int add(int x,int y ) 函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。 函数体包括两部分 :声明部分:int z; 可缺省执行部分:由若干个语句组成。可缺省,注意:,函数的声明部分和执行部分都可缺省,例如:void dump ( ) 这是一个空函数,什么也不做,但是合法的函数。,算法,广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。算法的特性:有穷性:包含有限的操作步骤确定性:算法中的每一个步骤都应当是确定的 有零个或多个输入:输入是指在执行算法时需要从外界取得必要的信息 有一个或多个输出:算法的目的是为了求解,“解” 就是输出 有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果 。,C程序上机步骤,file.exe,程序代码的录入,生成源程序*.c,语法分析查错,翻译生成目标程序*.obj,与其它目标程序或库链接装配,生成可执行程序*.exe,二、数据类型及其运算,1.C的数据类型(基本类型、构造类型、指针类型、空类型)及其定义方法。2.C运算符的种类、运算优先级和结合性。3.不同类型数据间的转换与运算。4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。,所谓数据类型是按被说明量的性质,表示形式,占据存储空间的多少,构造特点来划分的。,常量和变量,在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。在程序中,常量是可以不经说明而直接引用的,而变量则必须先说明后使用。 常量区分为不同的类型:符号常量#define PRICE 30,变量,变量必须先定义后使用。变量的定义: 数据类型 变量名1,变量名2,;变量名实际上是一个以一个名字对应代表一个地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。,(一)1. 整型数据,整型常量即整常数。在语言中,整常数可用以下三种形式表示:(1)十进制整数。 如:123, -456,4(2)八进制整数。以0头的数是八进制数。 如:0123表示八进制数123,等于十进制数83,-011表示八进制数-11,即十进制数-9。(3)十六进制整数。以0x开头的数是16进制数。 如:0x123,代表16进制数123,等于十进制数 291。 -0x12等于十进制数-18。,整型变量,(1)例, 整型变量的定义: int a,b,c; 整型变量的赋值: a=10; 整型变量的初始化: int a=10;(2)整型变量的分类:,注意:括号表示其中的内容是可选的.,整数类型的取值范围,int 32位 -2147483648 2147483647 -231 231-1short int 16位 -32768 32767 -215 215-1long int 32位 -2147483648 2147483647 -231 231-1unsigned int 32位 0 4294967295 0 232-1unsigned short int 16位 0 65535 0 216-1unsigned long int 32位 0 4294967295 0 232-1,注意:1.整型常量的默认类型为int2.一个整型常量后面加一个字母u或U,认为是unsigned int型3.在一个整常量后面加一个字母l或L,则认为是long int型常量。4.在一个整常量后面加一个字母lu或LU,则认为是unsigned long int型常量。,2. 浮点型数据,浮点型常量的表示方法小数表示法0.123 123.4 12. .12科学计数法6.026E-27 1.2e+30 1E-5注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数。规范化指数形式:在字母e(或E)之前的小数部分中,小数点左边应有一位(且只能有一位)非零的数字.1e3 1.8e-3 -123e-6 -.1e-3 .3e+2e3 2.1e3.5 .e3 e,浮点型变量,浮点型变量的定义: float f1,f2;浮点型变量的赋值: f1=20.3; /对变量f1赋值 f2=10; /将int常量10自动转换成float常量10.0, /再赋值给f2浮点型变量的初始化: float f1=10.0,f2=10.0; float f1=f2=10.0;,3. 字符型数据,字符常量(1) 普通字符 a 1 0 $ (2) 转义字符 n 换行 t 横向跳格 r 回车 反斜杠 ddd ddd表示1到3位八进制数字 xhh hh表示1到2位十六进制数字,转义字符的使用,#include void main() printf( ab ct derftgn); printf(htibbjkn); ,显示屏上的运行结果: f gde jk,字符变量,字符变量的定义: char c1,c2;字符变量的赋值: c1a;c2 b ;字符变量的初始化: char c1=a,c2 b ;,字符数据在内存中的存储形式及其使用方法,#include main() char c1,c2; c1=97; c2=98; printf(“%c %cn”,c1,c2); printf(“%d %dn”,c1,c2);,运行结果: 97 98,4. 字符串常量,(1) How do you do. “ CHINA ” a $123.45 (2) 可以输出一个字符串,如 printf(“How do you do.”);(3) 注意: a a 前者是字符常量,后者是字符串常量,结论:不能把一个字符串常量赋给一个字符变量。,例,,如:” ,实际上在内存中是: 字符串的长度是5,实际存储是6个字节。,(二)不同类型数据间的转换,1. 隐式转换什么情况下发生运算转换-不同类型数据混合运算时赋值转换-把一个值赋给与其类型不同的变量时输出转换-输出时转换成指定的输出格式函数调用转换-实参与形参类型不一致时转换运算转换规则:不同类型数据运算时先自动转换成同一类型,2. 显式转换(强制转换)一般形式:(类型名)(表达式)例 (int)(x+y) /x和y是double (int)x+y (double)(3/2) (int)3.6 说明:强制转换得到所需类型的中间变量,原变量类型不变,例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:x=3.600000,i=3,精度损失问题,(三)运算符和表达式,学习运算符应注意:运算符功能与运算量关系要求运算量个数要求运算量类型运算符优先级别结合方向结果的类型,1. 算术运算符和表达式,基本算术运算符: + - * / %结合方向:从左向右优先级: - -* / % - + - (2) (3) (4)说明:“-”可为单目运算符时,右结合性两整数相除,结果为整数%要求两侧均为整型数据,例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 (),例 5/2 = 2 -5/2.0 = -2.5,自增、自减运算符+ -作用:使变量值加1或减1种类:前置 +i, -i (先执行i+1或i-1,再使用i值)后置 i+,i- (先使用i值,再执行i+1或i-1),例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,/3,/c=20,a=4,/c=15,a=4,自增、自减运算符+ -作用:使变量值加1或减1种类:前置 +i, -i (先执行i+1或i-1,再使用i值)后置 i+, i- (先使用i值,再执行i+1或i-1),说明:+ - 不能用于常量和表达式,如5+,(a+b)+ - 结合方向: 自右向左优先级:- + - -* / % -+ - (2) (3) (4),例 -i+ -(i+) i=3; printf(“%d”,-i+); /-3,例 -i+ i=3; printf(“%dn”,-i+);,2. 赋值运算符和表达式简单赋值运算符符号: =格式: 变量标识符=表达式,复合赋值运算符种类:+= -= *= /= %= = = &= = |=例:,例 a=3; d=func(); c=d+2;,说明:结合方向:自右向左优先级: 14左侧必须是变量,不能是常量或表达式,赋值表达式的值与变量值相等,且可嵌套,赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型,例 3=x-2*y; a+b=3;,例 float f; int i; i=10; f=i;则 f=10.0,例 int i; i=2.56; /结果i=2;,例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2),/表达式值为5,a,b,c值为5,/ b=5;a=5,/表达式值11,c=6,a=11,/表达式值10,a=10,b=4,c=6,/表达式值5,a=5,b=10,c=2,说明:结合方向:自右向左优先级: 14左侧必须是变量,不能是常量或表达式,赋值表达式的值与变量值相等,且可嵌套,赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型,例: a=12; a+=a-=a*a,例: int a=2; a%=4-1; a+=a*=a-=a*=3;,/a=-264 等价于a=a+(a=a-(a*a),/a=0 等价于a=a+(a=a*(a=a-(a=a*3),3. 逗号运算符和表达式形式:表达式1,表达式2,表达式n结合性:从左向右优先级: 15逗号表达式的值:等于表达式n的值用途:常用于循环for语句中,例 a=3*5,a*4 a=3*5,a*4,a+5例 x=(a=3,6*3) x=a=3,6*a例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c);,/a=15,表达式值60,/a=15,表达式值20,/赋值表达式,表达式值18,x=18,/逗号表达式,表达式值18,x=3,/1,2,3,/3,2,3,逗号运算符和表达式形式:表达式1,表达式2,表达式n结合性:从左向右优先级: 15逗号表达式的值:等于表达式n的值用途:常用于循环for语句中,例:/*ch2_6.c*/#include main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x);,运行结果:x=3,4. 关系运算符和表达式关系运算符种类:= !=结合方向:自左向右优先级别:,例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc),关系表达式的值:是逻辑值“真”或“假”,用1和0表示,例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc,/表达式值1,/表达式值1,/表达式值0,/d=1,/f=0,关系运算注意:,例 若a=0; b=0.5; x=0.3; 则 a=x278在C中是允许的, 值为,0,例 int i=1, j=7,a; a=i+(j%4!=0); 则a=,2,例 a0 结果为 A100 结果为,1,0,关系运算注意:,例 注意区分“=”与“=” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);,5. 逻辑运算符和表达式逻辑运算符种类: ! & |逻辑运算真值表,C语言中,运算量: 0表示“假”, 非0表示“真”, 运算结果: 0表示“假”, 1表示“真”,例 ab&xy a=b|x=y !a|ab,优先级:,结合方向:,/ (a=x) & (xb)&(xy),/(a=b)|(x=y),/(!a)|(ab),优先级:,结合方向:,例 a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|83)&2|(8(4-(!0) 值为1,优先级:,结合方向:,短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符,例 a (m=ab)&(n=c0?a+b:a-b);,例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a & c0?1:(xb?a:cd?c:d ab?a:(cd?c:d)expr1、expr2、expr3类型可不同,表达式值取较高的类型,例 x?a:b /x=0,表达式值为b; x0,表达式值为a xy?1:1.5 /xy ,值为1.0; xy) printf(“%d”,x);,形式二:格式:if (expression) statement1 else statement2执行过程:,例:if (xy) max=x; else max=y;,形式三:格式:,if ( expr1 ) statement1else if (expr2 ) statement2else if (expr3 ) statement3. else statementn ,执行过程:,例:if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; else index=0;,如:if(a=b,说明:if后面的表达式类型任意,语句可以是复合语句 if(x) if(x!=0) if(!x) if(x=0),例 考虑下面程序的输出结果: #include main() int x,y; scanf(“%d,%d”,Compile Error!,/*ch4_1.c*/#include main() int x,y; printf(Enter an integer:); scanf(%d,例 求一个数的绝对值,运行:Enter an integer:-12 integer:-12-absolute value :12,/*ch4_2.c*/#include main() int a,b; printf(Enter integer a:); scanf(%d,例 输入两个数并判断两数相等否,运行:Enter integer a:12 Enter integer b:12 a=b,运行:Enter integer a:12 Enter integer b:9 a!=b,/*ch4_3.c*/#include main() char c; printf(Enter a character:); c=getchar(); if(c=0,例 判断输入字符种类,运行

温馨提示

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

评论

0/150

提交评论