问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

2004年9月全国计算机等级考试二级C++试题及答案

发布网友 发布时间:2023-04-26 15:40

我来回答

1个回答

热心网友 时间:2023-08-28 14:23

为大家收集整理了《2004年9月全国计算机等级考试二级C++试题及答案》供大家参考,希望对大家有所帮助!!!

一、选择题(1-40每题1分,41-50每题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
1.1MB等于 
A) 1000字节
B) 1024字节
C) 1000×1000字节
D) 1024×1024字节

2.与十六进制数200等值的十进制数为 
A) 256
B) 512
C) 1024
D) 2048

3.所谓"*机"是指 
A) 单片机
B) 单板机
C) 不装备任何软件的计算机
D) 只装备操作系统的计算机

4.能将高级语言编写的源程序转换成目标程序的是 
A) 链接程序
B) 解释程序
C) 编译程序
D) 我程序

5.在64位计算机中,一个字长所占的字节数为 
A) 64
B) 8
C) 4
D) 1

6.在Windows环境下,当一个应用程序窗口被最小化后,该应用程序 
A) 继续在后台运行
B) 继续在前台运行
C) 终止运行
D) 暂停运行

7.在Windows环境下,能实现窗口移动的操作是 
A) 用鼠标拖动窗口中的任何部位
B) 用鼠标拖动窗口的边框
C) 用鼠标拖动窗口的控制按钮
D) 用鼠标拖动窗口的标题栏

8.在Windows环境下,PrintScreen键的作用是 
A) 打印当前窗口的内容
B) 打印屏幕内容
C) 复制屏幕到剪贴板
D) 复制当前窗口到剪贴板

9.Internet的通信协议是 
A) TCP/IP
B) BBS
C) WWW
D) FTP

10.下列叙述中正确的是 
A) 计算机病毒只感染可执行文件
B) 计算机病毒只感染文本文件
C) 计算机病毒只能通过软件复制的方式进行传播
D) 计算机病毒可以通过网络或读写磁盘等方式进行传播

11.一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是 
A) 有零个或多个输入
B) 有零个或多个输出
C) 有穷性
D) 可行性

12.以下叙述中正确的是 
A) C语言的源程序不必通过编译就可以直接运行
B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C) C源程序经编译形成的二进制代码可以直接运行
D) C语言中的函数不可以单独进行编译

13.以下符合C语言语法的实型常量是 
A) 1.2E0.5
B) 3.14.159E
C) 5E-3
D) E15

14.以下4组用户定义标识符中,全部合法的一组是 
A) _main enclude sin
B) If -max turbo
C) txt REAL 3COM
D) int k_2 _001

15.若以下选项中的变量已正确定义,则正确的赋值语句是 
A) x1=26.8%3
B) 1+2=x2
C) x3=0x12
D) x4=1+2=3;

16.设有以下定义 
int a=0;
double b=1.25;
char c=’A’;
#define d 2
则下面语句中错误的是
A) a++;
B) b++;
C) c++;
D) d++;

17.设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 计算结果不相符的是 
A) (a+B) *h/2
B) (1/2)*(a+B) *h
C) (a+B) *h*1/2
D) h/2*(a+B)

18.有以下程序 
main(){
  int x=102,y=012;
  printf("-,-\n",x,y);
}
执行后输出结果是
A) 10,01
B) 02,12
C) 102,10
D) 02,10

19.以下4个选项中,不能看作一条语句的是 
A) {;}
B) a=0,b=0,c=0;
C) if(a>0);
D) if(b==0) m=1;n=2;

20.设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是 
A) scanf("%d",pA) ;
B) scanf("%d",A) ;
C) scanf("%d",&pA) ;
D) scanf("%d",*pA) ;

21.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是 
A) if((a>B) &&(b>C) ) k=1;
B) if((a>B) ||(b>C) ) k=1 else k=0;
C) if(a<=B) k=0;
D) if(a>B) k=1; else if(bC) k=1; else k=0;

22.有以下程序 
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回车>,程序执行后的输出结果是
A) another number
B) another number
C) another number another
D) number number number
23.有以下程序 
main(){
  int x=0,y=5,z=3;
  while(z-->0&&++x<5) y=y-1;
  printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是
A) 3,2,0
B) 3,2,-1
C) 4,3,-1
D) 5,-2,-5

24.有以下程序 
main(){
  int i,s=0;
  for(i=1;i<10;i+=2) s+=i+1;
  printf("%d\n",s);
}
程序执行后的输出结果是
A) 自然数1~9的累加和
B) 自然数1~10的累加和
C) 自然数1~9中的奇数之和
D) 自然数1~10中的偶数之和

25.有以下程序 
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);
}
程序执行后的输出结果是
A)n=5
B)n=2
C)n=3
D)n=4

26.若程序中定义了以下函数 
double myadd(double a,double B) { return (a+B) ;}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是
A)double myadd(double a,B) ;
B)double myadd(double,double);
C)double myadd(double b,double A);
D)double myadd(double x,double y);

27.有以下程序 
char fun(char x , char y){
  if(x  return y;
}
main(){
  int a=’9’,b=’8’,c=’7’;
  printf("%c\n",fun(fun(a,B) ,fun(b,C) ));
}
程序的执行结果是
A)函数调用出错
B)8
C)9
D)7

28.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是 
A)p=1;
B)*q=2;
C)q=p;
D)*p=5;

29.有以下程序 
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 if(x,z);
  printf("%d,%d,%d\n",x,y,z);
}
执行后输出结果是
A)1,2,3
B)3,1,2
C)1,3,2
D)2,3,1

30.有以下程序段 
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是
A)5
B)6
C)8
D)9

31.有以下程序 
main(){
  char a[]="abcdefg",b[10]="abcdefg";
  printf("%d %d\n",sizeof(A) ,sizeof(B));
}
执行后输出结果是
A)7 7
B)8 8
C)8 10
D)10 10

32.有以下程序 
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]);
}
其输出结果是
A)5 3 5 3
B)5 3 3 5
C)3 5 3 5
D)3 5 5 3

33.有以下程序 
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
B) 3
C) 2
D) 1

34.有以下程序 
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) );
}
执行后的输出结果是
A) 12
B) 11
C) 18
D) 16

35.有以下定义 
#include
char a[10],*b=a;
不能给数组a输入字符串的语句是
A)gets(A)
B)gets(a[0])
C)gets(&a[0]);
D)gets(B) ;

36.有以下程序 
main(){
  char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
  printf("%d\n",strlen(p[4]));
}
执行后输出结果是
A)2
B)3
C)4
D)5

37.有以下程序 
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);
}
执行后输出结果是
A)10
B)9
C)7
D)8
38.有以下程序 
#define f(x) x*x
main(){
  int i;
  i=f(4+4)/f(2+2);
  printf("%d\n",i);
}
执行后输出结果是
A)28
B)22
C)16
D)4

39.设有以下语句 
typedef struct S{ int g; char h;} T;
则下面叙述中正确的是
A)可用S定义结构体变量
B)可以用T定义结构体变量
C)S是struct类型的变量
D)T是struct S类型的变量

40.有以下程序 
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
B)2041 2043
C)2042 2044
D)2042 2043

41.有以下程序 
main(){
  unsigned char a,b;
  a=4|3;
  b=4&3;
  printf("%d %d\n",a,b);
}
执行后输出结果是
A) 7 0
B) 0 7
C) 1 1
D) 43 0

42.下面程序的功能是输出以下形式的金字塔图案是: 
*
***
*****
*******
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");
  }
}
在下划线处应填入的是
A) i
B) 2*i-1
C) 2*i+1
D) i+2

43.有以下程序 
void sort(int a[],int n){
  int i,j,t;
  for(i=0;i    for(j=i+2;j      if(a[i]}
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");
}
其输出结果是
A) 1,2,3,4,5,6,7,8,9,10,
B) 10,9,8,7,6,5,4,3,2,1,
C) 9,2,7,4,5,6,3,8,1,10,
D) 1,10,3,8,5,6,7,4,9,2,

44.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是 
A) char s[10]="abcdefg";
B) char t[]="abcdefg",*s=t;
C) char s[10];s="abcdefg";
D) char s[10];strcpy(s,"abcdefg");

45.有以下程序 
#include
main(int argc ,char *argv[]){
  int i,len=0;
  for(i=1;i  printf("5d\n",len);
}
经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
ex abcd efg h3 k44
执行后输出结果是
A) 14
B) 12
C) 8
D) 6

46.有以下程序 
void f(int a[],int i,int j){
  int t;
  if(i    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,
B) 5,2,3,4,1,
C) 1,2,3,4,5,
D) 1,2,3,4,5,

47.有以下程序 
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);
}
执行后输出结果是
A) 550 550
B) 680 680
C) 580 550
D) 580 680

48.有以下程序 
#include
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);
}
执行后的输出结果是
A) 3
B) 4
C) 5
D) 6

49.有以下程序 
#include
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);
}
执行后输出结果是
A) 1 2
B) 123 0
C) 1 23
D) 0 0

50.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节) 
#include
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) ;
}
执行后输出结果是
A) 2
B) 1
C) 4
D) 3

二、填空题(每空2分,共40分)
请将每一个空的正确答案写在括号中。
1.E-mail地址由用户名和域名两部分组成,这两部分的分隔符为。
2.计算机网络分为广域网和局域网,因特网属于。
3.从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为。
4.在Windows环境下,只要在"开始"菜单中单击选项,就可以查阅最近打开过的文档清单。
5.计算机的运算速度可以用MIPS来描述,1MIPS是指每秒执行条指令。
6.已知字符A的ACSII码值为65,以下语句的输出结果是
char ch=’B’;
printf("%c %d\n",ch,ch);
7.有以下语句段
int n1=10,n2=20;
printf("",n1.n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
8.有以下程序
main(){
  int t=1,i=5;
  for(;i>=0;i--) t*=i;
  printf("%d\n",t);
}
执行后输出结果是。
9.有以下程序
main(){
  int n=0,m=1,x=2;
  if(!n) x-=1;
  if(m) x-=2;
  if(x) x-=3;
  printf("%d\n",x);
}
执行后输出结果是。
10.有以下程序
#include
main(){
  char ch1,ch2; int n1,n2;
  ch1=getchar(); ch2=getchar();
  n1=ch1-’0’; n2=n1*10+(ch2-’0’);
  printf("%d\n",n2);
}
程序运行时输入:12回车>,执行后输出结果是。
11.有以下程序
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);
}
执行后输出的结果是。
12.函数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。实现这一计算的函数调用语句为 。
13.下面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    for(j=0;;j++){
     t=a[i][j];
     ;
     a[j][i]=t;
    }
}
14.以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
void sstrcpy(char *s,char *t){ while(*s++=);}
main(){
  char str1[100],str2[]="abcdefgh";
  sstrcpy(str1,str2);
  printf("%s\n",str1);
}
15.下列程序的运行结果是:
#include
char *ss(char *s){ return s+strlen(s)/2;}
main(){
  char *p,*str="abcdefgh";
  p=ss(str); printf("%s\n",p);
}
16.下面程序的运行结果是:
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);
}
17.以下程序中给指针p分配三个double型动态内存单元,请填空。
#include
main (){
  double *p;
  p=(double *) malloc();
  p[0]=1.5;p[1]=2.5;p[2]=3.5;
  printf("%f%f%f\n",p[0],p[1],p[2]);
}
18.以下程序的运行结果是
# include
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);
}
19.以下sum函数的功能是计算下列级数之和。
S=1+x+x2/2!+x3/3!+........+xn/n!
请给函数中的各变量正确赋初值。
double sum( double x, int n ){
  int i; double a,b,s;
  ;
  for(i=1;i<=n;i++){a=a*x; b=b*i; s=s+a/b; }
  return s;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机怎么截长图?四种方法可以尝试。 四级听力耳机学校提供吗 朵唯s2l移动数据自动开启怎么办 朵唯s2l查询真假识别 减肥晚上吃什么食物既能控制热量又能饱腹? 晚上吃哪些食物既有饱腹感又健康? 铁锅怎么样才能不生锈 机油型号为10w40冬天能用吗 10w40机油是什么季节机油 冬季可以使用什么机油 240280420什么意思_240280350420是什么 英语不规则词性变化 二百条 加翻译百度文库二就是动词变名词变形容词变副词 芝士肋排用韩语怎么写 红糖冲泡方法(红糖用开水泡) 手机qq怎样新建讨论组 大华期货交易软件好吗?有哪些特点? 种脐的结构种脐的结构是什么 诗歌的虚与实 浅析写景类诗歌里的虚与实 人生如棋落子无悔是什么意思 落子无悔在爱情中表达什么意思? 塞普拉斯芯片怎么下载程序文件 运费险菜鸟裹裹承担多少斤 发文机关标志、发文字号、签发人、正文、附件说明的区别? 腆颜tiǎnyán什么意思近义词和反义词是什么英文翻译是什么 关念的造句关念的造句是什么 念到的造句念到的造句是什么 二年级小学生自我介绍手抄报 小学二年级手抄报 详细解析燃气热水器 强排OR直排安全第一 燃气热水器直排和强排怎么区分希望有附加图片强排的风机在哪里啊 2022宁波拆迁无房户有补偿吗 宁波海曙区120万的房子拆迁能拿多少 2006年9月全国计算机等级考试二级C语言笔试试题及答案 2007年9月全国计算机等级考试三级网络技术笔试试题及答案 涉足的意思涉足的意思是什么 车载导航设定好目的地进入后屏幕出现二维码是什么原因 抚州和南昌哪个城市好 贵阳快乐家园小区周边配套怎么样? 芜湖长江市场园小区周边配套怎么样? 翻毛皮鞋子掉色怎么办翻毛皮鞋掉色了怎么办 什么是变声啊?会不会变得很难听?(我十月十五过12岁生日)怎么断定 钻头研磨机的使用方法及安全预防措施 解析钻头刃磨机的正确使用方法及清洁保养 长生劫全部拼图教程 盗墓长生印图三女鬼攻略 盗墓长生印图三孔洞怎么选 梦见狗咬腰的预兆 梦见我被狗咬在腰部的预兆 梦见被狗咬了腰的预兆 梦见狗咬我的腰好疼的预兆 梦见被狗咬到腰的预兆 梦见大黑狗咬我腰的预兆