龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

1998年4月全国计算机等级考试二级试卷C语言(带答案)

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
(考试时间120分钟,满分100分) 一.选择题A)、B)、C)、D)四个选项中,只有一个选项是正确的, 请将正确选项涂写在答题卡相应位置上,答在试卷上不得. (1)所谓"裸机"是指 A)单片机 B)单

(考试时间120分钟,满分100分)

  

  

一.选择题A)、B)、C)、D)四个选项中,只有一个选项是正确的, 请将正确选项涂写在答题卡相应位置上,答在试卷上不得.

  

(1)所谓"裸机"是指

  

A)单片机 B)单板机

  

C)不装备任何软件的计算机 D)只装备操作系统的计算机

  

(2)下面存储器中,存取速度最快的是

  

A)软盘 B)硬盘

  

C)光盘 D)内存

  

(3)系统软件中最重要的是

  

A)操作系统 B)语言自理程序

  

C)工具软件 D)数据库治理系统

  

(4)CPU自理的数据基本单位为字,一个字的字长

  

A)为8个二进制位 B)为16个二进制位

  

C)为32个二进制位 D)与CPU芯片的型号有关

  

(5)打印当前屏幕内容应使用的控制健是

  

A)Scroll-Lock B)Num-Lock

  

C)PgDn D)PrtSc(Print Screen)

  

(6)能将高级语言源程序转换成目标程序的是

  

A)调试程序 B)解释程序

  

C)编译程序 D)编辑程序

  

(7)二进制数1110111.11转换成十进数是

  

A)119.375 B)119.75

  

C)127.0625 D)127.125

  

(8)十六进制数FF.1转换成十进制数是

  

A)255.0625 B)255.125

  

C)127.0625 D)127.125

  

(9)3.5英寸软盘片的一个角上有一个滑动块,假如移动该滑动块露出一个小孔, 则该软盘

  

A)不能读但能写 B)不能读也不能写

  

C)只能读不能写 D)能读写

  

(10)控制键^C的功能为

  

A)终止当前操作 B)系统复位

  

C)暂停标准输出设备的输出 D)结束命令行

  

(11)COMMAND COM为命处理程序,DOS系统启动后,它

  

A)驻留在外存,需要时再装入内存 B)常驻内存,包含所有内部命令

  

C)不能处理外部命令 D)不能处理后缀为.EXE的可执行文件

  

(12)为了将所有扩展名为.PAS的文件改成扩展名为.P,应使用命令

  

A)REN *.PAS *.?AS B)REN PAS P

  

C)REN *.PAS *.p D)REN *.PAS *.P??

  

(13)设当前盘中文件XY.C的路径为ABXU,当前目录为AB. 为了查看文件XY.C的内容,应使用命令

  

A)TYPE XUXY.C B)TYPE XUXY.C

  

C)DIR XUXY.C D)DIR ABXUXY.C

  

(14)要将提示符改成当前盘当前目录后加一个大于号">",应使命令

  

A)PROMPT B)PROMPT $P$g

  

C)PROMPT $$ D)PROMPT C>

  

(15)设C盘根目录中有一个批处理文件A.BAT,当前盘为A盘.为了执行该批处理文件,下列命令中一定正确的是

  

A)C:A B)C;A.BAT

  

C)A.BAT D)A.BAT

  

(16)设当前盘为C盘,将A盘根目录下的文件 目录信息存放到当前盘当前目录下的文件AB中,应使用命令

  

A)TYPE A:>AB B)DIR >AB

  

C)DIR A;>AB D)DIR >AB

  

(17)可执行文件ABC.EXE所需要的输入数据已经按格式存放在文件XYZ中,要求将执行结果在打印机上打印输出.下列命正确的是

  

A)ABCXYZ

  

C)ABC>XYZPRN

  

(18)在当前盘当前目录下有一个文件A.BAT,其内容为

  

CD

  

MD XYZABBC

  

CD XYZABB

  

在正确执行上述文件后,接着执行下列命令时,不会发生错误的是

  

A)MD C B)RD XYZ

  

C)RD.C D)RD B

  

(19)下列命令组中两个DOS命令互相等价的是

  

A)TYPE AB.TXT与DIR AB.TXT

  

B)DISKCOMP A: B:与COMP A:*.* B.*.*

  

C)TYPE AB.TXT >>XY.TXT与COPY AB.TXT XY.TXT

  

D)TYPE AB.TXT >XY.TXT与COPY AB.TXT XY.TXT

  

  

(20)设A盘为启动盘,其目录结构为

  

根目录

  

  

┌───┴─────┐

  

DOS子目录 COMMAND.COM

  

  

┌──────────┐

  

USER子目录 AUTOEXEC.BAT

  

其中文件AUTOEXEC.BAT的内容如下:

  

MD XYZ

  

CD DOSUSER

  

则由A盘启动成功后,A盘的当前目录是

  

A)DOSUSER B)XYZ

  

C)根目录 D)DOS

  

(21)在C语言提供的合法的着急字是

  

A)swicth B)cher

  

C)Case D)default

  

(22)在C语言中,合法的字符常量是

  

A)'\084' B)'x43'

  

C)'ab' D)"\0"

  

(23)若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是

  

A)1 B)2

  

C)2.0 D)2.5

  

(24)合法的数组定义是

  

