1、全国计算机等级考试二级C语言考试大纲及重点 2013年全国计算机等级考试二级C语言考试大纲 基本要求 1.熟悉 Visual C+ 6.0 集成开发环境。2.掌握结构化程序设计的方法,具有良好的程序设计风格。3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。4.在 Visual C+ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力 考试内容一、C语言程序的结构1.程序的构成,main函数和其他函数。2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。3.源程序的书写格式。4.C语言的风格。二、数据类型及其运算1.C的数据类型(基本类型,构造类型,指针
2、类型,无值类型)及其定义方法。2.C运算符的种类、运算优先级和结合性。3.不同类型数据间的转换与运算。4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。三、基本语句1.表达式语句,空语句,复合语句。2.输入输出函数的调用,正确输入数据并正确设计输出格式。四、选择结构程序设计1.用if语句实现选择结构。2.用switch语句实现多分支选择结构。3.选择结构的嵌套。五、循环结构程序设计1.for循环结构。2.while和do-while循环结构。3.continue语句和break语句。4.循环的嵌套。 六、数组的定义和引用 1.一维数组和二维数
3、组的定义、初始化和数组元素的引用。2.字符串与字符数组。七、函数1.库函数的正确调用。2.函数的定义方法。3.函数的类型和返回值。4.形式参数与实在参数,参数值传递。5.函数的正确调用,嵌套调用,递归调用。6.局部变量和全局变量。7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。八、编译预处理1.宏定义和调用(不带参数的宏,带参数的宏)。2.“文件包含”处理。九、指针1.地址与指针变量的概念,地址运算符与间址运算符。2.一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。3.用指针作函数参数。4.返回地址值的函数
4、。5.指针数组,指向指针的指针。十、结构体(即“结构”)与共同体(即“联合”)1.用typedef说明一个新类型。2.结构体和共用体类型数据的定义和成员的引用。3.通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入。十一、位运算1.位运算符的含义和使用。2.简单的位运算。十二、文件操作只要求缓冲文件系统(即高级磁盘I/O系统),对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。1. 文件类型指针(FILE类型指针)2.文件的打开与关闭(fopen,fclose)。3.文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf
5、函数的应用),文件的定位(rewind,fseek函数的应用)。考试题型(1)选择。40(2)程序填空。18(3)程序改错。18(4)程序编程。24考试时间3.30-4.3 120min 无纸化考试总体上必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址.4)bit是位 是指为0 或者1。 byte 是指字节, 一个字节 = 八个位.5)一定要记住 二进制 如何划成
6、 十进制。概念常考到的:、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。、每个C语言程序中main函数是有且只有一个。、在函数中不可以再定义函数。、算法的是一定要有输出的,他可以没有输入。、break可用于循环结构和switch语句。、逗号运算符的级别最低。第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了。关键字不可以作为用户标识符号。main define scanf printf 都是关键字。迷惑你的地方If是可以做为用户标识符。因为If
7、中的第一个字母大写了,所以不是关键字。2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333考试口诀:e前e后必有数,e后必为整数。.3)字符数据的合法形式:: 1 是字符占一个字节,1是字符串占两个字节(含有一个结束符号)。 0 的ASCII数值表示为48,a 的ASCII数值是97,A的ASCII数值是65。4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。5)转义字符的考查: 在程序中 int
8、 a = 0x6d,是把一个十六进制的数给变量a,注意这里的0x必须存在。 在程序中 int a = 06d, 是一个八进制的形式。在转义字符中,x6d 才是合法的,0不能写,并且x是小写。 141 是合法的。108是非法的,因为不可以出现8。转义字符 意义 ASCII码值(十进制) a 响铃(BEL) 007 b 退格(BS) 008 f 换页(FF) 012 n 换行(LF) 010 r 回车(CR) 013 t 水平制表(HT) 009 v 垂直制表(VT) 011 反斜杠 092 ? 问号字符 063 单引号字符 039 双引号字符 034 0 空字符(NULL) 000 ddd 任意
9、字符 三位八进制 xhh 任意字符 二位十六进制6)算术运算符号的优先级别: 同级别的有的是从左到右,有的是从右到左。7)强制类型转换: 一定是 (int)a 不是 int(a),注意类型上一定有括号的。 注意(int)(a+b)和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。8)表达式的考查: 是表达式就一定有数值。 赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。 自加、自减表达式:假设a=5,+a(是为6), a+(为5);运行的机理:+a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个+a表达式的数值为6,而a+是
10、先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中。 进行了+a和a+后在下面的程序中再用到a的话都是变量a中的6了。 考试口诀:+在前先加后用,+在后先用后加。逗号表达式:优先级别最低 ;表达式的数值逗号最右边的那个表达式的数值。(2,3,4)的表达式的数值就是4。9)位运算的考查:会有一到二题考试题目。总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。例1:char a = 6, b;b = a2; 这种题目的计算是先要把a的十进制6化成二进制,再做位运算。一定要记住,在没有舍去数据的时候,右移一位表示除以2。10)018的数值是
11、非法的,八进制是没有8的,逢8进1。 11)%符号两边要求是整数。不是整数就错了。12)两种取整丢小数的情况:、int a =1.6; 、(int)a; 第二章1)printf函数的格式考查: %d对应整型;%c对应字符;%f对应单精度等等。宽度的,左对齐等修饰。 %ld对应 long int;%lf 对应double。2)scanf函数的格式考察: 注意该函数的第二个部分是&a 这样的地址,不是a; Scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。3)putchar ,getchar 函数的考查: char a = getchar() 是没有参数的,从键盘得到
12、你输入的一个字符给变量a。 putchar(y)把字符y输出到屏幕中。4)如何实现两个变量x ,y中数值的互换(要求背下来) 不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)x=(int)(x*1000+0.5)/1000.0 这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。 第三章特别要注意:c语言中是用非0表示逻辑真的,用0表示逻辑假的。1)关系表达式: 表达式的数值只能为1(表示为真),或0(表示假) 当关系的表达是为真的时候得到1。如 98这个是真的,所以表达式的数值就是1;2)逻辑表
13、达式: 只能为1(表示为真),或0(表示假)a) 共有& | ! 三种逻辑运算符号。b) !&| 优先的级别。c) 注意短路现象。考试比较喜欢考到。d) 要表示 x 是比0大,比10小的方法。0x10是不可以的(一定记住)。是先计算0x 得到的结果为1或则0;再用0,或1与10比较得到的总是真(为1)。所以一定要用 (0x)&(x第一行 a1 4 5 6 第二行 a2 7 8 9 第三行步骤二:这样作题目间很简单:*(a0+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a01元素,所以是。*(a1+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a12元素,所以是6。
14、一定记住:只要是二维数组的题目,一定是写成如上的格式,再去做题目,这样会比较简单。数组的初始化,一维和二维的,一维可以不写,二维第二个一定要写 int a=1,2 合法。 int a4=2,3,4合法。 但int a4=2,3,4非法。二维数组中的行指针int a12; 其中a现在就是一个行指针,a+1跳一行数组元素。 搭配(*)p2指针 a0,a1现在就是一个列指针。a0+1 跳一个数组元素。搭配*p2指针数组使用还有记住脱衣服法则: a2 变成 *(a+2) a23变成 *(a+2)3再可以变成 *(*(a+2)+3)这个思想很重要!第一章C语言概述 一、选择题:1、一个C程序的执行是从(
15、 A )。A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束 2、 在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D.
16、若干子程序组成 5、下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题:1、C 语言只有 32 个关键字和 9 种控制语句。2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它
17、总是以 * 符号作为开始标记,以 */ 符号作为结束标记。4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。6、C 语言的标识符只能由字母、数字和 下划线 三种字符组成。 第三章数据类型、运算符和表达式 一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是( C )。 A. 160. B. 0.12 C. 2e4.2 D. 0.02、以下选项中,( D )是不正确的 C 语言字符型常量。 A
18、. a B. x41 C. 101 D. a3、 在 C 语言中,字符型数据在计算机内存中,以字符的( C )形式存储。 A. 原码 B. 反码 C. ASCII 码 D. BCD码4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是( C )。x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.525、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( B )。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 6、若有代数式,则不正确的C语言表达式是
19、( C )。A.a/b/c*e*3 B. 3*a*e/b/c C.3*a*e/b*c D. a*e/c/b*3 7、表达式!x|a=b 等效于( D )。 A. !(x|a)=b) B. !(x|y)=b C. !(x|(a=b) D. (!x)|(a=b) 8、设整型变量 m,n,a,b,c,d 均为1,执行 (m=ab)&(n=cd)后, m,n 的值是( A)。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 9、 设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B )。 A. 3 B. 0 C. 9 D. -12 10、在以下一组运算符中
20、,优先级最低的运算符是( D )。 A. * B. != C. + D. = 11、设整型变量 i 值为2,表达式(+i)+(+i)+(+i)的结果是( B )。 A. 6 B. 12 C. 15 D. 表达式出错 12、若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是( C )。 A. 1 B. 2 C. 2.0 D. 2.5 13、sizeof (double)的结果值是( A )。 A. 8 B. 4 C. 2 D. 出错 14、设a=1,b=2,c=3,d=4,则表达式:ab? a : cd? a : d的结果为( D )。 A. 4 B. 3 C.
21、2 D. 1 15、设a 为整型变量,不能正确表达数学关系:10a15的 C 语言表达式是( A )。 A. 10a10 & a15 D. !(a=15) 16、设 f是实型变量,下列表达式中不是逗号表达式的是( D )。 A. f= 3.2, 1.0 B. f0, f0 D. f=(3.2, 1.0) 17、 表达式18/4*sqrt(4.0)/8值的数据类型是( C )。A. int B. float C. double D. 不确定 18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2=A+6-3;后c2中的值是( A )。 A. D B. 68 C. 不确定的值
22、 D. C 19、以下用户标识符中,合法的是( B )。 A. int B. nit C. 123 D. a+b 20、C 语言中,要求运算对象只能为整数的运算符是( A )。 A. % B. / C. D. * 21、若有说明语句:char c=72;则变量c在内存占用的字节数是( A )。 A. 1 B. 2 C. 3 D. 4 22、字符串ABC在内存占用的字节数是( B )。 A. 3 B. 4 C. 6 D. 8 23、要为字符型变量 a赋初值,下列语句中哪一个是正确的( B )。 A. char a=3; B. char a=3; C. char a=%; D. char a=*; 24、下列不正确的转义字符是( C )。 A. B. C. 074 D. 0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1