⚙️C语言环境配置:Windows配置C语言环境(超级详细)
本关任务:找出程序中的错误并修改,运行后得到正确结果。
为了完成本关任务,你需要掌握:
1. 头文件的引用
在 C 语言中,#include
是一条预处理指令,它的作用是将指定的头文件内容包含到当前的源文件中,使得当前源文件可以使用头文件中所声明的函数、宏定义、数据类型等各种元素。
"stdio.h"
是 C 语言标准输入输出头文件(Standard Input/Output Header)的简称,它里面包含了诸多与输入输出操作相关的函数声明、宏定义以及一些数据类型的定义等内容,为我们在程序中进行数据的输入和输出提供了必要的接口和支持。
字符集
标识符(变量名、函数名等)规则
my_variable
、_functionName
是合法的标识符,而3var
(以数字开头)、my - var
(包含非法字符 “-”)是非法的。myVariable
和myvariable
是两个不同的标识符。关键字(保留字)
int
(用于定义整数类型变量)、if
(条件判断语句)、while
(循环语句)、return
(从函数返回值)等。数据类型
int
)、浮点型(float
、double
)、字符型(char
)。int
通常占用 4 个字节,其取值范围根据编译器和机器位数有关。例如,在 32 位系统中,int
的取值范围是-2147483648
到2147483647
。float
一般占用 4 个字节,double
占用 8 个字节,double
比float
有更高的精度。char c = 'a';
,字符在内存中以 ASCII 码值存储。常量与变量
10
、字符常量'A'
、浮点常量3.14
等。还可以通过#define
预处理指令定义符号常量,如#define PI 3.14
,在程序编译前,所有出现PI
的地方都会被替换为3.14
。int a;
声明了一个整型变量a
,之后可以对其进行赋值操作,如a = 5;
。运算符和表达式
a + b
是一个算术表达式,a > 10 && b < 20
是一个逻辑表达式。运算符有优先级和结合性,例如,在算术运算中,先乘除后加减,相同优先级的运算符从左向右结合。语句和语句块
if (a > 10) {
b = 20;
c = 30;
}
这里{ b = 20; c = 30; }
就是一个语句块,当a > 10
条件成立时,语句块中的两条语句都会被执行。
a = 10;
是一条赋值语句。函数
int add(int a, int b) {
return a + b;
}
这个函数名为add
,它接受两个整型参数a
和b
,并返回它们的和。在其他地方可以调用这个函数,如int result = add(3, 5);
,就会得到返回值 8。
main
函数是程序的入口点。函数用于封装一段特定功能的代码,可以有参数和返回值。例如:根据提示,在右侧相应处修改程序,直到运行通过。
平台会对你编写的代码进行测试:
预期输出: c=15
开始你的任务吧,祝你成功!
//本程序存在错误,请按照提示在相应处修改程序,直到运行通过
#include <stdio.h>
/*请在下方插入“包含标准输入输出头文件”的命令*/
void main( )
{
int a,b,c;
a=10,b=5;
/*请修改下方语句*/
c=a+b;
/*请修改下方语句中的双引号*/
printf("c=%d\n",c);
}
本关任务:根据scanf函数格式,给出正确的输入。
为了完成本关任务,你需要掌握:
1. scanf 函数的格式
scanf
函数的基本格式是scanf("格式控制字符串", 地址列表);
。其中,“格式控制字符串” 是一个用双引号括起来的字符串,用于指定输入数据的格式;“地址列表” 是由一个或多个变量的地址组成的列表,用于存储输入的数据。%d
:用于读取十进制整数。例如,scanf("%d", &a);
可以将用户从键盘输入的十进制整数存储到变量a
中。%f
:用于读取单精度浮点数。如scanf("%f", &b);
能把输入的单精度浮点数存入变量b
。%lf
:用于读取双精度浮点数。对于双精度变量c
,可以使用scanf("%lf", &c);
来接收用户输入。%c
:用于读取单个字符。scanf("%c", &d);
会读取一个字符并存入变量d
。%s
:用于读取字符串。不过需要注意的是,scanf
函数读取字符串时,会以空格、制表符或换行符作为字符串的结束标志。例如,scanf("%s", str);
(假设str
是一个字符数组),当用户输入一个单词后按回车键,这个单词就会被存储到str
数组中。scanf("请输入一个整数: %d", &a);
,用户在输入数据时,必须先输入 “请输入一个整数:” 这些字符,然后再输入整数。不过这种情况在实际应用中可能会给用户带来不便,使用时需要谨慎。&
来获取变量的地址。例如,对于变量a
、b
和c
,scanf("%d %f %lf", &a, &b, &c);
就是将用户输入的整数、单精度浮点数和双精度浮点数分别存储到a
、b
和c
对应的内存地址中。如果忘记添加&
运算符,会导致程序出现错误,因为scanf
函数需要通过地址来修改变量的值。scanf
读取字符串时,不需要再添加&
运算符。例如,char str[100]; scanf("%s", str);
,str
已经是数组的首地址,scanf
函数会把读取到的字符串存储到从str
开始的内存空间中。2. printf函数的格式
printf
函数的基本格式是printf("格式控制字符串", 输出列表);
。其中,“格式控制字符串” 是用双引号括起来的字符串,它规定了输出数据的格式;“输出列表” 是需要输出的变量、常量或表达式等内容。%d
或%i
:用于输出十进制整数。例如,int a = 10; printf("%d", a);
会输出整数10
。%o
:用于输出八进制整数。若int b = 8; printf("%o", b);
,则输出10
(因为八进制下8
表示为10
)。%x
或%X
:用于输出十六进制整数。%x
输出小写字母表示的十六进制数,%X
输出大写字母表示的十六进制数。例如,int c = 15; printf("%x", c);
会输出f
,而printf("%X", c);
会输出F
。%u
:用于输出无符号十进制整数。假设unsigned int d = 5; printf("%u", d);
会输出5
。%f
:用于输出单精度浮点数。例如,float e = 3.14; printf("%f", e);
会输出3.140000
(默认保留六位小数)。%lf
:用于输出双精度浮点数,不过在printf
函数中,%f
和%lf
在输出时基本没有区别,因为printf
函数会根据默认的精度进行输出。例如,double f = 2.71828; printf("%lf", f);
会输出2.718280
。%e
或%E
:用于以指数形式输出浮点数。%e
输出的指数部分用小写字母e
表示,%E
用大写字母E
表示。例如,double g = 1234.56; printf("%e", g);
会输出1.234560e+03
。%c
:用于输出单个字符。例如,char h = 'A'; printf("%c", h);
会输出A
。%s
:用于输出字符串。假设char str[] = "Hello"; printf("%s", str);
会输出Hello
。printf("The number is %d", a);
,其中The number is
这些字符会直接输出,然后再输出变量a
的值。\n
用于换行,\t
用于制表符(横向跳格),\\
用于输出反斜杠\
本身等。如printf("Hello\nWorld");
会先输出Hello
,然后换行再输出World
。int a = 1, b = 2; printf("%d + %d = %d", a, b, a + b);
,这里的a
、b
和a + b
分别与格式控制字符串中的三个%d
相对应,会输出1 + 2 = 3
。根据提示,在左侧相应处修改程序,直到运行通过。
平台会对你编写的代码进行测试:
测试输入: 2.4 3.6 4.7
预期输出: area=4.237050
开始你的任务吧,祝你成功!
//本程序存在缺失语句,请补充完整使程序能正确运行
#include <stdio.h>
//要求添加包含数学函数的头文件,请在下面的指定位置补充代码
/*********begin*********/
#include<math.h>
/*********end**********/
void main( )
{
float a,b,c,s,area;
//要求用空格作为间隔符,输入三个数据分别赋给a,b,c三个变量,请在下面的指定位置补充代码
/*********begin*********/
scanf("%f",&a);
scanf("%f",&b);
scanf("%f",&c);
/*********end**********/
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f\n",area);
}