1.
#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 则输出为( )。