【www.justzx.com--计算机】

篇一:2016年全国计算机等级考试二级C语言考试大纲及重点

2016年全国计算机等级考试二级C语言考试大纲

◆ 基本要求

1.熟悉 Visual C++ 6.0 集成开发环境。

2.掌握结构化程序设计的方法,具有良好的程序设计风格。

3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。

4.在 Visual C++ 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力 ◆ 考试内容

一、C语言程序的结构

1.程序的构成,main函数和其他函数。

2.头文件,数据说明,函数的开始和结束标志以及程序中的注释。

3.源程序的书写格式。

4.C语言的风格。

二、数据类型及其运算

1.C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法。

2.C运算符的种类、运算优先级和结合性。

3.不同类型数据间的转换与运算。

4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。

三、基本语句

1.表达式语句,空语句,复合语句。

2.输入输出函数的调用,正确输入数据并正确设计输出格式。

四、选择结构程序设计

1.用if语句实现选择结构。

2.用switch语句实现多分支选择结构。

3.选择结构的嵌套。

五、循环结构程序设计

1.for循环结构。

2.while和do-while循环结构。

3.continue语句和break语句。

4.循环的嵌套。

六、数组的定义和引用

1.一维数组和二维数组的定义、初始化和数组元素的引用。

2.字符串与字符数组。

七、函数

1.库函数的正确调用。

2.函数的定义方法。

3.函数的类型和返回值。

4.形式参数与实在参数,参数值传递。

5.函数的正确调用,嵌套调用,递归调用。

6.局部变量和全局变量。

7.变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。

八、编译预处理

1.宏定义和调用(不带参数的宏,带参数的宏)。

2.“文件包含”处理。

九、指针

1.地址与指针变量的概念,地址运算符与间址运算符。

2.一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据。

3.用指针作函数参数。

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函数的应用),文件的定位(rewind,fseek函数的应用)。

考试题型

(1)选择。——40

(2)程序填空。——18

(3)程序改错。——18

(4)程序编程。——24

考试时间

120min 无纸化考试

总体上必须清楚的:

1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)

2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。

3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址.

4)bit是位 是指为0 或者1。 byte 是指字节, 一个字节 = 八个位.

5)一定要记住 二进制 如何划成 十进制。

概念常考到的:

1、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。

2、每个C语言程序中main函数是有且只有一个。

3、在函数中不可以再定义函数。

4、算法的是一定要有输出的,他可以没有输入。

5、break可用于循环结构和switch语句。

6、逗号运算符的级别最低。

第一章

1)合法的用户标识符考查:

合法的要求是由字母,数字,下划线组成。有其它元素就错了。

并且第一个必须为字母或则是下划线。第一个为数字就错了。

关键字不可以作为用户标识符号。main define scanf printf 都是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。

2)实型数据的合法形式:

2.333e-1 就是合法的,且数据是2.333×10

考试口诀:e前e后必有数,e后必为整数。. ?1

3)字符数据的合法形式::

'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。

'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。

4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:

考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。

5)转义字符的考查:

在程序中 int 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 任意字符 三位八进制

\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++是先用该表达式的数值为5,然后再把a的数值加上1为6,

再放到变量a中。 进行了++a和a++后在下面的程序中再用到a的话都是变量a中的6了。

考试口诀:++在前先加后用,++在后先用后加。

逗号表达式:优先级别最低 ;表达式的数值逗号最右边的那个表达式的数值。

(2,3,4)的表达式的数值就是4。

9)位运算的考查:

会有一到二题考试题目。

总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。 例1: char a = 6, b;

b = a<<2; 这种题目的计算是先要把a的十进制6化成二进制,再做位运算。

一定要记住, 在没有舍去数据的时候,<<左移一位表示乘以2;>>右移一位表示除以2。

篇二:2016年3月份全国计算机等级考试二级C语言 题库(全)

2016年3月份全国计算机等级考试二级C语言 题库(全)

一、选择题

在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正

确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的

程序流程图,通常也把这种图称为

A)PAD图 B)N-S图 C)结构图 D)数据流图

