全国计算机等级考试二级C语言笔试.docx

上传人:b****7 文档编号:8755915 上传时间:2023-02-01 格式:DOCX 页数:16 大小:23.97KB
下载 相关 举报
全国计算机等级考试二级C语言笔试.docx_第1页
第1页 / 共16页
全国计算机等级考试二级C语言笔试.docx_第2页
第2页 / 共16页
全国计算机等级考试二级C语言笔试.docx_第3页
第3页 / 共16页
全国计算机等级考试二级C语言笔试.docx_第4页
第4页 / 共16页
全国计算机等级考试二级C语言笔试.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试二级C语言笔试.docx

《全国计算机等级考试二级C语言笔试.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言笔试.docx(16页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试二级C语言笔试.docx

全国计算机等级考试二级C语言笔试

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

基本要求

1、掌握C++语言的基本语法规则。

2、熟练掌握有关类与对象的相关知识。

3、能够阅读和分析C++程序。

4、能够采用面向对象的编程思路和方法编写应用程序。

5、能熟练使用VisualC++6.0集成开发环境编写和调试程序。

考试内容

一、C++语言概述

1、了解C++语言的基本符号。

2、了解C++语言的词汇(关键字、标识符、常量、运算符、标点符号等)。

3、掌握C++程序的基本框架。

4、能够使用VisualC++6.0集成开发环境编辑、编译、运行与调试程序。

二、数据类型、表达式和基本运算

1、掌握C++数据类型(基本类型,指针类型)及其定义方法。

2、了解C++的常量定义(整型常量,字符常量,逻辑常量,实型常量,地址常量,符号常量)。

3、掌握变量的定义与使用方法(变量的定义及初始化,全局变量,局部变量)。

4、掌握C++运算符的种类、运算优先级和结合性。

5、熟练掌握C++表达式类型及求值规则(赋值运算,算术运算符和算术表达式,关系运算符和关系表达式,逻辑运算符和逻辑表达式,条件运算,指针运算,逗号表达式)。

三、C++的基本语句

1、掌握C++的基本语句,例如赋值语句、表达式语句、复合语句、输入、输出语句和空语句等。

2、用if语句实现分支结构。

3、用switch语句实现多分支选择结构。

4、用for语句实现循环结构。

5、用while语句实现循环结构。

6、用do...while语句实现循环结构。

7、转向语句(goto,continue,break和return)。

8、掌握分支语句和循环语句的各种嵌套使用。

四、数组、指针与引用

1、掌握一维数组的定义、初始化和访问,了解多维数组的定义、初始化和访问。

2、了解字符串与字符数组。

3、熟练掌握常用字符串函数(strlen,strcpy,strcat,strcmp,strstr等)。

4、指针与指针变量的概念,指针与地址运算符,指针与数组。

5、引用的基本概念,引用的定义与使用。

五、掌握函数的有关使用

1、函数的定义方法和调用方法。

2、函数的类型和返回值。

3、形式参数与实际参数,参数值的传递。

4、变量的作用域和生存周期。

5、递归函数。

6、函数重载。

7、内联函数。

8、带有默认参数值的函数。

六、熟练掌握类与对象的相关知识

1、类的定义方式、数据成员、成员函数及访问权限(public,private,protected)。

2、对象和对象指针的定义与使用。

3、构造函数与析构函数。

4、静态数据成员与静态成员函数的定义与使用方式。

5、常数据成员与常成员函数。

6、this指针的使用。

7、友元函数和友元类。

8、对象数组与成员对象。

七、掌握类的继承与派生知识

1、派生类的定义和访问权限。

2、继承基类的数据成员与成员函数。

3、基类指针与派生类指针的使用。

4、虚基类。

5、子类型关系。

八、了解多态性概念

1、虚函数机制的要点。

2、纯虚函数与抽象基类,虚函数。

3、了解运算符重载。

九、模板

1、简单了解函数模板的定义和使用方式。

2、简单了解类模板的定义和使用方式。

十、输入输出流

1、掌握C++流的概念。

2、能够使用格式控制数据的输入输出。

3、掌握文件的I/O操作。

考试方式

上机考试,考试时长120分钟,满分100分。

1、题型及分值:

单项选择题40分(含公共基础知识部分10分)、操作题60分(包括基本操作题、简单应用题及综合应用题)。

2、考试环境:

VisualC++6.0

全国计算机等级考试二级C语言笔试试题及答案

一、选择题(

(1)~(10)每小题2分,(11)~(50)每小题1分,共60分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)数据的存储结构是指______。

A.存储在外存中的数据

B.数据所占的存储空间量

C.数据在计算机中的顺序存储方式

D.数据的逻辑结构在计算机中的表示

(2)下列关于栈的描述中错误的是______。

A.栈是先进后出的线性表

B.栈只能顺序存储

C.栈具有记忆作用

D.对栈的插入与删除操作中,不需要改变栈底指针

(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是______。

A.冒泡排序为n/2

B.冒泡排序为n

C.快速排序为n

D.快速排序为n(n-1)/2

(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。

A.log2n

B.n/2

C.n

D.n+1

(5)下列对于线性链表的描述中正确的是______。

A.存储空间不一定是连续,且各元素的存储顺序是任意的

B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面

C.存储空间必须连续,且前件元素一定存储在后件元素的前面

D.存储空间必须连续,且各元素的存储顺序是任意的

(6)下列对于软件测试的描述中正确的是______。

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

(7)为了使模块尽可能独立,要求______。

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

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

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

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

(8)下列描述中正确的是______。

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据与相关文档的集合

(9)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指______。

A.数据与程序独立存放

B.不同的数据被存放在不同的文件中

C.不同的数据只能被对应的应用程序所使用

D.以上三种说法都不对

(10)用树形结构表示实体之间联系的模型是______。

A.关系模型

B.网状模型

C.层次模型

D.以上三个都是

(11)算法具有五个特性,以下选项中不属于算法特性的是______。

A.有穷性

B.简洁性

C.可行性

D.确定性

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

A.-80.

B.-080

C.-8e1.0

D.-80.0e

(13)以下叙述中正确的是______。

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

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

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

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

(14)以下不能定义为用户标识符的是______。

A.Main

B._0

C._int

D.sizeof

(15)以下选项中不能作为合法常量的是______。

A.1.234e04

B.1.234e0.4

C.1.234e+4

D.1.234e0

(16)数字字符0的ASCII值为48,若有以下程序

main()

{chara='1',b='2';

printf("%c,",b++);

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

}

程序运行后的输出结果是______。

A.3,2

B.50,2

C.2,2

D.2,50

(17)有以下程序

main()

{intm=12,n=34;

printf("%d%d",m++,++n);

printf("%d%d\n",n++,++m);

}

程序运行后的输出结果是______。

A.

B.

C.

D.

(18)有定义语句:

intb;charc[10];,则正确的输入语句是______。

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);来源:

考试大-计算机二级考试

19)有以下程序

main()

{intm,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

printf("%d%d%d\n",m,n,p);

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是______。

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,p=789

D.123456789

(20)有以下程序

main()

{inta,b,d=25;

a=d/10%9;

b=a&&(-1);

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

}

程序运行后的输出结果是______。

A)6,1

B.2,1

C.6,0

D.2,0

(21)有以下程序

main()

{

inti=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3))