A)int a[]="string"; B)int a[5]={0,1,2,3,4,5};

  

C)vhst s="string"; D)char a[]={0,1,2,3,4,5};

  

(25)设a为整型变量,不能正确表达数学关系:1010&&a>15

  

D)!(a<=10)&&!(a>=15)

  

(26)若t为double类型,表达式t=1,t5,t++的值是

  

A)1 B)6.0

  

(27)若有定义和语句:

  

char s[10]:s="abcd";printf("%s

",s);

  

则结果是(以下u代表空格) A)输出abcd B)输出a

  

C)输出abcduuuuu D)编译不通过

  

(28)若有定义和语句:

  

int **pp,*p,a=10,b=20;

  

pp=&p;p=&a;p=&b;printf("%d

",*p,**pp);

  

则输出结果是:

  

A)10,20 B)10,10

  

C)20,10 D)20,20

  

(29)若有以下定义和语句:

  

int u=010,v=0x10,w=10;

  

printf("%d,%d,%d

,u,v,w);

  

则输出结果是:

  

A)8,16,10 B)10,10,10

  

C)8,8,10 D)8,10,10

  

(30)若有以下定义和语句

  

char c1='b',c2='e';

  

printf("%d,%c

",c2-c1,c2-'a'+"A");

  

则输出结果是:

  

A)2,M B)3,E

  

C)2,E D)输出项与对应的格式控制不一致,输出结果不确定

  

(31)若有以下定义:

  

char s[20]="programming",*ps=s;

  

则不能代表字符o的表达式是

  

A)ps+2 B)s[2]

  

C)ps[2] D)ps+=2,*ps

  

(32)若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是

  

for (i=5;i;i--)

  

for(j=0;j<4;j++){...}

  

A)20 B)25

  

C)24 D)30

  

(33)若有以下定义和语句:

  

char *s1="12345",*s2="1234";

  

printf("%d

",strlen(strcpy(s1,s2)));

  

则输出结果是

  

A)4 B)5

  

C)9 D)10

  

(34)若有以下定义和语句:

  

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

  

则不能表示a数组元素的表达式是

  

A)*p B)a[10]

  

C)*a D)a[p-a]

  

(35下面程序的输出是

  

main()

  

{ char *s="121";

  

int k=0, a=0, b=0;

  

do

  

{k++;

  

if(k%2==0) {a=a+s[k]-'0';continue;}

  

b=b+s[k]-'0'; a=a+s[k]-'0';

  

}

  

while (s[k+1]);

  

printf("k=%d a=%d b=%d

",k,a,b);

  

A)k=3 a=2 b=3 B)k=3 a=3 b=2

  

C)k=2 a=3 b=2 D)k=2 a=2 b=3

  

(36)下面程序的输出是

  

main()

  

{ unsigned a=32768;

  

printf("a=%d

",a);

  

}

  

A)a=32768 B)a=32767

  

C)a=-32767 D)a=-1

  

(37)若有以下定义:

  

  

float x;int a,b;

  

则正确的switch 语句是

  

A)switch(x) B)switch(x)

  

{ case1.0:printf("*

"); { case1,2:printf("*

");

  

case2.0:printf("**

"); case3:printf("**

");

  

} }

  

C)switch (a+b) D)switch (a+b);

  

{ case 1:printf("

"); { case 1:printf(."*

");

  

case 1+2:printf("**

"); case 2:printf("**

");

  

} }

  

(38)若有定义:int x,y;char a,b,c;并有以下输入数据(此处< CR> 代表换行符,/u代表空格):

  

1u2

  

AuBUC

  

则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C 的正确程序段是

  

A)scanf("x=%d y+%d",&x,&y);a=getchar();b=getchar();c=getchar();

  

B)scanf("%d %d",&x,&y);a=getchar();b=getchar();c=getchar();

  

C)scanf("%d%d%c%c%c,&x,&y,&a,&b,&c);

  

D)scanf("%d%d%c%c%c%c%c%c:&x,&y,&a,&a,&b,&b,&c,&c);

  

(39)以下程序输出的结果是

  

#include

  

#include

  

main()

  

{ char w[][10]={"ABCD","EFGH","IJKL","MNOP"},K;

  

for (k=1;k<3;k++)

  

printf("%s

",&w[k][k]);

  

}

  

A)ABCD B)ABCD

  

FGH EFG

  

KL IJ

  

M

  

C)EFG D)FGH

  

JK KL

  

O

  

(40)若有以下的定义:

  

int a[]={1,2,3,4,5,6,7,88,9,10), *p=a;

  

则值为3的表式是

  

A)p+=2, *(p++) B)p+=2,*++p

  

C)p+=3, *kp++ D)p+=2,++*p

  

(41)假定所有变量均已正确说明,下列程序段运行后x的值是

  

a=b=c=0;x=35;

  

if(!a)x--;

  

else if(b);if(c)x=3;

  

else x=4;

  

A)34 B)4

  

C)35 D)3

  

(42)在以下一组运算符中,优先级最高的运算符是

  

A)<= B)=

  

C)% D)&&

  

(43)若有以下定义和语句:

  

int w[2][3],(*pw)[3]; pw=w;

  

则对w数组元素非法引用是

  

A)*(w[0]+2) B)*(pw+1)[2] <

  

精彩图集

赞助商链接