2023年计算机二级VF笔试试题思路版_第1页
2023年计算机二级VF笔试试题思路版_第2页
2023年计算机二级VF笔试试题思路版_第3页
2023年计算机二级VF笔试试题思路版_第4页
2023年计算机二级VF笔试试题思路版_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

2011年9月全国计算机等级考试二级笔试试卷

C语言程序设计

(考试时间90分钟,满分100分)

一、选择题(⑴-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是对的的。请将对的选项填涂

在答题卡相应位置上答在试卷上不得分。

(1)下列叙述中对的的是()。

A)算法就是程序

B)设计算法时只需要考虑数据结构的设计

C)设计算法时只需要考虑结果的可靠性

D)以上三种说法都不对

(2)下列关于线性链表的叙述中,对的的是()。

A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C)进行插入与删除时,不需要移动表中的元素

D)以上三种说法都不对

(3)下列关于二叉树的叙述中,对的的是()。

A)叶子结点总是比度为2的结点少一个

B)叶子结点总是比度为2的结点多一个

c)叶子结点数是度为2的结点数的两倍

D)度为2的结点数是度为1的结点数的两倍

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

用软件的是()。

A)学生成绩管理系统

B)C语言编译程序

C)UNIX操作系统

D)数据库管理系统

⑸某系统总体结构图如下图所示:

该系统总体结构图的深度是()。

A)7

B)6

C)3

D)2

(6)程序调试的任务是()。

A)设计测试用例

B)验证程序的对的性

C)发现程序中的错误

D)诊断和改正程序中的错误

⑺下列关于数据库设计的叙述中,对的的是()。

A)在需求分析阶段建立数据字典

B)在概念设计阶段建立数据字典

C)在逻辑设计阶段建立数据字典

D)在物理设计阶段建立数据字

(8)数据库系统的三级模式不涉及()。

A)概念模式

B)内模式

C)外模式

D)数据模式

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

则由关系R和s得到关系T的操作是()。

A)自然连接

B)差

C)交

D)并

(10)下列选项中属于面向对象设计方法重要特性的是()。

A)继承

B)自顶向下

C)模块化

D)逐步求精

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

A)C语言编写的函数源程序,其文献名后缀可以是.C

B)C语言编写的函数都可以作为一个独立的源程序文献

C)C语言编写的每个函数都可以进行独立的编译并执行

D)一个C语言程序只能有一个主函数

(12)以下选项中关于程序模块化的叙述错误的是()。

A)把程序提成若干相对独立的模块,可便于编码和调试

B)把程序提成若干相对独立、功能单一的模块,可便于反复使用这些模块

c)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所规定的程序

D)可采用自项向下、逐步细化的设计方法把若干独立模块组装成所规定的程序

(13)以下选项中关于c语言常量的叙述错误的是()。

A)所谓常量,是指在程序运营过程中,其值不能被改变的量

B)常量分为整型常量、实型常量、字符常量和字符串常量

c)常量可分为数值型常量和非数值型常量

D)经常被使用的变量可以定义成常量

(14)若有定义语句:inta=10;doubleb=3.14;,则表达式A+a+b值的类型是()。

A)char

B)int

C)double

D)float

(15)若有定义语句:intx=12,3=8,z;,在其后执行语句z=0.9+x/y;,则Z的值

为()0

A)l.9

B)1

C)2

D)2.4

(16)若有定义:inta,b;,通过语句scanf(”%d;%d”,&a,&b);,能把整数3赋给

变量a,5赋给变量b的输入数据是()o

A)35

B)3,5

C)3;5

D)35

(17)若有定义语句:intkl=10,k2=20;,执行表达式(kl=kl>k2)&&(k2=k2>kl)后,

kl和k2的值分别为()。

A)0和1

B)0和20

C)10和1

D)10和20

(18)有以下程序

#include

main()

{inta=l,b=0;

if(-a)b++;

elseif(a=0)b+=2:

elseb+=3:

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

)

程序运营后的输出结果是()o

