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

时间:2024-04-30 09:43:19 5A范文网 浏览: 平时作业 我要投稿

一.选择题

1. 下面的哪一个保留字不能作为函数的返回类型?( C   )

       A. void      B. int      C. new      D. long

2. 假定a为一个数组名,则下面的哪一种表示有错误?( 了B   )

       A. a[i]      B. *++a      C. *a      D. *(a+1)

3. 在下面的二维数组定义中,哪一个是正确的?(  D  )

      A. int a[5][];      B. int a[](10);

      C. int a[][];       D. int a[][5]={{1,2,3},{4,5}};

4.下面的哪一个函数头格式不正确?( B   )

       A. AA(int a, int b)            B. AA(int a=0, int b)

       C. AA(int a=0, int b=0)        D. AA(int a, int b=0)

5.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为(  B )。

        A.  AB operator +(AB& a, AB& b);      B.  AB operator +(AB& a);

        C.  operator +(AB a);                 D.  AB& operator +();

6.当需要使用ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用#include命令,使之包含(    A)文件。

       A. strstrea.h      B. stdlib.h      C. iostream.h    D. fstream.h

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

      A  CHINA     B  byte-size    C  double    D  A+a

8.下列各种函数中,(  C  )不是类的成员函数。

      A  构造函数   B  析构函数    C  友元函数    D  拷贝构造函数

9.下列(   A )是正确的语句。

      A  ;     B  a=17       C  x+y       D  cout<<"/n"

10.循环while(int i=0) i--;执行次数是(  A  )。

  A  0       B  1       C  5      D  无限

11.设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是(B    )。

A  g(f(3));    B  f(g(3));   C  g(f(3)+2);   D  p= f(g(3)+1);

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

      A  int * 和int            B  int * 和int **    

      C  int  和int *           D  int * 和int *

13.设int x;,则经过( C   )后,语句*px=0;可将x值置为0。

      A  int * px;              B  int const * px=&x;  

      C  int * const px=&x;      D  const int * px=&x;

14.设void f1(int *m,long &n);int a;long b;则以下调用合法的是( B   )。

      A  f1(a,b);              B  f1(&a,b);  

      C  f1(a,&b);            D  f1(&a,&b);

15.以下结构类型可用来构造链表的是(  B  )。

      A  struct aa{ int a;int * b;};     B  struct bb{ int a;bb * b;};

      C  struct cc{ int * a;cc b;};     D  struct dd{ int * a;aa b;};

16.使用操作符setw对数据进行格式输出时,需要包含(  C  )文件。

      A  iostream.h     B  fstream.h    C  iomanip.h    D  stdlib.h

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

      A  char     B  int    C  long int    D  float

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

      A  _var        B  bye-bye       C  int         D  123_cc

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

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

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

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

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

      A  5        B  6         C  1          D  无限

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

       方式打开文件的。

        A  in        B  out       C  app        D  ate

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

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

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

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

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

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

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

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

27 .求一个字符串长度的标准函数为(  A )。

A.strlen()    B.dtrcap()

C.Strcat()     D.strcmp()

28.假定AB为一个类,则执行“ABa(4),b[5],*p[2]:”语句时,自动调用该类构造

函数的次数为( A   )。

  A.6       B.7      C.9       D.11

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

    A.变量a的地址值     B.无意义  

C.变量p的地址值     D.3

30.使用操作符setw对数据进行格式输出时,需要包含( C   )文件。

   A.iostream.h      B.fstream.h    

C.iomanip.h      D.stdlib.h



二.填空题


1.在c++语言中,用输出控制字符________表示输出一个换行。

2.表达式x=x+l表示成增量表达式为____________________。

3.关系表达式x+y>5的相反表达式为______________。

4.假定x=5,则执行“a=(x<0?10:20);”语句后a的值为________。

5.假定一个二维数组的定义为“int a[3][6];”,则该数组所含元素的个数为________.

6.要在屏幕上显示"Hello,world!"应执行语句cout<<____________________。

