2004年4月全国计算机等级考试二级C++笔试试题及答案
来源:优易学  2010-1-14 16:34:20   【优易学:中国教育考试门户网】   资料下载   IT书店

 

  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;
}

上一页  [1] [2] [3] 

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训