[花式编译 #1] 成为初级表达式大师
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
《编译原理》是一门非常有意思的课程。整门课程的关键任务在于:搞清楚编译器是如何实现的,并实现它。其中涉及了很多精妙的算法、有趣的设计和伟大的灵魂(e.g. Mr. Knuth) 。
我们也希望正在做题的你,也能在 OI 这方乱世中领略到一些编译器的美。当然,千里之行,始于足下。所以,我们的挑战,将会是以渐进式的方式来进行。
To be continued ... !
题目描述
本题是云斗【花式编译】系列题目的 #1 题。
本题的任务非常简单:输出给定程序的运行结果。如果将任务划分的更详细一点,那便是:识别出一些变量的值,并且计算出表达式的最终结果。
具体的,你会接收到形如以下格式的输入:
int main() {
    int a = 5 ;
    int b = 4 ;
    int c = 3 ;
    int d = 2 ;
    int e = 1 ;
    printTheRes(a * b + c - d / e) ; 
    return 0 ;
}
其中:
- 第一行 
int main(){用于声明主函数。保证大括号不会换行(谨遵教义)。 - 第  行,每行都是一个形如 
int x = [数字] ;的语句,用于定义变量。- 保证变量名 
x仅包含一个英文字母,且[数字]仅为个位数。 
 - 保证变量名 
 - 第  行,保证只有一个形如 
printTheRes(表达式);的输出语句。printTheRes()函数是一个默认预设函数,可以理解为是一个用于输出表达式结果的超级输出函数。代码中默认可以直接调用这个函数。- 具体用法可以通过如下例子说明: 
printTheRes(X)和cout << (X) << endl在语义上是等价的,其中 X 是符合题目要求的合法表达式。 
 - 第  行,保证只有一个合法的返回值语句,即 
return 0;。 - 第  行,保证只有一个 
}。 - 有关表达式的格式:
- 表达式中仅包含字母(变量名)和运算符。不包含数字或未预先定义的变量名。
 - 本题的测试数据中不会出现括号 
()或[]。 - 本题的测试数据中包含以下运算符: 
+,-,*,/,%,<,>,>=,<=,!=,==。 - 表达式的语法保证正确,即符合 C 语言的语法规则。
 
 - 最后,我们不能限制程序员的 coding 喜好,对吧?因此,本题的测试数据中,会存在一些不影响代码本身正确性的多余空格(但显然,不会有多余的空行)。这部分可能会对你的算法存在一定影响。也就是说,你需要为以下代码风格做好准备:
 
int main() {
    int a =         5 ;
    int      b       =        4 ;
    int c =      3       ;
    int d =      2 ;
    int        e = 1 ;
    printTheRes(a *             b + c - d /            e) ; 
    return 0 ;
}
给出的代码,保证在补足缺省函数实现的前提下,能够直接在 C 语言编译环境中正确运行。
输入输出格式
输入
输入包含多行字符串(一个 C 语言程序)。具体的输入格式参考【题目描述】中的解释。
输出
共一行 个数字,表示输入程序的运行结果。
样例
int main() {
    int a = 5 ;
    int b = 4 ;
    int c = 3 ;
    int d = 2 ;
    int e = 1 ;
    printTheRes(a     * b+c-d/e) ; 
    return 0 ;
}
21
int main() {
    int a = 5 ;
    int B = 4 ;
    int c = 3 ;
    int D = 2 ;
    int E = 1 ;
    int F = 0 ;
    printTheRes(a<=B>c+F-E%D*c-F!=B-a<c) ; 
    return 0 ;
}
1
数据范围
对于  的数据,保证只存在 +,- 两种运算符。
对于  的数据,保证只存在  +,-  ,*,/ ,% 五种运算符。
对于全部  的数据,保证全部赋值语句的右值只会是  的非负整数,保证全部的变量名均为单个英文字母,保证总代码长度不会超过 1.5 KB,保证只存在以下运算符:  +,-  ,*,/ ,% ,< ,> , >=,<=  ,!=,==。
注意:作为输入数据的 C 语言代码中,可能存在多余但不影响语义的空格。
[YDRS#008] 人团圆,梦也团圆 · 云斗六月 Silver Round
- 状态
 - 已结束
 - 规则
 - IOI(严格)
 - 题目
 - 5
 - 开始于
 - 2024-6-10 9:00
 - 结束于
 - 2024-6-10 20:00
 - 持续时间
 - 3.5 小时
 - 主持人
 - 参赛人数
 - 129
 
      
京公网安备 11011102002149号