<source id="v77gz"></source>
    <u id="v77gz"><p id="v77gz"></p></u>

      <samp id="v77gz"></samp>

      <var id="v77gz"><td id="v77gz"><ins id="v77gz"></ins></td></var>

      <video id="v77gz"></video>
      <source id="v77gz"></source>
    1. 江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
      2010秋江蘇省計算機二級C++上機真題1

          江蘇省計算機二級  Visual C++上機試卷(01)
         (本試卷完成時間為70分鐘)   
      一、改錯題(20分)  
        【題目】
        以下程序的功能是:根據字符串str中是否包含子串substr,決定如何將字符串str1插入到
      str的不同位置。插入方法是:如果str中包含子串substr,則將str1插入到str中首次出現的子
      串substr之后;否則,插入到str的尾部。
        正確程序的輸出如下:
        原字符串:aabcd12345  子字符串:abcd  插入字符串:ABC
        新字符串:aabcdABC12345   
        含有錯誤的源程序如下: 
          #include <iostream.h>  
          #include <string.h>
          char *find(char *str,char *substr)
          {  
            unsigned lent=strlen(str);
            for(char *p1=str,*p2=substr;strlen(p1)>=len;p1++){
              for(unsigned i=0;i<len;i++)  
               if(p1[i]!=p2[i])
                  break;  
               if(i>len)   
                 return p1+len; 
          } 
          return 0;
         }
          char *insert(char *str,char *substr,char *str1)
          {
            char p=find(str,substr);
            if(p)
              strcat(str,str1);
            else{
              char *tmp=new char[strlen(str)+strlen(str1)+1];
              strcpy(tmp,str1)
              strcat(tmp,p);
              strcpy(p,tmp);
              delete []tmp;
            }
            return str;
          }
          void main()   
          {
          char *str=new char[80],substr[]="abcd",str1[]="ABC";
          strcpy(str,"aabcdl2345");    ’
          cout<<"原字符串:"<<str<<"子字符串:"<<substr<<"插入字符串:"<<str1<<endl;
          str=insert(str,substr,str1);
          cout<<"新字符串:"<<str<<endl;
          delete []str;
          } 
          【要求】
          1.把上述程序錄入到文件myfa.cpp中,根據題目要求及程序中語句之間的邏輯關系對。
      程序中的錯誤進行修改。程序中的注解可以不輸入。 
          2.改錯時,可以修改語句中的一部分內容,增加少量的變量說明、函數原型說明或編譯預
      處理命令,但不能增加其他語句,也不能刪除整條語句。 
          3.改正后的源程序文件myfa.cpp必須放在T盤根目錄下,供閱卷用。
          二、編程題(20分)
          【題目】
          試定義一個類Array,將4行5列二維數組的各列前3個元素依次拼接成一個整數,再將
      該整數賦值給相應列的最后一個元素。例如,

        (1)私有數據成員:
           int a[4][5];
        (2)公有成員函數。
           Array(int b[][5],int n):構造函數,用二維數組b初始化數組a,參數n表示數組b的
      行數。
           void val(int j):將成員數組a第j列的前3個元素依次拼接成一個整數賦值給第4個元
      素。
           void fun():利用成員函數vaLl()依次處理數組a的各列,完成題目的要求。
           void print():按矩陣形式打印數組a。
          (3)在主函數中完成對該類的測試。
          輸出示例:
          原數組:
          1    2      0    4    1
          16   11    21    0    2
          2    0     3     1    3
          0    0     0     0    0
          處理后的數組:    ,
          l    2      0    4    1
          16   11     21   0    2
          2    0      3    1    3
          1162 2110  213   401  123
          【要求】
          源程序文件名必須為myfb.cpp,并放在T盤根目錄下,供閱卷用。
          參考答案
        一、改錯題
        unsigned len=strlen(str);    str改為substr
        if(i>len)                    改為i>=len
        char p=find(str,substr);      char p改為char *p
        if(p)                       p改為p==0或!p
       二、編程題
          #include<iostream.h>
          class Array{
              int a[4][5];
          public:
              Array(int b[][5],int n)
              {
                 for(int i=0;i<n;i++)
                    for(int j=0;j<5;j++)
                      a[i][j]=b[i][j];
          }
          void val(int j)
          {
            a[3][j]=0;
            for(int i=0;i<3;i++){
               int k=a[i][j];
               do{  
                 a[3][j]=10;
                 k/=10;
               }while(k);  
               a[3][j]+=a[i][j];
           }
          }
          void fun()  
          {
           for(int j=0;j<5;j++)
              val(j);
          }
          void print()
          {   
          for(int i=0;i<4;i++){
            for(int j=0;j<5;j++)
             cout<<a[i][j]<<'\t';  
          cout<<'\n';
          }  
        }
        void main()
        {int t[4][5]={{1,2,0,4,1},{16,11,21,0,2},{2,0,3,1,3}};
          Array test(t,4);
          cout<<"原數組:"<<end];
          test.print();
          test.fun();
          cout<<"處理后的數組:"<<endl;
          test.print();
          }


       

      中文在线字幕第一页_中文字幕高跟丝袜作品番号_亚洲中文无无码第_日本亚洲欧美国产日韩a??y_在线观看亚洲av无码专区