(15)以下程序可把輸入的十進(jìn)制數(shù)以十六進(jìn)制數(shù)的形式輸出,請?zhí)羁铡?/P>
main()
{char b[17]={"0123456789ABCDEF"};
int c[64],d,i=0,base=16;
long n;
printf("Enter a number:\n");scanf("%ld",&n);
do{c[i]=【17】;i++;n=n/base;}
while(n!=0);
printf("Transmite new base:\n");
for(--i;i>=0;--i)
{d=c[i];printf("%c",b【18】);}
printf("\n");
}
解析: 程序中,字符數(shù)組b存儲十六進(jìn)制的16個數(shù)字符,整型數(shù)組c存儲譯出的十六進(jìn)制數(shù)的各位數(shù)值。從整數(shù)n譯出它的各位十六進(jìn)制數(shù)值,需采用除16取余的方法,即求n除16的余,得到它的十六進(jìn)制的個位數(shù),接著將n除以16。在n不等于0的情況下循環(huán),能順序求出n的十六進(jìn)制的個位數(shù)、十位數(shù)、百位數(shù)等等。程序中變量base已預(yù)置16,所以在第1個空框處可填代碼nºse。當(dāng)n的十六進(jìn)制數(shù)的個位、十位、百位等依次存放于數(shù)組c中后,就從最高位至最低位,參照數(shù)組c[i]的內(nèi)容d(以其內(nèi)容為下標(biāo)),取十六進(jìn)制數(shù)字符表中的字符b[d]輸出。所以在第2個空框處可填入代碼[d]。
(16)若給fun函數(shù)的形參s傳送字符串:“]]6354abcc” (其中]表示空格字符),則函數(shù)的返回值是【19】。
#include
long fun(char s[])
{long n;int sign;
for(;isspace(*s);s++);
sign=(*s==′-′)?-1:1;
if(*s==′+′||*s==′-′)s++;
for(n=0;isdigit(*s);s++)n=10*n+(*s-′0′);
return sign*n;
}
解析: 函數(shù)fun的第一個for循環(huán)跳過字符串的前導(dǎo)空白符,接著判斷第一個非空白符是否是負(fù)號,若是則置變量sign為-1;否則,置變量sign為1。接著的if語句在第一個非空白字符是負(fù)號或正號時,跳過該字符。以后的for循環(huán)將后面的數(shù)字符當(dāng)作十進(jìn)制數(shù)的各位數(shù)字譯出一個長整數(shù)n。遇字符a時,結(jié)束循環(huán)。最后,函數(shù)返回sign與n的乘積。所以若調(diào)用函數(shù)時提供的實參是“∪∪6354abc”,函數(shù)返回值是6354。
(17)設(shè)有定義“struct {int a; float b; char c;} abc, *p_abc=&abc;”,則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【20】a。
解析: 若有結(jié)構(gòu)變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc . a和p_abc->a。
[NextPag選擇題e答案]
選擇題答案:
選擇題
01-05 B A B D D
06-10 D D A B C
11-15 D D A A A
16-20 C C A C D
21-25 B D A C D
26-30 D C D D B
31-35 C D B B A
36-40 B C B C C
41-45 D D D A C
46-50 A C B B A
相關(guān)推薦:2010年全國計算機(jī)等考二級C:程序設(shè)計實戰(zhàn)匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |