不是VIP会员,不能显示答案

题目解答

题目:
#include <bits/stdc++.h>

using namespace std;

int n,x,y;

char op,a[1000],b[1000];

int deal () {

switch(op) {

case '+':return x+y;

case '-':return x-y;

case '*':return x*y;

}

}

int main() {

scanf ("%d\n",&n) ;

while(n--) {

gets(a) ;

switch(a[0]) {

case 'a':op='+';sscanf(a+2, "%d%d", &x, &y);break;

case 'b':op='-';sscanf(a+2, "%d%d", &x, &y);break;

case 'c':op='*';sscanf(a+2, "%d%d", &x, &y);break;

default :sscanf (a, "%d%d",&x,&y) ;

}

sprintf(b, "%d%c%d=%d",x,op,y,deal());

puts(b);

printf("%d\n",strlen(b));

}

return 0;

}


假设输入一个整数n(1≤n≤50)。接着的n行为需要输入的算式,每行可能有三个数据或两个数据。若该行为三个数据则第一个数据表示运算类型,a表示加法运算,b表示减法运算,c表示乘法运算,接着的两个数据x,y表示参加运算的运算数。若下一行为两个数据x,y,则表示本题的运算类型与上一题的运算类型相同,而这两个数据为运算数。

数据保证第一个算式有三个数据。完成下面的判断题和选择题:



注:↓ 为回车符



判断题

1) sscanf与scanf 类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符数组为输入源。( )

2) 第13行scanf("%d\n",&n);改成scanf("%d" ,&n) ;程序运行结果不变。( )

3) 第15行gets(a) ;改成geline(cin,a);程序运行结果不变。( )

4) 第23行put(b);改成cout<<b;程序运行结果不变。( )




选择题

5) 若输入1↓d 64 64↓则输出为( )。

6) 若输入2↓a 64 46 则输出为( )。


考点:
分析:
解答:
评论:
老师: