
⚙️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);
}