古詩詞大全網 - 經典古詩 - 計算機二級C語言題目,回答並解釋!謝謝

計算機二級C語言題目,回答並解釋!謝謝

#include <stdio.h>

#define MAXLEN 80

int main(void)

{

int k=0,number=0;

char str[MAXLEN];

while((str[k]=getchar())!='#')

k++;

str[k]='\0';

for(k=0;str[k];k++)

if(str[k]>='0'&&str[k]<='9'||str[k]=='A'||str[k]=='B')

if(str[k]>='0'&&str[k]<='9')

number=number*12+str[k]-'0';

else if(str[k]=='A'||str[k]=='B')

number=number*12+str[k]-'A'+10;

else ; /*第15行*/

else break; /*第16行*/

printf("%d\n",number);

return 0;

}

---- 分析如下 ----

第17題

程序輸入10#,

第壹步 number=0*12+1=1

第二步 number=1*12+0=12

第18題

程序輸入1a0#

第壹步 number=0*12+1=1

因為 a 不在 A 和 Z範圍內,所以跳出循環,此時number=1

第19題,程序修改第16行

程序輸入a*0#

因為a和*都不是 0到9,A 和 B 範圍內,所以不能進行計算 number 值

所以 number=0*12+0=0

第20題,程序刪除第15行,恢復第16行

這時的作用和第19題差不多,因為不會執行 else break;LZ自行分析

第壹步:num=0*12+1=1

第二步:num=1*12+6=18

第三步:num=18*12+0=216

LZ自己再好好思考下。。。