1998年全国计算机等级考试二级C语言笔试试题Word文件下载.docx
- 文档编号:19871228
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:10
- 大小:21.91KB
1998年全国计算机等级考试二级C语言笔试试题Word文件下载.docx
《1998年全国计算机等级考试二级C语言笔试试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《1998年全国计算机等级考试二级C语言笔试试题Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
A)、D2、D4、QR.CB)D4、QR.C
C)A:
D4、QR.CD)A:
D2、D4、QR.C
(17)下列DOS命令中,有错误的是
A)TYPEAAB.FORCONB)TYPE?
AB.FOR
C)COPY*。
CCOND)COPYCONPRN
(18)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C盘根目录下的文件XYZ.TXT的后面,正确的命令是
A)COPYC:
、XYZ.TXTAB1.TXT
B)COPYAB1.TXTC:
、XYZ.TXT
C)TYPEAB1.TXTC:
D)AB1.TXTC:
、XYZ.TXTC:
(19)下列命令中合法的是
A)DISKCOPYA:
A:
B)DISKCOPYA:
C:
C)DISKCOPYC:
D)DISKCOPYC:
D:
(20)设当前盘中某一目录路径为、A、B、C、D、XU,当前目录为、A.要将根目录下扩展名为。
C的所有文件复制到当前目录下,并将扩展名改为。
FOR,应使用命令
A)COPY、*。
C*。
FORB)COPY*。
C、A、*。
FOR
FOR、*。
CD)COPY、A、*。
(21)下列不正确的转义字符是
A)'
、、'
B)'
、“C)'
074'
D)'
、0'
”
(22)若有以下定义:
chara;
intb;
floatc;
doubled;
则表达式a*bd--c值的类型为
A)floatB)intC)charD)double
(23)表示关系x《=y《=z的c语言表达式为
A)(X《=Y)&
&
(Y《=Z)B)(X《=Y)AND(Y《=Z)
C)(X《=Y《=Z)D)(X《=Y)&
(Y《=Z)
(24)设a=1,b=2,c=3,d=4,则表达式:
a《b?
a:
c《d?
d的结果为
A)4B)3C)2D)1
(25)设x为int型变量,则执行以下语句后,x的值为
x=10;
x=x--=x--x;
A)10B)20C)40D)30
(26)下列可作为C语言赋值语句的是
A)x=3,y=5B)a=b=6
C)i--;
D)y=int(x);
(27)设x,y,z,t均为int型变量,则执行以下语句后,t的值为
x=y=z=1;
t=x||y&
z;
A)不定值B)2C)1D)0
(28)设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf(“i=%d,f=%f”,&
i,&
f);
为了把100和765.12分别赋给i和f,则正确的输入为
A)100765.12B)i=100,f=765.12
C)100765.12D)x=100y=765.12
(29)设x和y均为int型变量,则执行下的循环后,y值为
for(y=1,x=1;
y《=50;
y)
{if(x=10))break;
if(x%2==1)
{x=5;
continue;
}
x--=3;
A)2B)4C)6D)8
(30)给出以下定义:
charx[]=“abcdefg”;
chary[]={'
a'
,'
b'
c'
d'
e'
f'
g'
};
则正确的叙述为
A)数组X和数组Y等价B)数组x和数组Y的长度相同
C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度
(31)以下叙述中不正确的是
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效
(32)假定a和b为int型变量,则执行以下语句后b的值为
a=1;
b=10;
do
{b--=a;
a;
while(b--《0);
A)9B)--2C)--1D)8
(33)设j为int型变量,则下面for循环语句的执行结果是
for(j=10;
j3;
j--)
{if(j%3)j--;
--j;
printf(“%d”,j);
A)63B)74C)62D)73
(34)设有以下宏定义:
#defineN3
#defineY(n)((N1)*n)
则执行语句:
z=2*(NY(51));
后,z的值为
A)出错B)42C)48D)54
(35)设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A)k=*P1*P2;
B)p2=k;
C)P1=P2;
D)K=*P1*(*P2);
(36)设有如下定义:
intarr[]={6,7,8,9,10};
int*ptr;
则下列程序段的输出结果为
ptr=arr;
*(ptr2)=2;
printf(“%d,%d、n”,*ptr,*(ptr2));
A)8,10B)6,8C)7,9D)6,10
(37)以下程序的输出结果是
main()
{inti,k,a[10],p[3]:
K=5;
for(i=0;
i《10;
i)a[i]=i;
i《3;
i)p[i]=a[i*(i1)];
i)k=p[i]*2;
printf(“%d、n”,k);
A)20B)21C)22D)23
(38)执行以下程序段后,m的值为
inta[2][3]={{1,2,3},{4,5,6}};
intm,*p;
p=&
a[0][0];
m=(*p)*(*(p2))*(*(p4));
A)15B)14C)13D)12
(39)有以下程序段
chararr[]=“ABCDE”;
char*ptr;
for(ptr=arr;
ptr《arr5;
ptr)printf(“%s、n”,ptr);
输出结果是
A)ABCDB)AC)ED)ABCDE
BDBCDE
CCCDE
DBDE
EAE
(40)有以下程序
{intx,i;
or(i=1;
i《=50;
i)
{x=i;
if(x%2==0)
if(x%3==0)
if(x%7==0)
printf(“%d,i);
A)28B)27C)42D)41
(41)有下列程序
#include《stdio.h
{union
{intk;
chari[2];
}*s,a;
s=&
a;
s--i[0]=0x39;
s--i[1]=0x38;
printf(“%x、n”,s--k);
A)3839B)3938C)380039D)390038
(42)有以下程序
#include《stdio.h
{inta,b,c=246;
a=c/100%9;
b=(--1)&
(--1);
printf(“%d,%d、n”,a,b);
A)2,1B)3,2C)4,3D)2,--1
(43)设有如下定义:
int(*ptr)*();
则以下叙述中正确的是
A)ptr是指向一维组数的指针变量B)ptr是指向int型数据的指针变量
C)ptr是指向函数的指针,该函数返回一个int型数据
D)ptr是一个函数名,该函数的返回值是指向int型数据的指针
(44)有以下程序
structstu
{intnum;
charname[10];
intage;
voidfun(structstu*p)
{printf(“%s、n”,(*p)。
name);
{
structstustudents[3]={{9801,“Zhang”,20},
{9802,“Wang”,19},
{9803,“Zhao”,18}};
fun(students2);
A)ZhangB)ZhaoC)WangD)18
(45)设有以下说明和定义:
typedefunion
{longi;
intk[5];
charc;
}DATE;
structdate
{intcat;
DATEcow;
doubledog;
}too;
DATEmax;
则下列语句的执行结果是
printf(“%d”,sizeof(structdate)sizeof(max));
A)26B)30C)18D)8
(46)有以下程序
{chara[]=“programming”,b[]=“language”;
char*p1,*p2;
inti;
p1=a;
p2=b;
for(i=0;
i《7;
if(*(p1i)==*(p2i))printf(“%c”,*(p1i));
A)gmB)rgC)orD)ga
(47)有以下程序
viodfun(inta,intb,intc)
{a=456;
b=567;
c=678;
{intx=10,y=20,z=30;
fun(x,y,z);
printf(“%d,/%d、n”,c,d);
A)30,20,10B)10,20,30C)456,567,678D)678,567,456
(48)有以下程序
intfun(intx,inty,int*cp,int*dp)
{*cp=xy;
*dp=x--y;
{inta,b,c,d;
a=30;
b=50;
fun(a,b,&
c,&
d);
printf(“%d,%d、n”,c,d);
A)50,30B)30,J50C)80,--20D)80,20
(49)有以下程序
{inti,j;
j《11;
j)
{for(i=9;
i《j;
if(!
(j%i))break;
if(i=j--1)printf(“%d”,j);
A)11B)10C)9D)1011
(50)有以下程序
#include“atdio.h”
intabc(intu,intv);
main()
{inta=24,b=16,c;
c=abc(a,b);
printf('
%d、n“,c);
intabc(intu,intv)
{intw;
while(v)
{w=u%v;
u=v;
v=w}
returnu;
A)6B)7C)8D)9
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡
(1)--(20)序号的横线上,答在试卷上不得分。
(1)自动批自理文件名为_______.
(1)
(2)DOS命令分为内部命令与外部命令,COMP命令属于_______
(2)命令。
(3)设当前为C盘,现要用一条DOS命令在打印机上输出A盘当前目录下所有扩展名为。
DAT的文件内容。
这一条DOS命令应为___(3)。
(4)要将当前盘当前目录下的子目录XYZ中所有扩展名为。
BAK的文件名改成扩展名为。
FOR,应使用的DOS命令为___(4)。
(5)设DOS外部命令文件所在的路径均已用PATH命令打通。
现要将当前盘当前目录下的文件WST.TXT设置为只读属性,应使用的DOS命令为___(5)。
(6)设x和y均为int型变量,且x=1,y=2,则以下表达式的值为___(6)。
1.0x/y
(7)设i,j,k均为int型变量,则执行完下面的for循环后,k的值为___(7)。
for(i=0,j=10;
i《=j;
i,j--)k=ij;
(8)设有以下定义的语句:
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
则*(*(p2)1)值为___(8)。
(9)以下程序的输出结果是___(9)。
#include《stdio.h》
intfun(intx,inty)
{staticintm=0,i=2;
i=m1;
m=ixy;
returnm
{intj=4,m=1,k;
k=fun(j,m);
printf(“%d,”,k);
(10)函数fun的功能是:
使一个字符串按逆序存放,请填空
voidfun(charstr[])
{charm;
inti,j;
for(i=0,j=strlen(str);
i《____(10);
i,j--)
{m=str[i];
str[i]=___(11);
str[j--1]=m;
printf(“%s、n”,str);
(11)以下程序的功能是:
从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。
#include“ctype.h”
#include“stdio.h”
{charstr[81],*sptr;
i《80;
{str[i]=getchar();
if(str[i]=='
、n'
)break;
str[i]=____(12);
sptr=str;
while(*sptr)putchar(*sptr____(13));
(12)以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。
例如:
输入的两个字符串分别为abcdef和abceef,则输出为--1.请填空。
#include
{charstr[100],str2[100],c;
inti,s;
printf(“、ninputstring1:
、n”);
gest(str1);
printf(“、ninputstring2:
gest(str2);
i=0;
while((strl[i]==str2[i]&
(str1[i]!
=____(14)))
i;
s=____(15);
printf(“%d、n”,s);
(13)以下程序的功能是:
从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。
请填空。
{FILE*fp;
charstr[100];
inti=0;
if((fp=fopen(“text.txt”,____(16)))==NULL)
{printf(“can'
topenthisfile.、n”);
exit(0);
printf(“inputastring:
gest(str);
while(str[i])
{if(str[i]='
str[i]《='
z'
)
str[i]=____(17);
fputc(str[i],fp);
fclose(fp);
fp=fopen(“test.txt”,____(18));
fgets(str,100,fp);
(14)以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空。
#include.《stdio.h
{charb[16]={'
0'
1'
2'
3'
4'
5'
6'
7'
8'
9'
A'
B'
C'
D'
E'
F'
intc[64],d,i=0,base;
longn;
printf(“enteranumber:
scanf(“%ld”,&
n);
printf(“enternewbase:
scanf(“%d”,&
base);
{c[i]=____(19);
n=n/base;
}while(n!
=0);
printf(“transmitenewbase:
for(--i;
--i)
{d=c[i];
printf(“%c”,b____(20);
}
>
-------------------------------------------------------------------------
1998年9月二级笔试试题C答案
一.选择题(
(1)~(40)题每题1分;
(41)~(50)题每题2分)
(1)B
(2)B(3)D(4)D(5)B
(6)A(7)B(8)C(9)D(10)A
(11)D(12)C(13)A(14)B(15)D
(16)C(17)B(18)A(19)A(20)A
(21)C(22)D(23)A(24)D(25)B
(26)C(27)C(28)B(29)C(30)C
(31)D(32)D(33)B(34)C(35)B
(36)D(37)B(38)A(39)D(40)D
(41)A(42)A(43)C(44)B(45)B
(46)D(47)A(48)C(49)B(50)C
二,填空题(每空2分,共4分)
(1)至(5)题中所有字母都允许大,小写或大小写混合
(1)1AUTOEXEC.BAT
(2)2外部(答外部命令不扣分)
(3)3COPYA:
*.DATPRN
(在COPY后面与A:
*.DAT后面都至少要有一个空格)
(4)4RENXYZ\*.BAK*.FOR或RENAMEXYZ\*.BAK*.FOR
(在REN或RENAME后面与XYZ\*.BAK后面都至少要有一个空格)
(5)5ATTRIB+RWST.TXT
(在ATTRIB后面与+R后面都至少有一个空格)或ATTRIBWST.TXT+R(在ATTRIB
后面与WST.TXT后面都至少要有一个空格)
(6)61.0或1
(7)710
(8)860
(9)98,17
(10)10strlen(str)/2或strlen(str)/2.0或0.5*strlen(str)或j或j-1
11str[j-1]或*(str+j-1)
(11)12'
\0'
或0
13++
(12)14'
或0
15strl[i]-str2[i]
(13)16"
w"
或"
w+"
wt"
w+t"
"
wt+"
17str[i]-32或str[i]-('
-'
或str[i]-'
+'
18"
r"
r+"
r+t"
rt+"
(14)19n%base
20[d]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1998 全国 计算机等级考试 二级 语言 笔试 试题