计算机二级基本介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.全国计算机等级考试介绍
1)什么是二级考试
全国计算机等级考试(National Computer Rank Examination,简称NCRE),是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查应试人员计算机应用知识与技能的全国性计算机水平考试体系。

NCRE级别/科目设置如下(2013版):
其中:
一级:操作技能级。

考核计算机基础知识及计算机基本操作能力,包括Office 办公软件、图形图像软件。

二级:程序设计/办公软件高级应用级。

考核内容包括计算机语言与基础程序设计能力,要求参试者掌握一门计算机语言,可选类别有高级语言程序设计类、数据库程序设计类、WEB程序设计类等;二级还包括办公软件高级应用能力,要求参试者具有计算机应用知识及MS Office办公软件的高级应用能力,能够在实际办公环境中开展具体应用。

三级:工程师预备级。

三级证书面向已持有二级相关证书的考生,考核面向应用、面向职业的岗位专业技能。

四级:工程师级。

四级证书面向已持有三级相关证书的考生,考核计算机专业课程,是面向应用、面向职业的工程师岗位证书。

2)考试时间,地点是什么?
NCRE考试采用全国统一命题,统一考试的形式。

所有科目每年开考两次。

一般为3月倒数第一个周六和9月倒数第二个周六,考试持续5天。

考生不受年龄、职业、学历等背景的限制,任何人均可根据自己学习情况和实际能力选考相应的级别和科目。

考生可携带有效身份证件到就近考点报名。

每次考试报名的具体时间由各省(自治区、直辖市)级承办机构规定。

3)考试的成绩怎样算?
NCRE考试实行百分制计分,但以等第分数通知考生成绩。

等第分数分为“不及格”、“及格”、“良好”、“优秀”四等。

考试成绩在“及格”以上者,由教育部考试中心发合格证书。

考试成绩为“优秀”的,合格证书上会注明“优秀”字样。

(100-90分为“优秀”,89-80分为“良好”,79-60分为“及格”,59-0分为“不及格”.)
4)证书获得者具备的能力,可以胜任什么工作
NCRE合格证书式样按国际通行证书式样设计,用中、英两种文字书写,证书编号全国统一,证书上印有持有人身份证号码。

该证书全国通用,是持有人计算机应用能力的证明,也可供用人部门录用和考核工作人员时参考。

一级为操作技能级。

一级证书表明持有人具有计算机的基础知识和初步应用能力,掌握Office办公自动化软件的使用及因特网(Internet)应用,或掌握基本图形图像工具软件(Photoshop)的基本技能,可以从事机关、企事业单位文秘和办公信息计算机化工作。

二级为程序设计/办公软件高级应用级。

二级证书表明持有人具有计算机基础知识和基本应用能力,能够使用计算机高级语言编写程序,可以从事计算机程序的编制工作、初级计算机教学培训工作以及企业与信息化有关的业务和营销服务工作。

三级为工程师预备级。

三级证书表明持有人初步掌握与信息技术有关岗位的基本技能,能够参与软硬件系统的开发、运维、管理和服务工作。

四级为工程师级。

证书表明持有人掌握从事信息技术工作的专业技能,并有系统的计算机理论知识和综合应用。

5)2014年全年考试时间
2014年全国计算机等级考试将继续实施2013年版考试大纲,并在全部级别全部科目实施无纸化考试。

考试次数在原来每年2次的基础上增加1次,同时调整3月和9月的考试周期,由过去的5天缩短为4天。

2014年3次考试时间分别为3月29日-4月1日、9月20日-23日、12月13日-14日。

3月和9月考试开考全部级别全部科目;12月份为首次试点考试,只开考一级和二级,各省级承办机构可根据实际情况决定是否开考,并确定试点考点。

具体考试周期及试点情况由省级承办机构确定。

2.电信学院C课程组对二级考试的定位
C语言程序设计课程的总目标有2个:
1)对语言和基本算法的掌握:熟悉语言的基本语法。

2)程序设计和调试能力:使用该语言进行程序设计,以解决电气信息类工程中的实际问题。

学生的这种能力体现在后续专业课程的学习和学生的各种创新活动中。

对课程目标的检测:主要是通过学院的半期、期终考试检测。

目前学生的现状和问题:多数学生对C语言基础语法的掌握不牢,程序设计能力欠缺,考完试后遗忘严重。

所以,全国C语言2级考试可以作为对第一个总目标的检验方式。