(2)结构化程序设计主要强调的是

A)程序的规模 B)程序的效率 C)程序设计语言的先进性

程序易读性

(3)为了使模块尽可能独立,要求

A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

(4)需求分析阶段的任务是确定

A)软件开发方法

功能

(5)算法的有穷性是指

A)算法程序的运行时间是有限的B)软件开发工具 C)软件开发费用 D)软件系统 D)

B)算法程序所处理的数据量是有限的

C)算法程序的长度是有限的

D)算法只能被有限的用户使用

(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法

A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序

(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是

A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序

(8)将E-R图转换到关系模式时,实体与联系都可以表示成

A)属性 B)关系 C)键

(9)有三个关系R、S和T如下:

R

B C D

a 0 k1

b 1 n1

S

B C D

f 3 h2

a 0 k1

n 2 x1

T

B C D

a

0 k1D)域

由关系R和S通过运算得到关系T,则所使用的运算为

A)并 B)自然连接 C)笛卡尔积 D)交

(10)下列有关数据库的描述,正确的是

A)数据处理是将信息转化为数据的过程

B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变

C)关系中的每一列称为元组,一个元组就是一个字段

D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系

的关键字,则称其为本关系的外关键字

(11)以下叙述中正确的是

A)用C程序实现的算法必须要有输入和输出操作

B)用C程序实现的算法可以没有输出但必须要有输入

C)用C程序实现的算法可以没有输入但必须要有输出

D)用C程序实现的算法可以既没有输入也没有输出

(12)下列可用于C语言用户标识符的一组是

A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case

D)2a, DO, sizeof

(13)以下选项中可作为C语言合法常量的是

A)-80 B)-080 C)-8e1.0 D)-80.0e

(14)若有语句:char *line[5];,以下叙述中正确的是

A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量

B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

C) 定义line是一个指针数组,语句中的*号称为间址运算符

D) 定义line是一个指向字符型函数的指针

(15)以下定义语句中正确的是

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;

(16)有以下程序段

char ch; int k;

ch=′a′;

k=12;

printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是

A)因变量类型与格式描述符的类型不匹配输出无定值

B)输出项与格式描述符个数不符,输出为零值或不定值

C)a,97,12k=12

D)a,97,k=12

(17)有以下程序

main()

{ int i,s=1;

for (i=1;i<50;i++)

if(!(i%5)&&!(i%3)) s+=i;

printf("%d\n",s);}

A)409 B)277C)1 D)91

(18)当变量c的值不为2、4、6时,值也为"真"的表达式是

A)(c==2)||(c==4)||(c==6)

B)(c>=2&& c<=6)||(c!=3)||(c!=5)

C)(c>=2&&c<=6)&&!(c%2)

D)(c>=2&& c<=6)&&(c%2!=1)

(19)若变量已正确定义,有以下程序段

int a=3,b=5,c=7;

if(a>b) a=b; c=a;

if(c!=a) c=b;

printf("%d,%d,%d\n",a,b,c);

其输出结果是

A)程序段有语法错 B)3,5,3

D)3,5,7

(20)有以下程序

#include <stdio.h>

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;

case 3:a++; b++;

}

printf("a=%d,b=%d\n",a,b);

}

C)3,5,5

A)a=1,b=0B)a=2,b=2C)a=1,b=1

D)a=2,b=1

(21)下列程序的输出结果是

#include "stdio.h"

main()

{ int i,a=0,b=0;

for(i=1;i<10;i++)

{ if(i%2==0)

{a++;

continue;}

b++;}

printf("a=%d,b=%d",a,b); }

A)a=4,b=4 B)a=4,b=5 C)a=5,b=4

(22)已知

#int t=0;

while (t=1)

{...}

则以下叙述正确的是

A)循环控制表达式的值为0

B)循环控制表达式的值为1

C)循环控制表达式不合法

D)以上说法都不对

(23)下面程序的输出结果是

main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

printf("%d\n",*(p+2));}

A)3 B)4 C)1 D)2

D)a=5,b=5

