您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 真题 >> 正文    
  1999年4月全国计算机等级考试二级C语言笔试试题及答案 【注册男护士专用博客】          

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

www.nanhushi.com     佚名   不详 

一、选择题((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,那么字母d的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 SP$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.TXT+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;
  unsigned 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.输入项可以是一个实型常量,如:scakf("%f",3.5);
  B.只有格式控制,没有输入项,也能正确输入数据到内存,例如:scakf("a=%d,b=%d");
  C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scakf("%4.2f",&f);
  D.当输入数据时,必须指明变量地址,例如:scakf("%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 10
  B.12 12
  C.11 10
  D.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);
  esle printf("%d\n",m- -);
  }
(24)当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为
  A.1
  B.2
  C.3
  D.6
  if(a
  if(c else
  if(a
  if(b 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.-1
  B.1
  C.8
  D.0
  main ()
  { int y=10;
  do { y - -;} while(- - y);
  printf("%d\n",y - -);
  }
(29)在下列选项中,没有构成死循环的程序段是
  A.int i=100
  B.for( ; ;);
  while(1)
  { i=i0+1;
  if(i>100)break;
  }
  C.int k=1000;
  D.int s=36;
  do{++k;} while(k>=10000); while(s);--s;
(30)执行语句: for(i=l:i++<4:);后,变量i的值是
  A.3
  B.4
  C.5
  D.不定

(31)以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为
  A.8
  B.7
  C.6
  D.5
  #include
  #include
  func
  { 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,0
  B.5,0
  C.5,5
  D.2,5
  #include
  mair()
  { 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)若以下程序所生成的可执行文件名为filel.exe;当打入以下命令执行该程序时;
  FILEL CHINA BEIJING SHANGHAI
  程序的输出结果是
  A.CHINA BEIJING SHANGHAI
  B.FILEL CHINA BEIJING
  
  C.C B S
  D.F C B
  main(int argc,char *argv[])
  { while(arge-->0)
  { ++argv;printf("%s ",*argv);}
  }
(34)下面程序运行的结果是
  A.2ba56
  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.abcdef
  b b c
  c c d
  d d
  e
  f
  #include
  #define N 6
  main()
  { char c[N];
  int i=0;
  for( ;i
  for( i=0;i
 }

(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.运行时出错,a无定值
  main()
  { 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<0 0 0   D.>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+t;
  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
  #inchude
  #inchude
  fun(char *w, int n)
  { char t, *s1,*s2;
  s1=w: s2=w+n-1;
  while(s1
  { t=*s1++;
  *s1=*s2--;
  *s2=t;
  }
  }
  main()
  { char *p;
  p="1234567";
  fun(p,strlen(p));
  puts(p);
  }
(48)运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为:
  A.m=3
  B.m=2
  C.m=1
  D.m=1
  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("*");
  esle 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)
  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<NAX; 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]);
 }
(10) 以下程序输出的是 【10】
 main( )
 { int i=3, j=2;
 char *a="DCBA";
 printf("%c%c\n",a[i],a[j]);
 }
(11) 以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。请填空。
 exchange(int *x, int *y)
 { int t;
 t=*y; *y= 【11】 ; *x= 【12】 ;
 }
(12) 若以下定义和语句,则sizeof(a)的值是 【13】 ,而sizeof(b)的值是 【14】
 struct { int day; char mouth; int year;} a, *b;
 b=&a;
(13) 以下fun函数的功能是:累加数组元数中的值.n为数组中元素的个数, 累加的和值放入x所指的存储单元中,请填空.
 fun(int b[ ],int n, int *x)
 { int k, r=0;
 for(k=0;k 【16】 =r;
 }
(14) 变量root有如图所示有存储结构,其中sp是指向字符串的指针域,next 是指向该结构的指针域,data用以存放整型数. 请填空 , 完成此结构的类型说明和变量root的定义
 struct list
 { char *sp;
 【17】 ;
 【18】 ;
 }root;

(15) 下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空.
 #include
 FILE *fp;
 main()
 { int i,j;
 if((fp=fopen( 【19】, "wb"))==NULL) exit(0);
 for(i=0; i<10; i++)
 { scanf("%d",&j);
 fwrite(&j,sizeof(int),1, 【20】 );
 }
 fclose(fp);
}

1999年4月基础知识知识和C语言程序设计答案及评分标准

一.选择((1)~(40)题每题1分,(41)~(50)题 每题 2分,共60分)
 (1)B (2)B (3)D (4)D (5)A (6)A (7)B (8)B (9)D (10)C
(11)B (12)A (13)A (14)D (15)C (16)C (17)A (18)D (19)D (20)D
(21)D (22)C (23)B (24)B (25)B (26)C (27)A (28)D (29)C (30)C
(31)D (32)C (33)A (34)C (35)C (36)D (37)C (38)B (39)B (40)C
(41)A (42)A (43)C (44)B (45)C (46)B (47)C (48)C (49)B (50)B
二.填空题(每空2 分,共40分)
 (1) 【1】 AUTOEXEC.BAT
 (2) 【2】 IO.SYS 或IBMBIO.COM
 (3) 【3】 ATTRIB AB.TXT+R AB .TXT
 (4) 【4】 DIR *.BAT或DIR *.BAT\P或DIR *.BAT/W 或DIR*.BAT/W/P或*.BAT/P/W
 (5) 【5】 传染性或传播性
 (6) 【6】 a=1234 b=5 A或a=1234b=5
 (7) 【7】 ABCDCD
 (8) 【8】 024
 (9) 【9】 49
 (10) 【10】AB
 (11) 【11】*X (11) 12 T
 (12) 【13】5 (12) 14 2
 (13) 【15】r+b[k]或b[k]或*(b+k)+r (13) 【16】*x
 (14) 【17】struct list *next (14) 【18】 int data
 说明:以上两个答案(17和18)次序可以颠倒.
 (15) 【19】"bi.dat" (15) 【20】 fp

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目