1996年全国计算机等级考试二级C语言笔试试题及答案.docx

上传人:b****2 文档编号:17556205 上传时间:2023-07-26 格式:DOCX 页数:18 大小:22.45KB
下载 相关 举报
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第1页
第1页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第2页
第2页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第3页
第3页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第4页
第4页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第5页
第5页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第6页
第6页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第7页
第7页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第8页
第8页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第9页
第9页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第10页
第10页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第11页
第11页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第12页
第12页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第13页
第13页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第14页
第14页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第15页
第15页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第16页
第16页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第17页
第17页 / 共18页
1996年全国计算机等级考试二级C语言笔试试题及答案.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

1996年全国计算机等级考试二级C语言笔试试题及答案.docx

《1996年全国计算机等级考试二级C语言笔试试题及答案.docx》由会员分享,可在线阅读,更多相关《1996年全国计算机等级考试二级C语言笔试试题及答案.docx(18页珍藏版)》请在冰点文库上搜索。

1996年全国计算机等级考试二级C语言笔试试题及答案.docx

1996年全国计算机等级考试二级C语言笔试试题及答案

1996年4月全国计算机等级考试二级C语言笔试试题及答案

一、选择题(

(1)-(40)每小题1分,(41)-(50)每小题2分,共60分)

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

(1)一个完整的计算机系统包括

  A.主机、键盘与显示器

  B.计算机与外部设备

  C.硬件系统与软件系统

  D.系统软件与应用软件

(2)十六进制数1000转换成十进制数是

  A.4096

  B.1024

  C.2048

  D.8192

(3)十进制数269转换成十六进制数是

  A.10E

  B.10D

  C.10C

  D.10B

(4)如果用八位二进制补码表示带符号的定点整数,则能表示的十进制数的范围是

  A.-127到+127

  B.-128到+128

  C.-127到+128

  D.-128到+127

(5)下列设备中,既可作为输入设备又可作为输出设备的是

  A.鼠标器

  B.打印机

  C.键盘

  D.磁盘驱动器

(6)下列各叙述中,正确的是

  A.正数十进制原码的补码是原码本身

  B.所有的十进制小数都能准确地转换为有限位二进制小数

  C.汉字的计算机内码就是国标码

  D.存储器具有记忆能力,其中的信息任何时候都不会丢失

(7)在下列操作中,能导致DOS系统重新启动但不进行系统自检的是

  A.加电开机

  B.按+

  C.按++

  D.按RESET按钮

(8)如果给定一个带有通配符的文件名F*.?

,则在下列各文件中,它能代表的文件名是

  A.FA.EXE

  B.F.C

  C.EF.C

  D.FABC.COM

(9)DOS系统启动后,下列文件中常驻内存的是

  A.*.COM

  B.FORMAT.COM

  C.AUTOEXEC.BAT

  D.COMMAND.COM

(10)设A盘的目录结构为(画方框的为目录)

  如果当前盘为C盘,A盘的当前目录为\D2,则下列对A盘上文件QR.C的指定中,合法的是

  A.\D2\D4\QR.C

  B.D4\QR.C

  C.A:

D4\QR.C

  D.A:

D2\D4\QR.C

(11)为了要将A盘当前目录(不是根目录)中所有扩展名为.C的文件同名复制到A痰哪柯糪USER中,正确的命令是

  A.COPYA:

*.CUSER\*.C

  B.COPYA:

*.CA:

\USER

  C.COPYA:

*.CA:

USER\

  D.COPYA:

*.CA:

USER\*.C

(12)为了在屏幕上一次显示当前盘当前目录下的所有扩展名为.TXT的文件内容,下列命令中正确的是

  A.TYPE*.TXT

  B.TYPE*.TXTCON

  C.COPY*.TXT>CON

  D.COPY*.TXTCON

(13)设当前盘为A盘,为了将当前盘当前目录下的文件AB1.TXT连接在C盘根目录下的文件XYZ.TXT的后面,正确的命令是

  A.COPYC:

\XYZ.TXT+AB1.TXT

  B.COPYAB1.TXT>>C:

\XYZ.TXT

  C.TYPEAB1.TXT>C:

\XYZ.TXT

  D.COPYAB1.TXT+C:

\XYZ.TXT>C:

\XYZ.TXT

(14)设A盘为启动盘,其目录结构为(画方框的为目录)

  其中文件AUTOEXEC.BAT的内容为

  MD\XYZ

  CD\DOS\USER

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

  A.\DOS\USER

  B.\XYZ

  C.\

  D.\DOS

(15)下列DOS命令中为内部命令的是

  A.COMP

  B.PATH

  C.PRINT

  D.FORMAT

  (16)设当前盘为C盘,所用的所有软盘已格式化且容量相同,则下列DOS命令中错误的是

  A.DISKCOPYA:

C:

  B.DISKCOPYA:

A:

  C.COPYA:

*.*

  D.COPYA:

*.*C:

(17)下列DOS命令中,有错误的是

  A.TYPEAAB.FOR>PRN

  B.TYPE?

AB.FOR

  C.COPY*.CPRN

  D.COPYCONPRN

(18)设当前盘为C盘,在当前目录下有全部的DOS系统文件与批处理命令文件AB.BAT,且该批处理命令文件的内容为

  FORMATA:

/4

  MD\XYZ

  CD\XYZ

  RD\XYZ

  MD\XYZ

  如果在1.2软盘驱动器A中插入一张360K容量的软盘片,执行批自理命令文件AB.BAT后,结果A盘的目录结构是

  A.根目录

  B.根目录----子目录XYZ----子目录XYZ

  C.根目录─┬─子目录XYZ

  └─子目录XYZ

  D.根目录----子目录XYZ

(19)下列带有通配符的文件名,能代表文件ABC.FOR的是

  A.*BC.?

  B.A?

.*

  C.?

BC.*

  D.?

.?

(20)设当前盘为C盘,且C盘上含有子目录\DOS,A盘为只有根目录的启动盘(根目录下只有三个DOS系统文件与扩展名为.C的文件)。

下列命令组中的两个命令从效果上可以认为等价的是

  A.DEL\DOS与RD\DOS

  B.FORMATA:

与DELA:

*.*

  C.FORMATA:

/S与DELA:

*.?

  D.COPYA:

F1F2与RENA:

F1F2

(21)设a、b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是

  A.’a’&&’b’

  B.a<=b

  C.a||b+c&&b-c

  D.!