篇三:全国计算机二级c语言历年真题完整版

2010年3月全国计算机等级考试二级C笔试试卷

一、选择题

(1) A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n

B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)

C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)

D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)

(2) 算法的时间复杂度是指

A)算法的执行时间 B)算法所处理的数据量

C)算法程序中的语句或指令条数 D)算法在执行过程中所需要的基本运算次数

(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是

A)编辑软件 B)操作系统C)教务管理系统 D)浏览器

(4)软件(程序)调试的任务是

A)诊断和改正程序中的错误 B)尽可能多地发现程序中的错误

C)发现并改正程序中的所有错误 D)确定程序中错误的性质

(5)数据流程图(DFD图)是

A)软件概要设计的工具 B)软件详细设计的工具

C)结构化方法的需求分析工具 D)面向对象方法的需求分析工具

(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于

A)定义阶段B)开发阶段C)维护阶段C)上述三个阶段

(7)数据库管理系统中负责数据模式定义的语言是

A)数据定义语言 B)数据管理语言

C)数据操纵语言D)数据控制语言

(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是

A)文件 B)数据库 C)字段D)记录

(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的 A)需求分析阶段 B)逻辑设计阶段

C)概念设计阶段 D)物理设计阶段

(10)有两个关系R和T如下:

则由关系R得到关系T的操作是

A)选择B)投影 C)交 D)并

(11)以下叙述正确的是

A)C语言程序是由过程和函数组成的

B)C语言函数可以嵌套调用,例如:fun(fun(x))

C)C语言函数不可以单独编译

D)C语言中除了main函数,其他函数不可作为单独文件形式存在

(12)以下关于C语言的叙述中正确的是

A)C语言中的注释不可以夹在变量名或关键字的中间

B)C语言中的变量可以在使用之前的任何位置进行定义

C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D)C语言的数值常量中夹带空格不影响常量值的正确表示

(13)以下C语言用户标识符中,不合法的是

A)_1B)AaBcC)a_b D)a--b

(14)若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是 A)a=a++,i++;B)i=(a+k)<=(i+k);

C)i=a%11;D)i=!a;

(15)有以下程序

#include<stdio.h>

main()

{char a,b,c,d;

scanf(“%c%c”,&a,&b);

c=getchar();d=getchar;

printf(“%c%c%c%c\n”,a,b,c,d);}

当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是

一个字符)

12<CR>

34<CR>

则输出结果是

A)1234B)12C)12 D)12

(16)以下关于C语言数据类型使用的叙述中错误的是

A)若要准确无误差的表示自然数,应使用整数类型

B)若要保存带有多位小数的数据,应使用双精度类型

C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型

(17)若a是数值类型,则逻辑表达式(a==I)||(a! =1)的值是

A)1B)0

C)2D)不知道a的值,不能确定

(18)以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是

A)switch(a)

{case1:a=b;break;

default:a++;

B)switch(a==1)

{case0:a=b;break;

case1:a++;

C)switch(a)

{default:a++;break;

case1:a=b;

D)switch(a==1)

{case1:a=b;break;

case0:a++;

(19)如下嵌套的if语句

if(a<b)

if(a<c) k=a;

else k=c;

if(b<c) k=b;

else k=c;

以下选项中与上述if语句等价的语句是

A)k=(a<b)?a:b;k=(b<c)?b:c;

B)k=(a<b)?((b<c)?a:b)((b>c)?b:c);

C)k=(a<b)?((a<c)?a:c)((b<c)?b:c);

D)k=(a<b)?a:b;k=(a<c)?a:c;

(20)有以下程序

#include<stdio.h>

main()

{int i,j,m=1;

for(i=1;i<3;i++)

{for(j=3;j>0;j--)

{if(i+j>3) break;

m*=i*j;}

}

printf(“m=%d\n”,m);

}程序运行后的输出结果是

A)m=6 B)m=2 C)m=4D)m=5

(21)有以下程序

#include<stdio.h>

main()

{int a=1,b=2;

for(;a<8;a++) { b+=a;a+=2;}

printf(“%d,%d\n”,a,b);

}程序运行后的输出结果是

