全国计算机等级考试二级VF笔试试题Word下载.docx
《全国计算机等级考试二级VF笔试试题Word下载.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级VF笔试试题Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
C.计算机病毒只能通过软件复制的方式进行传播
D.计算机病毒可以通过读写磁盘或网络等方式进行传播
(11)以下叙述中正确的是
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号"
{"
和"
}"
只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语句之间的分隔符,不是语句的一部分
(12)以下选项中可作为C语言合法整数的是
A.10110B
B.0386
C.0Xffa
D.x2a2
(13)以下不能定义为用户标识符的是
A.scanf
B.Void
C._3com_
D.int
(14)有以下程序
main()
{inta;
charc=10;
floatf=100.0;
doublex;
a=f/=c*=(x=6.5);
printf("
%d%d%3.1f%3.1f\n"
a,c,f,x);
}
程序运行后的输出结果是
A.16516.5
B.1651.56.5
C.1651.06.5
D.2651.56.5
(15)以下选项中非法的表达式是
A.0<
=x<
100
B.i=j==0
C.(char)(65+3)
D.x+1=x+1(16)有以下程序
{inta=1,b=2,m=0,n=0,k;
k=(n=b>
a)||(m=a printf("
%d,%d\n"
k,m);
A.0,0
B.0,1
C.1,0
D.1,1
(17)有定义语句:
intx,y;
,若要通过scanf("
%d,%d"
&
x,&
y);
语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是
A.1112<
回车>
B.11,12<
C.11,12<
D.11,<
12<
(18)设有如下程序段:
intx=2002,y=2003;
%d\n"
(x,y));
则以下叙述中正确的是
A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B.运行时产生出错信息
C.输出值为2002
D.输出值为2003
(19)设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是
A.x=x*100+0.5/100.0;
B.x=(x*100+0.5)/100.0;
C.x=(int)(x*100+0.5)/100.0;
D.x=(x/100+0.5)*100.0;
(20)有定义语句:
inta=1,b=2,c=3,x;
,则以下选项中各程序段执行后,x的值不为3的是
A.if(c elseif(b elsex=3;
elsex=1;
C.if(a<
3)x=3;
D.if(a if(a<
2)x=2;
if(b if(a<
1)x=1;
if(c (21)有以下程序
{ints=0,a=1,n;
scanf("
%d"
n);
do
{s+=1;
a=a-2;
}
while(a!
=n);
s);
若要使程序的输出值为2,则应该从键盘给n输入的值是
A.-1
B.-3
C.-5
D.0
(22)若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;
b<
=c;
b++)s=s+1;
则与上述程序段功能等价的赋值语句是
A.s=a+b;
B.s=a+c;
C.s=s+c;
D.s=b+c;
(23)有以下程序
{intk=4,n=0;
for(;
n {n++;
if(n%3!
=0)continue;
k--;
k,n);
A.1,1
B.2,2
C.3,3
D.4,4
(24)要求以下程序的功能是计算:
s=1+1/2+1/3+……+1/10
(资料来源:
东方教育网)
{intn;
floats;
s=1.0;
for(n=10;
n>
1;
n--)
s=s+1/n;
%6.4f\n"
程序运行后输出结果错误,导致错误结果的程序行是
A.s=1.0;
B.for(n=10;
C.s=s+1/n;
D.printf("
(25)已定义ch为字符型变量,以下赋值语句中错误的是
A.ch='
\'
;
B.ch=62+3;
C.ch=NULL;
D.ch='
\xaa'
(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
A.函数调用可以作为独立的语句存在
B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
(27)有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
(28)有以下程序
voidfun(char*a,char*b)
{a=b;
(*a)++;
{charc1='
A'
c2='
a'
*p1,*p2;
p1=&
c1;
p2=&
c2;
fun(p1,p2);
%c%c\n"
c1,c2);
A.Ab
B.aa
C.Aa
D.Bb
(29)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是
A.int*i=NULL;
B.float*f=NULL;
i);
*f=10.5;
C.chart='
m'
*c=&
t;
D.long*L;
*c=&
L='
\0'
(30)有以下程序
#include
{printf("
NULL);
A.0
B.1
C.-1
D.NULL没定义,出错
(31)已定义c为字符型变量,则下列语句中正确的是
A.c='
97'
B.c="
97"
C.c=97;
D.c="
a"
(32)以下不能正确定义二维数组的选项是
A.inta[2][2]={{1},{2}};
B.inta[][2]={1,2,3,4};
C.inta[2][2]={{1},2,3};
D.inta[2][]={{1,2},{3,4}};
(33)以下选项中不能正确把cl定义成结构体变量的是
A.typedefstruct
B.structcolorcl
{intred;
{intred;
intgreen;
intgreen;
intblue;
intblue;
}COLOR;
};
COLORcl;
C.structcolor
D.struct
}cl;
}cl;
(34)以下能正确定义一维数组的选项是
A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;
intnum[N];
(35)下列选项中正确的语句组是
A.chars[8];
s={"
Beijing"
};
B.char*s;
C.chars[8];
s="
D.char*s;
(36)已定义以下函数
fun(int*p)
{return*p;
该函数的返回值是
A.不确定的值
B.形参p中存放的值
C.形参p所指存储单元中的值
D.形参p的地址值
(37)下列函数定义中,会出现编译错误的是
A.max(intx,inty,int*z)
B.intmax(intx,y)
{*z=x>
y?
x:
y;
}{intz;
z=x>
returnz;
C.max(intx,inty)
D.intmax(intx,inty)
{intz;
{return(x>
y?
x:
return(z);
(38)有以下程序
#defineF(X,Y)(X)*(Y)
{inta=3,b=4;
F(a++,b++));
A.12
B.15
C.16
D.20
(39)有以下程序
fun(inta,intb)
{if(a>
b)return(a);
elsereturn(b);
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
r);
A.3
B.6
D.12
(40)若有定义:
int*p[3];
,则以下叙述中正确的是
A.定义了一个基类型为int的指针变量p,该变量具有三个指针
B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C.定义了一个名为*p的整型数组,该数组含有三个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
(41)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址
char*scmp(char*s1,char*s2)
{if(strcmp(s1,s2)<
0)
return(s1);
elsereturn(s2);
{inti;
charstring[20],str[3][20];
for(i=0;
i<
3;
i++)gets(str[i]);
strcpy(string,scmp(str[0],str[1]));
/*库函数strcpy对字符串进行复制*/
strcpy(string,scmp(string,str[2]));
%s\n"
string);
若运行时依次输入:
abcd、abba和abc三个字符串,则输出结果为
A.abcd
B.abba
C.abc
D.abca
(42)有以下程序
structs
{intx,y;
}data[2]={10,100,20,200};
{structs*p=data;
++(p->
x));
A.10
B.11
C.20
D.21
(43)有以下程序段
{inta=5,*b,**c;
c=&
b;
b=&
a;
……
程序在执行了c=&
b=&
语句后,表达式:
**c的值是
A.变量a的地址
B.变量b中的值
C.变量a中的值
D.变量b的地址
(44)有以下程序
{charstr[][20]={"
Hello"
"
},*p=str;
strlen(p+20));
B.5
C.7
(45)已定义以下函数
fun(char*p2,char*p1)
{while((*p2=*p1)!
='
){p1++;
p2++;
}}
函数的功能是
A.将p1所指字符串复制到p2所指内存空间
B.将p1所指字符串的地址赋给指针p2
C.对p1和p2两个指针所指字符串进行比较
D.检查p1和p2两个指针所指字符串中是否有'
(46)有以下程序
{intx=3,y=2,z=1;
x/y&
~z);
B.2
C.1
(47)若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为
D.一个非0值
(48)下列关于C语言数据文件的叙述中正确的是
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
(49)有以下程序
{inta[3][3],*p,i;
p=&
a[0][0];
9;
i++)p[i]=i+1;
%d\n"
a[1][2]);
C.9
D.2
(50)有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个连续结点。
structnode
{intdata;
structnode*next;
}*p,*q,*r;
_______________________________
|datanextdatanextdatanext|
|→□□→□□→□□→|
| ↑p↑q↑r|
|______________________________|
现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段是
A.r->
next=q;
q->
next=r->
next;
p->
next=r;
B.q->
r->
C.p->
D.q->
二、填空题(每空2分,共40分)
(1)计算机软件分为系统软件与应用软件,UNIX属于〖1〗。
(2)假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。
若使用TYPE命令,则完整的命令为〖2〗。
(3)Internet的信息服务方式分为基本服务和扩展服务,电子邮件属于〖3〗。
(4)在Windows环境下,利用菜单命令删除固定硬盘上的文件与文件夹,实际上是将需要删除的文件与文件夹移动到〖4〗文件夹中。
(5)在Windows环境下,为了进行"
添加/删除程序"
操作,首先打开〖5〗,然后双击其中的相应图标。
(6)以下程序运行后的输出结果是〖6〗。
{intp=30;
(p/3>
0?
p/10:
p%3));
(7)以下程序运行后的输出结果是〖7〗。
{charm;
m='
B'
+32;
printf("
%c\n"
m);
(8)以下程序运行后的输出结果是〖8〗。
{inta=1,b=3,c=5;
if(c=a+b)printf("
yes\n"
);
elseprintf("
no\n"
(9)以下程序运行后的输出结果是〖9〗。
{inti,m=0,n=0,k=0;
for(i=9;
i<
=11;
i++)
switch(i/10)
{case0:
m++;
n++;
break;
case10:
n++;
break;
default:
k++;
%d%d%d\n"
m,n,k);
(10)执行以下程序后,输出'
#'
号的个数是〖10〗。
{inti,j;
for(i=1;
5;
i++)
for(j=2;
j<
=i;
j++)putchar('
(11)以下程序的功能是调用函数fun计算:
m=1-2+3-4+…+9-10,并输出结果。
请填空。
intfun(intn)
{intm=0,f=1,i;
=n;
{m+=i*f;
f=〖11〗;
returnm;
m=%d\n"
〖12〗);
(12)以下程序运行后的输出结果是〖13〗
{inti,n[]={0,0,0,0,0};
=4;
{n[i]=n[i-1]*2+1;
%d"
n[i]);
(13)以下程序运行后的输出结果是〖14〗
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(j=i+1;
j<
j++)a[j][i]=0;
{for(j=0;
j++)printf("
a[i][j]);
\n"
(14)以下程序运行后的输出结果是〖15〗
inta=5;
fun(intb)
{staticinta=10;
a+=b++;
a);
{intc=20;
fun(c);
a+=c++;
}(15)请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
〖16〗(double,double);
{doublex,y;
%lf%lf"
%lf\n"
max(x,y));
doublemax(doublea,doubleb)
{return(a>
b?
a:
b);
(16)以下程序运行后输入:
3,abcde<
,则输出结果是〖17〗
#inc