1999年4月全国计算机等级考试二级C语言笔试试题

1999年4月全国计算机等级考试二级C语言笔试试题

 更新于:2007年9月19日  念时

一、选择题((1)-(40)每个选项1分,(41)-(50)每个选项2分,共60分)。
   下列各题A)、B)、C)、D)四个有选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。


(1)微型计算机的性能主要取决于
  A)内存B)中央处理器C)硬盘D)显示卡

(2)有一个数值152,它与十六进制数6A相等,那么该数值是
  A)二进制数B)八进制数C)十进制数D)四进制数

(3)使用超大规模集成电路制造的计算机应该归属于
  A)第一代B)第二代C)第三代D)第四代

(4)已知英文字母a的ASCII代码值是十六进制数61H,那字母子b 的ASCII代码值是
  A)34H B)54H C)24H D)64H

(5)一片存储容量是1.44MB的软磁盘,可以存储大约140万个
  A)ASCII字符 B)中文字符C)磁盘文件D)子目录

(6)在MS-DOS环境中同时按下[Ctrl]和[Break]两个键,其作用是
  A)终止当前操作B)暂停当前操作C)关机D)热启动

(7)将二进制数10000001转换为十进制数应该是
   A)127 B)129 C)126 D)128

(8)磁盘处于写保护状态,那么磁盘中的数据
  A)不能读出,不能删改,也不能写入新数据  B)可以读出,不能删改,也不能写入新数据
  C)可以读出,可以删改,但不能写入新数据  D)可以读出,不能删改,但可以写入新数据

(9)微型机启动后,DOS提示符是C:\>,现提示符变为C:\USER>,则说明刚执行过命令
  A)PROMPT  B)PROMPT USER  C)PROMPT $P$G  D)CD USER

(10)MS-DOS文件系统目录的组织形式属于
  A)关系型结构  B)网络型结构  C)树型结构  D)直线型结构

(11)应用软件系统TH的总容量大约1MB,其主要程序文件存放在C:\TH目录中,而数据文件存放在C:\TH\DATA目录中。如要将它们完整地复制到A盘,应该使用的命令是
  A)XCOPY C:\TH A:\  B)XCOPY C:\TH A:\ /S   C) XCOPY C:\TH A:\ /M  D)XCOPY C:\TH A:\ /P

(12)执行COPY A.+B.TXT这个DOS命令后,得到的磁盘文件是
  A)A.TXT   B)B.TXT   C)AB.TXT  D)A+B.TXT

(13)在WINDOWS中,将一个应用程序窗口最小化之后,该应用程序
  A)仍在后台运行  B)暂时停止运行  C)完全停止运行  D)出错

(14)CD-ROM属于
  A)感觉媒体  B)表示媒体  C)表现媒体  D)存储媒体

(15)在因特网(Internet)中电子公告板的缩写是
  A)FTP   B)WWW   C)BBS   D)E-mail

(16)设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为
  A)4   B)16  C)32  D)52

(17)设有如下的变量定义:
  int i=8,k,a,b;
  unsinged long w=5
  double x=1,42,y=5.2
  则以下符合C语言语法的表达式是
  A)a+=a-=(b=4)*(a=3)  B)x%(-3);   C)a=a*3=2  D)y=float(i)

(18)假定有以下变量定义:
  int k=7,x=12;
  则能使值为3 的表达式是
  A)x%=(k%=5)   B)x%=(k-k%5)    C)x%=k-k%5  D)(x%=k)-(k%=5)

(19)以下叙述中正确的是
  A)输入项可以是一个实型常量,如scanf(“%f,”3.5)
  B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(“a=%d,b=%d”)
  C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(“%4.2f”,&f)
  D)当输入数据时,必须指明变量地址,例如:scanf(“%f”,&f)

(20)设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是
  A)把x和y按从大到小排列     B)把x和y按从小到大排列
  C)无确定结果   D)交换x和y中的值

(21)以下程序的输出结果是
  A)10 10B)12 12C)11 10D)11 13
  main( )
  { int a=12,b=12;
  printf(“%d %d\n”,--a,++b);
  }

(22)以下程序运行后,输出结果是
  A)cde   B)字符c的ASCII码值   C)字符c的地址   D)出错
  main( )
  { char *s=“abcde”;
  s+=2;
  printf(“%ld\n”,s);
  }

(23)以下程序输出结果是
   A)7   B)6   C)5   D)4
  main( )
  { int m=5;
  if(m++>5)printf(“%d\n”,m);
  else printf(“%d\n”,m--);
  }

(24)当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为
  A)1   B)2   C)3   D)6
  if(a<b=
  if(c>d) x=1;
  else
  if(a<c=
  if(b>d) x=2;
  else x=3;
  else x=3;
  else x=6;
  else x=7;

(25)在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为
  A)ABCdef  B)abcDEF  C)abc   D)DEF
  #include
  main( )
  { char ch;
  while((ch=getchar( ))!=’\n’)
  { if(ch>=’A’ && ch<=’z’)ch=ch+32; else if(ch>=’a’ &&   ch<’z’)ch=ch+32; printf(“%c”,ch); } printf(“\n”); }

(26)下面能正确进行字符串赋值操作的语句是
  A)char s[5]={“ABCDE”}  B)char s[5]={‘A’、’B’、’C’、’D’、’E’};
  C) char *s;s=“ABCDEF”  D)char *s; scanf(“%s”,s);

(27)当执行以下程序段时
  A)循环体将执行一次   B)循环体将执行两次
  C)循环体将执行无限次   D)系统将提示有语法错误
  x=-1;
  do { x=x*x;} while(!x);

(28)执行以下程序后,输出的结果是
  A)-1B)1 C)8 D)0
  main( )
  { int y=10;
  do {y--;} while(--y);
  printf(“%d\n”,y--);
  }

(29)在下列选项中,没有构成死循环的程序段是
  A) int i=100
  while (1)
  {i=i%100+1;
  if(i>100)break;
  }
  B) for(;;);
  C)int k=1000;
  do{++k} while (k>=1000)
  D)int s=36
  While(s);--s;

(30)执行语句:for(i=1;i++<4;)后;变量i的值是
  A)3   B)4   C)5   D)不定

(31)以下程序运行后,如果从键盘上输入abcde<回车>,则输出结果为
  A)8 B)7 C)6 D)5
  #include
  #include
  func(char str[ ] )
  { int num =0;
  while(*(str+num!=’\0’) num+ +;
  return(num);
  )
  main( )
  {char str[10],*p=str;
  gets(p); printf(“%d\n”,func(p));
  }

(32)运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为
  A)2,0B)5,0C)5,5D)2,5
  #include
  main( )
  {int v1=0,v2=0;
  char ch;
  while((ch=getchar( ))!=’#’)
  switch(ch)
  {case ‘a’;
  case ‘h’;
  default; v1+ +;
  case ‘0’; v2+ ;+
  }
  printf(“%d,%d\n”,v1,v2);
  }

(33)若以下程序所生成的可执行文件名不;当打入以下命令执行该程序时;
  FILE1 CHINA BEIJING SHANGHAI
   程序的输出结果是
  A)CHINA BEIJIANG SHANGHAI     B)FILE1 CHINA BEIJING
  C)C B S   D)F C B
  main(int argc,char *argv[])
  { while(argc-->0)
  { ++argv; printf(“%s”,*argv);}
  }

(34)下面程序的运行结果是
  A)12ba56   B)6521   C)6   D)62
  main()
  { char ch[7]={“65ab21”};
  int i,s =0
  for(i=0;ch[i]>=’0’&&ch[i]<’9’;i+=2) s=10*s+ch[i]-‘0’ printf(“%d\n”,s);   }

(35)运行下面的程序,如果从键盘上输入: ab <回车>
  c <回车>
  def <回车>
  则输出结果为
  A) a   B)a   C)ab   D)avcdef
  b b c
  c c d
  d d
  e
  f
  #include
  #define N 6
  main( )
  { char c[N];
  int i=o
  for( ;i<N;c[i]=getchar(),i++=
  for( i=0;i>N;i++) putchar(c[i]); printf(“\n”);

(36)以下程序运行后输出结果是
   A)8   B)7   C)6   D)5
  #include
  ss(char *s)
  { char *p=s;
  while(*p)p++;
  return(p-s);
  }
  main( )
  { char *a=”abded”;
  int i;
  i=ss(a);
  printf(“%d\n”,i);
  }

(37)以下程序运行后,输出结果是
  A)8,15   B)8,16   C)8,17   D)8,8
  func(int a,int b)
  { static int m=0,i=2;
  i+=m+1;
  m=i+a+b
  return(m);
  }
  main()
  { int k=4,m=1,p;
  p=func(k,m);printf(“%d,”,p);
  p=func(k,m);printf(“%d\n”,p);
  }

(38)以下程序运行后,输出结果是
  A)49.5  B)9.5   C)22.0  D)45.0
  #include
  #define PT 5.5
  #define S(x) PT*x*x
  main( )
  { int a=1,b=2;
  printf(“%4.1f\n”,S(a+b))
  }

(39)以下程序运行后,输出结果是
  A)ABCDEFG   B)CDG   C)abcdefgh  D)abCDefGh
  main( )
  { static char a[]=”ABCDEFGH”,b[]=”abCDefGh”;
  char p1,p2;
  int k;
  p1=a; p2=b;
  for(k=0;k<-7;k++) if(*(p1+k)==*(p2+k)) printf(“%c”,*(p1+k)); printf(“\n”);   }

(40)以下程序执行后,a的值是
  A)4   B)1   C)0   D)运行时出错,无定值   mian()
  { int a,k=4,m=6,*p1=&k,*p2=&m;   a=p1= =&m;
  printf(“%d\n”,a); }

(41)以下程序运行后,输出结果是
  A=84 B=99 C=95 D=44 int d=1;
  fun(int p) { int d=5; d+=p++;   printf(“%d”,d); }
  main()
  {int a=3; fun(a); d+=a++;
  printf(“%d\n”,d); }

(42)以下程序运行后,输出结果是
  A=6385 B=22 C=33 D=693825
  main()
  {char ch[2][5]={“693”,”825”},*p[2];   int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i];
   for(i=0;i<2,i++) for(j=0;p[i][j]>=’0’   && p[i][j]<=’9’;
  j=2) s=10*s+p[i][j]=’0’ printf(“%d\n”,s);   }

(43)以下程序运行后,输出结果是
  A=1 B=7 C=9 D=11
  fut(int **s, int p[2][3]) {**s=p[1][1];}
  main()
  {int a[2][3]={1,3,5,7,9,11},*p;
   p=(int *)malloc(sizeof(int)); fut(&p,a);
   printf(“%d\n”,*p); }

(44)设有如下定义:
int a=1,b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)后,n的值为
  A=1 B=2 C=3 D=0

(45)在执行以下程序时,为了使输出结果为,t=4则给a和b输入的值应满 足的条件是
  A=a>b   B=a<b<0   C=0<a<b   D=0>a>b
  main( )
  { int s,t,a,b; scanf(“%d,%d”,&a,&b); s=1;   t=1; if(a<0)s=s+1; if(a>b)t=s+1;
  else if(a= =b)t=5;
  else t=2*s;
  printf(“t=%d\n”,t);
  }

(46)以下程序的输出结果是
  A=x=4 B=x=8 C=x=6 D=x=12
  main( )
  { int i,j,x=0;
  for(i=0,i<2;i++) { x ++; for(j=0;j<3;j++) { if(j%2)continue; x++;   } x++ } printf(“x=%d\n”,x); }
(47)以下程序运行后,输出结果是
  A=1234567   B=7654321   C=1711717   D=7177171
  #include <stdio.h>
  #include <string.h> fun(char s w, int n)
  { char t,* s1,* s2; s1=w;s2=w+n-1;
  while(s1<s2= { t=*s1++; *s1=s2--; *s2=t; }
  main()
  { char *p; fun(p,strlen(p));
puts(p); }

(48)运行以下程序后,如果从键盘上输入65 14>回车>,则输出结果为
  A=m=3   B=m=2   C=m=1   D=m=0
  main ( )
  {int m,n;
  printf{“Enter m,n:”}; scanf(“%d%d,&m,&n”);
  while(m!=n)
  {while(m>n)m-=n;
  while(n>m)n-=m;
  }
  printf(“m=%d\n”,m);
  }

(49)以下程序运行后,如果从键盘上输入:
  book<回车>
  book<空格><回车>
  则输出结果是
  A=*8  B=#9  C=#6  D=*9
  #include
  main()
  {char a1[80],a2[80],*s1=a1,*s2=a2;
  gets(s1); gets(s2);
  if(!strcmp(s1,s2)) printf(“*”);
  else printf(“#”);
  printf(“%d\n”,strlen(strcat(s1,s2)))
  }

(50)以下程序运行后,如果从键盘上输入:
  A=10000 B=10010 C=00110 D=10100
  main( )
  { int y=18,i=0,j,a[8];
  do
  { a[i]=y%2;i++;
  y=y\2;
  } while(y>1=1);
  for(j=i-1;j>=0;j--) printf(“%d”,a[j]);
  printf(“\n”)
  }

二、填空题(每空2分,共40分)
   请将每空的正确答案写在答题卡 1 至 20 序号的横线上,答在试卷上不得分。


(1)DOS中的自动批处理文件的全名是1。

(2)在DOS启动盘中,除COMMAND.COM外,还有两个必备的系统文件,它们是MSDOS.SYS(或IBMDOS.COM) 与 2 。

(3)在DOS下,要将当前目录中AB.TXT文件设置为只读属性,应该使用的完整命令行是 3 。

(4)在DOS下,要查看当前目录中所有批处理文件的总字节数,应该使用的完整命令行是 4 。

(5)计算机病毒除有破坏性、潜伏性和激发性外,还有一个最明显的特性是 5 。

(6)若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是 6 。
  .char a[10],b;
  scanf(“a=%s b=%c”,a,&b);

(7)下面程序的输出结果是 7 。
  char b[]=”ABCD”;
  main( )
  { char *chp;
  for(chp=b; *chp; chp+=2) printf(“%s”,chp);
  printf(“\n”);
  }

(8)下面程序的输出结果是 8 。
  #define MAX 3
  int a[MAX];
  main( )
  { fun1( ); fun2(a);printf(“\n”);}
  fun1( )
  { int k,t=0;
  for(k=0;k<MAX;k++,t++= a[k]=t+t;
  =
  fun2(int b[])
  { int k;
  for(k=0;k>MAX;k++)printf(“%d”,*(b+k))
  }

(9)下面程序的输出是 9 。
  main( )
  {int a[10]={19,23,44,17,37,28,49,36},* p;
  p=a;
  printf(“%d\n”,(p+=3)[3]);
  }

答案将在后期陆续公布……敬请关注!念时

你可能感兴趣的:(C语言)