以下程序的輸出結(jié)果是( )
# include
subl(char a,char b) {char c;c=a;a=b;b=c;}
sub2(char *a,char b){ char c;c=*a;*a=b;b=c;}
sub3(char *a,char *b) { char c;c=*a;*a=*b;*b=c;}
main()
{ char a, b;
a=’A’; b=’B’; sub3(&a,&b); putchar(a); putchar(b);
a=’A’;b=’B’ ;Sub2(&a,b);putchar(a); rutchar(b);
a=’A’; b=’B’; sub1(a,b); putchar(a);putchar(b);
}
①BABBAB
、贏BBBBA
③ BABABA
、 BAABBA
【解】在上述程序中,函數(shù)subl完成兩形參值的交換,這個交換不影響實參變量,這是一個沒有意義的函數(shù)。函數(shù)sub2將第二個形參的值置入由第一個指針形參所指的變量中,指針形參所指的變量由調(diào)用時的實參提供。函數(shù)sub3完成將兩個形參所指的變量的值交換。程序調(diào)用sub3,使變量a和b的值交換輸出BA;調(diào)用subZ,使變量b的值傳送到a,輸出BB;調(diào)用subl,變量a和b的值不改變,輸出AB。所以程序輸出BABBAB。正確解答是①。
相關(guān)推薦:
考試吧策劃:2010年軟件水平考試完全指南 2010年11月計算機(jī)軟件水平考試備考寶典匯總