填空题 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、
【正确答案】 1、num1*10+*p-'0'
   num2*10+*p-'0'
   ch    
【答案解析】 首先,将运算符号前面的数字字符转化为对应的十进制数放入变量num1中。因此,空一处填“num1*10+*p-'0'”;再将运算符号后面的数字字符转换为十进制数放入变量num2中,因此,空二处填“num2*10+*p-'0'”;由程序可知,变量ch中存放运算符号,因此,空三处填“ch”。