C++习题大全
期末考试习题
单项选择
==================================================
1 对使用关键字new所开辟的动态存储空间,释放时必须使用【】。
A、free
B、create
C、delete
D、realse
2 以下对一维数组a的正确说明是( )
A、int a(10);
B、int n;
cin>>n;
int a[n];
C、int n=10,a[n];
D、const int n=10;
int a[n];
3 当一个类对象生命期结束时,系统自动调用_____并销毁对象。
A、析构函数
B、静态函数
C、友元函数
D、构造函数
4 一个C++程序的执行是从( )
A、本程序文件的第一个函数开始,到本程序main函数结束
B、本程序的main函数开始,到本程序文件的最后一个函数结束
C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
D、本程序的main函数开始,到main函数结束
5 下列关于类的权限的描述错误的是【】。
A、类的对象只能访问该类的公有成员
B、一个类可以将另一个类的对象作为成员
C、普通函数不能直接访问类的公有成员,必须通过对象访问
D、类本身的成员函数只能访问自身的私有成员
6 在循环语句的循环体中使用break语句的作用是( )
A、结束开关语句
B、结束程序执行
C、结束本次循环
D、结束该层的循环
7 下面程序运行结果是( )
#include <iostream>
using namespace std;
int main()
{
int x=0,y=0;
while(x<15)
{
y++;
x+=y;
}
cout<<y<<","<<x;
return 0;
}
。
A、5,7
B、20,8
C、6,12
D、5,15
8 多重if~else语句嵌套使用时,寻找与else配对的if的方法是【】。
A、缩进位置相同的if
B、其上最近的if
C、其上最近未匹配的if
D、下面最近的if
9 如下代码,对其描述正确的是【 】。int *p;p=new int(5);
A、动态开辟5个int元素,初值不确定
B、存在语法错误
C、动态开辟5个int元素,初值为0
D、动态开辟初值为5的一个int元素
10 一个类可包含析构函数的个数是【】。
A、1个
B、0个
C、至少一个
D、0个或多个
11 下列对构造函数的描述中,【 】是错误的。
A、函数名与类名完全相同
B、构造函数允许重载
C、构造函数允许使用缺省参数
D、返回类型应该为void
12 对于有返回值的函数,要结束函数运行必须使用语句( )
A、return
B、main
C、break
D、continue
13 main()函数的返回类型是【 】。
A、float
B、任意类型
C、不返回值
D、int
14 int x=-1;
do
{
x=x*x;
} while(!x);
下列说法正确的是( )
A、是死循环
B、有语法错误
C、循环执行一次
D、循环执行两次
15 下面不正确的字符串常量是( )
A、‘rst’
B、“14’14”
C、“”
D、“0”
程序设计
==================================================
/*------------------------------------------------
1 【程序设计】
--------------------------------------------------
题目:对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在
某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命
题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……
我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过1000的正整数n,简单地数一下,需要多少步(砍几下)才能得到n=1?