<samp id="uu9tx"></samp>
        <samp id="uu9tx"><tr id="uu9tx"><nav id="uu9tx"></nav></tr></samp>
        <delect id="uu9tx"><legend id="uu9tx"><meter id="uu9tx"></meter></legend></delect>
                <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp><nav id="uu9tx"></nav>
                <samp id="uu9tx"></samp>
                  <samp id="uu9tx"><tr id="uu9tx"><meter id="uu9tx"></meter></tr></samp>
                  江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
                  江蘇計算機等級考試vc++沖刺模擬試題1

                  第二部分:Vc++程序設計

                   C++語言程序設計理論部分

                    一、選擇題(30)

                    21•設有定義“float y=5.16347;int x;”,則以下表達式中可以實現將y中的數值保留小

                  數點后2位,將第三位四舍五人的表達式是_____________

                    Ay=(y*100+0.5)/100.0     Bx=y*lOO+O.5,y=x/lOO.0

                    Cy=y*100+0.5/100.0       Dy=(y/100+0.5)*100.0

                    22.設有說明語句"int a=6;float b=l,c=l;",則表達式"c%=(b=a/=4),a+=3"

                  的值為_________

                      A9    B1.5     C1         D.編譯有錯

                   2 3.關于字符串,以下說法正確的是 __________

                      A.字符串"abc\t\"op\\"中實際的字符個數為8

                      B.字符串是以0結尾的字符數組

                      Csizeof("abc\O\"op\\")=3

                      Dstrlen("abc\O\"op\\")=8

                    24.已定義"int a[5]={lOO,200,300,400,500};int *P1=&a[0]",b=*++P1,則b*P1的值分別為___。

                   

                      A100 200    B200 200    C)101 101 D100 101

                    25.下面給出的程序的輸出結果不正確的是 _________ 。

                     Achar *sl,s2[]="123";  sl=s2;  cout<<*sl;,結果:123

                     B. char *sl,s2[]="123";sl=s2;  cout<<sl;結果:123

                     Cchar *sl="123\0tear";cout<<s1;結果:123

                     Dchar s1[]="567",s2[]=123;strcpy(sl,s2);cout<<s1;結果:123

                    26.設有變量說明“int a[][2]={{2,5},{4,8}};int *pa,(*pb)[2];"則執行語句"pa=&a[0][0];pb=a;"后,

                  (*(pa+1))(*(pb+1))的值為:______

                    A5,4    B&a[1][0],4   C5,&a[1][0]    D. &a[0][1], &a[1][0]

                   2 7.下列關于數組的應用中,__________是正確的。

                    Aint a[5]={1,2,3,4,5);int b[5];b=a;  cout<<b

                    Bint a[5]={1,2,3,4,5);int b[5]; strcpy(a,b);  cout<<b;

                    Cchar a[5]=1234;char b[5];strcpy(b,a);  cout<<b

                    Dchar a[5]=1234;char b[5];b=a;;    cout<<b

                  28.以下程序的輸出為

                  #include<iostreamh>

                  int w=3;

                  intfun(int)

                  void main(void)

                  {

                    int w=10;

                    cout<<fun(5)*w<<endl;

                  }

                  int fun(int k)

                  {

                   if(k==0)  return w;

                   return(fun(k-1)*k);  

                   }  

                    A360    B3600    C1080  D1200  

                   2 9.下列對派生類的描述中______是不正確的

                    A.一個派生類可以作為另一個派生類的基類  

                    B.派生類至少有一個基類   

                    c:派生類的成員除了它自己的成員以外,還包含它的基類的成員

                    D.派生類中繼承的基類的成員的訪問權限到派生類保持不變  

                    30.關于構造函數與析構函數的下列說法中正確的是:

                    ①在類中構造函數與析構函數都有固定的函數名。

                    ②在類中構造函數與析構函數都有相同的作用。

                    ③在類中構造函數與析構函數都可以定義多個。  

                    ④在類中構造函數與析構函數都可以有返回值。  

                    ⑤在類中構造函數與析構函數的參數都可以有默認值。 

                    A.①和②    B.①    C.④和⑤  D.③和⑤。   

                    二、填空(30)  

                    ●基本概念題(8) 

                    1.某類整數a滿足的條件為:①a小于等于100 a大于等于10,③a的十位數是個位

                  數的2倍或個位數是十位數的2倍。    ,‘        +

                      請用一個邏輯表達式  (  1  ) a表示出來。

                      2c++中編譯預處理有三種形式,分別是:______,___________,_____________

                      3.面向對象程序設計語言的四個要素是:___________,__________________,_______________,__________。

                      ●閱讀程序寫結果(10)

                      4(1)若有宏定義:

                      #define A 2

                      #define B(n)(n*(A+2)n*2)

                      則執行語句“int w=2;w*=2*(A*B(A+2))+3;"后,W的值為__________。

                      5(1)[程序]

                      #include<iostream.h>

                      #define N 5

                      void fun();

                      void main()

                      {  for(int i=1;i<N;i++)

                      fun();

                    cout<<endl

                  }

                  void fun()

                  {

                      static int a;

                      int b=2

                      cout<<(a+=3,a+b)<<" "

                  }

                  運行結果為:(  10  )

                  6(3)[程序]

                  #include<iostreamh>

                  void main()

                  {

                    char s[]="I am a studentYou are a student too";

                    int a[26]={0);

                    char *p=S;   

                    while(*p++!=0)

                    {

                       if(*p>='A' && *p<='Z')a[*p-'A']++;

                       else if(*p>='a' && *p<='z') a[*p-'a']++;

                    }

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

                        if(a[i]!=0)cout<<(char)(i+'a')<<""<<a[i]<<endl;

                   }

                  程序運行后出現的前三行結果為:

                    ( 11 )  ,  ( 12 )  ,  ( 13 )

                  7(3)[程序]

                    #include<iostream.h>

                    class Q

                    {

                      int x,y; 

                      static int z

                   public

                    Q(int a,int b){x=a+b;y=a*b;z+=x+y;}

                    void show(){cout<<x<<'\t'<<y<<'\t'<<z<<endl;}

                    }; 

                    int Q::z=10;

                    void main()

                    {

                      Q ql(10,10);

                      q1show();

                      Q q2(20,20);

                      q2.show();

                      q1.show();

                    }

                  程序運行后輸出的第一、二、三行分別是

                    ( 14 )  ,  ( 15 )  ( 16 )

                  8(2)[程序]

                   

                  #include<iostreamh>

                  class AA

                  {

                    int x;

                  public

                    int y;

                    AA(int a,int b){y=b-a;x=y+y;}

                    int showx(void){return x;)

                  };

                  class BBpublic AA

                  {

                  public

                      BB(int c)AA(C,c+c){);

                      int showy(void){return y;)

                  );

                  class CCpublic AA

                  {

                  public

                    CC(int d)AA(d,d+d){);

                    int showy(void){return y;)

                  );

                  class DDpublic BB,public CC

                  {

                  public

                      DD(int e)BB(e+50),CC(e-50){};

                  );

                  void main()

                  {

                    DD d(80);

                    cout<<d.BB::showy()<<'\t'<<d.CC::showy()<<endl;

                  cout<<d.BB::showx()<<'\t'<<d.CC::showx()<<endl;

                  }

                  程序運行結果為:

                    (  17   )  ,  (    18   ) 

                      ●完善程序(12)

                      9(4)編寫一個程序采用遞歸方法逆序放置a數組中的元素。

                      [方法說明]調用一個invert函數來進行數組逆置。invert(s,i,j)函數采用遞歸方法實

                  現,每次將S的第i個元素和第j個元素進行交換,直到i大于或等于j為止。

                      [程序]

                      #include<iostreamh>

                      (   19  )    //函數invert()的原型說明

                      void main()

                      {

                       int a[10]={0,1,2,3,4,5,6,7,8,9),i;

                       (   20   )    //調用invert()函數

                       for(i=0;i<=9;i++)

                            cout<<a[i]<<",";

                       cout<<endl;

                       void invert(int  *s,int i,int j)

                        {

                         int t;

                         if(i<j)

                         {

                            t=*(s+i);

                            (   21   )

                            *(s+j)=t;

                           (   22   )

                         }

                        }

                      10(4)重載運算符“一=”,直接實現在一個字符串中刪除某個字符的功能。例如:

                  字符串“Microsoft Visual C++6O”與i做“一=”運算后的結果為“Mcrosoft Vsual C++

                  60。

                      [程序]

                      #include<iostream.h>

                      #include<string.h>

                      class string 

                      {

                         char*a;

                      public

                        string(char *s)

                        {

                         if(s)

                         {

                               (   23   )

                               strcpy(a,s);

                         }

                         else

                           a=0;

                        }

                    string()

                    {

                      if(a) delete[ ]a;

                     }

                    string &operator -=(char c);

                    void show()

                    {

                       cout<<a<<endl;

                    }

                   (   24   ) //重載函數的定義

                   {

                     char*p=a;

                     while(*p)

                    {

                       if(*p==c)

                       {

                           for(char *q=p;*q;q++)

                             (   25   )

                       }

                      else  (   26   )

                    }

                    return *this;

                   void main()

                   {

                    string sl("Microsoft Visual C++60")

                    s1show();

                    char cl='i'

                    sl-=cl

                    s1.show();

                   }

                  答案:

                  1.D 2.A 3.B 4.D 5.C6.B 7.A 8.D 9.C10.B11.C12.B13.B14.C 15.A16.C 17.B 18.B19.B 20.A

                  21.B 22.D 23.A 24.B 25.A26.C 27.C 28.B 29.D 30.B

                  二、填空答案  

                    ●基本概念題(8) 

                    1.某類整數a滿足的條件為:①a小于等于100 a大于等于10,③a的十位數是個位

                  數的2倍或個位數是十位數的2倍。  

                      請用一個邏輯表達式  (  a<100 && a>=10 &&(a/10==(a%10)*2||2*(a/10)==(a%10))  ) a表示出來。

                      2c++中編譯預處理有三種形式,分別是:__包含文件____,__宏定義___ ______,____條件與編譯_________

                      3.面向對象程序設計語言的四個要素是:_封裝性__________,__繼承與派生________________,__多態性_____________,__重載________。

                      ●閱讀程序寫結果(10)

                      4(1)若有宏定義:

                      #define A 2

                      #define B(n) (n*(A+2)n*2)

                      則執行語句“int w=2;w*=2*(A*B(A+2))+3;"后,W的值為_____86_____。

                      5(1)[程序]

                      #include<iostream.h>

                      #define N 5

                      void fun();

                      void main()

                      {  for(int i=1;i<N;i++)

                      fun();

                    cout<<endl

                  }

                  void fun()

                  {

                      static int a;

                      int b=2

                      cout<<(a+=3,a+b)<<" "

                  }

                  運行結果為:(  5  8  11   14 )

                  6(3)[程序]

                  #include<iostreamh>

                  void main()

                  {

                    char s[]="I am a studentYou are a student too";

                    int a[26]={0);

                    char *p=S;   

                    while(*p++!=0)

                    {

                       if(*p>='A' && *p<='Z')a[*p-'A']++;

                       else if(*p>='a' && *p<='z') a[*p-'a']++;

                    }

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

                        if(a[i]!=0)cout<<(char)(i+'a')<<""<<a[i]<<endl;

                   }

                  程序運行后出現的前三行結果為:

                    ( a:4 )  ,  ( d:2 )  ,  ( e:3 )

                  7(3)[程序]

                    #include<iostream.h>

                    class Q

                    {

                      int x,y; 

                      static int z

                   public

                    Q(int a,int b){x=a+b;y=a*b;z+=x+y;}

                    void show(){cout<<x<<'\t'<<y<<'\t'<<z<<endl;}

                    }; 

                    int Q::z=10;

                    void main()

                    {

                      Q ql(10,10);

                      q1show();

                      Q q2(20,20);

                      q2.show();

                      q1.show();

                    }

                  程序運行后輸出的第一、二、三行分別是

                    ( 20  100  130  )  ,  ( 40  400  570  )  ( 20  100  570 )

                  8(2)[程序]

                   

                  #include<iostreamh>

                  class AA

                  {

                    int x;

                  public

                    int y;

                    AA(int a,int b){y=b-a;x=y+y;}

                    int showx(void){return x;)

                  };

                  class BBpublic AA

                  {

                  public

                      BB(int c)AA(C,c+c){);

                      int showy(void){return y;)

                  );

                  class CCpublic AA

                  {

                  public

                    CC(int d)AA(d,d+d){);

                    int showy(void){return y;)

                  );

                  class DDpublic BB,public CC

                  {

                  public

                      DD(int e)BB(e+50),CC(e-50){};

                  );

                  void main()

                  {

                    DD d(80);

                    cout<<d.BB::showy()<<'\t'<<d.CC::showy()<<endl;

                  cout<<d.BB::showx()<<'\t'<<d.CC::showx()<<endl;

                  }

                  程序運行結果為:

                    (  130  30   )  ,  (    260  60   ) 

                      ●完善程序(12)

                      9(4)編寫一個程序采用遞歸方法逆序放置a數組中的元素。

                      [方法說明]調用一個invert函數來進行數組逆置。invert(s,i,j)函數采用遞歸方法實

                  現,每次將S的第i個元素和第j個元素進行交換,直到i大于或等于j為止。

                      [程序]

                      #include<iostreamh>

                      (   void invert(int *, int, int)  )    //函數invert()的原型說明

                      void main()

                      {

                       int a[10]={0,1,2,3,4,5,6,7,8,9),i;

                       (   invert(a,0,9)   )    //調用invert()函數

                       for(i=0;i<=9;i++)

                            cout<<a[i]<<",";

                       cout<<endl;

                       void invert(int  *s,int i,int j)

                        {

                         int t;

                         if(i<j)

                         {

                            t=*(s+i);

                            (  *(s+i)=*(s+j)   )

                            *(s+j)=t;

                           (   invert(s,i+1,j-1)   )

                         }

                        }

                      10(4)重載運算符“一=”,直接實現在一個字符串中刪除某個字符的功能。例如:

                  字符串“Microsoft Visual C++6O”與i做“一=”運算后的結果為“Mcrosoft Vsual C++

                  60。

                      [程序]

                      #include<iostream.h>

                      #include<string.h>

                      class string 

                      {

                         char*a;

                      public

                        string(char *s)

                        {

                         if(s)

                         {

                               (   a=new char[strlen(s)+1]   )

                               strcpy(a,s);

                         }

                         else

                           a=0;

                        }

                    string()

                    {

                      if(a) delete[ ]a;

                     }

                    string &operator -=(char c);

                    void show()

                    {

                       cout<<a<<endl;

                    }

                   (  string &string::operator-=(char c)   ) //重載函數的定義

                   {

                     char*p=a;

                     while(*p)

                    {

                       if(*p==c)

                       {

                           for(char *q=p;*q;q++)

                             (   *q=*(q+1)   )

                       }

                      else  (   p++   )

                    }

                    return *this;

                   void main()

                   {

                    string sl("Microsoft Visual C++60")

                    s1show();

                    char cl='i'

                    sl-=cl

                    s1.show();

                   }

                   

                   

                   

                   

                  亚洲欧美日韩国产一区二区三区_全亚洲免费一级黄片_国产一区二区三区不卡视频手机版_国产污三级网站在线观看