A)0

B)1

C)2

D)3

(19)下列条件语句中,输出结果与其他语句不同的是()0

A)if(a)printf(H%d\-nM,x);elseprintf(n%d\nH,y);

B)if(a一O)printf(H%d\n",y);elseprintf(n%d\nH,x);

C)if(a!=O)p由tf(”%d\n",x);elseprintf(n%d\n%y);

D)if(a=O)printf(n%d\nH,x);elseprintf(H%d\nn,y);

(20)有以下程序

#include

main()

{inta=7;

while(a—);

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

)

程序运营后的输出结果是()。

A)-l

B)0

C)1

D)7

(21)以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII

码值为97)

A)printf("%c\n",'a'-32);

B)printf("%d\n",'A');

c)printf("%c\n",65);

D)print-f("%c\n",'B'-l);

(22)有以下程序(注:字符a的ASCII码值为97)

#include

main()

{char*s={naben);

do

{printfC%d”,+s%10);++s;)

while(+s);

)

程序运营后的输出结果是()。

A)abc

B)789

C)7890

D)979899

(23)若有定义语句:doublea,+p=&a;以下叙述中错误的是()。

A)定义语句中的*号是一个间址运算符

B)定义语句中的*号只是一个说明符

C)定义语句中的P只能存放double类型变量的地址

D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量P

(24)有以下程序

#include

doublef(doublex);

main()

{doublea_0;inti;

for(i=0;i<30;i+=10)a+-f((double)i);

printf("%5.Of\n",a);

doublef(doublex)

(returnX+x+1;)

程序运营后的输出结果是()o

A)503

B)401

C)500

D)1404

(25)若有定义语句:intyear=2023,*p=&year;,以下不能使变量year中的值增至

2023的语句是()。

A)*p+=1;

B)(*p)++;

C)++(*p);

D)*p++;

(26)以下定义数组的语句中错误的是()。

A)intnum[]={1,2»3,4,5,6};

B)intnum[][3]={{1,2},3,4,5,6);

C)intnum⑵[4]=({1,2,,{3,4},{5,6});

D)intnum[][4]={l,2,3,4,5,6};

(27)有以下程序

#include

voidfun(int+p)

{printf("%d\n”,p[5]);}

main()

{inta[10]={l,2,3,4,5,6,7,8,9,10};

fun(&a[3]);

)

程序运营后的输出结果是()o

A)5

B)6

C)8

D)9

(28)有以下程序

#include

#defineN4

voidfun(inta[||N],imb[])

{inti;

for(i=0;i

)

voidmain()

{intx[N][N]={{l,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},

y[N],i;

fun(x,y);

for(i=0:i<N;I++)PRINTF("%D,”,Y[IJ);PRINTF("\N");

)

程序运营后的输出结果是()o

A)-12,-3,0,0,

B)-3,-l,1,3,

C)O,1,2,3,

D)-3,3-3,-3

(29)有以下函数

intfun(char*x,char*y)

{intn=0;

whi】e((*x=*y)&&*x!='\O'){x++;y++;n++;}

returnn:

)

函数的功能是()。

A)查找x和y所指字符串中是否有'O'

B)记录x和y所指字符串中最前面连续相同的字符个数

c)将y所指字符串赋给X所指存储空间

D)记录x和y所指字符串中相同的字符个数

(30)若有定义语句:char*sl="OK",*s2="o有;,以下选项中,可以输出"0义'的语

句是()。

A)if(strcmp(s1,s2)=0)puts(s1);

B)if(strcmp(sl,s2)!=0)puts(s2);

C)if(strcmp(sLs2)=l)puts(s1,);

D)if(strcmp(sl,s2)!=0)puts(sl);

(31)以下程序的主函数中调用了在其前面定义的fun函数

#include

(

main()

{doublea[15],k;

k=fun(a);

则以下选项中错误的fun函数首部是()。

A)doublefun(doublea[15])

B)doublefun(double*a)

C)doublefun(doublea[])