printf("%d%d%d\n",i,j,k);

}

程序运行后的输出结果是______。

A.123

B.234

C.223

D.233

(22)若整型变量a、b、c、d中的值依次为:

1、4、3、2。

则条件表达式a

A.1

B.2

C.3

D.4

(23)有以下程序

main()

{

intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7)if(p[i]%2)j+=p[i];

printf("%d\n",j);

}

程序运行后的输出结果是______。

A.42

B.45

C.56

D.60

(24)有以下程序

main()

{

chara[7]="a0\0a0\0";inti,j;

i=sizeof(a);j=strlen(a);

printf("%d%d\n",i,j);

}

程序运行后的输出结果是______。

A.22

B.76

C.72

D.62

(25)以下能正确定义一维数组的选项是______。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

(26)有以下程序

intf1(intx,inty){returnx>y?

x:

y;}

intf2(intx,inty){returnx>y?

y:

x;}

main()

{

inta=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

printf("%d,%d,%d\n",e,f,g);

}

程序运行后的输出结果是______。

A.4,3,7

B.3,4,7

C.5,2,7

D.2,5,7

(27)已有定义:

chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是______。

A.数组a和b的长度相同

B.a数组长度小于b数组长度

C.a数组长度大于b数组长度

D.上述说法都不对

