C语言程序设计A期末模拟试题一
一、单项选择题(每小题2分,共20分)
1.C++目标文件连接而成的可执行文件的缺省扩展名为(    )。
    A. cpp      B. exe      C. obj      D. lik
2.x>0 && x<=10的相反表达式为(    )。
A. x<=0 || x>10        B. x<=0 && x>10
C. x<=0 || x<=10      D. x>0 && x>10
3.在下面的一维数组定义中,哪一个有语法错误。(  C  )
A. int a[]={1,2,3};      B. int a[10]={0};
C. int a[];              D. int a[5];
4.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加(  C )。
A. 1        B. 4        C. sizeof(double)        D. sizeof(p)
5.#include后面的文件名用双引号括起来时,寻被包含文件的方式是B  )
        A. 直接按系统设定的标准方式搜索目录
        B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录
        C. 仅仅搜索源程序所在目录
        D. 搜索当前逻辑盘上的所有目录
6.假定指针变量p定义为“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句(  A  )。
        A. delete p;    B. delete *p;    C. delete &p;    D. delete []p;
7.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(  )。
        A. px(a)      B. px[a]      C. px->a      D. px.a
8.栈具有(  )的操作特性。
        A. 先进先出      B. 先进后出      C. 进出无序      D. 进出任意
9.对于任一个类,用户所能定义的构造函数的个数至多为(    )
        A. 0      B. 1      C. 2      D. 任意个
10.下列对派生类的描述中错误的说法是:(    )。
      A. 派生类至少有一个基类
      B. 派生类可作为另一个派生类的基类
      C. 派生类除了包含它直接定义的成员外,还包含其基类的成员
      D. 派生类所继承的基类成员的访问权限保持不变
二、填空题(每题2分,共20分)
1.C++语言是在_________语言的基础上发展起来的。
2.当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。
3.假定x是一个逻辑量,则x && false的值为__________
4.元素类型为char的二维数组a[10][30]共占用____ ____字节的存储空间。
5.局部变量具有局部生存期,存放在内存的____________区中。
6.已知语句“cout<<p;”的输出是“Hello!”,则语句“cout<<*p;”输出的是__________
c语言二维数组表示方法7.对类中常量成员的初始化是通过在构造函数中给出的______________来实现的。
8.在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的________
_____
9.假定用户为类AB定义了一个构造函数“AB(int aa):a(aa){}”,则定义该类的对象时,有________种定义格式。
10.在每个成员函数中,隐含的第一个参数的参数名为________
三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。每小题6分,共24分)
1. 斐波那契数列的第1和第2个数分别为0和1 ,从第三个数开始,每个数等于其前两个数之和。求斐波那契数列中的前20个数,要求每行输出5个数。
#include<iostream.h>
void main() {
    int f,f1,f2,i;
  cout<< 斐波那契数列:\n;
  f1=0; f2=1;
  cout<<setw(6)<<f1<<setw(6)<<f2;
  for(i=3;i<=20;i++) {
      f=______(1)______;
cout<<setw(6)<<f;
if(_____(2)______) cout<<endl;
f1=f2;
f2=____(3)_______;
        }
        cout<<endl;
    }
(1)                 (2)                 (3)
    2. 对数组a[n]按升序进行的选择排序算法
        void SelectSort(int a[], ___(1)___)
        {
            int i,j,k;
            for(i=1;i<n;i++) {  //进行n-1次选择和交换
                k=i-1;
                for(j=i;j<n;j++)
                    if(a[j]<a[k]) ___(2)___;
                int x=a[i-1]; a[i-1]=a[k]; ___(3)___;
            }
        }
(1)                 (2)                  (3)
    3. 已知一个类的定义如下:
#include<iostream.h>
class AA {
    int a[10];
    int n;
public:
    void SetA(int aa[], int nn); //用数组aa初始化数据成员a,
                                //用nn初始化数据成员n

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。