【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
目录(~ ̄▽ ̄)~
⚙️C语言环境配置:Windows配置C语言环境(超级详细)
<第1关:程序改错>
任务描述
相关知识
1. 头文件的引用
2. 基本语法规则
编程要求
测试说明
我的通关代码:
测试结果:
<第2关:scanf 函数>
任务描述
相关知识
1. scanf 函数的格式
2. printf函数的格式
编程要求
测试说明
我的通关代码:
测试结果:
⚙️C语言环境配置:Windows配置C语言环境(超级详细)
<第1关:程序改错>
任务描述
本关任务:找出程序中的错误并修改,运行后得到正确结果。
相关知识
为了完成本关任务,你需要掌握:
- 头文件的引用
- 基本语法规则
1. 头文件的引用
- #include
在 C 语言中,
#include
是一条预处理指令,它的作用是将指定的头文件内容包含到当前的源文件中,使得当前源文件可以使用头文件中所声明的函数、宏定义、数据类型等各种元素。
- "stdio.h"
"stdio.h"
是 C 语言标准输入输出头文件(Standard Input/Output Header)的简称,它里面包含了诸多与输入输出操作相关的函数声明、宏定义以及一些数据类型的定义等内容,为我们在程序中进行数据的输入和输出提供了必要的接口和支持。
2. 基本语法规则
- 字符集
- C 语言程序是用字符集编写的,它主要使用 ASCII 字符集。包括字母(大小写英文字母 a - z、A - Z)、数字(0 - 9)和特殊字符(如 +、-、*、/、;、{、}、(、) 等)。这些字符用于构成变量名、关键字、运算符、标点符号等各种程序元素。
- 标识符(变量名、函数名等)规则
- 标识符是用来命名变量、函数、数组、结构体等程序实体的名称。
- 第一个字符必须是字母或下划线(_),后续字符可以是字母、数字或下划线。例如,
my_variable
、_functionName
是合法的标识符,而3var
(以数字开头)、my - var
(包含非法字符 “-”)是非法的。- C 语言区分大小写,所以
myVariable
和myvariable
是两个不同的标识符。- 关键字(保留字)
- C 语言有一些预先定义的关键字,这些关键字具有特定的含义,不能用作变量名等标识符。例如,
int
(用于定义整数类型变量)、if
(条件判断语句)、while
(循环语句)、return
(从函数返回值)等。- 数据类型
- C 语言有基本数据类型,如整型(
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;
。- 运算符和表达式
- C 语言有丰富的运算符,包括算术运算符(+、-、*、/、%)、关系运算符(>、<、==、>=、<=、!=)、逻辑运算符(&&、||、!)等。
- 表达式是由运算符和操作数组成的式子。例如,
a + b
是一个算术表达式,a > 10 && b < 20
是一个逻辑表达式。运算符有优先级和结合性,例如,在算术运算中,先乘除后加减,相同优先级的运算符从左向右结合。- 语句和语句块
这里if (a > 10) {b = 20;c = 30; }
{ b = 20; c = 30; }
就是一个语句块,当a > 10
条件成立时,语句块中的两条语句都会被执行。
- 语句是 C 语言程序的基本执行单元,以分号(;)结尾。例如,
a = 10;
是一条赋值语句。- 语句块是用花括号({ })括起来的一组语句,通常用于函数体、条件语句和循环语句中。例如:
- 函数
这个函数名为int add(int a, int b) {return a + b; }
add
,它接受两个整型参数a
和b
,并返回它们的和。在其他地方可以调用这个函数,如int result = add(3, 5);
,就会得到返回值 8。
- C 语言程序是由函数组成的,
main
函数是程序的入口点。函数用于封装一段特定功能的代码,可以有参数和返回值。例如:
编程要求
根据提示,在右侧相应处修改程序,直到运行通过。
测试说明
平台会对你编写的代码进行测试:
预期输出:
c=15
开始你的任务吧,祝你成功!
我的通关代码:
//本程序存在错误,请按照提示在相应处修改程序,直到运行通过
#include <stdio.h>
/*请在下方插入“包含标准输入输出头文件”的命令*/
void main( )
{
int a,b,c;
a=10,b=5;
/*请修改下方语句*/
c=a+b;
/*请修改下方语句中的双引号*/
printf("c=%d\n",c);
}
测试结果:
<第2关:scanf 函数>
任务描述
本关任务:根据scanf函数格式,给出正确的输入。
相关知识
为了完成本关任务,你需要掌握:
- scanf 函数的格式。
- printf函数的格式
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);
}
测试结果: