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. 2.
C++语言是在_________语言的基础上发展起来的。
当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才
能继续输入下一个数据。 3. 4. 5. 6. 7. 8.
假定x是一个逻辑量,则x && false的值为__________。
元素类型为char的二维数组a[10][30]共占用____ ____字节的存储空间。 局部变量具有局部生存期,存放在内存的______栈______区中。
已知语句“cout<
_____________。 9.
假定用户为类AB定义了一个构造函数“AB(int aa):a(aa){}”,则定义该类的对象时,
有________种定义格式。
10. 在每个成员函数中,隐含的第一个参数的参数名为________。
三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。每小题6分,共24分)
1. 斐波那契数列的第1和第2个数分别为0和1 ,从第三个数开始,每个数等于其前两个数之和。求斐波那契数列中的前20个数,要求每行输出5个数。 #include
cout<<” 斐波那契数列:\\n”; f1=0; f2=1;
cout< if(_____(2)______) cout< f2=____(3)_______; } cout< (1) (2) (3) 2. 对数组a[n]按升序进行的选择排序算法 void SelectSort(int a[], ___(1)___) { int i,j,k; for(i=1;i for(j=i;j if(a[j] int x=a[i-1]; a[i-1]=a[k]; ___(3)___; } } (1) (2) (3) 3. 已知一个类的定义如下: #include void SetA(int aa[], int nn); //用数组aa初始化数据成员a, //用nn初始化数据成员n int MaxA(); //从数组a中前n个元素中查找最大值 void SortA(); //采用选择排序的方法对数组a中前n个元素 //进行从小到大排序 void InsertA();//采用插入排序的方法对数组a中前n个元素进行从小到大排序 void PrintA(); //依次输出数组a中的前n个元素 }; 该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。 int ____(1)_____ { int x=a[0]; for(int i=1; i if(a[i]>x) ___(2)___; ___(3)___; } (1) (2) (3) 4.class A { int a; public: A() {a=0;} ___(1)___{} //定义构造函数,用参数aa初始化数据成员a }; main() { ___(2)___; //定义类A的指针对象p ___(3)__; //用p指向动态对象并初始化为整数5 } (1) (2) (3) 四、理解问答题(写出前两小题的程序运行结果和指出后两小题的程序(或函数)所实现的功能。每小题6分,共24分) 1. #include int a[8]={25,48,32,85,64,18,48,29}; int max,min; max=min=a[0]; for(int i=0; i<8; i++) { if(x>a[i]) max=a[i]; if(x cout<<\ cout<<\ } 2. #include for(int i=1,s=0;i<20;i++) { if(i%2==0 || i%3==0) continue; cout< } cout< 3. void trans(int x) { char a[10]; int i=0,rem;