计算机类二级C

2004年4月全国计算机等级考试二级C笔试试卷

69 题含答案C
共 69 题返回本类
1单选题1 / 69
1MB等于(    )
查看答案
D. 1024×1024字节
3单选题3 / 69
所谓“裸机“是指(    )
查看答案
C. 不装备任何软件的计算机
4单选题4 / 69
能将高级语言编写的源程序转换为目标程序的是(    )
查看答案
C. 编译程序
6单选题6 / 69
在Windows环境下,当一个应用程序窗口被最小化后,该应用程序(    )
查看答案
A. 继续在后台运行
7单选题7 / 69
在Windows环境下,能实现窗口移动的操作是(    )
查看答案
D. 用鼠标拖动窗口的标题栏。
8单选题8 / 69
在Windows环境下,PrintScreen键的作用是(    )
查看答案
C. 复制屏幕到剪贴板
10单选题10 / 69
下列叙述中正确的是(    )
查看答案
D. 计算机病毒可以通过网络或读写磁盘方式进行传播
11单选题11 / 69
一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是
查看答案
B. 有零个或多个输出
12单选题12 / 69
以下叙述中正确的是(    )
查看答案
B. C语言中的每条可执行语句最终都将被转换成二进制的机器指令
14单选题14 / 69
以下4组用户定义标识符中,全部合法的一组是(    )
查看答案
A. _main
enclude
sin
15单选题15 / 69
若以下选项中的变量已正确定义,则正确的赋值语句是(    )
查看答案
C. x3=0x12;
16单选题16 / 69
设有以下定义
int  a=0;
double  b=1.25;
char c=’A’;
#define  d  2
则下面语句中错误的是()
查看答案
D. d++;
17单选题17 / 69
设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相符的是(    )
查看答案
B. (1/2)*(a+b)*h
18单选题18 / 69
有以下程序
main( )
{
   int x=102,y=012;
   printf(“%2d,%2d\n”,x,y);
}  执行后输出结果是()
查看答案
C. 102,10
19单选题19 / 69
以下4个选项中,不能看作一条语句的是(    )
查看答案
D. if(b==0) m=1;n=2;
20单选题20 / 69
设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是(    )
查看答案
A. scanf(“%d”,pa);
21单选题21 / 69
以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是(    )
查看答案
A. if((a>b)&&(b>c)) k=1;
else k=0;
22单选题22 / 69
有以下程序
main( )
{  char k;  int  I;
   for(i=1;i<3;i++)
   {  scanf(“%c”,&k);
      switch(k)
      {  case ‘0’:  printf(“another\n”);
         case ‘1’:  printf(“number\n”);
      }
    }
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是(    )
查看答案
C. another
number
number
23单选题23 / 69
有以下程序
main( )
{  int x=0,y=5,z=3;
   while(z-->0&&++x<5) y=y-1;
   printf(“%d,%d,%d\n”,x,y,z);
}  程序执行后的输出结果是(    )
查看答案
B. 3,2,-1
24单选题24 / 69
有以下程序
main( )
{  int i,s=0;
   for(i=1;i<10;i+=2)  s+=i+1;
   printf(“%d\n”,s);
}      程序执行后的输出结果是(    )
查看答案
D. 自然数1~10中的偶数之和
25单选题25 / 69
有以下程序
main( )
{  int i,n=0;
   for(i=2;i<5;i++)
   {  do
      {  if(i%3)  continue;
         n++;
      } while(!i);
      n++;
   }
   printf(“n=%d\n”,n);
}  程序执行后的输出结果是(    )
查看答案
D. n=4
26单选题26 / 69
若程序中定义了以下函数
double  myadd(double a,double b)
{ return (a+b);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()
查看答案
A. double myadd(double a,b);
27单选题27 / 69
有以下程序
char fun(char x , char y)
{  if(x<y)  return x;
   return y;
}
main( )
{  int a=’9’,b=’8’,c=’7’;
   printf(“%c\n”,fun(fun(a,b),fun(b,c)));
}  程序的执行结果是(    )
查看答案
D. 7
28单选题28 / 69
设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(    )
查看答案
D. *p=5;
29单选题29 / 69
有以下程序
void f(int v , int  w)
{  int t;
   t=v;v=w;w=t;
}
main( )
{  int x=1,y=3,z=2;
   if(x>y) f(x,y);
   else if(y>z) f(y,z);
      else      f(x,z);
   printf(“%d,%d,%d\n”,x,y,z);
}  执行后输出结果是(    )
查看答案
C. 1,3,2
31单选题31 / 69
有以下程序
main( )
{  char a[]=”abcdefg”,b[10]=”abcdefg”;
   printf(“%d  %d\n”,sizeof(a),sizeof(b));
}  执行后输出结果是(    )
查看答案
C. 8 10
32单选题32 / 69
有以下程序
void swap1(int c[])
{ int t;
  t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{  int t;
   t=c0;c0=c1;c1=t;
}
main( )
{ int a[2]={3,5},b[2]={3,5};
  swap1(a);  swap2(b[0],b[1]);
  printf(“%d  %d  %d  %d\n”,a[0],a[1],b[0],b[1]);
}  其输出结果是(    )
查看答案
B. 5 3 3 5
33单选题33 / 69
有以下程序
void sum(int *a)
{ a[0]=a[1];}
main( )
{  int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
   for(i=2;i>=0;i--)  sum(&aa[i]);
   printf(“%d\n”,aa[0]);
}    执行后的输出结果是(    )
查看答案
A. 4
34单选题34 / 69
有以下程序
int f(int b[][4])
{ int i,j,s=0;
  for(j=0;j<4;j++)
  {  i=j;
     if(i>2)  i=3-j;
     s+=b[i][j];
  }
  return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
  printf(“%d\n”,f(a));
}  执行后的输出结果是(    )
查看答案
D. 16
35单选题35 / 69
有以下定义
#include <stdio.h>
char a[10],*b=a;
不能给数组a输入字符串的语句是(    )
查看答案
B. gets(a[0]);
36单选题36 / 69
有以下程序
main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
  printf(“%d\n”,strlen(p[4]));
}  执行后输出结果是(    )
查看答案
A. 2
37单选题37 / 69
有以下程序
int a=2;
int f(int *a)
{return (*a)++;}
main( )
{  int s=0;
   { int a=5;
     s+=f(&a);
   }
   s+=f(&a);
   printf(“%d\n”,s);
}  执行后输出结果是(    )
查看答案
C. 7
38单选题38 / 69
有以下程序
#define  f(x)    x*x
main( )
{  int i;
   i=f(4+4)/f(2+2);
   printf(“%d\n”,i);
}  执行后输出结果是(    )
查看答案
A. 28
39单选题39 / 69
设有以下语句
typedef struct  S
{  int g;  char  h;}T;
则下面叙述中正确的是(    )
查看答案
B. 可以用T定义结构体变量
40单选题40 / 69
有以下程序
struc STU{
          char name[10];
          int num;
         };
void f1(struct STU c)
{  struct STU  b={“LiSiGuo”,2042};
   c=b;
}
void f2(struct STU *c)
{  struct STU  b={“SunDan”,2044};
   *c=b;
}
main( )
{  struct  STU  a={“YangSan”,2041},b={“WangYin”,2043};
   f1(a);f2(&b);
   printf(“%d %d\n”,a.num,b.num);
}  执行后的输出结果是(    )
查看答案
A. 2041 2044
41单选题41 / 69
有以下程序
main( )
{  unsigned char a,b;
   a=4|3;
   b=4&3;
   printf(“%d %d\n”,a,b);
}  执行后输出结果是(    )
查看答案
A. 7  0
42单选题42 / 69
下面程序的功能是输出以下形式的金字塔图案是:
*
***
*****
*******
main( )
{  int  i,j;
   for(i=1;i<=4;i++)
   { for(j=1;j<=4-i;j++)    printf(“ “);
     for(j=1;j<=_____;j++)  printf(“*”);
     printf(“\n”);
   }
}  在下划线处应填入的是(    )
查看答案
B. 2*i-1
43单选题43 / 69
有以下程序
void sort(int a[],int n)
{  int i,j,t;
   for(i=0;i<n-1;i+=2)
     for(j=i+2;j<n;j+=2)
       if(a[i]<a[j])  {  t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
  sort(aa,10);
  for(i=0;i<10;i++)    printf(“%d”,aa[i]);
  printf(“\n”);
}  其输出结果是(    )
查看答案
C. 9,2,7,4,5,6,3,8,1,10,
44单选题44 / 69
以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(    )
查看答案
C. char s[10];s=”abcdefg”;
45单选题45 / 69
有以下程序
#include <string.h>
main(int argc ,char *argv[ ])
{  int i,len=0;
   for(i=1;i<argc;i+=2)  len+=strlen(argv[i]);
   printf(“5d\n”,len);
}  经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
ex  abcd  efg  h3  k44
执行后输出结果是()
查看答案
D. 6
46单选题46 / 69
有以下程序
void f(int a[],int i,int j)
{  int  t;
   if(i<j)
   {  t=a[i]; a[i]=a[j];a[j]=t;
      f(a,i+1,j-1);
   }
}
main( )
{  int i,aa[5]={1,2,3,4,5};
   f(aa,0,4);
   for(i=0;i<5;i++)  printf(“%d,”,aa[i]);  printf(“\n”);
}  执行后输出结果是(    )
查看答案
A. 5,4,3,2,1,
47单选题47 / 69
有以下程序
struct STU
{  char name[10];
   int num;
   int Score;
};
main( )
{  struct STU s[5]={{“YangSan”,20041,703},
                    {“LiSiGuo”,20042,580},
                    {“wangYin”,20043,680},
                    {“SunDan”,20044,550},
                    {“Penghua”,20045,537}},*p[5],*t;
   int i,j;
   for(i=0;i<5;i++)  p[i]=&s[i];
   for(i=0;i<4;i++)
      for(j=i+1;j<5;j++)
         if(p[i]->Score>p[j]->Score)
            { t=p[i];p[i]=p[j];p[j]=t;}
   printf(“5d  %d\n”,s[1].Score,p[1]->Score);
}  执行后输出结果是(    )
查看答案
C. 580  550
48单选题48 / 69
有以下程序
#include <stdlib.h>
struct NODE{
             int num;
             struct NODE *next;
            };
main( )
{  struct NODE *p,*q,*r;
   int sum=0;
   p=(struct NODE *)malloc(sizeof(struct NODE));
   q=(struct NODE *)malloc(sizeof(struct NODE));
   r=(struct NODE *)malloc(sizeof(struct NODE));
   p->num=1;q->num=2;r->num=3;
   p->next=q;q->next=r;r->next=NULL;
   sum+=q->next->num;sum+=p->num;
   printf(“%d\n”,sum);
}  执行后的输出结果是
查看答案
B. 4
49单选题49 / 69
有以下程序
#include <stdio.h>
main( )
{  FILE *fp;  int i,k=0,n=0;
   fp=fopen(“d1.dat”,”w”);
   for(i=1;i<4;i++)  fprintf(fp,”%d”,i);
   fclose(fp);
   fp=fopen(“d1.dat”,”r”);
   fscanf(fp,”%d%d”,&k,&n);  printf(“%d %d\n”,k,n);
   fclose(fp);
}  执行后输出结果是(    )
查看答案
B. 123  0
50单选题50 / 69
有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);
句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)
#include <stdio.h>
main( )
{ FILE *fp;  int i,a[4]={1,2,3,4},b;
  fp=fopen("data.dat","wb");
  for(i=0;i<4;i++)  fwrite(&a[i],sizeof(int),1,fp);
  fclose(fp);
  fp=fopen("data.dat","rb");
  fseek(fp,-2L*sizeof(int).SEEK_END);
  fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/
  fclose(fp);
  printf("%d\n",b);
}  执行后输出结果是(    )
查看答案
D. 3
54填空题54 / 69
在Windows环境下,只要在“开始”菜单中单击【4__】选项,就可以查最近打开过的文档清单。
查看答案
文档
55填空题55 / 69
计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行【5__】条指令。
查看答案
百万条或一百万条或1000000条
56填空题56 / 69
已知字符A的ACSII码值为65,以下语句的输出结果是【6__】
char ch=’B’;
printf(“%c %d\n”,ch,ch);
查看答案
B 66
57填空题57 / 69
有以下语句段
int  n1=10,n2=20;
printf(“【7__】”,n1.n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
查看答案
n1=%d\nn2=%d
58填空题58 / 69
有以下程序
main( )
{ int t=1,i=5;
  for(;i>=0;i--)  t*=i;
  printf(“%d\n”,t);
}  执行后输出结果是【8__】。
查看答案
0
59填空题59 / 69
有以下程序
main( )
{  int n=0,m=1,x=2;
   if(!n)  x-=1;
   if(m)  x-=2;
   if(x)  x-=3;
   printf(“%d\n”,x);
}    执行后输出结果是【9__】。
查看答案
–4
60填空题60 / 69
有以下程序
#include <stdio.h>
main( )
{  char ch1,ch2;  int n1,n2;
   ch1=getchar();  ch2=getchar();
   n1=ch1-‘0’;  n2=n1*10+(ch2-‘0’);
   printf(“%d\n”,n2);
}  程序运行时输入:12<回车>,执行后输出结果是【10__】。
查看答案
12
61填空题61 / 69
有以下程序
void f( int y,int *x)
{y=y+*x;  *x=*x+y;}
main( )
{  int x=2,y=4;
   f(y,&x);
   printf(“%d  %d\n”,x,y);
}        执行后输出的结果是【11__】。
查看答案
8 4
62填空题62 / 69
函数fun的功能是计算xn
double fun(double x,int n)
{  int i; double y=1;
   for(i=1;i<=n;i++)  y=y*x;
   return y;
}
主函数中已经正确定义m,a,b变量并赋值,并调用fun函数计算:
m=a4+b4-(a+b)3。实现这一计算的函数调用语句为【12__】。
查看答案
fun(a,4)+fun(b,4)-fun(a+b,3);
63填空题63 / 69
下面rotate函数的功能是:将n行n列的矩阵A转置为A’,例如:
         1  2  3  4                    1  5  9  13
         5  6  7  8                    2  6  10 14
当  A=  9  10 11 12          则  A’=  3  7  11 15
         13 14 15 16                   4  8  12 16
请填空
#define  N    4
void  rotate(int a[][N])
{  int i,j,t;
   for(i=0;i<N;i++)
   for(j=0;【13__】;j++)
     {  t=a[i][j];
        【14__】;
        a[j][i]=t;
     }
}
查看答案
  1. j<=i
  2. a[i][j]=a[j][i]
64填空题64 / 69
以下sstrcpy(    )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
void sstrcpy(char *s,char *t)
{ while(*s++=【15__】);}
main( )
{  char str1[100],str2[]=”abcdefgh”;
   sstrcpy(str1,str2);
   printf(“%s\n”,str1);
}
查看答案
*t++
65填空题65 / 69
下列程序的运行结果是:【16__】
#include <string.h>
char *ss(char *s)
{ return s+strlen(s)/2;}
main( )
{  char *p,*str=”abcdefgh”;
   p=ss(str);  printf(“%s\n”,p);
}
查看答案
efgh
66填空题66 / 69
下面程序的运行结果是:【17__】
int  f( int a[], int  n)
{ if(n>1)  return a[0]+f(&a[1],n-1);
  else    return a[0];
}
main ( )
{  int aa[3]={1,2,3},s;
   s=f(&aa[0],3);  printf(“%d\n”,s);
}
查看答案
6
67填空题67 / 69
以下程序中给指针p分配三个double型动态内存单元,请填空。
# include <stdlib.h>
main ( )
{  double *p;
   p=(double *) malloc(【18__】);
   p[0]=1.5;p[1]=2.5;p[2]=3.5;
   printf(“%f%f%f\n”,p[0],p[1],p[2]);
}
查看答案
3*sizeof(double)
68填空题68 / 69
以下程序的运行结果是【19__】
# include <string.h>
typedef struct student{
                       char name[10];
                       long sno;
                       float score;
                      }STU;
main( )
{  STU  a={“zhangsan”,2001,95},b={“Shangxian”,2002,90},
        c={ "Anhua”,2003,95},d,*p=&d;
   d=a;
   if(strcmp(a.name,b.name)>0)  d=b;
   if(strcmp(c.name,d.name)>0)  d=c;
   printf(“%ld%s\n”,d.sno,p->name);
}
查看答案
2002Shangxian
69填空题69 / 69
以下sum函数的功能是计算下列级数之和。
S=1+x+x2/2!+x3/3!+........+xn/n!
请给函数中的各变量正确赋初值。
double  sum(  double  x, int  n )
{  int i;  double  a,b,s;
【20__】
for( i=1;i<=n;i++)
{  a=a*x;  b=b*i;    s=s+a/b; }
   return  s;
}
查看答案
a=1.0;b=1.0;s=1.0;
← 上一卷下一卷 →