您现在的位置:无忧考吧>> 试题中心>>正文内容

2011年9月全国计算机二级考试C++程序设计笔试题

2011年9月全国计算机二级考试C++程序设计笔试题

一、选择题
1. 下列叙述中正确的是    (    )。    D
A.算法就是程序
B.设计算法是只需要考虑数据结构的设计
C.设计算法时只需要考虑结果的可靠性
D.以上三种说法都不对
2. 下列关于线性链表的叙述正确的是    (    )。    C
A.各数据节点的存储空间可以不连续,但它们的存储顺序和逻辑顺序必须一致
B.各数据节点的存储顺序和逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行插入和删除时,不需要移动表中的元素
D.以上三种说法都不对
3. 下列关于二叉树的叙述正确的是    (    )。    B
A.叶子结点总是比度为2的结点少一个
B.叶子结点总是比度为2的结点多一个
C.叶子结点是度为2的结点的两倍
D.度为2的结点数是度为1的结点数的两倍
4. 软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的
   是(    )。    A
 A.学生成绩管理系统      B.C语言编译程序
 C.UNIX操作系统       D.数据库管理系统
5. 某系统总体结构图如下图所示:

 该系统总体结构图的深度是(    )。    C
 A.7    B.6    C.3    D.2
6. 程序调试的任务是(    )。    D
 A.设计测试用例       B.验证程序的正确性
 C.发现程序中的错误      D.诊断和改正程序中的错误
7. 下列关于数据库设计的叙述中,正确的是(    )。    C
 A.在需求分析阶段建立数据字典   B.在概念设计阶段建立数据字典
 C.在逻辑设计阶段建立数据字典   D.在物理设计阶段建立数据字典
8. 数据库系统的三级模式不包括(    )。    D
 A.概念模式    B.内模式  C.外模式   D.数据模式
9. 有三个关系R、S和T如下:
  
 则由关系R和S得到关系T的操作是(    )。    B
 A.自然连接    B.差   C.交    D.并
10. 下列选项中属于面向对象设计方法主要特征的是(    )。    A
 A.继承     B.自顶向下  C.模块化   D.逐步求精

11. 以下叙述中错误的是(    )。    C
 A.C语言编写的函数源程序,其文件名后缀可以是C
 B.C语言编写的函数都可以作为一个独立的源程序文件
 C.C语言编写的每个函数都可以进行独立的编译并执行
 D.一个C语言程序只能有一个主函数
12. 以下选项中关于程序模块化得叙述错误的是(    )。    C
A.把程序分成若干相对独立的模块可便于编码和调试
B.把程序分成若干相对独立,功能单一的模块,可便于重复使用这些模块
C.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
13. 以下选项中关于C语言常量的叙述错误的是:(    )。    D
A.所谓常量,是指在程序运行过程中,其值不能被改变的量 
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量
D.经常被使用的变量可定义成常量
14. 若有定义语句:int a=10;double b=3.14;,则表达式‘A’+a+b值得类型是(    )。    C
 A.char   B.int   C.double    D.float
15. 如有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y,则z的值为
(    )。   B 
A.1.9
B.1
C.2
D.2.4
16. 若有定义:int a,b;,通过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给变量a,5付给变量b的输入数据是(    )。    C
 A.3  5 B.3,5 C.3;5 D.35
17. 若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为(    )。    B
A. 0和1  B.0和20   C.10和1 D. 10和20
18. 有以下程序
#include <stdio.h>
Main()
{ int a=1,b=0;
 If(--a)  b++;
 Else  if(a==0) b+=2;
Elseb+=3;
Printf(“%d\n”,b);
}
程序运行后的输出结果是(    )。    C
A.0    B.1
C.2          D.3
19. 下列条件语句中输出结果与其他语句不同的是(    )。    D
A.if(a) printf(“%d\n”,x);  else printf(“%d\n”,y);
B.if(a==0) printf(“%d\n”,y);  else printf(“%d\n”,x);  
C.if(a!=0) printf(“%d\n”,x);  else printf(“%d\n”,y);  
D.if(a==0) printf(“%d\n”,x);  else printf(“%d\n”,y); 
20. 有以下程序:
#include <stdio.h>
Main()
{  int a=7;
 While(a--);
Printf(“%d\n”,a);
}
程序运行后的输出结果是(    )。    A
 A.- 1
 B.0
 C.1
 D.7
