计算机等级考试1994年全国计算机二级C语言考试真题及答案Word格式.docx
《计算机等级考试1994年全国计算机二级C语言考试真题及答案Word格式.docx》由会员分享,可在线阅读,更多相关《计算机等级考试1994年全国计算机二级C语言考试真题及答案Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
%d,%d\n"
++i,j--);
}
A.11,10
B.9,10
C.010,9
D.10,9
(13)在ASCII代码中,字母A的序号为65,以下程序的输出的结果是〔〕。
{charc1=’A’,c2=’Y’;
printf("
c1,c2);
A.因输出格式不合法,输出错误信息
B.65,90
C.A,Y
D.65,89
(14)指针s所指字符串的长度为〔〕。
char*s="
\\"
Name\\Address\n"
;
A.19
B.15
C.18
D.说明不合法
(15)设有说明int(*ptr)[m];
其中的标识符ptr是〔〕。
A.M个指向整型变量的指针
B.指向M个整型变量的函数指针
C.一个指向具有M个整型元素的一维数组的指针
D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量
(16)语句while(!
E);
中的条件!
E等价于 〔〕。
A.E==0
B.E!
=1
C.E!
=0
D.~E
(17)以下程序的输出结果是 〔〕 。
{printf("
NULL);
A.不确定的〔因变量无定义〕
B.0
C.-1
D.1
(18)以下函数调用语句中含有〔〕个实参。
func((exp1,exp2),(exp3,exp4,exp5));
A.1
B.2
C.4
D.5
(19)设有以下语句:
chara=3,b=6,c;
c=a^b<
<
2;
那么c的二进制值是〔〕。
A.00011011
B.00010100
C.00011100
D.00011000
(20)下面的程序中〔〕有错误〔每行程序前面的数字是行号〕。
1#include
2main()
3{
4floata[3]={0,0};
5inti;
6for(i=0;
i<
3;
i++)scanf("
%d"
&
a[i]);
7for(i=1;
i++)a[0]=a[0]+a[i];
8printf("
%f\n"
a[0]);
9}
A.没有
B.第4行
C.第6行
D.第8行
(21)设有语句inta=3;
那么执行了语句a+=a-=a*a;
后,变量a的值是 〔〕。
A.3
C.9
D.-12
(22)以下的for循环〔〕。
for(x=0,y=0;
(y!
=123)&
&
(x<
4);
x++);
A.是无限循环
B.循环次数不定
C.执行4次
D.执行3次
(23)设有语句chara=’\72’;
那么变量a〔〕 。
A.包含1个字符
B.包含2个字符
C.包含3个字符
(24)以下程序的输出结果是 〔〕。
{inta=1,b=4,c=2;
floatx=10..5,y=4.0,z;
z=(a+
B./c+sqrt((double)y)*1.2/c+x;
pritnf("
z);
A.14.000000
B.015.400000
C.13.700000
D.14.900000
(25)sizeof(double)是 〔〕。
A.一种函数调用
B.一个双精度型表达式
C.一个整型表达式
D.一个不合法的表达式
(26)C语言中 〔〕。
A.不能使用do-while语句构成的循环
B.do-while语句构成的循环必须用break语句才能退出
C.do-while语句构成的循环,当while语句中的表达式值为非零时完毕循环
D.do-while语句构成的循环,当while语句中的表达式值为零时完毕循环
(27)以下程序的输出结果是〔〕。
{charstr[12]={’s’,’t’,’r’,’i’,’n’,’g’};
strlen(str));
A.6
B.7
C.11
D.12
(28)以下程序的输出结果是 〔〕。
{inta=2,c=5;
a=%%d,b=%%d\n"
a,
C.;
A.a=%2,b=%5
B.a=2,b=5
C.a=%%d,b=%%d
D.a=%d,b=%d
(29)以下程序的输出结果是 〔〕。
{inta,b,d=241;
a=d/100%9;
b=(-1)&
(-1);
B.;
A.6,1
B.2,1
C.6,0
D.2,0
(30)以下程序的输出结果是 〔〕。
{inti;
for(i=1;
=5;
i++){if(i%2)printf("
*"
);
elsecontinue;
#"
}
$\n"
A.*#*#*#$
B.#*#*#*$
C.*#*#$
D.#*#*$
(31)以下for语句构成的循环执行了〔〕次。
#defineN2
#defineMN+1
#defineNUM(M+1)*M/2
{inti,n=0;
=NUM;
i++);
{n++;
n);
\n"
A.5
C.8
D.9
(32)设有以下语句,那么 〔〕 不是对a数组元素的正确引用,其中0≤i<
10。
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A.a[p-a]
B.*(&
a[i])
C.p[i]
D.*(*(a+i))
(33)有以下程序:
#defineN6
{charc[N];
inti=0;
for(;
ifor(i=0;
i输入以下三行,每行输入都是在列上开场,代表一个回车符:
a
b
cdef
程序的输出结果是〔〕。
A.abcdef
B.a
C.a
D.a
bbb
ccdcdef
d
e
f
(34)以下程序调用findmax函数求数组中值的元素在数组中的下标,请选择填空。
findmax(s,t,k)
int*s,t,*k;
{intp;
for(p=0,*k=p;
pif(s[p]>
s[*k])〔〕;
{inta[10],i,k;
for(i=0;
i<
10;
i++)scanf("
findmax(a,10,&
k);
printf("
k,a[k]);
A.k=p
B.*k=p-s
C.k=p-s
D.*k=p
(35)有以下程序:
#include
unionpw
charch[2];
}a;
{a.ch[0]=13;
a.ch[1]=0;
a.i);
程序的输出结果是 〔〕。
〔注意:
ch[0]在低字节,ch[1]在高字节。
〕
A.13
B.14
C.208
D.209
(36)有以下程序:
{intc;
while((c=getchar())!
=’\n’)
{switch(c-’2’)
{case0:
case1:
putchar(c+4);
case2:
break;
case3:
putchar(c+3);
case4:
putchar(c+2);
}}
从列开场输入以下数据,代表一个回车符。
2743
程序的输出结果是 〔〕 。
A.668977
B.668966
C.6677877
D.6688766
(37)以下程序的输出结果为 〔〕。
{char*alpha[6]={"
ABCD"
"
IJKL"
MNOP"
QRST"
UVWX"
};
char**p;
inti;
p=alpha;
for(i=0;
4;
i++)printf("
%s"
p[i]);
A.ABCDEFGHIJKL
B.ABCD
C.ABCDEFGHIJKLMNOP
D.AEIM
(38)以下程序的输出结果是 〔〕。
#defineFUDGE(y)2.84+y
#definePR(
A.printf("
(int)(
A.)
#definePRINT1(
A.PR(
A.;
putchar(’\n’)
{intx=2;
PRINT1(FUDGE(5)*x);
}
A.11
B.12
C.13
D.15
(39)以下程序的输出结果是〔〕。
{inti=1,j=3;
i++);
{inti=0;
i+=j*2;
%d,%d"
i,j);
A.1,6,3,1,3
B.1,6,3,2,3
C.1,6,3,6,3
D.1,7,3,2,3
(40)以下程序的输出结果是 〔〕。
{intk=4,m=1,p;
p=func(k,m);
%d,"
p);
func(a,
B.
inta,b;
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
A.8,17
B.8,16
C.8,20
D.8,8
(41)设有以下语句:
charstr[4][12]={"
aaa"
bbbb"
ccccc"
dddddd"
},
*strp[4];
inti;
for(i=0;
i++)strp[i]=str[i];
〔〕不是对字符串的正确引用,其中0≤k<
4。
A.strp
B.str[k]
C.strp[k]
D.*strp
(42)设有以下语句:
charstr1[]="
string"
str2[8],*str3,*str4="
那么 〔〕不是对库函数strcpy的正确调用,此库函数用业复制字符串。
A.strcpy(str1,"
HELLO1"
B.strcpy(str2,"
HELLO2"
C.strcpy(str3,"
HELLO3"
D.strcpy(str4,"
HELLO4"
(43)C语言中形参的缺省存储类别是 〔〕 。
A.自动(auto)
B.静态(statiC〕
C.存放器(register)
D.外部(extern)
(44)设有以下语句:
structst{intn;
structst*next;
staticstructsta[3]={5,&
a[1],7,&
a[2],9,’\0’},*p;
p=&
a[0];
那么表达式 〔〕的值是6。
A.p++->
n
B.p->
n++
C.(*p).n++
D.++p->
(45)以下四个程序中, 〔〕不能对两个整型变量的值进展交换。
A.#include
{inta=10,b=20;
swap(&
a,&
%d%d\n"
swap(p,q)
int*p,*q;
{
int*t;
t=(int)malloc(sizeof(int));
t=p;
*p=*q;
*q=*t;
B.#include
inta=10,b=20;
swap(&
intp,q;
t=*p;
*q=t;
C.#include
int*a,*b;
*a=10,*b=20;
swap(a,
*a,*
intt;
D.#include
intx=&
a,y=&
b;
swap(x,y);
二、填空题〔每空2分,共40分〕
请将每空的正确答案写在答题卡1-20序号后的横线上,答在试卷上不得分。
〔1〕
构造化程序设计所规定的三种根本控制构造是
【1】
构造.选择构造和循环构造。
〔2〕
在七位ASCII码中,除了表示数字、英文大小写字母外,还有
【2】
个其它符号。
〔3〕
把B盘BAS子目录下第三个字符为A,且没有扩展名的全部文件拷贝到C盘ABC子目录下的命令是
【3】
。
〔4〕
微机中ROM的中文意义是
【4】
存储器。
〔5〕
启动MS-DOS系统后,能自动执行的批处理文件是
【5】
.BAT。
〔6〕
【6】
〔7〕
十进制数53转换为十六进制数为
【7】
〔8〕
数据库管理系统常见的数据模型有层次、网状和
【8】
三种。
〔9〕
买来一张新盘后,在存入文件前,必须进展
【9】
处理。
〔10〕
在微机中,字符的比拟就是对它们的
【10】
码进展比拟。
〔11〕
以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。
#include
main(argc,argv)
int
argc;
char
*argv[];
{
FILE
*f1,*f2;
ch;
if(argc<
【11】
)
Parameters
missing!
exit(0);
if(
((f1=fopen(argv[1],"
r"
))
=
NULL)||((f2=fopen(argv[2],"
w"
NULL))
Can
not
open
file!
while(
【12】
)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
〔12〕
以下程序中的trap函数是一个用梯形法求定积分的通用函数。
梯形法求定积分的公式为:
n-1
a-b
s=((f(a)+f(b))/2+∑
f(a+i*h))*h
h=|----|
i=1
其中,n为积分小区间数。
以下程序调用trap函数求定积分,被积函数是:
f(x)=x*x+3*x+2,且n=1000,a=0,b=4。
3include
double
trap(fun,a,b)
(*fun)(),a,b;
t,h;
i,n=1000;
t=0.5*((*fun)(a)+(*fun)(b));
h=fabs(a-b)/(double)(n);
for(i=1;
=n-1;
i
+
)
t=t+
【13】
t=t*h;
return(t);
mypoly(x)
x;
return(x*x+3.0*x+2.0);
y,(*pf)();
pf=
【14】
y=trap(pf,0.0,4.0);
y);
〔13〕
以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。
素数是只能被1和本身整除且大于1的自然数。
i,a[10],*p=a,sum=0;
Enter
10
num:
10;
scanf("
if(isprime(*(p+
【15】
1){
*(a+i));
sum+=*(a+i);
\nThe
sum=%d\n"
sum);
isprime(x)
i;
for(i=2;
=x/2;
if(x%i
0)
return
(0);
【16】
〔14〕
以下程序调用invert函数按逆序重新放置a数组中元素的值。
a数组中的值在main函数中读入。
#define
N
10
invert(s,i,j)
*s,i,j;
t;
if(imain()
a[N],i;
invert(a,0,N-1);
〔15〕
以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入完毕〔链表头结点的data
域不放数据,表空的条件是ph->
next
NULL).
struct
list
data;
*next;
【19】
creatlist()
*p,*q,*ph;
a;
ph=(struct
*)
malloc(sizeof(struct
list));
p=q=ph;
Input
an
integer
number,enter
–1
to
end:
a):
while(a!
=-1)
p=(struct
*)malloc(sizeof(struct
p->
data=a;
q->
next=p;
【20】
=p;
a);
next=’\0’;
return(ph);
*head;
head=creatlist();
参考答案
选择题([1]——[30]每个选项1分,[31]——[45]每个选项2分,共60分)
(1)B
(2)B
(3)B
(4)A
(5)C
(6)D
(7)B
(8)C
(9)A
(10)C
(11)C
(12)B
(13)D
(14)B
(15)C
(16)A
(17)B
(18)B
(19)A
(20)C
(21)D
(22)C
(23)A
(24)C
(25)C
(26)D
(27)A
(28)D
(29)B
(30)A
(31)C
(32)D
(33)C
(34)D
(35)A
(36)A
(37)C
(38)B
(39)B
(40)A
(41)A
(42)C
(43)A
(44)D
(45)C
二`
填空题(每空2分,共40分)
(1)顺序
(2)66
(3)
COPY
B:
\BAS\?
?
A*.C:
\ABC(或COPY
B:
A*.,C:
\ABC)
(4)只读
(5)AUTOEXEC
(6)DEL
\FOX\*.TXT
(7)35
(8)关系
(9)格式化(或初始化、FORMAT)
(10)ASCII
(11)3