二、簡(jiǎn)單應(yīng)用題
請(qǐng)編寫一個(gè)函數(shù)intpattern_index(charsubstr[],charstr[]),該函數(shù)執(zhí)行含通配符"?"的字符串的查找時(shí),該通配符可以與任一個(gè)字符匹配成功。當(dāng)子串substr在str中匹配查找成功時(shí),返回子串substr在str中的位置,否則返回值為0。要求使用for循環(huán)實(shí)現(xiàn)。輸出結(jié)果如下:
子串起始位置:5
注意:部分源程序已存在文件kt5_2.cpp中。
請(qǐng)勿修改主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)pattern_index的花括號(hào)中填寫若干語(yǔ)句。
文件kt5_2.cpp的內(nèi)容如下:
#include
intpattern_index(charsubstr[],charstr[])
{
}
voidmain()
{
char*substring,*string;
intsame;
substring="???gram";
string="thisprogramreturnindexofsubstring";
same=pattern_index(substring,string);
if(same)
cout<<"子串起始位置:"<
else
cout<<"匹配不成功"<
}
【參考答案】
int pattern_index(char substr[],char str[])
{int i,j,k;
for(i=0;str[i];i++)
for(j=i,k=0;(str[j]==substr[k])||(substr[k]=='?');j++,k++)
if(!substr[k+1])
return(i);
return(0);}
【試題解析】
本題主要考查使用for循環(huán)和一維數(shù)組的能力。對(duì)于復(fù)雜查找,往往使用for的多重循環(huán)。
三、綜合應(yīng)用題
使用VC6打開考生文件夾下的工程kt5_3,此工程包含一個(gè)源程序文件kt5_3.cpp,其中定義了用于表示復(fù)數(shù)的類comp,但類comp的定義并不完整。請(qǐng)按要求完成下列操作,將類comp的定義補(bǔ)充完整。
(1)定義comp的構(gòu)造函數(shù),函數(shù)含參數(shù)x和y,它們都是int型的數(shù)據(jù),默認(rèn)值都為0,請(qǐng)使用參數(shù)列表的形式分別將類數(shù)據(jù)成員a和b初始化x和y的值。請(qǐng)?jiān)谧⑨尅?/**1**”之后添加適當(dāng)?shù)恼Z(yǔ)句。
(2)完成類comp的成員函數(shù)input(intx,inty)的定義,將int型的參數(shù)x和y分別賦值給數(shù)據(jù)成員a和b,請(qǐng)?jiān)谧⑨尅?/**2**”之后添加適當(dāng)?shù)恼Z(yǔ)句;
(3)完成類comp的友元函數(shù)friendcompplus(comp&x,comp&y)的定義,該函數(shù)首先要定義一個(gè)comp類的對(duì)象c,然后將參數(shù)x和y的數(shù)據(jù)成員a與b分別相加并分別賦值給c的成員a和b,最后返回c的值,請(qǐng)?jiān)谧⑨尅?/**3**”之后添加適當(dāng)?shù)恼Z(yǔ)句。輸出結(jié)果如下:
10+20i
2+3i
result:12+23i
注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。
源程序文件kt5_3.cpp清單如下:
#include
classcomp
{inta;
intb;
public:
//**1**
friendcompplus(comp&x,comp&y);
voidinput(intx,inty)
{//**2**}
voidoutput()
{cout<
compplus(comp&x,comp&y)
{//**3**
c.b=x.b+y.b;
returnc;}
voidmain()
{compx(10,20),y,z;
y.input(2,3);
z=plus(x,y);
x.output();
y.output();
cout<<"result:";
z.output();}
【參考答案】
(1)comp(int x=0,int y=0):a(x),b(y){}
(2)a=x;
b=y;
(3)comp c;
c.a=x.a+y.a;
【試題解析】
本題主要考查類的定義和友元函數(shù)定義的。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |