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

江蘇省高校計(jì)算機(jī)等級(jí)考試命題研究院 江蘇省高校計(jì)算機(jī)等級(jí)考試輔導(dǎo)
2008春二級(jí)VC上機(jī)1

    2008()上機(jī)試卷【01)

    (本試卷上機(jī)時(shí)間為70分鐘)

一、改錯(cuò)題(20)

【題目】

    以下程序的功能是:將一個(gè)字符串中介于兩個(gè)不同子串之間的字符逆序處理。如果一

個(gè)子串在字符串中出現(xiàn)多次,則以第一次出現(xiàn)的位置為準(zhǔn);如果某一個(gè)子串不在字符串中出

現(xiàn),則將另一個(gè)子串之后的所有字符逆序處理。

    例如,將字符串"mmabcl23456000dd"中介于字符串"000"與字符串"abe"之間的

字符逆序后變?yōu)?/SPAN>"mmabe654321000dd"。

    又如,將字符串"mmabcl23456000dd"中介于字符串"012"(在原字符串中不存在)

字符串"abc"之間的字符逆序后變?yōu)?/SPAN>"mmabcdd000654321"。

  含錯(cuò)誤的源程序如下:

    #include <iostream.h>

    #include <string.h>

 

    int at(char *s1,char *s2)    //s2s1中第一次出現(xiàn)的位置(序號(hào)從0開(kāi)始)

    {  for(int i=0;s1[i];i++){

          for(int j=0;s2[j];j++){

              if(s1[i+j])break;

              if(s1[i+j]!=s2[j])break;

           }

          if(!s2[j])

             return j;

       }

       return strlen(s1);

    }

 

    void invert(char str[],int n1,int n2)

    {   char *p1=str+n1, *p2=str+n2-1;

        while( *p1<*p2){

           char t=*p1;

           *p1=*p2;

           *p2=t;

           p1++;

           p2--;

       }   

    }

   

    char *process(char:l:S,char *s1,char:lc s2)

      //s中介于s1s2之間的子串逆序

    {  int n1=at(s,s1),n2=at(s,s2);

       int max,min;

       if(nl>n2)  

        max=n1,min=n2+strlen(s2)

       else   

        max=n2,min=n1+strlen(s1);

       invert(s,min,max); 

       return *s;   

    }

    void main()   

    {  char p[]="mmabc123456000dd",*p1="000",*p2="abe";

       cout<<p<<endl;

       cout<<p1<<endl;   

       cout<<p2<<endl;

       cout<<process(p,p1,p2)<<endl;  }

    }   

【要求】  

    1.把上述程序錄入到文件myfa.cpp,根據(jù)題目要求及程序中語(yǔ)句之間的邏輯關(guān)系

對(duì)程序中的錯(cuò)誤進(jìn)行修改。程序中的注解可以不輸入。

    2.改錯(cuò)時(shí),可以修改語(yǔ)句中的一部分內(nèi)容,增加少量的變量說(shuō)明、函數(shù)原型說(shuō)明或

編譯預(yù)處理命令,但不能增加其他語(yǔ)句,也不能刪去整條語(yǔ)句。

    3.改正后的源程序文件m).cpp必須放在T:盤(pán)的根目錄下,供閱卷用。

二、編程題(20)

【題目】  

  試定義一個(gè)類(lèi)LARRAY,將一維數(shù)組a中的數(shù)據(jù)線性變換成指定的數(shù)值范圍內(nèi)的數(shù)據(jù),

并存放到一維數(shù)組b中。假設(shè)一維數(shù)組a中元素的最大值為max,最小值為min。當(dāng)指定b中數(shù)

據(jù)的取值范圍為[new_min,new_max]時(shí),將數(shù)組a中的元素a[j]線性變換為數(shù)組b中的元

b[j]的變換公式為:   

    b[j]=new min+(a[j]-min)×

  具體要求如下:

  (1)私有數(shù)據(jù)成員。

  double a[10],b[10]:a存放原始數(shù)據(jù),b存放線性變換后的數(shù)據(jù)。

  double new_max,new_min:分別為線性變換結(jié)果的上、下限。

  (2)公有成員函數(shù)。

  LARRAY(double a1[],double x,double y):構(gòu)造函數(shù),a1初始化數(shù)組a;數(shù)組b

的元素都初始化為0;xy分別初始化new_minnew_max。

  double getMax():返回?cái)?shù)組a中值最大的元素值。

  double getMin():返回?cái)?shù)組a中值最小的元素值。

  void fun():按給定的變換公式求出數(shù)組b的每一個(gè)元素值,要求利用函數(shù)getMax()

getMin()。  

  void print():輸出數(shù)組b的所有元素。

 (3)在主函數(shù)中完成對(duì)該類(lèi)的測(cè)試。

    輸入/輸出示例(下劃線部分為鍵盤(pán)輸入):

    請(qǐng)輸入10個(gè)數(shù):0  1  2  3  4  5  6  7  8  9

    請(qǐng)輸入變換后數(shù)據(jù)的下限和上限:0  1

    變換后的數(shù)據(jù)為:0 0.111111 0.222222 0.333333 0.444444 0.555556

    0.666667 0.777778 0.888889  1

【要求】

    源程序文件名必須為myfb.epp,并放在T:盤(pán)的根目錄下,供閱卷用。