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