A)9,18B)8,11C)7,11 D)10,14

(22)有以下程序,其中k的初值为八进制数

#include<stdio.h>

main()

{int k=011;

printf(“%d\n”,k++);

}程序运行后的输出结果是

A)12B)11 C)10D)9

(23)下列语句组中,正确的是

A)char *s;s="Olympic";B)char s[7];s="Olympic";

C)char *s;s={"Olympic"}; D)char s[7];s={"Olympic"};

(24)以下关于return语句的叙述中正确的是

A)一个自定义函数中必须有一条return语句

B)一个自定义函数中可以根据不同情况设置多条return语句

C)定义成void类型的函数中可以有带返回值的return语句

D)没有return语句的自定义函数在执行结束时不能返同到调用处

(25)下列选项中,能正确定义数组的语句是

A)int num[0..2008]; B)int num[];

C)int N=2008;D)#define N 2008

int num[N]; int num[N];

(26)有以下程序

#include<stdio.h>

void fun(char *c,int d)

{*c=*c+1;d=d+1;

printf(“%c,%c”,*c,d);

}

main()

{char b=‘a’,a=‘A’;

fun(&b,a);printf(“%c,%c\n”,b,a);

}程序运行后的输出结果是

A)b,B,b,A B)b,B,B,A

C)a,B,B,a D)a,B,a,B

(27)若有定义int(*pt)[3];,则下列说法正确的是

A)定义了基类型为int的三个指针变量

B)定义了基类型为int的具有三个元素的指针数组pt

C)定义了一个名为*pt、具有三个元素的整型数组

D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组

(28)设有定义double a[10],*s=a;,以下能够代表数组元索a[3]的是

A)(*s)[3] B)*(s+3)

C)*s[3] D)*s+3

(29)有以下程序

#include<stdio.h>

main()

{int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;

for(i=1;i<3;i++) s=s+a[b[i]];

printf(“%d\n”,s);

}程序运行后的输出结果是

A)6 B)10C)11D)15

(30)有以下程序

#include<stdio.h>

main()

{int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

for(i=1;i<3;i++)

for(j=1;j<=1;j++) t+=b[i][b[j][i]];

printf(“%d\n”,t);

}程序运行后的输出结果是

A)1B)3 C)4D)9

(31)若有以下定义和语句

char s1[10]="abcd!",s2="\n123\\";

printf("%d%d\n",strlen(s1),strlen(s2));

则输出结果是

A)5 5B)10 5 C)10 7 D)5

(32)有以下程序

#include<stdio.h>

#define N 8

void fun(int *x,int i)

{*x=*x+i;}

main()

{int a[N]={1,2,3,4,5,6,7,8},i;

fun(a,2); for(i=1;i<N/2;i++)

{printf(“%d”,a[i]);}

printf(“\n”);

}程序运行后的输山结果是

A)1313B)2234 C)3234

(33)有以下程序

#include<stdio.h>

int f(int t[],int n);

main()

{int a[4]={1,2,3,4},s;

s=f(a,4);printf(“%d\n”,s);}

int f(int t[],int n)

{if (n>0)return t[n-1]+f(t,n-1);

else return 0;} 程序运行后的输出结果是

A)4 B)10 C)14 D)6

(34)有以下程序

#include<stdio.h>

int fun()

{static int x=1;

x*=2;return x;

}

main()

{int i,s=1;

for(i=1;i<=2;i++) s=fun();

printf(“%d\n”,s);

}程序运行后的输出结果是

A)0B)1 C)4 D)8

(35)有以下程序

#include<stdio.h>

#define SUB(a) (a)-(a)

main()

{int a=2,b=3,c=5,d;

d=SUB(a+b)*c;

printf(“%d\n”,d);

}程序运行后的输山结果是

A)0 B)-12 C)-20

(36)设有定义:

struct complex

{int real,ueal;} data1={1,8},data2;

D)1234D)10


查看更多计算机相关内容,请点击计算机

2024 免费范文网版权所有. 京ICP备19018213号-1