7.表达式8&3的结果是__________。

8.若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符_______________。

9.假定p所指对象的值为36,p+l所指对象的值为49,则*++p的值为——

10.假定AB为一个类,则执行"ABa[8];”语句时,系统自动调用该类构造函数的次数为————。

11.已知’A’一’Z’的ASCII码为65—90,当执行"charch=14*5+2;cout<<ch<<endl;”语句序列后,得到的输出结果为——。

12.float和double类型的长度分别为——和——。

13.假定一个二维数组的定义为“int a[3][6];”,则该数组所含元素的个数为——,所占存储空间的字节数为——.

14.执行“typedef int ABC[20];”语句把ABC定义为具有20个整型元素的 ———.

15.假定p所指对象的值为36,p+l所指对象的值为49,则*++p的值为——

16.假定a是一个二维数组,则  a[i][i]的指针访问方式为  ——。

17.假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为———。

18.对一个类中的数据成员的初始化可以通过构造函数中的——实现,也可以通过构造函数中的——实现。

19.当一个类对象离开它的作用域时,系统将自动调用该类的——。

20.假定AB为一个类,则执行"ABa[8];”语句时,系统自动调用该类构造函数的次数为————。

答案:1.  ’/n’              2. ++x                     3. x+y<=5                      4. 20

5. 18                  6. "/"Hello,world!/""        7. 0                         8. static

9.  49        10. 8                      11.H           12.4    8

     13.18  72    14.数组类型        15.  49     16.  *,(a[i]+”或*(*(a+i)十j)

   17.  *(x.a)       18.初始化表  函数体

   19.析构函数      20.  8


三.写出下列每一个程序运行后的结果。


1.#include<iostream.h>

      void main() {

          int s1=0, s2=0;

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

              if(i%2) s1+=i;

              else s2+=i;

          cout<<s1<<','<<s2<<endl;

      }



  2.#include<iostream.h>

      void main() {

          int i=1,s=0;

         while(s<15)s+=i++;

cout<<i<<’,’<<s<<ednl;

}




3.#include<iostream.h>

      void main() {

          int a[10]={8,19,46,15,6,24,27,18,20,53};

          int c1=0, c2=0;

          for(int i=0;i<10;i++) {

              if(a[i]>=20) c1++;

              if(a[i]>=10 && a[i]<=40) c2++;

          }

          cout<<c1<<','<<c2<<endl;

      }



4.#include<iostream.h>

    Int LB(int *a,int n)

For(int i=0;i<n;i++){

  p*=*a;a++;

}

Return p;

     Inta[5]={1,2,3,4,3};

Cout<<LB(a,5)<<endl;

      }



5.#include<iostream.h>

      struct Worker {

          char name[15];  //姓名

          int age;        //年龄

          float pay;      //工资

      };

      void main() {

          Worker x={"wangfong",46,1640};

          Worker y, *p;

          y=x; p=&x;

          cou<<p->age+5<<’ ’<<p->pay-300<<endl;

      }


19. #include<iostream.h>

    void SB(char ch) {

          switch(ch) {

                case 'A': case 'a':

                     cout<<"well !"; break;

                case 'B': case 'b'

                     cout<<"good !"; break;

                case 'C': case 'c':

                     cout<<"pass ! "; break

                default:

                   cout<<"bad! "; break;

        )

          cout<<endl;

   }

     void main() {

          char a[6] ="Abcaf'

          for(int i=0; a[i]; i++) SB(a[i]);

    }

