优题选
题目:山东广播电视大学开放教育电大《C++语言程序设计》课程


一、填空(每空2分,共20分)

1.C++源程序文件扩展名为_____________。

2.unsigned long 型数据占__________字节存储空间。

3.执行语句cout<<"d://data//c++//test.exe";后,输出结果是___________

____________________。

4.表达式8|3的结果是__________。

5.全局变量和__________________若在定义时未进行初始化,则自动初始化为0。

6.将s初始化为值是"Hello!"的指针常量,初始化语句是_____________________。

7.类中的成员只能为该类的成员函数及该类的派生类中的成员函数访问,则应加上访问属性__________________。

8.定义输出文件流f,并以追加数据方式打开相应文件"a:aaa.dat",定义f的语句是_________________________________。

9.设文件f.cpp中的一个函数要访问在另一个文件中定义的int型变量x,则在f.cpp中x应定义为__________________________。

10.函数模板的说明格式是:template__________________函数定义。

二、单项选择题(每空2分,共20分)

1.类型修饰符unsigned修饰( )类型是错误的。

A char B int C long int D float

2.下列变量名中,( )是合法的。

A _var B bye-bye C int D 123_cc

3.设int a=3,* p=&a;,则*p的值是( )。

A 变量a的地址值 B 无意义 C 变量p的地址值 D 3

4.设int m=0;,下列表示引用的方法中,( )是正确的。

A int &x=m; B int &y=10; C int &z; D float &t=&m

5.循环for(int i=0,x=0;!x&&i<=5;i++);的循环体执行次数是( )。

A 5 B 6 C 1 D 无限

6.磁盘文件操作时,在打开磁盘文件的访问方式中,( )是以追加数据

方式打开文件的。

A in B out C app D ate

7.类X中,若没有定义构造函数,则默认的构造函数是( )。

A X ( ){ } B X (X & x){ *this=x;} C ~X ( ){ } D 不存在

8.设int * p2=&x,* p1=a;*p2=*b;则变量a和b的类型分别是( )。

A int和int B int * 和int C int和int * D int * 和int *

9.设p为指针变量,则以下表达式正确的是( )。

A --p++ B --++p C --(p+5) D (p-5)++

10.设void f1(int &x,char * p);int m;char s[ ]="c++";以下调用合法的是( )。

A f1(&m,&s); B f1(&m,s); C f1(m,s); D f1(m,&s);


三、回答问题(每题4分,共20分)

1.设int a[3][4];double b[3][4][5];

请写出数组指针pa和pb的定义,使其分别与数组名a和b等价。


2.设int f1(int n,char * s);char * f2(int n,char * s);

请写出函数指针pf1和pf2的定义,使其分别指向上述两个函数。


3.请初始化一维指针数组week。其初值表初值为"Sun","Mon","Tue","Wed","Thu","Fri"和"Sat"。


4.要使语句p1=new int(10) ;p2=new double [10];能正常执行,写出p1和p2的定义。


5.设有int f1(int n){n+=2;return n*n;}

int f2(int &n){n+=2;return n*n;}

执行 int m=5,n=3;

m=f1(n);cout<<m<<' '<<n<<endl;

m=f2(n);cout<<m<<' '<<n<<endl;

写出结果。


四、(每题10分,共20分)

1.写出下列程序的执行结果。

# include <iostream.h>

void main()

{

int i=1,j=2,k=3,a=10;

if (!i) a--;

else if(j)

if(k) a=5;

else a=6;

a++;

cout<<a<<endl;

if(i<j)

if(i!=3)

if(!k)

a=1;

else if(k)

a=5;

a+=2;

cout<<a<<endl;

}


2.设a盘上文本文件aaa.dat中保存有0至100之间的所有奇数,下列程序将全部数据及其和输出至屏幕上,请将程序补充完全。

# include <stdlib.h>

# include ____________

void main(void)

{

_____________ f1("a:aaa.dat",ios::in|ios::nocreate);

if (!f1) {

cerr<<"a:aaa.dat file not open!"<<endl;

exit(1);

}

int x,s=0;

while (___________){f1>>x;cout<<x<<' ';______________;}

f1.____________;

}


五、(每题10分,共20分)

1.用while循环编程,求自然数1至100之间各奇数平方和并输出。


2.设有函数void sum(int score[ ][5],int row);,它将数组score每行后四个元素之和用首元素保存。试①编写这个函数 ②编写主函数并初始化相应实参调用这个函数,并输出结果。


标准答案

一、填空(每空2分,共20分)

1.cpp

2.4

3.d:/data/c++/test.exe

4.11

5.静态局部变

6.char * const s="Hello!";

7.protected

8.ofstream f("a:aaa.dat",ios::app);

9.extern int x;

10.<模板形参表>

二、单项选择题(每空2分,共20分)

1.D

2.A

3.D

4.A

5.B

6.C

7.A

8.D

9.B

10.C

三、回答问题(每题4分,共20分)

1.int (*pa)[4]=a;double(*pb)[4][5]=b;

2.int (* pf1)(int n,char * s)=f1;char *( * pf2)(int n,char * s)=f2;

3.char * week[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};

4.int * p1 ;double * p2;

5. 25 3

6. 25 5

四、(每题10分,共20分)

1. 6 7

2. fstream.h ifstream !f1.eof() s+=x close()

五、(每题10分,共20分)

1. #include<iostream.h>

void main()

{

int i=1,sum=0;

while(i<=100)

{sum+=i*i;i+=2;}

cout<<"sum="<<sum<<endl;

}



2.#include<iostream.h>

void sum(int score[][5],int row)

{

for(int i=0;i<row;i++)

{

score[i][0]=0;

for(int j=1;j<=4;j++)

score[i][0]+=score[i][j];

}

}

void main()

{

int a[5][5]={{0,50,60,70,80},{0,51,61,71,81},

{0,52,62,72,82},{0,53,63,73,83},{0,54,64,74,84}};

sum(a,5);

for(int i=0;i<5;i++)

cout<<a[i][0]<<endl;

}



关键字:
返回顶部