上機部分
一、改錯題
使用VC6打開考生文件夾下的工程kt20_1,此工程包含一個源程序文件kt20_1.cpp,但該程序運行有問題,請改正函數(shù)中的錯誤,使該程序的輸出結(jié)果為:
Thefirstresultis5
Thesecondresultis2
Thethirdresultis2
Thefourthresultis6
源程序文件kt20_1.cpp清單如下:
#include
intsubtraction(inta,intb)
{ intr;
r=a-b;
/*****************found*****************/
return&r; }
intmain()
{ intx=5,y=3,z;
z=subtraction(7,2);
cout<<"Thefirstresultis"< cout<<"Thesecondresultis"< /*****************found*****************/ cout<<"Thethirdresultis"< /*****************found*****************/ z=4+*subtraction(x,y); cout<<"Thefourthresultis"< return0; } 【參考答案】 (1)將return &r; 改為:return r; (2)將cout << "The third result is " << subtraction (&x,&y) << '\n'; 改為:cout << "The third result is " << subtraction (x,y) << '\n'; (3)將z= 4 + *subtraction (x,y); 改為:z= 4 + subtraction (x,y); 【試題解析】 (1)主要考查對于函數(shù)的返回值類型的理解,題目中函數(shù)的定義是int型的,所以應該返回一個該類型的參數(shù),這里的錯誤就在于它返回了一個int型參數(shù)的地址,如果把函數(shù)返回值定義成int型的指針,那么這種返回方式就正確了; (2)主要考查對已經(jīng)定義好參數(shù)類型和個數(shù)的函數(shù),題目中的函數(shù)subtraction ()已經(jīng)定義好了,是兩個int型的參數(shù),但是這里錯誤的調(diào)用了兩個參數(shù)的地址,使得本來是傳值調(diào)用變成了傳址調(diào)用,所以會報錯,傳值調(diào)用是把參數(shù)的數(shù)值復制后傳入函數(shù)中,不改變原函數(shù)中參數(shù)的值,而傳址調(diào)用是把參數(shù)在內(nèi)存中的地址傳進函數(shù)中,函數(shù)對參數(shù)的任何作用都會改變原函數(shù)中參數(shù)的值; (3)主要考查對函數(shù)調(diào)用的掌握,函數(shù)subtraction ()是一個普通函數(shù),調(diào)用的時候直接寫函數(shù)名和適當?shù)膮?shù)就可以了。
2010年9月計算機等級考試精華備考資料匯總
計算機等級考試二級VB上機試題及答案匯總
計算機等級考試二級VB模擬試題及答案匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |