1995年计算机二级考试C语言笔试真题.docx
《1995年计算机二级考试C语言笔试真题.docx》由会员分享,可在线阅读,更多相关《1995年计算机二级考试C语言笔试真题.docx(25页珍藏版)》请在冰点文库上搜索。
1995年计算机二级考试C语言笔试真题
一、选择题(
(1)-(40)每小题1分,(41)-(50)每小题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)第一台电子数字计算机ENIAC诞生于
A.1927年
B.1936年
C.1946年
D.1951年
(2)用FORTRAN语言编制的源程序要变为目标程序,必须经过
A.汇编
B.解释
C.编辑
D.编译
(3)计算机软件一般包括系统软件和
A.字处理软件
B.应用软件
C.管理软件
D.科学计算机软件
(4)计算机内使用的数是
A.二进制数
B.八进制数
C.十进制数
D.十六进制数
(5)目前微型机常用的5.25寸双面高密度软盘的容量是
A.360KB
B.1.44MB
C.760KB
D.1.2MB
(6)具有多媒体功能的微机系统常用CD-ROM作为外存储器,它是
A.只读内存储器
B.只读大容量软盘
C.只读硬盘
D.只读光盘
说明:
(7)到(17)题给定的条件如下:
微机系统有A和B两个容量相同的软盘驱动器,硬盘C的目录结构为
文件AUTOEXEC.BAT的内容为
PROMPT$P$G
CDF4
CD\DOS
(7)微机系统用硬盘C启动后,当前系统提示符是
A.C:
\>
B.C:
\DOS>
C.C:
\F4>
D.C>
(8)在用C盘启动后,把A盘格式化成系统盘的命令为
A.FORMATA:
B.\FORMATA:
/S
C.\DOS\FORMATA:
/S
D.\DOS\FORMATA:
\S
(9)设当前盘为C盘,C盘当前目录为\DOS。
把JD1.FOR和JD2.FOR连接起来后存入A盘根目录下,命名为JD3.FOR,应使用命令
A.COPYJD1.FOR+JD2.FORA:
JD3.FOR
B.COPY\F4\JD1.FOR+JD2.FORA:
\JD3.FOR
C.COPY\F4\JD1.FOR+\F4\JD2.FORA:
\JD3.FOR
D.COPY\F4\JD1.FOR+\F4\JD2.FORJD3.FOR
(10)设当前盘为C盘,C盘当前目录为\DOS。
把FORMAT.COM和DISKCOPY.COM两个命令文件复制到A盘上的命令为
A.COPY\DOS\*.*A:
B.COPY\*.COMA:
C.COPYDOS\*.*A:
D.COPYDOS\*.COMA:
(11)列出硬盘C上所有扩展名为.FOR文件的命令是
A.DIR\*.FOR
B.DIRC:
\F4\*.FOR
C.DIRC:
\*.FOR
D.DIRC:
\F4\*.*
(12)把A盘的所有信息复制到B盘上的命令为
A.COPYA:
*.*B:
B.COPYA:
*.*B:
*.*
C.C:
\DOS\DISKCOPYA:
B:
D.C:
\DOS\DISKCOPYB:
A:
(13)设当前盘为C盘。
删除硬盘C上的两个扩展名为.EXE文件的命令是
A.DEL\F4\*.EXE
B.DEL\XD?
.EXE
C.DEL\F4\*.*
D.DEL\*.EXE
(14)设当前盘为C盘。
C盘当前目录为\DOS。
在硬盘C的根目录下建立新子目录USER的命令为
A.MDC:
USER
B.MD\USER\
C.MD\USER
D.MDUSER
(15)设当前盘为C盘,C盘当前目录为根目录。
在硬盘C上删除子目录F4的命令或命令组为
A.RDF4
B.RD\F4
C.DEL\F4\*.*
D.DEL\*.*
RDF4RDF4
(16)设当前盘为C盘,C盘当前目录为根目录。
把JD1.FOR改名为JX1.FOR的命令为
A.RENJD1.FORJX1.FOR
B.RENJX1.FORJD1.FOR
C.RENF4\JD1.FORJX1.FOR
D.REN\F4\JX1.FORJD1.FOR
(17)显示C盘根目录下所有.TXT文件内容的命令为
A.TYPEC:
\*.TXT
B.TYPEC:
\*.TXT>CON
C.COPYC:
\*.TXT>CON
D.COPYC:
\*.TXTCON
(18)按照数据模型分类,FoxBASE和dBASE是属于
A.层次型
B.网状型
C.关系型
D.混合型
(19)FoxBASE和dBASE命令文件的扩展名为
A..PRG
B..DBF
C..MEM
D..TXT
(20)“计算机等级考试”这七个汉字作为字符串常量,在FoxBASE和dBASE中,可以表示为
A.{计算机等级考试}
B.(计算机等级考试)
C.计算机等级考试
D.“计算机等级考试”
(21)请选出可用作C语言用户标识符的一组标识符
A.void
B.a3_b3
C.For
D.2a
define_123-abcDO
WORDIFCasesizeof
(22)设inta=12,则执行完语句a+=a-=a*a后,a的值是
A.552
B.264
C.144
D.-264
(23)C语言程序的基本单位是
A.程序行
B.语句
C.函数
D.字符
(24)请选出合法的C语言赋值语句
A.a=b=58
B.i++;
C.a=58,b=58
D.k=int(a+
B.;
(25)执行下面程序片段的结果是
intx=23;
do
{printf("-",x--);}
while(!
x);
A.打印出321
B.打印出23
C.不打印任何内容
D.陷入死循环
(26)请选出以下语句的输出结果
printf("%d\n",strlen("\t\"\065\xff\n"));
A.5
B.14
C.8
D.输出项不合法,无正常输出
(27)设有如下的函数
ggg(x)
floatx;
{printf("\n%d",x*x);}
则函数的类型
A.与参数x的类型相同
B.是void
C.是int
D.无法确定
(28)设有如下枚举类型定义:
enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};
枚举量Fortran的值为
A.4
B.7
C.102
D.103
(29)若有以下说明和语句,请选出哪个是对c数组元素的正确引用
intc[4][5],(*cp)[5];
cp=c;
A.cp+1
B.*(cp+3)
C.*(cp+1)+3
D.*(*cp+2)
(30)标准函数fgets(s,n,f)的功能是
A.从文件f中读取长度为n的字符串存入指针s所指的内存
B.从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C.从文件f中读取n个字符串存入指针s所指的内存
D.从文件f中读取长度为n-1的字符串存入指针s所指的内存
(31)设有如下一段程序:
int*var,ab;
ab=100
var=&ab;
ab=*var+10;
执行上面的程序后,ab的值为
A.120
B.110
C.100
D.90
(32)以下程序段给数组所有的元素输入数据,请选择正确答案填入。
#include
main()
{inta[10],i=0;
while(i<10)scanf("%d",________);
┇
}
A.a+(i++)
B.&a[i+1]
C.a+i
D.&a[++i]
(33)设有如下的程序段:
charstr[]="Hello";
char*ptr;
ptr=str;
执行上面的程序段后,*(ptr+5)的值为
A.’o’
B.’\0’
C.不确定的值
D.’o’的地址
(34)在宏定义#definePI3.14159中,用宏名PI代替一个
A.单精度数
B.双精度数
C.常量
D.字符串
(35)字符(char)型数据在微机内存中的存储形式是
A.反码
B.补码
C.EBCDIC码
D.ASCII码
(36)执行下面的程序段
intx=35;
charz=’A’;
intb;
B=((x&15)&&(z<’a’));
后,B的值为
A.0
B.1
C.2
D.3
(37)C语言规定,程序中各函数之间
A.既允许直接递归调用也允许间接递归调用
B.不允许直接递归调用也不允许间接递归调用
C.允许直接递归调用不允许间接递归调用
D.不允许直接递归调用允许间接递归调用
(38)假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式的表达式是
A.1/a*b*c
B.1/(a*b*
C.
C.1/a/b/(float)c
D.1.0/a/b/c
(39)若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是
A.pb=&x
B.pb=x;
C.*pb=&x;
D.*pb=*x
(40)设有
staticcharstr[]="Beijing";
则执行
printf("%d\n",strlen(strcpy(str,"China")));
后的输出结果为
A.5
B.7
C.12
D.14
(41)设有如下程序:
#include
main()
{int**k,*j,i=100;
j=&i;k=&j;
printf("%d\n",**k);
}
上面程序的输出结果是
A.运行错误
B.100
C.i的地址
D.j的地址
(42)设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>B)&&(n=c>D)后n的值为
A.1
B.2
C.3
D.4
(43)下面函数的功能是
sss(s,t)
char*s,*t;
{while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}
A.求字符串的长度
B.比较两个字符串的大小
C.将字符串s复制到字符串t中
D.将字符串s接续到字符串t中
(44)请选出以下程序的输出结果
#include
sub(x,y,z)
intx,y,*z;
{*z=y-x;}
main()
{inta,b,c;
sub(10,5,&a);sub(7,a,&
B.;sub(a,b,&
C.;
printf("%d,%d,%d\n",a,b,
C.;
}
A.5,2,3
B.-5,-12,-7
C.-5,-12,-17
D.5,-2,-7
(45)下面程序的输出结果是
#include
main()
{inti=2,p;
p=f(i,i+1);
printf("%d",p);
}
intf(a,
B.
inta,b;
{intc;
if(a>
B.c=1;
else
if(a==
B.c=0;
elsec=-1;
return(
C.;
}
A.-1
B.0
C.1
D.2
(46)请选出以下程序段的输出结果
#include
#defineMIN(x,y)(x)<(y)?
(x):
(y)
main()
{inti,j,k;
i=10;j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
A.15
B.100
C.10
D.150
(47)请选出以下程序段的输出结果
#include
main()
{charsl[10],s2[10],s3[10],s4[10];
scanf("%s%s",s1,s2);gets(s3);gets(s4);
puts(s1);puts(s2);puts(s3);puts(s4);
}
输入数据如下:
(此处代表回车符)
aaaabbbb
ccccdddd
A.aaaa
B.aaaa
C.aaaa
D.aaaabbbb
bbbbbbbbbbbbcccc
ccccccccdddddddd
ccccddddddddeeee
(48)请选出以下程序的输出结果
#include
fun(s,n1,n2)
int*s,n1,n2;
{inti,j,t;
i=n1;j=n2;
while(i {t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;
i++;j--;
}
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;
fun(p,0,3);fun(p,4,9);fun(p,0,9);
for(i=0;i<10;i++)printf("%d",*(a+i));
printf("\n");
}
A.0987654321
B.4321098765
C.5678901234
D.0987651234
(49)请选出以下程序的输出结果
#include
main()
{inta[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{sub(a,x);printf("%d",x);}
printf("\n");
}
sub(s,y)
int*s,y;
{staticintt=3;
y=s[t];t--;
}
A.1234
B.4321
C.0000
D.4444
(50)下面程序的输出结果为
structst
{intx;
int*y;
}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&dt[0],60,&dt[1],
70,&dt[2],80,&dt[3]};
main()
{p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A.10
B.50
C.51
D.60
20606070
20212131
二、填空题(每空2分,共40分)
请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分。
(1)十进制数123用八位二进制表示为【1】。
(2)70年代末开始出现16位微处理器,标志着微型计算机进入了第三代;80年代起使用【2】位微处理器,标志微型计算机进入了第四代。
(3)通用计算机操作系统的功能和任务是:
作业管理、文件管理、外设管理、CPU管理和【3】管理。
(4)PC-DOS的两个隐含文件是:
IBMBIO.COM(输入输出程序)与【4】(磁盘操作管理程序)。
(5)FoxBASE和dBASE有两种变量:
即内存变量和【5】变量。
(6)设有如下程序段:
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
printf("%d\n",sum);
上述程序段的输出结果是【6】。
(7)阅读下列程序:
#include
main()
{inti,j,row,column,m;
staticintarray[3][3]={{100,200,300},
{28,72,-30},
{-850,2,6}
};
m=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<3;i++)
if(array[i][j] {m=array[i][j];row=i;column=j;}
printf("%d,%d,%d\n",m,row,column);
}
上述程序的输出结果是【7】。
(8)设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:
a*=16+(b++)-(++c);
后,a的值是【8】。
(9)下面程序的输出结果是【9】。
#include
main()
{inta=3,b=2,c=1;
c-=++b;
b*=a+c;
{intb=5,c=12;
c/=b*2;
a-=c;
printf(’%d,%d,%d,",a,b,c);
a+=--c;
}
printf(’%d,%d,%d,",a,b,c);
}
(10)设有如下程序:
#include
main(argc,argv)
intargc;char*argv[];
{while(--argc>0)printf("%s",argv[argc]);
printf("\n");
}
假定上述程序经编译和连接后生成可执行文件PROG.EXE,如果在DOS提示符下键入PROGABCDEFGHIJKL,则输出结果为【10】。
(11)阅读下列程序:
#include
#defineMAX_COUNT4
voidfun();
main()
{intcount;
for(count=1;count<=MAX_COUNT;count++)fun();
}
voidfun()
{staticinti;
i+=2;printf("%d",i);
}
上述程序的输出结果是【11】。
(12)设有下列程序:
#include
#include
main()
{inti;
charstr[10],temp[10];
gets(temp);
for(i=0;i<4;i++)
{gets(str);
if(strcmp(temp,str)<0)strcpy(temp,str);
}
printf("%s\n",temp);
}
上述程序运行后,如果从键盘上输入(在此代表回车符):
C++
BASIC
QuickC
Ada
Pascal
则程序的输出结果是【12】。
(13)设有如下程序:
#include
main(argc,argv)
intargc;char*argv[];
{FILE*fp;
voidfc();
inti=1;
while(--argc>0)
if((fp=fopen(argv[i++],"r"))==NULL)
{printf("Cannotopenfile!
\n");
exit
(1);
}
else
{fc(fp);fclose(fp);}
}
voidfc(ifp)
FILE*ifp;
{charc;
while((c=getc(ifp))!
=’#’)putchar(c-32);
}
上述程序经编译、连接后生成可执行文件名为cpy.exe。
假定磁盘上有三个
文本文件,其文件名和内容分别为:
文件名内容
aaaaa#
bbbbb#
ccccc#
如果在DOS下键入
cpyabc
则程序输出【13】。
(14)若输入3个整数3,2,1,则下面程序的输出结果是【14】。
#include
voidsub(n,uu)
intn,uu[];
{intt;
t=uu[n--];t+=3*u