鸭子tv国产极品在线观看_成人69视频在线播放_91精品免费在线观看_亚洲AT永久偷窥无码精品_国产精品自产拍在线观看涩浪潮久

江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
2010秋江蘇省計算機二級C++上機真題1

    江蘇省計算機二級  Visual C++上機試卷(01)
   (本試卷完成時間為70分鐘)   
一、改錯題(20分)  
  【題目】
  以下程序的功能是:根據(jù)字符串str中是否包含子串substr,決定如何將字符串str1插入到
str的不同位置。插入方法是:如果str中包含子串substr,則將str1插入到str中首次出現(xiàn)的子
串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中,根據(jù)題目要求及程序中語句之間的邏輯關系對。
程序中的錯誤進行修改。程序中的注解可以不輸入。 
    2.改錯時,可以修改語句中的一部分內容,增加少量的變量說明、函數(shù)原型說明或編譯預
處理命令,但不能增加其他語句,也不能刪除整條語句。 
    3.改正后的源程序文件myfa.cpp必須放在T盤根目錄下,供閱卷用。
    二、編程題(20分)
    【題目】
    試定義一個類Array,將4行5列二維數(shù)組的各列前3個元素依次拼接成一個整數(shù),再將
該整數(shù)賦值給相應列的最后一個元素。例如,

  (1)私有數(shù)據(jù)成員:
     int a[4][5];
  (2)公有成員函數(shù)。
     Array(int b[][5],int n):構造函數(shù),用二維數(shù)組b初始化數(shù)組a,參數(shù)n表示數(shù)組b的
行數(shù)。
     void val(int j):將成員數(shù)組a第j列的前3個元素依次拼接成一個整數(shù)賦值給第4個元
素。
     void fun():利用成員函數(shù)vaLl()依次處理數(shù)組a的各列,完成題目的要求。
     void print():按矩陣形式打印數(shù)組a。
    (3)在主函數(shù)中完成對該類的測試。
    輸出示例:
    原數(shù)組:
    1    2      0    4    1
    16   11    21    0    2
    2    0     3     1    3
    0    0     0     0    0
    處理后的數(shù)組:    ,
    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<<"原數(shù)組:"<<end];
    test.print();
    test.fun();
    cout<<"處理后的數(shù)組:"<<endl;
    test.print();
    }