【例1.1】是一段程序,表达对大家的美好祝愿,即Good Luck!。
程序为什么要这样写?编程要遵循什么样的规则?这个程序编写后怎样让计算机运行呢?
提示: 在信息学奥赛中,比赛题目会清晰界定具体问题,参赛者需围绕这一问题,开展编程。
提示: 按照计算机语言所对应的规则,对所编写的程序进行解析的过程叫翻译。翻译可分为两种方式,一种叫解释,另一种叫编译。
提示: 按照计算机语言所对应的规则,对所编写的程序进行解析的过程叫翻译。 翻译可分为两种方式,一种叫解释,是计算机对程序的指令翻译一句执行一句的行为,Python、JavaScript、MATLAB等属于解释型语言;另一种叫编译,是计算机对程序的全部指令一次性全部翻译后,再让计算机执行的行为,C、C++、Go、Fortran、Rust等属于编译型语言。
这两种翻译方式哪个运行效率高?
这两种翻译方式各有什么优点?
提示:
头文件是程序对其他程序的引用。主函数是程序的入口,在C/C++中return 0表示程序正常结束。
提示: 关键字是被语言设计者预先保留的特殊单词,它们具有固定的语法含义,用于构建程序的基本结构和逻辑。
【例1.2】是一段程序,计算1 + 1的值,并把结果输出到屏幕。
修改【例1.2】,输出3 - 4的结果
修改【例1.2】,输出3 × 4的结果
修改【例1.2】,输出8 ÷ 4的结果
修改【例1.2】,输出8 MOD 5的结果
修改【例1.2】,输出8 ÷ 5的结果
| 运算符 | 含义 | 说明 | 例子 |
|---|---|---|---|
| + | |||
| - | |||
| * | 乘法 | 乘法运算 | |
| / | 除法 | 两个整数相除的结果是整数,去掉小数部分 | 8 / 5 = 1 |
| % | 模 | 模运算的结果符号取决于被除数的符号 | -8 % 5 = -3 8 % -5 = 3 |
提示: 上述运算符的优先级与数学中相同。
1 + 1的值【例1.2】是一段程序,计算1 + 1的值,并把结果输出到屏幕。
修改【例1.2】,输出3 - 4的结果
修改【例1.2】,输出3 × 4的结果
修改【例1.2】,输出8 ÷ 4的结果
修改【例1.2】,输出8 MOD 5的结果
修改【例1.2】,输出8 ÷ 5的结果
提示:
在C语言中,8 / 5的含义是8除以5所得商值的整数部分。
8 / 5的值,保留小数点后1位把%.1f中的数字1修改成2,结果如何?你能猜出1的意思吗?
把.1删除,只剩下%f,结果如何?%f的含义是什么?
%.1f不变,把8.0 / 5.0改成8/ 5,结果如何?
8.0 / 5.0不变,%.1f改成%d,结果如何
提示:
整数值用%d输出,实数用%.f输出。
现在计算的数据是事先定好的,可不可以让程序读取键盘输入,并根据输入内容计算结果呢?
【例1.3】从键盘输入两个整数,计算两个整数的和,并把结果输出到屏幕。
# include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", a + b);
return 0;
}提示:
scanf()中的占位符和变量的数据类型应该一一对应,并每个变量前应加&符号。
【例1.4】输入半径r,求圆的面积,保留3位小数。
输入:1
输出:3.142
提示:
尽量用const关键字声明常数字。
提示:
s = pi * r * r;的含义是先把等号右边的值计算出来,然后赋给左边的变量。变量是喜新厌旧的。
【例1.5】输入一个三位数,反转后输出。
输入:123
输出:321
分析问题。
确定已知和未知的取名和类型。
输入已知。
设计算法解决问题。
输出答案(未知)。
【例1.5】输入一个三位数,反转后输出。
1234,输出值是多少?为什么?520时,要求输出25,怎么办?提示:
printf的格式字符串中可以包含其他可打印符号,打印时原样输出。
【例1.5】输入一个三位数,反转后输出。
# include <bits/stdc++.h>
using namespace std;
int main()
{
int n, ans = 0;
scanf("%d", &n);
ans = n % 10 * 100 + n / 10 % 10 * 10 + n / 100;
// ans = n + 99 * (n % 10) - 99 * (n / 100);
printf("%d", ans);
return 0;
}提示: 注释的本质是
“代码的说明书”,它不影响程序运行。单行注释以//开头,从//到本行末尾的所有内容均为注释。
【例1.6】输入两个整数a和b,交换两者的值,然后输出。
输入:123 456
输出:456 123