计算机类二级C

2002年4月全国计算机等级考试二级笔试试卷(基础部分和C语言程序设计)

68 题含答案C
共 68 题返回本类
1单选题1 / 68
在计算机中,一个字长的二进制位数是
查看答案
D. 随CPU的型号而定
3单选题3 / 68
计算机网络能传送的信息是:
查看答案
A. 所有的多媒体信息
6单选题6 / 68
要想打印存放在当前盘当前目录上所有扩展名为.TXT 的文件内容, 应该使用的DOS命令为
查看答案
C. COPY *.TXT PRN
7单选题7 / 68
将当前盘当前目录及其子目录中的全部文件 (总量不足1.2MB) 复制到一张空的A盘的根目录下,应该使用的DOS命令为
查看答案
B. XCOPY *.*A:\ /S
10单选题10 / 68
结构化程序设计所规定的三种基本控制结构是
查看答案
C. 顺序、选择、循环
11单选题11 / 68
要把高级语言编写的源程序转换为目标程序,需要使用
查看答案
D. 编译程序
13单选题13 / 68
Windows环境下,PrintScreen键的作用是
查看答案
C. 复制屏幕到剪贴板
14单选题14 / 68
在Windows环境下,为了终止应用程序的运行,应
查看答案
A. 关闭该应用程序窗口
17单选题17 / 68
若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是
查看答案
D. a的值是字符‘A’的ASCII值加上1。
19单选题19 / 68
以下选项中不属于C语言的类型的是
查看答案
D. long  short
20单选题20 / 68
若有说明语句:int  a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是
查看答案
A. scanf("%d%d%d",&a,&b,d);
21单选题21 / 68
在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是
查看答案
D. a=4000L*10L;
22单选题22 / 68
以下叙述正确的是
查看答案
B. 可以把define定义为用户标识符,但不能把if定义为用户标识符
24单选题24 / 68
以下程序的输出结果是
main()
{  int  a=5,b=4,c=6,d;
   printf("%d\n",d=a>b?(a>c?a:c):(b));
}
查看答案
C. 6
25单选题25 / 68
以下程序中,while循环的循环次数是
main()
{ int  i=0;
  while(i<10)
  {  if(i<1)  continue;
     if(I==5)  break;
     i++;
  }
  ......
}
查看答案
D. 死循环,不能确定次数
26单选题26 / 68
以下程序的输出结果是
main()
{ int  a=0,i;
  for(i=;i<5;i++)
  {  switch(i)
     { case 0:
       case 3:a+=2;
       case 1:
       case 2:a+=3;
       default:a+=5;
     }
  }
  printf("%d\n",a);
}
查看答案
A. 31
27单选题27 / 68
以下程序的输出结果是
main()
{ int  a=4,b=5,c=0,d;
  d=!a&&!b||!c;
  printf("%d\n",d);
}
查看答案
A. 1
28单选题28 / 68
以下程序的输出结果是
#include  <stdio.h>
main()
{ int  i=0,a=0;
  while(i<20)
  {  for(;;)
     { if((i%10)==0)  break;
       else              i--;
     }
     i+=11;      a+=i;
  }
  printh("%d\n",a);
}
查看答案
B. 32
29单选题29 / 68
以下程序的输出结果是
char  cchar(char  ch)
{
   if(ch>=‘A’&&ch<=‘Z')  ch=ch-‘A'+‘a';
   return  ch;
}
main()
{  char  s[]="ABC+abc=defDEF",*p=s;
   while(*p)
   { *p=cchar(*p);
     p++;
   }
   printf("%s\n",s);
}
查看答案
B. abc+abc=defdef
30单选题30 / 68
以下程序的输出结果是
int  f()
{  static  int  i=0;
   int  s=1;
   s+=i;  i++;
   return  s;
}
main()
{  int  i,a=0;
   for(i=0;i<5;i++)  a+=f();
   printf("%d\n",a);
}
查看答案
D. 15
32单选题32 / 68
若有以下程序
#include    <stdio.h>
void    f(int  n);
main()
{  void  f(int  n);
   f(5);
}
void f(int  n)
{  printf("%d\n",n);  }
则以下叙述中不正确的是
查看答案
C. 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
33单选题33 / 68
以下程序调用findmax函数返回数组中的最大值
findmax(int  *a,int  n)
{ int  *p,*s;
  for(p=a,s=a;  p-a<n;  p++)
  if (     )  s=p;
  return(*s);
}
main()
{ int  x[5]={12,21,13,6,18};
  printf("%d\n",findmax(x,5));
}
在下划线处应填入的是
查看答案
B. *p>*s
34单选题34 / 68
以下程序的输出结果是
main()
{  char  cf[3][5]={"AAAA","BBB","CC"};
   printf("\"%s\"\n",ch[1]);
}
查看答案
B. "BBB"
36单选题36 / 68
若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是
查看答案
A. p=2*(int*)malloc(sizeof(int));
38单选题38 / 68
若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
查看答案
B. fopen("A:\\user\\abc.txt","r+")
39单选题39 / 68
以下不能正确进行字符串赋初值的语句是
查看答案
A. char  str[5]="good!";
40单选题40 / 68
若有下面的说明和定义:
struct test
{  int  ml; char  m2;  float  m3;
   union uu {char ul[5]; int  u2[2];} ua;
}  myaa;
则sizeof(struct test )的值是
查看答案
A. 12
41单选题41 / 68
若有定义:int  aa[ 8];。则以下表达式中不能代表数组元aa[1]的地址的是
查看答案
C. &aa[0]++
42单选题42 / 68
以下程序的输出结果是
f(int  b[],int  m,int  n)
{ int  i,s=0;
  for(i=m;i<n;i=i+2)  s=s+b[i];
  return  s;
}
main()
{int  x,a[]={1,2,3,4,5,6,7,8,9};
 x=f(a,3,7);
 printf("%d\n",x);
}
查看答案
A. 10
43单选题43 / 68
若有以下定义和语句:
int  s[4][5],(*ps)[5];
ps=s;
则对s数组元素的正确引用形式是
查看答案
C. ps[0][2]
44单选题44 / 68
以下程序的输出结果是
main()
{  int  b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
   for(i=0;i<3;i++)
   for(j=i;j<=i;j++) t=t+b[i][b[j][j]];
   printf("%d\n",t);
}
查看答案
B. 4
45单选题45 / 68
以下程序的输出结果是
#include  <stdio.h>
#include  <string.h>
main()
{  char  b1[8]="abcdefg",b2[8],*pb=b1+3;
   while (--pb>=b1)  strcpy(b2,pb);
   printf("%d\n",strlen(b2));
}
查看答案
D. 7
46单选题46 / 68
在说明语句:int *f(    );中,标识符f代表的是
查看答案
D. 一个返回值为指针型的函数名
47单选题47 / 68
不合法的main函数命令行参数表示形式是
查看答案
C. main(int  argc,char  *argv)
48单选题48 / 68
以下程序的输出的结果是
int x=3;
main()
{  int i;
   for (i=1;i<x;i++)  incre();
}
ncre()
{  staic  int  x=1;
   x*=x+1;
   printf("  %d",x);
}
查看答案
C. 2  6
49单选题49 / 68
若以下定义:
struct  link
{  int  data;
   struck  link  *next;
}a,b,c,*p,*q;
且变量a和b之间已有如下图所示的链表结构:
a                    b
data  next          data  next
┌──┬──┐      ┌──┬──┐
│ 5  │    ┼──→│ 9  │ \0 │
└──┴──┘      └──┴──┘
  ↑p
               c
           data  next
         ┌──┬──┐
         │ 7  │    │
         └──┴──┘
              ↑q
指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是:
查看答案
C. p->next=&c; q->next=p->next;
50单选题50 / 68
设有以下说明语句
typedef  struct
{  int  n;
   char  ch[8];
}PER;
则下面叙述中正确的是
查看答案
B. PER是结构体类型名
51填空题51 / 68
为了要将当前盘目录中的可执行程序ABC.EXE的输出结果存放到当前盘当前目录中的文件OUT.TXT中,则应使用的DOS命令为【1 __】 。
查看答案
ABC>OUT.TXT或者ABC.EXT>OUT.TXT
53填空题53 / 68
要想在当前目录下方便地执行C盘\UCDOS目录中的程序,就应该先执行预设搜索路径的命令,该DOS命令为【3__】 。
查看答案
PATH C:\UCDOS或其它等效命令
54填空题54 / 68
要查看当前目录中扩展名为.DAT的所有文件目录,应该使用的DOS 命令为【4__】 。
查看答案
DIR *.DAT 或DIR *.DAT/P 或DIR *.DAT/W 或带其它参数也可
56填空题56 / 68
若从键盘输入58,则以下程序输出的结果是 【6__】 。
main()
{ int  a;
  scanf("%d",&a);
  if(a>50)  printf("%d",a);
  if(a>40)  printf("%d",a);
  if(a>30)  printf("%d",a);
}
查看答案
585858
59填空题59 / 68
以下程序输出的结果是【9__】 。
main()
{  int  a=5,b=4,c=3,d;
   d=(a>b>c);
   printf("%d\n",d);
}
查看答案
0
60填空题60 / 68
以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针.请将定义补充完整。
struct  node
{int  info;
 【10__】  link;
}
查看答案
struct node *
61填空题61 / 68
以下程序的输出结果是【11__】 。
main()
{int  s,i;
 for(s=0,i=1;i<3;i++,s+=i);
 printf("%d\n",s);
}
查看答案
5
62填空题62 / 68
以下程序的输出结果是【12__】 。
main()
{ char  *p="abcdefgh",*r;
  long  *q;
  q=(long*)p;
  q++;
  r=(char*)q;
  printf("%s\n",r);
}
查看答案
efgh
63填空题63 / 68
以下程序的输出结果是【13__】 。
main()
{  char  s[]="abcdef";
   s[3]=‘\0';
   printf("%s\n",s);
}
查看答案
abc
64填空题64 / 68
以下程序的输出结果是【14__】 。
main()
{ int  x=0;
  sub(&x,8,1);
  printf("%d\n",x);
}
sub(int  *a,int  n,int  k)
{  if(k<=n)  sub(a,n/2,2*k);
   *a+=k;
}
查看答案
7
65填空题65 / 68
设有如下宏定义
#define  MYSWAP(z,x,y)  {z=x;  x=y; y=z;}
以下程序段通过宏调用实现变量a、b内容交换,请填空。
float  a=5,b=16,c;
MYSWAP(  【15__】 ,a,b);
查看答案
c
66填空题66 / 68
以下程序用来统计文件中字符个数。请填空。
#include  "stdio.h"
main()
{ FILE  *fp;  long  num=0L;
  if((fp=fopen("fname.dat","r"))==NULL)
{ pirntf("Open error\n");  exit(0);}
  while( 【16__】 )
{ fgetc(fp); num++;}
  printf("num=%1d\n",num-1);
  fclose(fp);
}
查看答案
!feof(fp)
67填空题67 / 68
以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
#define  N  3
#define  M  3
select(int  a[N][M],int  *n)
{  int  i,j,row=1,colum=1;
   for(i=0;i<N;i++)
      for(j=0;j<M;j++)
         if(a[i][j]>a[row][colum]){row=i;colum=j;}
      *n= 【17__】;
      return 【18__】;
}
main()
{int  a[N][M]={9,11,23,6,1,15,9,17,20},max,n;
 max=select(a,&n);
 printf("max=%d,line=%d\n",max,n);
}
查看答案
  1. row
  2. a[row][colum]
68填空题68 / 68
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
int  mystrlen(char  *str)
{ int  i;
  for(i=0; 【19__】!=‘\0';i++);
  return(【20__】);
}
查看答案
  1. *(str+i)str[i]
  2. i
← 上一卷下一卷 →