(28)有以下程序

voidf(int*x,int*y)

{

intt;

t=*x;*x=*y;*y=t;

}

main()

{

inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p

{f(p,q);p++;q--;}

for(i=0;i<8;i++)printf("%d,",a[i]);

}

程序运行后的输出结果是______。

A.8,2,3,4,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,

(29)有以下程序

main()

{

inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i;

for(i=0;i<3;i++)printf("%d",a[1][i]);

}

程序运行后的输出结果是______。

A.012

B.123

C.234

D.345来源:

考试大-计算机二级考试

(30)以下叙述中错误的是______。

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

(31)有以下程序

#defineN20

fun(inta[],intn,intm)

{inti,j;

for(i=m;i>=n;i--)a[i+1]=a[i];

}

main()

{

inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,2,9);

for(i=0;i<5;i++)printf("%d",a[i]);

}

程序运行后的输出结果是______。

A.10234

B.12344

C.12334

D.12234

(32)有以下程序

main()

{

inta[3][2]={0},(*ptr)[2],i,j;

for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}

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

{for(j=0;j<2;j++)printf("-",a[i][j]);

printf("\n");

}

}

若运行时输入:

123<回车>,则输出结果是______。

A.产生错误信息

B.10

C.12

D.10

203020

000030

(33)有以下程序

prt(int*m,intn)

