2019上半年軟考程序員下午真題(四)

程序員 責任編輯:胡媛 2019-05-29

添加老師微信

備考咨詢

加我微信

摘要:希賽網軟考頻道小編為大家整理了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上半年程序員下午真題及答案

在線題庫:程序員歷年真題自測估分

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

軟考備考資料免費領取

去領取

!
咨詢在線老師!