![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
江蘇二級VC2008春上機2 |
2008年(春)上機試卷(02) (本試卷上機時間為70分鐘) 一、改錯題(20分) 【題目】 以下程序的功能是:統(tǒng)計和輸出企業(yè)產(chǎn)品銷售記錄。設每個產(chǎn)品銷售記錄由產(chǎn)品代碼 dm(4個字符)、產(chǎn)品名稱mc(2個字符)、單價dj、數(shù)量sl、金額je四部分組成。其中,金額= 單價*數(shù)量。以下程序中函數(shù)sort()的功能是按產(chǎn)品代碼從大到小對產(chǎn)品銷售記錄進行排序;若產(chǎn)品代碼相同,則按金額從大到小進行排序,最后調(diào)用函數(shù)print()輸出結(jié)果。 含錯誤的源程序如下: #include <iostream.h> #include <string.h> struct PROD{ char dm [5],name[3]; int sl,dj,je; }; void computerje(PROD p1[],int n) //計算產(chǎn)品金額 { for(int i=0;i<n;i++) (p1+i).je=(p1+i).dj *(p1+i).sl; } void sort(PROD p1[],int n) { for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(strcmp(p1[i].dm,p1[j].dm)<0){ t=p1[i]; p1[i]=p1[j]; p1[j]=t; } else if(strcmp(p1[i].dm,p1[j].dm)=0) if(p1[i].je<p1[j].je){ PROD t=p1[i]; p1[i]=p1[j]; p1[j]=t; }}} } void print(PROD *p1,int n) { for(int i=0;i<n;i+}){ cout<<p1[i].dm<<','<<p1[i].name<<','; cout<<p1[i].s1<<','<<pl[i].dj<<','<<p1[i].je<<endl; } } void main() {PROD pr[4]={{"1001","AA",4,15},{"4000","BB",3,45},{"4000", "CC",6,53},{"8546","DD",1,43}}; computerje(pr,4); sort(pr,4); print(pr,4); } 【要求】 1.把上述程序錄人到文件myfa.epp中,根據(jù)題目要求及程序中語句之間的邏輯關(guān)系 對程序中的錯誤進行修改。程序中的注解可以不輸入。 2.改錯時,可以修改語句中的一部分內(nèi)容,增加少量的變量說明、函數(shù)原型說明或 編譯預處理命令,但不能增加其他語句,也不能刪去整條語句。 3.改正后的源程序文件myfa.epp必須放在T:盤的根目錄下,供閱卷用。 二、編程題(20分) 【題目】 試定義一個類NUM,實現(xiàn)將一維數(shù)組中各整數(shù)元素去掉其中相同數(shù)字后再對數(shù)組從小 到大排序。將一個整數(shù)去掉相同數(shù)字是指:如果一個整數(shù)中有相同的數(shù)字,則保留從左數(shù)起 ,第一次看到的那個數(shù)字,而將其他相同的數(shù)字去掉。例如:數(shù)字12324151中有三個1、兩個2,則去掉相同的數(shù)字后變?yōu)?/SPAN>12345。具體要求如下: (1)私有數(shù)據(jù)成員。 •int a [5]:存放需處理的數(shù)組。 (2)公有成員函數(shù)。 •NUM(int t[],int n):構(gòu)造函數(shù),用t初始化a,n為t的元素個數(shù)。 •void sort(int t[],int n):將數(shù)組t的元素從小到大排序。 •int convert(int n):去除n中相同的數(shù)字并返回新得到的數(shù)。 •void fun():將數(shù)組a的各元素去除相同的數(shù)字后從小到大排列。要求調(diào)用函數(shù) convert()和sort()。 •void print():輸出數(shù)組a的所有元素。 (3)在主函數(shù)中對該類進行測試。 輸入/輸出示例(下劃線部分為鍵盤輸入): 輸入5個整數(shù):1213 65666 22313 12314 34435 處理前的數(shù)組為:1213 65666 22313 12314 34435 處理后的數(shù)組為:65 123 231 345 1234 【要求】 ’ 源程序文件名必須為myth.cpp,并放在T:盤的根目錄下,供閱卷用。 |