21. 以下不能输出字符A的语句是(    )。    B
   (注:字符A的ASCII码值为65,字符a的ASCII码值为97)
 A.printf(“%c\n”,’A’-32);    B.printf(“%d\n”,’A’);
C.printf(“%c\n”,65);
D.printf(“%c\n”,’B’-1);
22. 有以下程序(注:字符a的ASCII码值为97)
#include <stdio.h>
Main()
{ char *s={“abc”};
 Do
{printf(“%d”,*s%10);++s;}
While(*s);
}
程序运行后的输出结果是(    )。    B
 A.abc    B.789    C.7890    D.979898
23. 若有定义语句:double  a,*p&a;以下叙述中错误的是(    )。    A
 A.定义语句中的*号是一个地址运算符  
B.定义语句中的*号只是一个说明符 
C.定义语句中的p只能存放double类型变量的地址  
D.定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p
24. 有以下程序:
     #include <stdio.h>
     Double f(double x);
     Main()
    {    double a=0; int I;
     For(i=0;i<30;i+=10) a+=f((double)i);
     Printf(“%5.0f\n”,a);
    }
    Double f(double x)
    { return x*x+1;}
程序运行后的输出结果是(    )。    A
 A.503       B.401   
C.500       D.1404
25. 若定义语句:int year=2009,*p=&year;,以下不能使变量year中的值增至2010的语句是(    )。    D
 A.*p+=1;    B.(*p)++;    C.++(*p);   D.*p++;
26. 以下定义数组的语句中错误的是(    )。    C
A.int num[]={1,2,3,4,5,6};
B.int num[][3]={{1,2},3,4,5,6};
C.int num[2][4]={{1,2},{3,4},{5,6}};
D.int num[][4]={1,2,3,4,5,6};
27. 有以下程序
 #include <stdio.h>
Void fun(int *p)
{printf(“%d\n”,p[5]);}
Main()
{int a[10]={1,2,3,4,5,6,7,8,9,10};
 Fun(&a[3]);
}
 程序运行后的输出结果是(    )。    D
 A.5      B.6
 C.8      D.9
28. 有以下程序
#include<stdio.h>
#define   N  4
Void  fun(int a[][N],int b[])
{ int i;
 For(i=0;i<N;i++) b[j]=a[i]][j]-a[i][N,1-i];
}
Main()
{ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;
Fun(x,y);
For(i=0;i<N;i++) printf(“%d”,y[i]);  printf(“\n”);
程序运行后的输出结果是(    )。    B
 A.-12,-3,0,0,
 B.-3,-1,1,3,
 C.,0,1,2,3,
 D.-3,-3,-3,-3,
29. 有以下函数
Int fun(char *x,char *y)
( int n=0;
 While((*x=*y)&&*x!=’\0’){x++;y++;n++;}
 Return n;
}
函数的功能是(    )。    B
 A.查找x和y所指字符串中是否有‘\0‘   
B.统计x和y所指字符串中最前面连续相同的字符个数    
C.将y所指字符串赋给x所值存储空间    
D.统计x和y所指字符串中相同的字符个数
30. 若有定义语句:char *s1=”OK”;*s2=”ok”;,以下选项中,能够输出“OK”的语句是(    )。    D
 A.if(stremp(s1,s2)==0)   puts(s1);    
B.if(stremp(s1,s2)!=0)   puts(s2);
C.if(stremp(s1,s2)==1)   puts(s1);
D.if(stremp(s1,s2)!=0)   puts(s1);
31. 以下程序的主函数中调用了在其前面定义的fun函数
#include<stdio.h>

Main()
{double a[15],k;
K=fun(a);

}
则以下选项中错误的fun函数首部是(    )。    D
 A.double  fun(double  a[15])
 B.double  fun(double  *a)
 C.double  fun(double  a[])
 D.double  fun(double  a)
32. 有以下程序:
#include<stdio.h>
#include<string.h>
Main()
{ char a[5][10]={“china”,”beijing”,”you”,”tiananmen”,”welcome”};
Int I,j; char t[10];
For(i=0;i<4;i++)
  For(j=i+1;j<5;j++)
   If(stremp(a[i],a[j])>0)
   { strepy(t,a[i]);  strepy(a[i],a[j]);  strepy(a[i],t);}
 Puts(a[3]);
}
程序运行后的输出结果是(    )。    C
 A.beijing
 B.china
 C.welcome
 D.tiananmen
33. 有以下程序:
#include<stdio.h>
Int f(int m)
{ static  int n=0;
 N+=m;
 Return n;
}
Main()
{ int n=0;
 Printf(“%d,”,f(++n));
Printf(“%d\n”,f(n++));
 程序运行后的输出结果是(    )。    A
 A.1,2 B.1,1   C) 2,3    D) 3,3
34. 有以下程序
#include<stdio.h>
Main()
{ char ch[3][5]={“AAAA”,”BBB”,”CC”}
Printf(“%s\n”,ch[1]);
}
程序运行后的输出的结果是(    )。D
 A. AAAA
 B.CC
 C.BBBCC
 D.BBB
35. 有以下程序
#include<stdio.h>
#include<string.h>
Void fun(char *u,int n)
{ char x,*y1,*y2;
Y1=u;y2=u+n-1;
 While(y1<y2) {s=*y1;*y1=*y2;*y2=s;p1++;p2--;}
}
Main()
{ char a[]=”1,2,3,4,5,6”;
 Fun(a,strem(a));puts(a);
}
程序运行后的输出结果是(    )。    A
 A.654321
 B.115611
 C.153525
 D.123456
36. 有以下程序
#include<stdio.h>
#include<string.h>
typedef  struct{char name[];char sex;int score[2]}STU;
STU  f(STU i)
{STU i={“Zhao”,”m”,85,90};
 Int I;
Strcpy(a name,b name);
A sex=b sex;
For(i=0;i<2;i++) a score[i]=b score[i];
Return a;
}
Main()
STU c={“Qian”,”f”,95,92},d;
D=f(c);
Printf(“%s,%c,%d,%d,”,d.name,d.sex,d.score[0],d.score[1]);
Printf(“%s,%c,%d,%d\n”,c.name,c.sex,c.score[0],c.score[1]);
}
程序运行后的输出结果是(    )。    A
A. zhao,m,85,90,Qian,f,95,92
B. zhao,m,85,90,zhao,m,85,90
C. Qian,f,95,92,Qian,f,95,92
D. Qian,f,95,92,zhao,m,85,90
37.在以下程序
#include<stdio.h>
Main()
{struct node{int n; struct node *next;}*p;
 Struct node x[3]={{2,x+1},{4,x+2},{6,NULL}};
P=x;
Printf(“%d,”,p>a);
Printf(“%d\n”,p>next>a);
程序运行后的输出结果是(    )。    B
A.2,3    B.2,4    C.3,4    D.4,6
38.有以下程序
#include<stdio.h>
Main()
{ int a=2,b;
B=a<<2; printf(“%d\n”,b);
}
程序运行后的输出结果是(    )。    D
A.2    B.4   C.6   D.8
39.以下选项中叙述错误的是(    )。    A
A.C程序函数中定义的赋有初始值的静态变量,每调用一次函数,赋一次初值
B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内
C.C程序函数中定义的自动变量,系统不能自动赋确定的初值
D.C程序函数的形参不可以说明为static型变量
40.有以下程序
#include<stdio.h>
Main()
{FILE  *fp;
Int  k,n,I,a[6]={1,2,3,4,5,6};
Fp=fopen(“d2.dat”,”w”);
For(i=0;i<6;i++) fprintf(fp,”%d\n”,a[i]);
Fclose(fp);
Fp=fopen(“d2.dat”,”r”);
For(i=0;i<3;i++)  fscanf(fp,”%d%d”,&k,&n);
Fclose(fp);
Printf(“%d,%d\n”,k,n);
}
程序运行后的输出结果是(    )。    C
A.1,2   B.3,4   C.5,6    D.123,456


作者: 来源: 发布时间:2013年12月19日
版权所有2001-2017 南京易考无忧科技有限公司
Copyright© 2001-2017 wyk8.com All rights
苏ICP备08005624号