前言
目前答案更新至 3.5。
可通过Gitee项目关注进度
从第二章第四节开始,编程练习均可以通过CCf中学生程序设计在线测评系统在线测试。网址:http://oj.noi.cn/
第1章 编程如此简单
1.1 程序设计概念
(1)略
(2)略
1.2 整数算术计算
(1)300公顷
-
求1台拖拉机1天耕地公顷数:$90 div 3 div 3= 10 ( 公顷 ) $
-
求5台拖拉机6天耕地公顷数:(10 imes 5 imes 6 = 300 ( 公顷 ))
-
列出综合算式: $ 90 div 3 div 3 imes 5 imes 6 = 300(公顷)$
程序:
#include <iostream> using namespace std; int main(){ cout<<"5台拖拉机6天能耕"; cout<<90/3/3*5*6<<"公顷地。"<<endl; return 0; }
(2)3次
- 求1辆车1次可以运送的钢材量:$ 100div 4 div 5 = 5(吨) $
- 求7辆车运送105吨钢材的次数: $ 105 div (5 imes 7)=3(次) $
- 列出综合算式: $ 105 div ((100 div 4 div 5) imes 7)=3(次)$
程序:
#include <iostream>
using namespace std;
int main(){
cout<<"7辆车运送105吨钢材需要";
cout<<105/((100/4/5)*7)<<"次"<<endl;
return 0;
}
(3) 去掉2根,每班7根
- 求每个班分到的绳子数:(58div 8 = 7 (根)... 2(根))
- 分到7根,余下两根
程序:
#include <iostream>
using namespace std;
int main(){
cout<<"每个班最少要去掉"<<58%7<<"根跳绳。"<<endl;
cout<<"每个班分到"<<57/7<<"根跳绳"<<endl;
return 0;
}
1.3 实数算术计算
(1)1.92元
- 求每只铅笔的价格:(0.6 div 5 = 0.12(元))
- 求16只铅笔的价格: $0.12 imes 16 =1.92(元) $
- 综合式子:(16 imes (0.6 div 5)=1.92(元))
程序:
#include <iostream>
using namespace std;
int main(){
cout<<"购买16只铅笔需要"<<(0.6/5)*16<<"元"<<endl;
return 0;
}
(2)904套
- 求原来需要的布的量:(3.2 imes 791 = 2531.2(m^2))
- 求改进后能做的量:(2531.2 div 2.8 = 904(套))
- 综合式子:(3.2 imes 791 div 2.8 = 904(套))
程序:
#include <iostream>
using namespace std;
int main(){
cout<<"现在可以做"<<3.2*791/2.8<<"套"<<endl;
return 0;
}
(3)8厘米
- 求出正方形的面积:(10 imes 8 - 16 = 64(m^2))
- 求出正方形的边长:(sqrt{64}=8(m))
- 综合式子:(sqrt{10 imes 8 - 16}=8(m))
程序:
#include <iostream>
#include <cmath>
using namespace std;
int main(){
cout<<"正方形瓷砖边长为"<<sqrt(10*8-16)<<"厘米"<<endl;
return 0;
}
第2章 数据的存储和读入
2.1 变量和变量的类型
(1)
变量名 | 是否合法 |
---|---|
3zh | 否,数字不能开头 |
ant | 是 |
_3cq | 是 |
my | 是 |
friend | 否,friend是友元函数关键字 |
Mycar | 是 |
my_car | 是 |
all | 是 |
55a | 否,数字不能开头 |
a_abc | 是 |
while | 否,while是循环关键字 |
daf-32 | 否,'-'不能构成变量名 |
x.13 | 否,'.'不能构成变量名 |
Var(3) | 否,括号不能构成变量名 |
maxn | 是 |
max&min | 否,'&'不能构成变量名 |
(2) 略
(3) 略
2.2 赋值语句和数学表达式
(1) C
(2)
(A)y=m*x+b
(B)m=(a+b+c)/(e*f)
(C)a=sqrt((x-3*y)*z)
(D)a=(2*x-y)/(x+y*y)
(E)m=(x-y*z)/(2/c)
(3) C、E
(4)
表达式 | 值 |
---|---|
++x | x=11 |
--x | x=9 |
y=x++ | y=10 ,x=11 |
y=--x | y=9,x=9 |
x++ | x=11 |
x-- | x=9 |
y=5*x++ | y=50,x=11 |
y=x--*2+3 | y=23,x=9 |
(5)
5-1
4 3 4
4 4 3
5-2
2 0
(6)
ceil(3.14)=4 floor(3.14)=3
4^3.0=64
sqrt(9)=3
(7)
#include <iostream>
#include <cmath>
using namespace std;
int main(){
cout<<"5年级分到"<<540/(120+150)*120<<"棵树苗"<<endl;
cout<<"6年级分到"<<540/(120+150)*150<<"棵树苗"<<endl;
return 0;
}
(8)略
2.3 数据类型转换
(1)
1-1
3 3
3 8
11 8
c=1
c=1.375
1-2
3129,65,65,65.2,A
(2)
#include <iostream>
#include <cmath>
using namespace std;
int main(){
char c;
cin>>c;
cout<<char('a'+'z'-c);
return 0;
}
(3) 略
2.4 变量的读入
(1)温度转换
(2)三角形
海伦公式
(3)猜数游戏
2.5 C语言中的scanf语句和printf语句
(1)
1-1
a=202
2*a=404
a=202
2323.343450
2323.34
2323.34
2323.34
1-2
1, 1,001,123,123 ,00123
2.6 顺序结构程序设计实例
(1)填充矩形
(2)存款收益
(3)捡石头
(4)计算余数
(5) 略
第3章 程序的选择执行
3.1 if语句和关系表达式
(1)
1-1
输入 | 输出 |
---|---|
5 5 | 5 |
5 6 | 6 |
6 5 | 5 |
1-2
输入 | 输出 |
---|---|
5 5 | 5 |
5 6 | Unequal |
6 5 | Unequal |
(2)
2-1
输入 | 输出 |
---|---|
5 7 | 0 |
7 6 | 2 |
2-2
输入 | 输出 |
---|---|
5 7 | 5 |
7 6 | 2 |
(3)水仙花数
3.2 逻辑表达式和条件表达式
(1)分配任务
(2)邮寄包裹
(3)正方形
(4)变换密码
3.3 嵌套if语句
(1)
程序段1
数据 | 输出 |
---|---|
x=3,y=2 | 无 |
x=2,y=3 | x=2 |
x=3,y=4 | z =7 |
x=2,y=2 | x=2 |
x=3,y=3 | z =6 |
程序段2
数据 | 输出 |
---|---|
x=3,y=2 | x=3 |
x=2,y=3 | 无 |
x=3,y=4 | z =7 |
x=2,y=2 | 无 |
x=3,y=3 | z =6 |
(2)识别三角形
(3)写评语
3.4 switch语句
(1)略
(2)星期几
(3)计算天数
(4)价格查询
3.5 分支结构程序设计实例
(1)打电话
(2)分段函数
(3)数字识别
(4)发放奖金
第4章 程序段的反复执行
4.1 for语句
(1)
1-1
1-2
1-3
1-4
(2)
编号 | 结果 |
---|---|
A | |
B | |
C |
(3)平均年龄
(4)最大跨度
(5)
(6)因子个数
(7)统计奖牌
(8)表演打分
(9)陶陶摘苹果