{inti;

for(i=0;i

}

main()

{

inta[]={1,2,3,4,5},i;

prt(a,5);

for(i=0;i<5;i++)

printf("%d,",a[i]);

}

程序运行后的输出结果是______。

A.1,2,3,4,5,

B.2,3,4,5,6,

C.3,4,5,6,7,

D.2,3,4,5,1,

(34)有以下程序

main()

{inta[]={1,2,3,4,5,6,7,8,9,0},*p;

for(p=a;p

}

程序运行后的输出结果是______。

A.1,2,3,4,5,6,7,8,9,0,

B.2,3,4,5,6,7,8,9,10,1,

C.0,1,2,3,4,5,6,7,8,9,

D.1,1,1,1,1,1,1,1,1,1,

(35)有以下程序

#defineP3

voidF(intx){return(P*x*x);}

main()

{printf("%d\n",F(3+5));}

程序运行后的输出结果是______。

A.192

B.29

C.25

D.编译出错

(36)有以下程序

main()

{intc=35;printf("%d\n",c&c);}

程序运行后的输出结果是______。

A.0

B.70

C.35

D.1

(37)以下叙述中正确的是______。

A.预处理命令行必须位于源文件的开头

B.在源文件的一行上可以有多条预处理命令

C.宏名必须用大写字母表示

D.宏替换不占用程序的运行时间来源:

考试大-计算机二级考试

(38)若有以下说明和定义

uniondt

{inta;charb;doublec;}data;

以下叙述中错误的是______。

A.data的每个成员起始地址都相同

B.变量data所占的内存字节数与成员c所占字节数相等

C.程序段:

data.a=5;printf("%f\n",data.c);输出结果为5.

D.data可以作为函数的实参

(39)以下语句或语句组中,能正确进行字符串赋值的是______。

A.char*sp;*sp="right!

";

B.chars[10];s="right!

";

C.chars[10];*s="right!

";

D.char*sp="right!

";

(40)设有如下说明

typedefstructST

{longa;intb;charc[2];}NEW;

则下面叙述中正确的是______。

A.以上的说明形式非法

B.ST是一个结构体类型

C.NEW是一个结构体类型

D.NEW是一个结构体变量

(41)有以下程序

main()

{inta=1,b;

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

{if(a>=8)break;

if(a%2==1){a+=5;continue;}

a-=3;

}

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

}

程序运行后的输出结果是______。

A.3

B.4

C.5

D.6

(42)有以下程序

main()

{chars[]="159",*p;

p=s;

printf("%c",*p++);printf("%c",*p++);

}

程序运行后的输出结果是______。

A.15

B.16

C.12

D.59

(43)有以下函数

fun(char*a,char*b)

{while((*a!

='\0')&&(*b!

='\0')&&(*a==*b))

{a++;b++;}

return(*a-*b);

}

该函数的功能是______。

A.计算a和b所指字符串的长度之差

B.将b所指字符串连接到a所指字符串中

C.将b所指字符串连接到a所指字符串后面

D.比较a和b所指字符串的大小

(44)有以下程序

main()

{intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

for(i=0;i<4;i++)

{for(j=0;j<=i;j++)printf("L",'');

for(j=_____;j<4;j++)printf("M",num[i][j]);

printf("\n");

}

}

若要按以下形式输出数组右上半三角

1234

678

1112

16

则在程序下划线处应填入的是______。

A.i-1

B.i

C.i+1

D.4-i来源:

考试大-计算机二级考试

(45)有以下程序

point(char*p){p+=3;}

main()

{charb[4]={'a','b','c','d'},*p=b;

point(p);printf("%c\n",*p);

}

程序运行后的输出结果是______。

A.a

B.b

C.c

D.d

(46)程序中若有如下说明和定义语句

charfun(char*);

main()

{

char*s="one",a[5]={0},(*f1)()=fun,ch;

......

}

以下选项中对函数fun的正确调用语句是______。

A.(*f1)(a);

B.*f1(*s);

C.fun(&a);

D.ch=*f1(s);

(47)有以下结构体说明和变量定义,如图所示:

structnode

{intdata;structnode*next;}*p,*q,*r;

datanextdatanextdatanext

pqr

现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是______。

A.P->next=q->next;

B.p->next=p->next->next;

C.p->next=r;

D.p=q->next;

(48)以下对结构体类型变量td的定义中,错误的是______。

A.typedefstructaa

B.structaa

{intn;{intn;

floatm;floatm;

}AA;}td;

AAtd;structaatd;

C.struct

D.struct

{intn;{intn;

floatm;floatm;

}aa;}td;

structaatd;

(49)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是______。

A.feof(fp)

B.ftell(fp)

C.fgetc(fp)

D.rewind(fp)

(50)有以下程序

#include

voidWriteStr(char*fn,char*str)

{FILE*fp;

fp=fopen(fn,"w");fputs(str,fp);fclose(fp);

}

main()

{

WriteStr("t1.dat","start");

WriteStr("t1.dat","end");

}

程序运行后,文件t1.dat中的内容是______。

A.start

B.end

C.startend

D.endrt来源:

考试大-计算机二级考试

 二、填空题(每空2分,共40分)

  请将每空的正确答案写在【1】至【20】序号的横线上,答在试卷上不得分。

  

(1)某二叉树中度为2的结点有18个,则该二叉树中有【1】个叶子结点。

  

(2)在面向对象方法中,类的实例称为【2】。

  (3)诊断和改正程序中错误的工作通常称为【3】。

  (4)在关系数据库中,把数据表示成二维表,每一个二维表称为【4】。

  (5)问题处理方案的正确而完整的描述称为【5】。

  (6)以下程序运行时,若从键盘输入:

102030<回车>,输出的结果是【6】。

#include

  main()

  {inti=0,j=0,k=0;

  scanf("%d%*d%d",&i,&j,&k);

  printf("%d%d%d\

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1