试卷详情
-
二级C++笔试-391
-
[单项选择]下列程序是用来判断数组中特定元素的位置所在,则输出结果为
#include<conio.h>
#include<iostream.h>
int fun(int *s,int t,int*k)
int i;
*k=0;
for(i=0;i if(s[*k]<s[i]) *k=i
return s[*k];
void main( )
int a[10]=876,675,896,101,301,401,980,431,451,777,k;
fun(a,10,&k);
cout << k <<’,’ << a[k];
A. 7,431
B. 6
C. 980
D. 6,980
-
[填空题]假设fin是一个文件流对象,则关闭文件的语句是 【15】 。
-
[单项选择]对建立良好的程序设计风格,下面描述正确的是
A. 程序应简单、清晰、可读性好
B. 符号名的命名只要符合语法
C. 充分考虑程序的执行效率
D. 程序的注释可有可无
-
[单项选择]C++语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言
A. ASP
B. C
C. VB
D. Java
-
[填空题]请定义一个函数名为A,返回值为int,没有参数的纯虚函数的定义是 【13】 。
-
[填空题]以下程序的输出结果是 【8】 。
#include<iostream.h>
class object
private:
int val;
public:
object( );
object(int i);
~object( );;
object::object( )
val=0;
cout<<"Default constructor for object"<<endl;
object::object(int i)
val=i;
cout<<"Constructor for object"<<val<<endl;
object::~object( )
cout<<"Destructor for object"<<val<<endl;
class container private:
object one;
object two;
int data;
public:
container( );
container(int i,int j,int k);
~container( );;
container::container( )
data=0;
cout<<"Default constructor for container"<<endl;
container::container(int i,int j,int k):two(i),one(j)
data=k;
cout<<"Constructor for container"<<endl;
container::~container( )
cout<<"Destructor for container"<<endl;
-
[单项选择]以下程序的运行结果是
#include<iostream.h>
void sub(int x,int y,int *z)
*z=y-x;
void main( )
int a,b,c;
sub(10,5,&
A. ;
B. ;
C. ;
-
[填空题]C++语言中关键字运算符有new,delete和 【6】 。
-
[单项选择]下列叙述中正确的是
A. 线性表是线性结构
B. 栈与队列是非线性结构
C. 线性链表是非线性结构
D. 二叉树是线性结构
-
[单项选择]下列不属于结构化分析的常用工具的是
A. 数据流图
B. 数据字典
C. 判定树
D. PAD图
-
[填空题]软件开发环境是全面支持软件开发全过程的 【4】 集合。
-
[单项选择]下列程序的运行结果是
#include<iostream.h>
class Location
private:
int X.Y;
public:
void init(int=0,int=0);
void valueX(int val)X=val;
int valueX( ) return X;
void valueY(int val)Y=val;
int valueY( )return Y;;
void Location::init(int init X,int init Y)
X=initX;
Y=initY;
void main( )
Location A,B;
A.init( );
A.valueX(5);
cout<<A.valueX( )<<endl<<A.valueY( )<<endl;
B.init(6,2);
B.valueY(4);
cout<<B.valueX( )<<endl<<B.valueY( )<<endl;
A. 5
B. 0
C. 5
D. 0
-
[单项选择]有以下程序
#include<iostream.h>
float fun(int x,int y)
return(x+y);
void main( )
int a=2,b=5,c=8;
cout<<fun((int)fun(a+c,b) ,a-c) ;
程序运行后的输出结果是
A. 编译出错
B. 9
C. 21
D. 9.0
-
[单项选择]若执行下面的程序时,从键盘上输入5和2,则输出结果是
#include<iostream.h>
void main( )
int a,b,k;
cin>> a >> b;
k=a;
if(a<b)
k=a%b;
else
k=b%a;
cout<< k <<endl;
A. 5
B. 3
C. 2
D. 0
-
[单项选择]下列程序的输出结果是
#include<iostream.h>
int b=2;
int func(int *
A. ;
-
[填空题]在最坏情况下,堆排序需要比较的次数为 【2】 。
-
[单项选择]关于虚函数下面说的正确的是
A. 若在重定义虚函数时使用了virtual,则该重定义函数还是虚函数
B. 虚函数不能声明为友元
C. 子类必须重定义父类的虚函数
D. 虚函数不能是static的
-
[单项选择]数据库的故障恢复一般是由
A. 数据流图完成的
B. 数据字典完成的
C. DBA完成的
D. PAD图完成的
-
[单项选择]若有说明语句
char a[ ]="It is mine";
char * p="It is mine";
则以下不正确的叙述是
A. a+1表示的是字符t的地址
B. p指向另外的字符串时,字符串的长度不受限制
C. p变量中存放的地址值可以改变
D. a中只能存放10个字符
-
[填空题]将以下程序写成三目运算表达式是 【7】 。
if(a>B) max=a;
else max=b;
-
[单项选择]已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是
A. 堆排序
B. 直接插入排序
C. 快速排序
D. 直接选择排序
-
[单项选择]下列说法中,不属于数据模型所描述的内容的是
A. 数据结构
B. 数据操作
C. 数据查询
D. 数据约束
-
[单项选择]执行下列程序段,结果是
#include<iostream.h>
void main( )
int x=40;
char y='C';
int n;
n=(x&0xff)&&(y>'B');
cout<<n;
A. 0
B. 1
C. 2
D. 3
-
[单项选择]有如下程序:
#include<iostream.h>
long fib(int n)
if(n>2)return(fib(n-1)+fib(n-2));
else return(2);
void main( )
cout<<fib(3);
该程序的输出结果是
A. 2
B. 4
C. 6
D. 8
-
[单项选择]在软件生产过程中,需求信息的给出是
A. 程序员
B. 项目管理者
C. 软件分析设计人员
D. 软件用户
-
[单项选择]以下程序的输出结果是
#include<iostream.h>
void main( )
int i,j,x=0;
for(i=0;i<2;i++)
x++;
for(j=0;j<3;j++)
if(j%2)continue;
x++;
x++;
cout<< "x="<<x;
A. x=4
B. x=8
C. x=6
D. x=12
-
[填空题]冒泡排序算法在最好的情况下的元素交换次数为 【1】 。
-
[单项选择]关于this指针的说明不正确的是
A. 不能在程序中修改this指针
B. this指针可以给其他指针赋值,但不能修改this指针
C. 静态成员函数中没有this指针
D. this指针可以被赋值
-
[单项选择]有以下程序
#include<string.h>
#include<iostream.h>
void main( )
char*p="abcde/0fghjik/0";
cout<<strlen(p);
程序运行后的输出结果是
A. 12
B. 15
C. 6
D. 5
-
[单项选择]面向对象程序设计思想的主要特征中不包括
A. 继承性
B. 功能分解,逐步求精
C. 封装性和信息隐藏
D. 多态性
-
[单项选择]非空的循环单链表head的尾结点(由p所指向),满足
A. p->next==NULL
B. p==NULL
C. p->next=head
D. p=head
-
[单项选择]有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)
int a[10]=0,1,2,3,4,5,6,7,8,9,*p=a;
A. a[p-a]
B. *(&a[i])
C. p[i]
D. *(*(a+i))
-
[单项选择]有如下程序
#include<iostream.h>
#define N2
#define M N+1
#define NUM 2*M+1
void main( )
int i;
for(i=1,i<= NUM;i++)
cout<<i;
该程序中的for循环执行的次数是
A. 5
B. 6
C. 7
D. 8
-
[填空题]表达式x.operator+(y.operator++(0))还可以写成 【14】 。
-
[单项选择]所有在函数中定义的变量,连同形式参数,都属于
A. 全局变量
B. 局部变量
C. 静态变量
D. 寄存器变量
-
[填空题]关系数据库的关系演算语言是以 【5】 为基础的DML语言。
-
[填空题]若串s="MathTypes",则其子串的数目是 【3】 。
-
[单项选择]如果表达式++x/y中,++是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为
A. (operator++(x)).operator/(y)
B. (operator++(0)).operator/(y)
C. operator/((operator++(x,0)),y)
D. operator/((operator++(0)),y)
-
[单项选择]能正确表示逻辑关系:“a≥10或a≤0”的C++语言表达式是
A. a>=10 or a<=0
B. a>=0
C. a>=10 && a<=0
D. a>=10
-
[填空题]下面程序的功能是将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。
#include<iostream.h>
#include<string.h>
void main( )
char a[ ]="clanguage",t;
int i,j,k;
k=strlen(a) ;
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k; 【9】 )
if( 【10】 )
t=a[i];a[i]=a[j];a[j]=t;
cout<<a;
cout<<endl;
-
[单项选择]在C++语言中,封装是借助于什么达到的
A. 结构
B. 类
C. 数组
D. 函数
-
[填空题]静态成员函数可以直接访问类的 【11】 成员,不能直接访问类的 【12】 成员。
-
[单项选择]设变量a是 int 型,f是 double 型,i是 float 型,则表达式10+'a'+i*f值的数据类型
A. int
B. float
C. double
D. 不确定
-
[单项选择]要想使23.78965421的输出为23.7887应用的语句是
A. cout<<23.78965421;
B. cout<<fixed<<23.78965421;
C. cout<<23.78965421-0.001;
D. cout<<fixed<<23.78965421-0.001;
-
[单项选择]下列工具中为需求分析常用工具的是
A. PAD
B. PFD
C. N-S
D. DFD
-
[单项选择]NULL是指
A. 0
B. 空格
C. 未知的值或无任何值
D. 空字符串
-
[单项选择]下面程序的结果是
#include<iostream.h>
class A
public:
A( ) cout<<"construtA"<<endl;
virtual~A( ) cout<<"destructA"<<endl;;
class B:public A
;
class C://public A
;
class D://public B,public C
;
void main( )
D d;
A. constructA
B. constructA
C. constructA
D. constructA
-
[单项选择]在位运算中,操作数每左移一位,其结果相当于
A. 操作数乘以2
B. 操作数除以2
C. 操作数除以4
D. 操作数乘以4