目录😋
<第1关:print 函数操作>
任务描述
本关任务:编写程序实现在屏幕上显示以下结果:
I am a teacher! You are a student. We are learning C program Language!
相关知识
为了完成本关任务,你需要掌握:
- 如何使用 printf 函数进行输出
- 如何使用 printf 函数进行输出:
- 格式化输出函数 printf 的一般形式:
printf(“格式控制字符”,输出项列表);
“格式控制字符”必须用英文的双引号括起来, 它的作用是控制输出项的格式和输出一些信息。- “格式控制字符”由普通字符、 转义字符、 输出项格式说明 3 部分组成:
(1)普通字符, 在输出时原样输出, 主要用于输出提示信息。
(2)转义字符, 指明特定的操作, 如“ \ n”表示换行。
(3)格式说明部分, 由“%”和“格式字符串”组成, 它表示按规定的格式输出数据。
(提示:格式说明的形式为:%[标志][输出最小宽度][. 精度][长度]类型, 其中方括号[]中的项为可选项。)- 输出项列表
输出项列表中的数据项为表达式。输出项格式说明与输出项列表中的输出项按顺序依次对应, 且输出项的数据类型要与格式字符相容, 否则会导致执行出错。
例如: printf(“%d %d”, a, b);
编程要求
根据提示,在右侧编辑器补充代码,使用 printf 函数进行输出。
测试说明
平台会对你编写的代码进行测试:
预期输出:
I am a teacher!
You are a student.
We are learning C program Language!
开始你的任务吧,祝你成功!
我的通关代码:
#include "stdio.h"
int main()
{
//请在此增加代码
/************ begin ************/
printf("I am a teacher!\nYou are a student.\nWe are learning C program Language!");
/************* end *************/
return 0;
}
测试结果:
<第2关:转义字符使用>
任务描述
本关任务:编写程序实现在屏幕上显示以下结果:
① "\(^_^)/"
② ?*&\!_//\a@\\\t\n!//\\"_"/\\^!~zZ
相关知识
为了完成本关任务,你需要掌握:
- 特殊符号的输出
- 特殊符号的输出
反斜杠\,双引号 ",问号 ? 输出时,需要使用转义符才能正常输出,即 \\, \”和\?,还有百分号%的输出也是特殊的,因为在 printf 中 % 作为格式控制符,不会直接输出,若要输出,则需要写成 %%。
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
平台会对你编写的代码进行测试:
预期输出:
"\(^_^)/"
?*&\!_//\a@\\\t\n!//\\"_"/\\^!~zZ
开始你的任务吧,祝你成功!
我的通关代码:
#include "stdio.h"
int main()
{
//请在此增加代码
/************ begin ************/
printf("\"\(^_^)/\"\n?*&\!_//\a@\\\\\t\n!//\\\\\"_\"/\\\\^!~zZ");
/************* end *************/
return 0;
}
测试结果:
<第3关:数的向上取整>
任务描述
在 C 语言中,操作数为 int 类型的数据进行除法运算时,其结果默认向零取整,但是在应用中可能也需要用到向上取整,请通过编程实现指定运算结果的向上取整。
本关任务:补充下面程序的空格,实现功能如下:
输入:两个正整数 a,b(1≤a,b≤106),a 是被除数,b 是除数。
输出:a 除以 b 结果向上取整所得到的整数。
相关知识
为了完成本关任务,你需要掌握:
- 算术运算符
- 算术表达式
- 算术运算符
C 语言基本的算术运算符共有 5 种: +(加)、 -(减)、 ∗ (乘)、 / (除)、% (取余, 模运算)。
- 算术表达式
(1)算术表达式定义。
用算术运算符和括号将运算对象(也称操作数)连接起来, 符合 C 语言规则的式子, 称为算术表达式。 运算对象包括常量、 变量、 函数等。 例如:
a∗ b+c/d
46+2∗ PI∗ R
a∗ sin(x)+b∗ cos(x)
都是合法的算术表达式。
(2)运算符的优先级与结合性。
和数学上一样, C 语言的算术表达式运算时, 运算符是有优先级高低之分的, 遵循的原则是“先乘除, 后加减”。 “∗ 、 / 、%”为同一级别, “+、 -”为同一级别。 “∗ 、 / 、%”优先级高于“+、 -”。
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
平台会对你编写的代码进行测试:
输入:
两个正整数 i,j(1≤i,j≤106),i 是被除数,j 是除数。
输出:
i 除以 j 结果向上取整所得到的整数。
测试输入:
3 2
预期输出:
2
测试输入:
7 3
预期输出:
3
测试输入:
20 4
预期输出:
5
开始你的任务吧,祝你成功!
我的通关代码:
#include <stdio.h>
#include <math.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);
//请在此增加代码
/************ begin ************/
int result = ceil((double)a / (double)b);
printf("%d\n", result);
/************* end *************/
return 0;
}
测试结果:
<第4关:计算预期收益>
任务描述
本关任务:用资本 a 元参加一笔交易,已知交易的回报率为 c%,总收益s=资本×(1+回报率),请你设计程序计算预期的总收益 s。
相关知识
要注意任务收益公式中的回报率为c%,可以通过 c/100 或者 c*0.01实现。
例题
控制输出格式:
double radius=5; printf("Radius = %6.2f\n", radius); #结果为 " 5.00 " printf("Radius = %.2f\n\n", radius); #结果为 "5.00 "
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
平台会对你编写的代码进行测试:
输入:一行,两个数 a 和 c ,以一个空格隔开。( a 和 c 为正数,可以为小数)
输出:输出一行,s 的值,保留 2 位小数。
测试输入:
100,2;
预期输出:
102.00
测试输入:
200,4;
预期输出:
208.00
开始你的任务吧,祝你成功!
我的通关代码:
#include <stdio.h>
int main()
{
double a, c, s;
scanf("%lf,%lf", &a, &c);
//请在此增加代码
/************ begin ************/
s = (c>3)?8:2;
printf("%.2f",a+s);
/************* end *************/
return 0;
}
测试结果:
<第5关:强制类型转换>
任务描述
本关任务:输入并运行以下程序,分析程序运行结果。
#include <stdio.h> int main( ) { int a, c; float b; a=14,b=144.345; c=a+(int)b; printf(“%d+%f=%d”,a,b,c); return 0; }
相关知识
为了完成本关任务,你需要掌握:
- 强制类型转换。
- 强制类型转换
在数据类型关键字左右加括号,表示强制类型转换,如“(int)b;”语句,是将浮点数 144.345的整数部分取出并参与运算,变量 b 本身的值并不会改变。
编程要求
根据任务提示,在右侧编辑器补充代码,并记录程序结果。
测试说明
平台会对你编写的代码进行测试:
预期输出:
14+144.345001=158
开始你的任务吧,祝你成功!
我的通关代码:
#include <stdio.h>
int main( )
{
int a, c;
float b;
a = 14;
b = 144.345;
c = a + (int)b;
printf("%d+%f=%d", a, b, c);
return 0;
}
测试结果:
<第6关:printf 函数操作 2>
任务描述
本关任务:输入并运行以下程序,分析程序运行结果。
#include <stdio.h> int main( ) { int a=7,b=2; float y1,y2; y1=a/b; y2=(float)a/b; printf(“y1=%f,y2=%f”,y1,y2); return 0; }
分析并回答下面两个问题:
(1)y1 和 y2 的值是否相同?
(2)如果要保留两位小数位,要如何修改以上程序?
相关知识
为了完成本关任务,你需要掌握:
- printf() 函数。
- printf() 函数详情见第1关
编程要求
根据任务要求,在右侧编辑器补充代码,记录程序运行结果。
测试说明
平台会对你编写的代码进行测试:
预期输出:
y1=3.00,y2=3.50
开始你的任务吧,祝你成功!
我的通关代码:
//运行此程序,记录结果。
#include <stdio.h>
int main( )
{
int a=7,b=2;
float y1,y2;
y1=a/b;
y2=(float)a/b;
printf("y1=%.2f,y2=%.2f",y1,y2);
return 0;
}
测试结果:
<第7关:表达式应用>
任务描述
本关任务:编程实现:定义 4 个整型变量 a,b,c,d,将 a,b 中的较小者赋给 c,将 a,b 中的较大者赋给 d,输出 c,d 的值。
相关知识
为了完成本关任务,你需要掌握:
- 关系运算符和关系表达式
- 分支结构
- 关系运算符
C 语言提供 6 个关系运算符:
注意事项:
(1)6 个关系运算符都是双目运算符, 其结合方向均为自左向右结合。
(2)关系运算符的优先级低于算术运算符, 高于赋值运算符。
- 分支结构
双分支选择语句为 if-else, 其一般形式为:当表达式的值为非 0, 则执行语句 1; 当表达式的值为 0, 则执行语句 2。if(表达式) 语句 1 else 语句 2
编程要求
根据提示,在右侧编辑器补充代码,计算并输出结果。
测试说明
平台会对你编写的代码进行测试:
测试输入:
100,2
预期输出:
c=2,d=100
测试输入:
4,20
预期输出:
c=4,d=20
开始你的任务吧,祝你成功!
我的通关代码:
#include "stdio.h"
int main()
{
int a,b,c,d;
//请在此增加代码
/************ begin ************/
scanf("%d%d",&a,&b);
c = (a > 50)?2:4;
d = (a < 50)?20:100;
printf("c=%d,d=%d",c,d);
/************* end *************/
return 0;
}