引言
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。它在编程语言中具有举足轻重的地位。
此文为【C语言必知必会】系列之第三篇,介绍C语言的顺序结构,结合专题优质题目,带领读者从0开始,深度掌握知识点。
C语言的顺序结构是指程序按照代码的书写顺序依次执行,从上到下逐行执行,没有跳过或重复执行的情况。 顺序结构是C语言中最基本的控制流程,也是程序默认的执行方式。
在顺序结构中,每一行代码都按照顺序执行,前面的代码执行完毕后才会执行后面的代码。
这种顺序执行的特性使得程序能够按照我们编写的逻辑顺序执行操作,逐步实现我们期望的功能。
顺序结构基本要素:输入、输出、赋值。
在正式开始顺序结构的代码实现之前,我们需要掌握C语句的分类。
C语句主要分为两类,声明语句和执行语句。
其中,执行语句又分为空语句
、复合语句
、控制语句
、表达式语句
等。各个语句也有不同的分支。
以下代码就是一个经典的C代码,其中声明语句与执行语句的结构十分清晰:
#include
int main( )
{
int a=23, b=77, sum; /*声明语句 , 变量定义*/
sum=a+b; /* 执行语句: 表达式, 赋值语句 */
printf("sum=%d\n", sum); /* 函数调用语句 */
return 0;
}
这个程序的作用是计算a与b的值。步骤如下: 首先,程序会打印出提示信息,等待用户输入两个整数。然后, 通过 scanf 函数将用户输入的值赋给 number1 和 number2 变量。接下来,两个数的和被计算并保存在 sum 变量中。最后, 通过 printf 函数将结果输出到屏幕上。
对于上面这个代码,为什么要有 #include、int main 呢?scanf、printf 的作用又是什么呢?
在C语言中,#include
是一个预处理指令,它告诉编译器包含了标准输入输出库(stdio.h)。stdio.h 包含了一些用于输入和输出的函数定义,如 printf
和 scanf
。
int main()
:这是C程序的入口函数,也就是程序的起点。所有的C程序都必须从这个函数开始执行。main()
函数返回一个整数值(通常为0),表示程序的退出状态。
int
:这是C语言的关键字,用于声明一个整型变量。上面的程序声明了一个整型变量a,并把23赋值给a
scanf("%d %d", &number1, &number2);
:这是一个输入函数,用于从用户处获取输入。scanf
函数按照指定的格式读取用户输入的数据,并将其存储到变量 number1
和 number2
中。
以下是 scanf 函数的基本语法:
scanf("格式化字符串", &变量列表);
在 scanf 函数的语法中,包含两个主要部分:
格式化字符串:指定输入的格式和变量的类型。
它由格式控制符组成,用于指定要读取的数据类型和对应的变量。
例如,%d 表示整数、%f 表示浮点数、%c 表示字符等。
变量列表:通过 & 操作符将要接收输入值的变量传递给 scanf 函数。
变量列表可以包含一个或多个变量,并且用逗号进行分隔。
printf("两个数的和为:%d", sum);
:这是一个输出函数,用于在屏幕上显示文本或计算结果。printf
函数可以根据指定的格式输出数据,其中 %d
表示要打印的整数。以下是 printf 函数的基本语法:
printf("格式化字符串", 表达式列表);
在 printf 函数的语法中,包含两个主要部分:
格式化字符串:指定输出的格式和变量的类型。
它由普通字符和格式控制符组成。
格式控制符以 % 开头,用于指定要输出的数据类型,并且可以包含一些修饰符来指定输出的格式。
例如,%d 表示输出整数、%f 表示输出浮点数、%c 表示输出字符等。
对于单精度浮点型或双精度浮点型,%.nf—显示指定的小数位数。
例如%.7f表示将输出的数控制为包含小数点后七位的数。
表达式列表:通过逗号分隔的表达式列表,提供要作为参数传递给 printf 函数的值。
这些表达式的值将替换格式化字符串中对应的格式控制符位置。
一个简单的输入输出函数是这样的:
#include
int main() {
int number1, number2, sum;
//声明3个整型变量
printf("请输入两个整数:");
//系统自动输出“请输入两个整数:”
scanf("%d %d", &number1, &number2);
//用户使用键盘输入两个整数
sum = number1 + number2;
//执行计算语句
printf("两个数的和为:%d\n", sum);
//系统输出sum的值
return 0;
}
综上所述,顺序结构是一种自上而下的编程方法,我们可以通过构建流程图,更好地实现代码的功能实现。
接着我们根据两个编程实例,进行实战讲解。
题目要求:求2个实型数除法运算的程序,结果保留2位小数.
解题步骤:
1.构建流程图
首先,定义三个double型的实数变量,其中两个做被除数和除数,剩下一个做输出数
然后,使用scanf输入两个实数
再计算两个数相除得到的得数
最后输出得数,保留两位小数
2.代码实现
首先 ,double x,y,z
然后 ,scanf(“%lf %lf”, &x, &y);
再 z=x/y;
最后 printf(“z=%.2f\n”, z);
3.添加预处理命令等,将代码格式化
#include
int main() {
double x, y, z;
printf("输入2个实数:");
scanf("%lf %lf", &x, &y);
z=x/y;
printf("z=%.2f\n", z);
return 0;
}
编译运行结果:
接着我们看下一题:
题目要求:分别输出1个3位正整数的3位数字
解题思路:题目的意思是说,假设一个数为123,我们需要使系统输出1,2和3
解题步骤:
1.构建流程图
2.代码实现
取余是除法中的术语,取余数是指整数除法中被除数未被除尽部分,且余数的取值范围为0到除数之间(不包括除数)的整数。
所以我们可以结合使用除号➗和取余号%实现题目要求
求个位上的数字:三位数%10 例如123%10=3
求十位上的数字:三位数除以10后再%10 例如(123/10)%10=12%10=2
求百位上的数字:三位数除以100 例如123/100=3
格式化代码:
#include
int main( )
{
int m, m0, m1, m2; /* m表示三位数, m0表示个, m1表示十, m2表示百*/
scanf("%d", &m); /* 输入一个三位数并赋值给m */
m0=m%10; //计算m0
m1=(m/10)%10; //计算m1
m2=m/100; //计算m2
printf("%d,%d,%d\n", m0, m1, m2); //分别输出m0,m1,m2
return 0;
}
编译运行结果:
此文为 【C语言必知必会】系列之第三篇 ,带领读者掌握C语言顺序结构,带领读者从0开始,深度掌握知识点。以题代练对于C语言的学习是十分重要的,所以专栏将提供优质C语言编程题,带领读者全方位掌握C语言。
后续将发布 【C语言必知必会】系列之第四篇:一文带你精通顺序结构,读者可订阅专栏持续跟进专栏更新。