3.对二级大纲和样题的解读
1)选择题(原来的笔试部分)40分
2)操作题(原来的上机部分)60分
a) 程序填空(18分)
b)程序改错(18分)
c)程序设计(24分)
一、选择题(每题1分,共40分)
(1)下列选项中不符合良好程序设计风格的是
A)源程序要文档化B)数据说明的次序要规范化
C)避免滥用goto语句D)模块设计要保证高耦合、高内聚
(2)从工程管理角度,软件设计一般分为两步完成,它们是
A)概要设计与详细设计B)数据设计与接口设计
C)软件结构设计与数据设计D)过程设计与数据设计
(3)下列选项中不属于软件生命周期开发阶段任务的是
A)软件测试B)概要设计 C)软件维护 D)详细设计
(4)在数据库系统中,用户所见的数据模式为
A)概念模式B)外模式C)内模式D)物理模式
(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和A)编码设计B)测试阶段C)运行阶段 D)物理设计
(6)设有如下三个关系表
R S T
下列操作中正确的是
A)T=R∩S B)T=R∪S
C)T=R×S D)T=R/S
(7)下列叙述中正确的是
A)一个算法的空间复杂度大,则其时间复杂度也必定大
B)一个算法的空间复杂度大,则其时间复杂度必定小
C)一个算法的时间复杂度大,则其空间复杂度必定小
D)上述三种说法都不对
(8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A)63 B)64 C)6 D)7
(9)数据库技术的根本目标是要解决数据的
A)存储问题 B)共享问题 C)安全问题 D)保护问题
(10)对下列二叉树
进行中序遍历的结果是
A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG
(11)下列叙述中错误的是
A)一个C语言程序只能实现一种算法
B)C程序可以由多个程序文件组成
C)C程序可以由一个或多个函数组成
D)一个C函数可以单独作为一个C程序文件存在
(12)下列叙述中正确的是
A)每个C程序文件中都必须要有一个main()函数
B)在C程序中main()函数的位置是固定的
C)C程序中所有函数之间都可以相互调用,与函数所在位置无关
D)在C程序的函数中不能定义另一个函数
(13)下列定义变量的语句中错误的是
A)int _int; B)double int_; C)char For; D)float US$;
(14)若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是
A)++x,y=x-- B)x+1=y C)x=x+10=x+y D)double(x)/10
(15)以下关于逻辑运算符两侧运算对象的叙述中正确的是
A)只能是整数0或1 B)只能是整数0或非0整数
C)可以是结构体类型的数据 D)可以是任意合法的表达式
(16)若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是
A)(x-y>0) B)(x-y<0) C)(x-y<0||x-y>0) D)(x-y==0)
(17)有以下程序
main()
{ int x, y, z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是
A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1
(18)设有定义:int a; float b; 执行 scanf("%2d%f",&a,&b); 语句时,若从键盘输入876 543.0<回车>,a和b的值分别是
A)876和543.000000 B)87和6.000000
C)87和543.000000 D)76和543.000000
(19)有以下程序
main()
{ int a=0, b=0;
a=10; /* 给a赋值
b=20; 给b赋值 */
printf("a+b=%d\n",a+b); /* 输出计算结果 */
}
程序运行后的输出结果是
A)a+b=10 B)a+b=30 C)30 D)出错
(20)在嵌套使用if语句时,C语言规定else总是
A)和之前与其具有相同缩进位置的if配对
B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对
D)和之前的第一个if配对
(21)下列叙述中正确的是
A)break语句只能用于switch语句
B)在switch语句中必须使用default
C)break语句必须与switch语句中的case配对使用
D)在switch语句中,不一定使用break语句
(22)有以下程序
main()
{ int k=5;
while(--k) printf("%d",k -= 3);
printf("\n");
}
执行后的输出结果是
A)1 B)2 C)4 D)死循环
(23)有以下程序
main()
{ int i;
for(i=1; i<=40; i++)
{ if(i++%5==0)
if(++i%8==0) printf("%d ",i);
}
printf("\n");
}
执行后的输出结果是
A)5 B)24 C)32 D)40
(24)以下选项中,值为1的表达式是
A)1 –'0' B)1 - '\0' C)'1' -0 D)'\0' - '0'
(25)有以下程序
fun(int x, int y){ return (x+y); }
main()
{ int a=1, b=2, c=3, sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
执行后的输出结果是
A)6 B)7 C)8 D)9
(26)有以下程序
main()
{ char s[]="abcde";
s+=2;
printf("%d\n",s[0]);
}
执行后的结果是
A)输出字符a的ASCII码B)输出字符c的ASCII码C)输出字符c D)程序出错
(27)有以下程序
fun(int x, int y)
{ static int m=0, i=2;
i+=m+1; m=i+x+y; return m;
}
main()
{ int j=1, m=1, k;
k=fun(j,m); printf("%d,",k);
k=fun(j,m); printf("%d\n",k);
}
执行后的输出结果是
A)5, 5 B)5, 11 C)11, 11 D)11, 5
(28)有以下程序
fun(int x)
{ int p;
if(x==0||x==1) return(3);
p=x-fun(x-2);
return p;
}
main()
{ printf("%d\n",fun(7)); }
执行后的输出结果是
A)7 B)3 C)2 D)0
(29)在16位编译系统上,若有定义int a[]={10,20,30}, *p=&a;,当执行p++;后,下列说法错误的是
A)p向高地址移了一个字节B)p向高地址移了一个存储单元
C)p向高地址移了两个字节D)p与a+1等价
(30)有以下程序
main()
{ int a=1, b=3, c=5;
int *p1=&a, *p2=&b, *p=&c;
*p =*p1*(*p2);
printf("%d\n",c);
}
执行后的输出结果是
A)1 B)2 C)3 D)4
(31)若有定义:int w[3][5]; ,则以下不能正确表示该数组元素的表达式是A)*(*w+3) B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1)
(32)若有以下函数首部
int fun(double x[10], int *n)
则下面针对此函数的函数声明语句中正确的是
A)int fun(double x, int *n); B)int fun(double , int );
C)int fun(double *x, int n); D)int fun(double *, int *);
(33)有以下程序
void change(int k[ ]){ k[0]=k[5]; }
main()
{ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;
while( n<=4 ) { change( &x[n]) ; n++; }
for(n=0; n<5; n++) printf("%d ",x[n]);
printf("\n");
}
程序运行后输出的结果是
A)6 7 8 9 10 B)1 3 5 7 9 C)1 2 3 4 5 D)6 2 3 4 5
(34)有以下程序
main()
{ int x[3][2]={0}, i;
for(i=0; i<3; i++) scanf("%d",x[i]);
printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);
}
若运行时输入:2 4 6<回车>,则输出结果为
A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6
(35)有以下程序
int add( int a,int b){ return (a+b); }
main()
{ int k, (*f)(), a=5,b=10;
f=add;

}
则以下函数调用语句错误的是
A)k=(*f)(a,b); B)k=add(a,b);
C)k= *f(a,b); D)k=f(a,b);
(36)有以下程序
#include
main( int argc, char *argv[ ])
{ int i=1,n=0;
while (i
printf("%d\n",n);
}
该程序生成的可执行文件名为:proc.exe。

若运行时输入命令行:proc 123 45 67
则程序的输出结果是
A)3 B)5 C)7 D)11
(37)有以下程序
# include
# define N 5
# define M N+1
# define f(x) (x*M)
main()
{ int i1, i2;
i1 = f(2) ;
i2 = f(1+1) ;
printf("%d %d\n", i1, i2);
}
程序的运行结果是
A)12 12 B)11 7 C)11 11 D)12 7 (38)有以下结构体说明、变量定义和赋值语句
struct STD
{ char name[10];
int age;
char sex;
} s[5],*ps;
ps=&s[0];
则以下scanf函数调用语句中错误引用结构体变量成员的是
A)scanf("%s",s[0].name); B)scanf("%d",&s[0].age);
C)scanf("%c",&(ps->sex)); D)scanf("%d",ps->age);
(39)若有以下定义和语句
union data
{ int i; char c; float f; } x;
int y;
则以下语句正确的是
A)x=10.5; B)x.c=101; C)y=x; D)printf("%d\n",x);
(40)有以下程序
#include
main()
{ FILE *fp; int i;
char ch[]="abcd",t;
fp=fopen("abc.dat","wb+");
for(i=0; i<4; i++) fwrite(&ch[i],1,1,fp);
fseek(fp,-2L,SEEK_END);
fread(&t,1,1,fp);
fclose(fp);
printf("%c\n",t);
}
程序执行后的输出结果是
A)d B)c C)b D)a
2 程序填空题:
给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。

例如,输入一个数:27638496,新的数为:739。

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
void fun(unsigned long *n)
{ unsigned long x=0, i; int t;
i=1;
while(*n)
/**********found**********/
{ t=*n % __1__;
/**********found**********/
if(t%2!= __2__)
{ x=x+t*i; i=i*10; }
*n =*n /10;
}
/**********found**********/
*n=__3__;
}
main()
{ unsigned long n=-1;
while(n>99999999||n<0)
{ printf("Please input(0<n<100000000): "); scanf("%ld",&n); }
fun(&n);
printf("\nThe result is: %ld\n",n);
}
3 程序改错题:
给定程序MODI1.C中函数fun 的功能是:计算n!。

例如,给n输入5,则输出120.000000。

请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:
#include <stdio.h>
double fun ( int n )
{ double result = 1.0 ;
/************found************/
if n = = 0
return 1.0 ;
while( n >1 && n < 170 )
/************found************/
result *= n--
return result ;
}
main ( )
{ int n ;
printf("Input N:") ;
scanf("%d", &n) ;
printf("\n\n%d! =%lf\n\n", n, fun(n)) ;
}
4 程序设计题:
请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。

例如,若输入字符串"-1234",则
函数把它转换为整数值-1234。

函数fun中给出的语句仅供参考。

注意: 部分源程序存在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

给定源程序:
#include <stdio.h>
#include <string.h>
long fun ( char *p)
{
/* 以下代码仅供参考*/
int i, len, t; /* len为串长,t为正负标识*/
long x=0;
len=strlen(p);
if(p[0]=='-')
{ t=-1; len--; p++; }
else t=1;
/* 以下完成数字字符串转换为一个数字*/
return x*t;
}
main() /* 主函数*/
{ char s[6];
long n;
printf("Enter a string:\n") ;
gets(s);
n = fun(s);
printf("%ld\n",n);
NONO ( );
}
NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/ FILE *fp, *wf ;
int i ;
char s[20] ;
long n ;
fp = fopen("c:\\test\\in.dat","r") ;
wf = fopen("c:\\test\\out.dat","w") ; for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%s", s) ;
n = fun(s);
fprintf(wf, "%ld\n", n) ;
}
fclose(fp) ;
fclose(wf) ;
}。

相关文档
最新文档