摘要:希賽網(wǎng)軟考頻道小編為大家整理了2019上半年軟考程序員下午真題第四部分,供大家參考。
4、閱讀以下說明和C代碼,填寫程序中的空(1) ~ (5),將解答寫入答題紙的對應(yīng)欄內(nèi)。
【說明】
下面程序運(yùn)行時(shí),對輸入的表達(dá)式進(jìn)行計(jì)算并輸出計(jì)算結(jié)果。設(shè)表達(dá)式由兩個(gè)整數(shù)和一個(gè)運(yùn)算符(+或-)構(gòu)成,整數(shù)和運(yùn)算符之間以空格分隔,運(yùn)算符可以出現(xiàn)在兩個(gè)整 數(shù)之前、之間或之后,整數(shù)不超過4位,輸入的兩個(gè)整數(shù)和運(yùn)算符都用字符串表示。
例如,輸入分別為“25+7”、“+25 7”、“25 7+”時(shí),輸出均為“25 + 7 = 32”。
問題內(nèi)容:
【C代碼】
#include<stdio.h>
int str2int(char *s); //將數(shù)字字符串轉(zhuǎn)換為整數(shù)
int isOperator(char *str); //判斷字符串的開頭字符是否為運(yùn)算符
void cal(char op, char a[ ], charb[ ]); //將數(shù)字串轉(zhuǎn)化為對應(yīng)整數(shù)后進(jìn)行op所要求的計(jì)算
void solve(char a[ ],char b[ ],char c[ ]);
int main ()
{
char a[10],b[10], c[10];
scanf(’’%s%s%s’’,a,b,c);
//輸入數(shù)據(jù)的有效性檢測略,下面假設(shè)輸入數(shù)據(jù)有效、正確
Solve(a,b,c);
Return0;
}
int str2int(char *s)
{
int val = 0;
while (*s) {
val = (1) + (*s - '0'); //將數(shù)字字符串轉(zhuǎn)換為十進(jìn)制整數(shù)
(2) ; //令字符指針指向下一個(gè)數(shù)字字符
}
return val;
}
int isOperator(char *str)
{
return (*str ==‘+’|| *str ==‘-’);
}
void cal( char op, char a[ ], char b[])
{
switch(op) {
case ‘+’:
printf(” %s + %s = %d”,a,b,str2int(a)+str2int(b));
break;
case‘-’
printf("%s - %s = %d ” ,a,b,str2int(a)-str2int(b));
break;
}
}
void solve(char a[ ],char b[ ],char c[ ])
{//解析輸入的3個(gè)字符串,輸出表達(dá)式及計(jì)算結(jié)果
if (isOperator(a)) { //運(yùn)算符在兩個(gè)整數(shù)之前
cal( (3) );
}
else if(isOperator(b)) { //運(yùn)算符在兩個(gè)整數(shù)之間
cal( (4) );
}
else { //運(yùn)算符在兩個(gè)整數(shù)之后
cal( (5) )
}
}
相關(guān)推薦:2019上半年程序員下午真題及答案
在線題庫:程序員歷年真題自測估分
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題