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