搜索
您的当前位置:首页正文

C++模拟题

来源:赴品旅游
C++程序设计模拟试题

一、单项选择题(共15题,每题 1 分) 1. 下列数据中不合法的C++实数是(). A、3e-5 B、 .6 C、5. D、6 2. 下列数据中合法的c++字符常量是(). A、’as’ B 、”a” C、’123’ D、’\\\\’ 3. 表达式33/5的结果为()。

A、6 B、6.6 C、7 D、以上都不对

4. 设有定义:int a[6]={1,2,3,4,5,6},*p=a; 则表达式*p++的值为()。 A、1 B、2 C、3 D、以上结果都不对 5. 下列程序段中循环体执行的次数为(). int k=10; while (k==1)k=k-1;

A、循环体语句一次都不执行 B 、循环体语句执行无数次 C、循环体语句执行一次 D、循环体语句执行9次 6. 下列符号属于C++语言用户标识符的是().

A、DO B、if C、void D、switch 7. 任意一个类,析构函数的个数最多是 ( ).

A、不限个数 B、1 C、2 D、3 8.()函数是Windows应用程序开始执行时的入口点。

A、WinMain() B、Win() C、Main() D、Windows() 9. 在C++程序中,对象之间的相互通信可以通过()实现。

A、继承B、调用成员函数D、函数重载 C、封装 10. 类的析构函数的作用是()。

A、一般成员函数的初始化 B、类的初始化C、对象的初始化 D、删除类创建的对象 11. 函数重载的正确叙述是函数名相同,但()不相同。 A、函数的参数个数或参数的类型不同 B、函数的返回值的类型不同 C、函数体不同,与参数的个数及类型无关 D、满足A和B 12. 执行以下程序段后,变量i 的值为()。 int i=2; switch (i)

{case 1: i+=10; case 2:i+=10; case 3:i++; break; default :i++; break; }

A、24 B、14 C、12 D、13

13. 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()。

A、友元函数 B、虚函数 C、构造函数 D、析构函数 14. 在C++程序中关于函数的定义和调用的说法正确的是()。 A、函数的定义可以嵌套,而函数的调用不可以嵌套。 B、函数的定义不可以嵌套,而函数的调用可以嵌套。

C、函数的定义和嵌套都可以嵌套。D、函数的定义和调用都不可以嵌套。 15. 下面说法错误的是()。

A、在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问。

1

B、在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问。 C、在基类定义的public 和protected 成员在保护继承的派生类中是可见的。 D、以上说法都错误。

二、填空题 (共30个空,共30 分)

1. 设int a=3,b; 则执行表达式 b=3*a++后,a= ,b= 。 2. 结构化程序设计的三种基本结构为、、。 3. 若有int a=10,b=20,c=30 ; 则执行程序段

if(a>b) a=b;b=c;c=a; 后a = b= c= 。 4. 类的访问限定符包括、和。 5. 运算符重载时,其函数名由和该运算符构成。成员函数重载双目运算符时,左操作数是,右操作数是该函数的参数。

6. 表达式x+a%3*(int)(x+y)%2/4 的结果为 (设x=2.5, y=4.7, a=7)。 7. 判断一个年份(year)是否是润年的条件为。 8. C/C++定义了4个内存区间:、、和。

9. 设有n1=1,n2=2,n3=3,n4=4,x=0,y=0,则求解表达式(x=n1n4)后,x= , y= 。 10. 执行下列程序段后,sum变量的值是_________。 int sum=0,i;

for(i=0;i<10;i++,sum+=i);

11. 执行下面程序段后,m= ,k= 。 intm,k;

for(k=1,m=0;k<=50;k++) { if(m>=10) break; if(m%2==0) { m+=5; continue; }

m-=3; }

12. 数组定义时有三个要素:数组名,数组元素的和数组元素的。

13. 模板是为了实现代码的,它把数据类型改为一个,称为参数化程序设计。模板包括和。 三、程序分析题(共4 题,每题5 分,共20 分) 1. 以下程序的运行结果是 _________ #include using namespace std; inta,b; void f(int j) { staticint i=a; intm,n;

m=i+j; i++; j++; n=i*j; a++; cout<<\"i=\"<cout<<\"m=\"<{ a=1; b=2; f(b); f(a);

2

cout<<\"a=\"<2. 以下程序的运行结果是_________ #include using namespace std; class Base { public:

virtual void fn(){ cout<<\"In Base class\\n\"; } };

class Sub : public Base {public:

virtual void fn(){ cout<<\"In Sub class\\n\"; } };

void test(Base& b) { b.fn();} int main() { Basebc; Sub sc; test(bc); test(sc);}

3. 以下程序的运行结果是_________ #include using namespace std; fun (int n) { int t;

if (n= =0 ||n= =1) t=1; else t=n*fun (n-1); return(t);} void main( ) {int a; A= fun (6);

cout<4. 以下程序运行结果是________ #include using namespace std; class A { public: A();

A(inti,int j);

~A(){cout<<\"Destructor.\\n\";} void print();

private: inta,b;}; A::A()

3

{ a=b=10;cout<<\"Default constructor.\\n\";} A::A(int i,int j)

{ a=i,b=j;cout<<\"Constructor.\\n\";} void A::print()

{cout<<\"a=\"<A n(15,18); m.print(); n.print();}

四、程序设计题 (共3 题,共35 分)

1. 打印输出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。

2. 输入200到300之间的所有素数。(所谓素数是指除了1和它本身外,不能被其他数所整除的数)

3. 设计两个重载函数,分别求两个整数相除的余数和两个实数相除的余数;两个实数求余定义为实数四舍五入取整后相除的余数。 C++程序设计模拟题参考答案

一、单项选择题(共15题,每题1分,共15分)

题号1 2 3 4 5 6 7 8 9 10答案D D A AAA B A B D题号11 12 13 14 15答案A D C B B 二、填空题(共30个空,每空1 分)

1、4 9 2、顺序、选择、循环 3、10,30,10 4、public(公有的)private(私有的)protected(保护的)

5、关键字operator 对象 6、2.5 7、year%4==0 &&year0!=0 ||year@0==0 8、代码区全局变量与静态变量区局部变量区即栈(stack)区自由存储区(free store),即动态存储区或堆(heap)区。

9、1 0 10、55 11、11 8 12、类型数量13、重用设计参数函数模版类模版 三、程序分析题 (共4题,每题5分 ) 1、i=2 j=3 m=3 n=6 i=3 j=3 m=4 n=9 a=3 b=2

2、In Base class In Sub calss 3、720

4、Default constructor. Constructor a=10,b=10 a=15,b=18 Destructor. Destructor.

四、程序设计题 (共3 题,共35 分) 1.参考程序: #include using namespace std;

4

void main( ) {intn,a,b,c;

for(n=100;n<1000;n++){ a=n; b=n/10; c=n/100; if (a*a*a+b*b*b+c*c*c==n) cout<2.参考程序: #include using namespace std; void main() {int m;

for(m=200;m<=300;m++) if(prime(m)) cout<int prime(int m) {inti,k=1; if(m<=1) k=0; for(i=2;i3.参考程序: #include #include using namespace std; mod(intn,int m){ returnn%m; }

round(double x){ // 四舍五入函数 if(x>=0) return int(x+0.5); else returnint(x-0.5);} mod(double x,double y){ return round(x)%round(y); }

int main(){

cout<<\"mod(8,3)=\"<cout<<\"mod(8.2,3.6)=\"<5

因篇幅问题不能全部显示,请点此查看更多更全内容

Top