((a  (22)请读程序片段:

  inti=65536;printf("%d\n",i);

  上面程序片段的输出结果是

  A.65536

  B.0

  C.有语法错误,无输出结果

  D.-1

(23)设ch是char型变量,其值为A,且有下面的表达式:

  ch=(ch>=’A’&&ch<=’Z’)?

(ch+32):

ch

  上面表达式的值是

  A.A

  B.a

  C.Z

  D.z

(24)若x和y都是int型变量,x=100,y=200,且有下面的程序片段:

  printf("%d",(x,y));

  上面程序片段的输出结果是

  A.200

  B.100

  C.100200

  D.输出格式符不够,输出不确定的值

(25)下面各语句行中,能正确进行赋字符串操作的语句行是

  A.charst[4][5]={"ABCDE"};

  B.chars[5]={’A’,’B’,’C’,’D’,’E’};

  C.char*s;s="ABCDE";

  D.char*s;scanf("%s",s);

(26)若k是int型变量,且有下面的程序片段:

  k=-3

  if(k<=0)printf("####")

  elseprintf("&&&&");

  上面程序片段的输出结果是

  A.####

  B.&&&&

  C.####&&&&

  D.有语法错误,无输出结果

(27)若x是int型变量,且有下面的程序片段:

  for(x=3;x<6;x++)printf((x%2)?

("**%d"):

("##%d\n"),x);

  上面程序片段的输出结果是

  A.**3

  B.##3

  C.##3

  D.**3##4

  ##4**4**4##5**5

  **5##5

(28)请读程序:

  #include

  f(char*s)

  {char*p=s;

  while(*p!

=’\0’)p++;

  return(p-s);

  }

  main()

  {printf("%d\n",f("ABCDEF"));}

  上面程序的输出结果是

  A.3

  B.6

  C.8

  D.0

(29)请读程序:

  #include

  main()

  {inta;floatb,c;

  scanf("-?

O",&a,&b,&

  C.;

  printf("\na=%d,b=%f,c=%f\n",a,b,

  C.;

  )

  若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是

  A.a=98,b=765,c=4321

  B.a=10,b=432,c=8765

  C.a=98,b=765.000000,c=4321.000000

  D.a=98,b=765.0,c=4321.0

(30)请读程序:

  #include

  main()

  {intn[2],i,j,k;

  for(i=0;i<2;i++)n[i]=0;

  k=2

  for(i=0;i  for(j=0;j  printf("%d\n",n[k]);

  )

  上面程序的输出结果是

  A.不确定的值

  B.3

  C.2

  D.1

(31)请读程序片段:

  charstr[]="ABCD",*p=str;

  printf("%d\n",*(p+4));

  上面程序的输出结果是

  A.68

  B.0

  C.字符"D"的地址

  D.不确定的值

(32)请读程序片段:

  #include

  main()

  {inta,b;

  for(a=1;b=1;a<=100;a++)

  {if(b>=20)break;

  if(b%3==1)

  {b+=3;

  continue;

  }

  b-=5;

  }

  printf("%d\n",a);

  }

  上面程序的输出结果是

  A.7

  B.8

  C.9

  D.10

(33)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元:

  int*p;

  p=__________malloc(sizeof(int));

  则应填入

  A.int

  B.inst*

  C.(*int)

  D.(int*)

(34)请读程序片段(字符串内没有空格):

  printf("%d\n",strlen("ATS\n012\1\\"));

  上面程序片段的输出结果是

  A.11

  B.10

  C.9

  D.8

(35)请读程序:

  #include

  #include

  main()

  {char*s1="AbCdEf",*s2="aB";

  s1++;s2++;

  printf("%d\n",strcmp(s1,s2));

  }

  上面程序的输出结果是

  A.正数

  B.负数

  C.零

  D.不确定的值

(36)请读程序:

  #include

  func(inta,int

  B.

  {intc;

  c=a+b;

  returnc;

  }

  main()

  {intx=6,y=7,z=8,r;

  r=func(x--,y==,x+y),z--);

  printf("%d\n",r);

  }

  上面程序的输出结果是

  A.11

  B.20

  C.21

  D.31

(37)请读程序:

  #include

  inta[]={2,4,6,8};

  main()

  {inti;

  int*p=a;

  for(i=0;i<4;i++)a[i]=*p++;

  printf("%d\n",a[2]);

  }

  上面程序的输出结果是

  A.6

  B.8

  C.4

  D.2

(38)请读程序:

  #include

  charfun(char*

  C.

  {if(*c<=’Z’&&*c>=’A’)*c-=’A’-’a’;

  return*c;

  }

  main()

  {chars[81],*p=s;

  gets(s);

  while(*p)

  {*p=fun(p);putchar(*p);p++;}

  putchar(’\n’);

  }

  若运行时从键盘上输入OPENTHEDOOR(表示回车),则上面程序的输出结果是

  A.oPENtHEdoor

  B.openthedoor

  C.OPENTHEDOOR

  D.OpenTheDoor

(39)请读程序:

  #include

  voidfun(int*s)

  {staticintj=0;

  do

  s[j]+=s[j+1];

  while(++j<2);

  }

  main()

  {intk,a[10]={1,2,3,4,5};

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

  for(k=0;k<5;k++)printf("%d",a[k]);

  }

  上面程序的输出结果是

  A.34756

  B.23445

  C.35743

  D.12345

(40)请读程序:

  #include

  #defineSUB(X,Y)(X)*Y

  main()

  {inta=3,b=4;

  printf("%d",SUB(a++,b++));

  }

  上面程序的输出结果是

  A.12

  B.15

  C.16

  D.20

(41)请读程序:

  #include

  main()

  {intmun=0;

  while(num<=2)

  {num++;printf("%d\n",num);}

  }

  上面程序的输出结果是

  A.1

  B.1

  C.1

  D.1

  222

  33

  4

(42)请读程序:

  #include

  main()

  {floatx,y;

  scan("%f",&x);

  if(x<0.0)y=0.0

  elseif((x<5.0)&&(x!

=2.0))

  y=1.0/(x+2.0);

  elseif(x<10.0)y=1.0/x;

  elsey=10.0;

  printf("%f\n",y);

  }

  若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是

  A.0.000000

  B.0.250000

  C.0.500000

  D.1.000000

(43)请读程序:

  #include

  main()

  {intx=1,y=0,a=0,b=0;

  switch(x)

  {case1:

  switch(y)

  {case0:

a++;break;

  case1:

b++;break;

  }

  case2:

  a++;b++;break;

  }

  printf("a=%d,b=%d\n",a,

  B.;

  }

  上面程序的输出结果是

  A.a=2,b=1

  B.a=1,b=1

  C.a=1,b=0

  D.a=2,b=2

(44)若有下面的程序片段:

  inta[12]={0},*p[3],**pp,i;

  for(i=0;i<3;i++)

  p[i]=&a[i*4];

  pp=p;

  则对数组元素的错误引用是

  A.pp[0][1]

  B.a[10]

  C.p[3][1]

  D.*(*(p+2)+2)

(45)请读程序:

  #include

  #include

  main()

  {floatx,y,z;

  scan("%f%f",&x,&y);

  z=x/y;

  while

(1)

  {if(fabs(z)>1.0)

  {x=y;y=z;z=x/y;

  }

  elsebreak

  }

  printf("%f\n",y);

  }

  若运行时从键盘上输入3.62.4(表示回车),则输出的结果是

  A.1.500000

  B.1.600000

  C.2.000000

  D.2.400000

(46)请读程序:

  #include

  f(inb[],intn)

  {inti,r;

  r=1;

  for(i=0;i<=n;i++)r=r*b[i];

  returnr;

  }

  main()

  {intx,a[]={2,3,4,5,6,7,8,9};

  x=f(a,3);

  printf("%d\n",x);

  }

  上面程序的输出结果是

  A.720

  B.120

  C.24

  D.6

(47)请读程序:

  #include

  #include

  voidfun(char*s)

  {chara[10];

  strcpy(a,"STRING");

  s=a;

  }

  main()

  {char*p;

  fun(p);

  x=f(a,3);

  printf("%s\n",p);

  }

  上面程序的输出结果是(└┘表示空格)

  A.STRING└┘└┘└┘└┘

  B.STRING

  C.STRING└┘└┘└┘

  D.不确定的值

(48)若已建立下面的链表结构,指针p、s分别指向图中所示的结点,则不能将s所指的结点插入到链表末尾的语句组是

  A.s->next=NULL;p=p->next;p->next=s;

  B.p=p->next;s->next=p->next;p->next=s;

  C.p=p->next;s->next=p;p->next=s;

  D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;

(49)请读程序:

  #include

  voidfun(float*pl,float*p2,float*s)

  {s=(float*)calloc(1,sizeof(float));

  *s=*p1+*(p2++);

  }

  main()

  {floata[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;

  fun(a,b,s)

  printf("%f\n",*s);

  }

  上面程序的输出结果是

  A.11.100000

  B.12.100000

  C.21.100000

  D.1.100000

(50)请读程序:

  #include

  #include

  voidfun(char*w,intm)

  {chars,*p1,*p2;

  p1=w;p2=w+m-1;

  while(p1  {s=*p1++;*p1=*p2--;*p2=s;}

  )

  main()

  {chara[]="ABCDEFG";

  fun(a,strlen(a));

  puts(a);

  }

  上面程序的输出结果是

  A.GFEDCBA

  B.AGADAGA

  C.AGAAGAG

  D.GAGGAGA

 二、填空题(每空2分,共40分)

  请将每空的正确答案写在答题卡上【1】-【20】序号后的横线上,答在试卷上不得分。

  

(1) DOS命令分为内部命令与外部命令,XCOPY命令是 【1】 命令

  

(2) 为了列出当前盘当前目录中所有第三个字符为C的文件名的有关信息,应该用命令 【2】 。

  (3) 设当前盘为A盘,当前目录为\X\Y,A盘上的一个文件QR.C在当前目录下的子目录W中。

现已将A盘的当前目录改为\D\XY,当前盘改为C盘,如需指定A盘上该文件应写成 【3】 。

  (4) 用十六进制给存储器中的字节地址进行编号,其地址编号是从0000到FFFF,则该存储器的容量是【4】KB。

  (5) 设有两个八位二进制数00010101与01000111相加,其结果的十进制表示为 【5】 。

  (6) 数学式子 写成C语言表达式是 【6】 。

  (7) 下面程序的输出结果是 【7】 。

  #include

  main()

  { static char b[]="Goodbye";

  char *chp=&b[7];

  while( --chp >=&b[0]) putchar( *chp);

  putchar(’\n’);

  }

  (8) 下面程序的输出结果是 【8】 。

  #include

  void as( int x, int y, int *cp, int *dp)

  { *cp=x+y;

  *dp=x-y;

  }

  main()

  { int a=4, b=3, c, d;

  as( a, b, &c, &d);

  printf( ’%d %d\n", c, d);

  }

  (9) 请读程序:

  #include

  main( int argc, char *ar

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2