21. #include<iomanip. h>

     void main() {

           int a[8]= {3,5,7,9,11,13,15,17};

           int * p=a;

           for(int i=0;i<8;i++) {

                    p+=l0;

                 cout<<setw(5)<< * p++;

                 if((i+1} %3= =0} cout<<endl;

        }

22. # inelude<iomanip, h>

    void LF(int& x, int y)   {            

          x=x+y;

          y= x+y;

          cout<<"x="<<x<<", y="<<y<<endl;

   }

     void main() {

          int x=5, y=8,

          cout<<"x="<<x<<'', y="<<y<<endl;

          LF(x, y);                    

          cout<<"x="<<x<<", Y="<<Y<<endl;

    }

23.# include<iomanip, h>

     void main() {

           int x=25,y= 120;

           cout<<"dec:"<<dec<<setw(l0) <<x<<setw(l0)<<y<<endl;

           cout<<"oct: "<<oct<<setw(l0) <<x<<setw(l0)<<y<<endl;

           cout<<"hex:"<<hex<<setw(10) <<x<<setw(10) <<y<<dec<<endl

    }


答案:1. 49,56            

2.6,5

3.5,6              

4.72

5.51,1340

6.well!

   good!

   pass!

   well!

   bad!

7.  13    15    17

   19  2l  23

   25    27

8.x=5,y=8    

   x=13,y=21  

   x=13,y=8    

9.dec:    25    120    

   Oct:    31    170    

   hex:    19    78    


四.写出下列每个函数的功能


 1.double FI(double n) {

          //n 为大于等于1的整数

          double x,y=0;

          do {

             cin>>x;

               n--; y+=x;

               } while(n>0);

          return y;

      }

   2.template<class Type>

      bool WE(Type a[], Type b[], int n) {

          int c=0;

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

              if(a[i]==b[i]) c++;

          if(c==n) return true; return false;

      }

3.void LK(double a[], int n) {

          double s=0;

          int I,m=0;

          for(i=0;i<n;i++) s+=a[i];

          s=s/n;

          for(i=0;i<n;i++) if(a[i]>=s) m++;

      }

4. # inelude<iostream, h>

   template<class Type>

   Type WD(Type a[], int n) {

         Type m= a[0] ;

         for(int i=l;i<n;i++)

               if(a[i]>m) re=a[i];

         return m

    }

5. # include<iomanip, h>

       include< fstream, h>

    void JD(char* fname)

//可把以fname所指字符串作为文件标识符的文件称为fname文件,

//假定该文件保存着一批整数。


{

ifstream fin(fname, ios: :in |ios: :nocreate | ios: :binary)

int x, s=O, n=O;

while(fin, read((char * ) &x, size of(x))) {

   s+=x; n++

}

cout<<n<< ' ' <<s<<' ' << float(s)/n<<endl;

fin. close( );

}

6.已知6≤a≤30,15≤b≤36,编一程序求出满足不定方程2a十5b=126的全部整数组解。如(13,20)就是其中的一组解。


参考答案

1. 求出从键盘上输入的n个实数之和。

2.模板函数,判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回0。

3.统计出数组a的前n个元素中大于等于其平均值的元素个数并作为函数值m返回。

4.模板函数,从数组a的n个元素中求出最大值并返回。

5.从二进制文件中输入所有整数,计算并显示出所有整数的个数、总和与平均值。

6.整个程序正确得10分,否则按下面参考程序中语句后的注释给分。

   #include<iostream.h>

   void main( )

   {    

   inta,bi    //定义变量正确得2分

   for(a=6;a<=30;a++)    //外循环次数正确得2分

   for(b=15;b<=36;b++)  //内循环次数正确得2分

   if(2xa+5,b==126)coul<<’(’<<a<<’,’<<b<<’)’<<endl;

   //条件正确得2分,输出语句正确得2分

   }



来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。

相关文章:

电大《中国古代文学作品选读》综合练习及(2)04-30

电大《教育心理学》期末综合练习04-30

电大《现代教育原理》 期末综合练习二04-30

电大《心理学》(专科选修)期末综合练习题及04-30

电大《文秘管理与应用写作》综合练习及04-30

电大《资源与运营管理》形考作业二04-30

电大《资源与运营管理》形考作业一04-30

电大《中国古代文学作品选读》填空题综合练习及04-30

地域文化综合练习题(多选题部分)04-30

小学数学教学研究综合练习三04-30

热搜文章
最新文章