填空题 请补充main()函数,该函数的功能是:从键盘输入只有两个整数参与运算的一个四则运算式,然后计算出它的值。注意数字全部为正整数。
例如,输入30*28,结果为840.000000。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
void main()
{
int num1=0, num2=0, flag=1, fg=1;
float result;
char*p, ch;
char str[10];
system("CLS");
printf("/n Input a string/n");
gets(str);
p=str;
while(*p)
{
if(*p>="0"&&*p<="9"&&flag==1)
num1= 1;
else
if(fg)
{
ch=*p;
flag=2;
fg=0;
}
if(*p>="0"&&*p<="9"&&flag==2)
num2= 2;
p++;
}
switch( 3)
{
case"+": result=num1+num2; break;
case"-": result=num1-num2; break;
case"*": result=num1*num2; break;
case"/": result=(float)num1/num2; break;
}
printf("/nresult=%f", result);
}
【正确答案】
【答案解析】num1*10+*p-"0" num2*10+*p-"0" ch[解析] 首先将运算符号前面的数字字符转化为对应的十进制数放入变量num1中。因此,第一处填“num1*10+*p-"0"”;再将运算符号后面的数字字符转换为十进制数放入变量num2中,因此,第二处填“num2*10+*p-"0"”;由程序可知,变量ch中存放运算符号,因此,第三处填“ch”。