printf(“%d\n”,n[k]);
}
该程序的输出结果是
A)不确定的值B)2C)1D)0
(44)若有以下的定义:
intt[3][2];能正确表示t数组元素地址的表达式是
A)&t[3][2]B)t[3]C)t[1]D)t[2]
(45)有如下程序
main0
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j
printf(“%d\n”,s);
}
该程序的输出结果是
A)18B)19C)20D)21
(46)有如下定义
structperson{charname[9];intage;};
strictpersonclass[10]={“Johu”,17,
“Paul”,19
“Mary”,18,
“Adam16,};
根据上述定义,能输出字母M的语句是
A)prinft(“%c\n”,class[3].mane);
B)pfintf(“%c\n”,class[3].name[1]);
C)prinft(“%c\n”,class[2].name[1]);
D)printf(“%^c\n”,class[2].name[0]);
(47)以下对结构体类型变量的定义中,不正确的是
A)typedefstructaaB)#defineAAstructaa
{intn;AA{intn;
floatm;floatm;
}AA;}td1;
AAtd1;
C)structD)struct
{intn;{intn;
floatm;floatm;
}aa;}td1;
stuctaatd1;
(48)若已建立如下图所示的单向链表结构,
P
datanext
在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是
A)p=p->next;s->next=p;p->next=s;
B)p=p->next;s->next=p->next;p->next=s;
C)s->next=NULL;p=p->next;p->next=s;
D)p=(*p).next;(*s).next=(*p).next;(*p).next=s;
(49)有如下程序
main()
{chars[]=”ABCD”,*P;
for(p=s+l;p
}
该程序的输出结果是
A)ABCDB)AC)BD)BCD
BCDBCCD
CDCDD
DD
(50)有如下程序
main()
{charch[2][5]={“6937”,”8254”},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>’\0’;j+=2)
s=10*s+p[i][j]-‘0’;
printf(“%d\n”,s);
}
该程序的输出结果是
A)69825B)63825C)6385D)693825
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡上[1]至[20]序号的横线上,答在试卷上不得分。
(1)在DOS状态下,当执行当前盘目录中的程序A.EXE时,为了将本该在屏幕上显示的运行结果输出到文件A.DAT中,应使用的DOS命令为[1]。
(2)在XCOPY、PATH、TREE三个DOS命令中,属于内部命令的是令是[2]。
(3)设当前盘为C盘,为了将当前盘当前目录中第三个字符为X的所有文件同名复制到A盘的当前目录中,应使用的DOS命令为[3]。
(4)要将当前盘的目录A\B\C设置为当前目录,应使用的DOS命令为[4]。
(5)计算机网络按通信距离划分为局域网与广域网,Novell网属于[5]。
(6)以下程序的输出结果是[6]。
main()
{unsignedshorta=65536;intb;
printf(“%d\n”,b=a);
}
(7)若有定义:
inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是[7]。
c=(a-=(b-5));
c=(a%11)+(b=3);
(8)表示“整数x的绝对值大于5”时值为“真”的C语言表达式是[8]。
(9)要使以下程序段输出10个整数,请填入一个整数。
for(i=0;i<=[9];printf(“%d\n”,i+=2));
(10)函数pi的功能是根据以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)
现在请你在下面的函数中填空,完成求π的功能。
#include“math.h”
doublepi(longn)
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+[10];
return(sqrt(6*s));
}
(11)若输入字符串:
abcde<回车>,则以下while循环体将执行[11]次。
While((ch=getchar())==’e’)printf(“*”);
(12)以下函数用来求出两整数之和,并通过形参将结果传回,请填空。
voidfunc(intx,inty,[12]z)
{*z=x+y;}
(13)若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是[13]。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
(14)设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部[14]。
要求形参名为b。
main()
{doubles[10][22];
intn;┆
┆
fun(s);
┆
}
(15)以下程序的输出结果是[15]。
voidfun()
{staticinta=0;
a+=2;printf(“%d”,a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun()
printf(“\n”);
}
(16)以下程序的输出结果是[16]。
#defineMAX(x,y)(x)>(y)?
(x):
(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf(“%d\n”,t);
}
(17)若要使指针p指向一个double类型的动态存储单元,请填空。
p=[17]malloc(sizeof(double));
(18)设有以下结构类型说明和变量定义,则变量a在内存所占字节数是[18]。
Structstud
{charnum[6];
ints[4];
doubleave;
}a,*p;
(19)以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。
请填空。
Strcen(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!
=[19])num++;
while(b[n]){*(a+num)=b[n];num++;[20];}
return(num);
}
2000年9月全国计算机等级考试二级笔试试卷答案
一、选择题:
(1)B
(2)D
(3)A
(4)A
(5)C
(6)B
(7)A
(8)C
(9)B
(10)B
(11)D
(12)B
(13)D
(14)C
(15)D
(16)B
(17)A
(18)C
(19)B
(20)A
(21)D
(22)D
(23)A
(24)C
(25)C
(26)C
(27)B
(28)B
(29)A
(30)A
(31)D
(32)B
(33)C
(34)D
(35)B
(36)C
(37)B
(38)B
(39)D
(40)c
(41)B
(42)B
(43)D
(44)D
(45)A
(46)D
(47)C
(48)A
(49)D
(50)C
二、填空题:
[1]A.EXE>A.DAT或A>>A.DAT
[2]PATH
[3]COPY?
?
X*.*A:
[4]CDA\B\C
[5]局域网
[6]0
[7]3
[8]x>5||x<-5
[9]18
[10]1.0/(i*i)
[11]0
[12]int*
[13]P[5]或*(p+5)
[14]voidfun(doubleb[][22])
或voidfun(doubleb[0][22])
或voidfun(double(*b)[22])
[15]246
[16]7
[17](double*)
[18]22
[19]'\0'或0
[20]n++或n+=1或n=n+1