免费智能真题库 > 历年试卷 > 程序员 > 2025年上半年 程序员 下午试卷 案例
  第1题      

 
【说明】
下面程序运行时,对输入的表达式进行计算并输出计算结果。设表达式由两个整数和一个运算符(+或-)构成,整数和运算符之间以空格分隔,运算符可以出现在两个整数之前、之间或之后,整数不超过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);
Return 0;
}
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));
}
}

 
问题:1.1   填写程序中的空(1)~ (5)。
 
 
 

   题号导航      2025年上半年 程序员 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
 
第1题    在手机中做本题