D)doublefun(doublea)

(32)有以下程序

#include

#include

main()

{chara[5H10]={"china”,"beijing","you"Jtiananmen”Jwelcome'>

inti,j;chart[10];

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

for(j=i+l;j<5;j++)

if(strcmp(a[i],a[j])>0)

{strcpy(t,a[i]);strcpy(a[i],a[j]);strcpy(a[j],t);}

puts(a[3]);

)

程序运营后的输出结果是()o

A)Beijing

B)china

C)welcome

D)tiananmen

(33)有以下程序

#include

intf(intm)

{staticintn=0;

n+=m:

returnn;

)

main()

{intn=0;

primf("%d”,f(++n));

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

)

程序运营后的输出结果是()。

A)1,2

B)l,1

C)2,3

D)3,3

(34)有以下程序

#include

main()

{charch[3][5]={"AAAA","BBB","CC");

printf("%s\n",ch[l]);

)

程序运营后的输出结果是()o

A)AAAA

B)CC

C)BBBCC

D)BBB

(35)有以下程序

#include

#include

voidfun(char*w,intm)

{chars,*pL*p2;

pl=w;p2=w+m-l;

while(pl

)

main()

{chara[]=u123456";

fun(a,strlen(a));puts(a);

}

程序运营后的输出结果是()

A)654321

B)116611

Q161616

D)123456

(36)有以下程序

#include

#include

typedefstruct{charname[9];charsex;intscore[2];}STU;

STUf(STUa)

{STUb={,,Zhaou;m,,85,90);

inti:

strcpy(a.name,b.name);

a.sex=b.sex;

for(i=0;i<2;i++)a.score[i]=b.scorefi];

returna;

)

main()

fSTUc={"QianH;f,95,92},d;

d=f(c);

printf(n%s,%c,%d,%d,",d.nalne,d.sex,d.score[0],d.score[l]);

printf(n%s,%c,%d,%d,”,c.nanle,c.Sex,c.score[0],c.score[l]);

)

程序运营后的输出结果是()o

A)Zhao,m,85,90,Qian,f,95,92

B)Zhao,m,85,90,ZhaO,m,85,90

C)Qian,f,95,92,Qian,f,95,92

D)Qian,f,95,92,Zhao,m,85,90

(37)有以下程序

#include

main()

{structnode{intn;stmctnode+next;}*p;

structnodex[31={(2,x+1},{4,x+2),{6,NULL)};

p=x;

printff1%d,”,p->n);

printf("%dkn",p->next->n);

程序运营后的输出结果是()o

A)2,3

B)2,4

C)3,4

D)4,6

(38)有以下程序

#include

main()

{inta=2,b;

b=a«2:printr("%d\n"»b);

)

程序运营后的输出结果是()o

A)2

B)4

C)6

D)8

(39)以下选项中叙述错误的是()o

A)C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

B)在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句

C)C程序函数中定义的自动变量,系统不自动赋拟定的初值

D)C程序函数的形参不可以说明为static型变量

(40)有以下程序

#include

main()

{FILE*fp,

intk,n,j,a[6]=<l,2,3,4,5,6};

fp=fopen(ud2.dat","w");

for(i=0;i<6;i++)fprintf(fp,"%d\nn,a[i]);

fclose(fp);

fp=fopen(Hd2.dat","r");

for(i=0;i<3;i++)fscanf(fp,n%d%d",&k,&n);

fc|ose(fp);

printf(n%d,%d\nM,k,n);

)

程序运营后的输出结果是()o

A)1,2

B)3,4

C)5,6

D)123.456

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

请将每空的对的答案写在答题卡【1】至[15]序号的横线上,答在试卷上不得分。

⑴数据结构分为线性结构与非线性结构,带链的栈属于【1】o

(2)在长度为n的顺序存储的线性表中插入一个元素,最坏情况下需要移动表

中【2】个元素。

⑶常见的软件开发方法有结构化方法和面向对象方法。对某应用系统通过需求分析

建立数据流图(DFD),则应采用【3】方法。

(4)数据库系统的核心是【4】o

(5)在进行关系数据库的逻辑设计时,E-R图中的属性常被转换为关系中的属性,

联系通常被转换为【5】

(6)若程序中已给整型变量a和b赋值10和20,请写出按以下格式输出a、b值的语

句【6】

****a=10.b=20****

⑺以下程序运营后的输出结果是[7】o

#include

main()

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

)

(8)以下程序运营后的输出结果是[8】o

#include

main()

{inti,j;

for(i=6;i>3;i-)j=i;

printf(^^%d%d\n”,i,j);

)

(9)以下程序运营后的输出结果是[9】o

#include

main()

{inti,n[]={0,0,0,0,0);

for(i=l;i<=2;i++)

{n[i]=n[i-l]*3+l;

printf(n%dH,n[i]);

)

printf(n\nn);

)

(10)以下程序运营后的输出结果是[10]

#include

main()

{chara;

for(a=0;a<15;a+=5)

{putchar(a+,A');)

printf(n\nn);

)

(11)以下程序运营后的输出结果是[11]

#include

voidfun(intx)

{if(x/5>o)fun(x/5);

prinff(H%dtn,x);

)

main()

{fun(ll);printf(n\nn);}

(12)有以下程序

#include

main()

{intc[3]={0},k,i;

while((k=getchar())!-\n,)

c[k-'A']++;

for(i=0;i<3;i++)printff'%d",c[i]);printf(n\nu);

若程序运营时从键盘输入ABcAcC〈回车〉,则输出结果为[12]o

(13)以下程序运营后的输出结果是【13】o

#include

main()

{intn[21,i,j;

for(i=0;i<2;i++)n[i]=O;

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

for(j=0;j<2;j++)n|j]=n[i]+l;

printf("%d\n",n|l|);

)

(14)以下程序调用fun函数把x中的值插入到a数组下标为k的数组元素中。主函数

中,n存放a数组中数据的

个数。请填空。

#include

voidfun(ints[],int*n,intk,intx)

{inti;

for(i=*n-1;i>=k;i—)s[[14]]=s[i];

s[k]=x;

*n=*n+[15]

main()

{inta[20]={l,2,3,4,5,6,7,8,9,10,11},i,x=0,k=6,n=ll;

fun(a,&n,k,X);

for(i=0;i<N;I++)PRINTF("%4D",A[I]);PRINTF("\N");

答案解析

(l)D)【解析】所谓算法是指解题方案的准确而完整的描述。是一一组严谨地定义运算顺序的

规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止.算法不等于程

序,也不等于计算方法.设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结

构.

(2)c)【解析】线性表的链式存储结构称为线性碎表.在熊式存储结构中,存储数据结构的存

储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之

间的逻辑关系是由指针域来确定的。

(3)B)【解析】由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个。

(4)A)【解析】学生成绩管理系统为应用软件.

(5)c)【解析】这个系统总体结构图是一棵树结构,在树结构中,根结点在第1层,同一层上所

有子结点都在下一层,由系统总体结构图可知,这棵树共3层.在树结构中,树的最大层次称为树的

深度,所以这棵树的深度为3.

(6)D)【解析】所谓程序调试,是将编制的程序投入实际运行前,用手工或编释程序等方法进

行测试,

修正语法错误和逻辑错误的过程.其任务是诊断和改正程序中的错误.

(7)A)【解析】数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成

目标独立的若干阶段.分别是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编

码阶段、测试阶段、运行阶段、进一步修改阶段。数据字典是对系统中数据的详尽描述,是各类数

据属性的清单.对数据设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。

(8)D)【解析】数据库系统的三级模式包括概念模式、外模式和内模式(物理模式).

(9)B)【解析】由三个关系R、s和T的结构可以知道,关系T是由关系R、s经过差运算得到的.

(10)A)【解析】面向对象设计方法的主要特征有封装性、继承性和多态性.而结构化程序设计

方法的主要原则有自顶向下,逐步求精,模块化,限制使用got。语句.

(ll)c)【解析】C语言程序是从main函数开始执行的,每一个函数可以进行独立的编译.

(12)c)【解析】如果应用结构化程序设计方法设计程序,那么可采用自顶向下,逐步细化的设

计方法把若干独立模块组装成所要求的程序.

(13)D)【解析】常量指在程序运行过程中,其值不能被改变的量.常量分为整型常量:也就是

整常数,实型常量,字符型常量和字符串常量.常量也可以按数据类型分为为数据常量和非数据常

量.变量是指在程序运行过程中,其值能被改变的量.

(14)c)【解析】在c语言中不同类型的数据进行运算时,除了强制数据类型转换外,都要进行

默认的数据类型转换,通常转换为精度较高的数据类型.对于本题来说,字符型数据与整型a相

加转换为整型数据,其和再与双精度型数据b相加,要转换为双精度型数据.

【解析】由于x,y,z都是整型数据,所以x除以Y的值为整型数值1,1和0.9相加得到1.

9.再转换为整型数1赋给整型变量2.

(16)0【解析】在采用scanf这个函数输入数据时,要严格遵守其输入的规则定义.本题此函

数定义的规则是,在两个整数之间加分号输入.

(17)B)【解析】由于kl等于10,k2等于20,所以关系表达式kl>k2的值为假,即等于0,所以在

执行逻辑表达式(kl=kl>k2)&&(k2=k=2>kl)的第一个赋值表达式kl=kl>k2执行后,kl的值等于0.又

因为在逻辑与表达式中只要第表达式的值为假时,整个逻辑表达式的值就为假,第二表达式不执

行,k2值不改变.

(18)0【解析】由于变量a的初始值等于1,所以在程序中执行ifC-a)后,a的值等于0,执行

elseif(a=0)b+=2;这条语句后,变量b的值等于2.

(19)D)【解析】选项A)、B)sC)这三条语句都是在变量不等于。的情况下,输出x;等于。的情

况下输出Y,而选项D)则正好相反.

(20)A)【解析】在while港句中,先判断while后面的表达式是否为0,如果为0,则退出循环,

否则执行循环体。在本题中,当变量a的值经过几次循环后,其值等于0时,退出while循环语句,变

量a再执行自减运算,所以其值等于-1.

(21)B)【解析】在选项B)的输出函数中,大写字符'A,以整型数据的形式输出.

(22)8)【解析】因为小写1字符a,b,c的ASCH的值分别为97,98,99,而在dowhile循环语句

中,每次对字符的ASCII的值取余数并输出,第一次循环输出7,第二次循环输出8,第三次循环输出

(23)A)【解析】在指针定义语句doublea,*p=&a中,指针变量p前面的鸟,只是一个说明

符,说明变量P是指针类型的变量。

(24)A)【解析】由工函数f的作用是对形参x求平方再加1,所在在主函数中,循环第一次执行后

变量a的值等于1,第二次执行后,变量a的值等于102,第三次执行后,变量a的值等于503.

(25)D)【解析】由于自加运算符r■的运算级高于间接运算*的运算级,所以选项D)的表达式

*p++不能使变量year中的值噌至2010.

(26)0【解析】在选项c)的数组定义中,赋值号左边定义了一个2行4列的二二维数组,而在右

边定义了一个3行2列的二维数组.

(27)D)【解析】函数fun的功能是输出数组P的第5个元素,在主函数中,把元素a[3]的地址赋

给函数fun,因为在c语言中,数组的下标是从0开始,所以输出数组a中的第8个元素,即9.

(28)B)【解析】fun函数的功能是求出一二维数组a中第工行第1个元素与第N-1-i元素的差,赋

给b[i].在主函数中,把实参二维数组x和一维数组Y传递给形参的b,最后输出〜维数组Y中元素的

值.

(29)B)【解析】在while循环中的判断表达式为(*x=*y

温馨提示

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

评论

0/150

提交评论