1.选择语句
如果你好好学习,校招时拿一个好offer,走上人生巅峰。如果你不学习,毕业等于失业,回家卖红薯。
这就是选择。
图示如下。
选择语句关键字主要有if,switch。
①if语句
我们先以if语句举例,帮助我们有一个初步的了解。代码内容是输入一个学生的单科成绩,并输出分数所对应的SABC等级。
代码如下。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int score = 0;
scanf("%d",&score);
if (score >= 90 && score <= 100)
printf("S");
else if (score >= 80 && score < 90)
printf("A");
else if (score >= 70 && score < 80)
printf("C");
else if (score >= 60 && score < 70)
printf("D");
else
printf("E");
return 0;
}
运行后输入98,输出结果如下。
②switch语句
那么我们现在探讨一个问题,这个代码用switch语句进行编写可行吗?
答案是不行的,因为switch语句对于多条语句判定时不可以判定区间。
下面我们用switch语句输入上面代码的输出,并予以夸奖和鼓励。
代码如下。
int main() {
char grade = '0';
scanf("%c",&grade);
switch (grade) {
case 'S':
printf("你是最棒的,保持住。\n");
break;
case 'A':
printf("太棒了,继续加油。\n");
break;
case 'B':
printf("可以的,但还需要继续努力。\n");
break;
case 'C':
printf("别灰心,争取每天进步一点点。\n");
break;
case 'D':
printf("叫你家长来!!!\n");
break;
default:
printf("无效的成绩。\n");
}
return 0;
}
代码运行输出结果如下。
需要注意的是,case里如果没有break,那么代码会一直向下执行,错误代码和它的输出如下。
好了,关于选择语句先了解到这里,详细的知识会在之后的章节中讲解。
2.循环语句
在学习生活或工作中,有些是必须重复循环地去做,比如确定目标后每天坚持学C语言。
图示如下。
实现C语言循环的语句主要有以下3种:
- while语句——本章演示
- for语句——后续章节演示
- do......while语句——后续章节演示
while语句
我们用while语句演示一个C语言学习过程中代码量逐渐增加,最后足以获得一个好offer的过程。代码如下。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
printf("开始学习C语言\n");
int line = 0;
while (line <= 20000) {
line++;
printf("继续码代码\n");
}
printf("好offer\n");
return 0;
}
输出如下。
while可翻译为“只要”,只要满足“while”后括号里的条件,就不断循环,知道最后一次循环后发现不满足括号内条件则跳出循环。
在后续章节中还会具体讲解各个循环。
3.函数
函数就相当于一个工厂。
图示如下。
函数的有点在于使代码简化,代码能够被重复利用。我们用两段代码计算两个整数的和来演示这一效果,前一段代码不用函数,后一段代码使用函数。
代码1(不用函数)。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a = 0;
int b = 0;
while (scanf("%d %d", &a, &b) != EOF) {
printf("%d\n",a + b);
}
return 0;
}
代码2(使用函数)。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a = 0;
int b = 0;
while (scanf("%d %d", &a, &b) != EOF) {
add(a,b);
}
return 0;
}
int add(int x,int y) {
printf("两个数的和是%d\n",x + y);
return 0;
}
在第二段代码中,计算两个数的和时只需调用add()函数即可,简化了代码,而且可以重复利用add()函数。相当于写了一次函数,就可以永久使用这个函数。
另外在两段代码中都用到了这样一段代码。
while (scanf("%d %d", &a, &b) != EOF) {
}
这个代码中用到了scanf()函数,它是一个库函数,声明头文件后就可以直接调用。它会读取键盘中的输入,当没有读取到输入时,它就会返回EOF(end of file)。所以我们巧妙地运用这一点将键盘输入数据这一行为可以不断进行。
第二段代码的输出结果如下。
4.数组
要存储1~10的数字,就需要用到数组。
①数组的定义
定义:一组相同类型元素的集合。
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整型数组,最多放10个元素
②数组的下标
数组的每个元素都有一个下标,下标是从0开始的。
数组可以通过下标来访问。
例如:
int arr[10] | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
③数组的使用
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int arr[10] = { 0 };//存储10个元素,
//如果数组10个元素,下标的范围是0-9
int i = 0;
for(i = 0;i < 10;i++)
printf("%d\n",arr[i]);
printf("%x\n", arr);//数组名本身指的是数组的首地址
for (i = 0;i < 10;i++)
printf("%x\n", &arr[i]);
return 0;
}
输出结果如下。
需要注意:
- int arr[10] = { 1 }只把arr[0]初始化为1,其余未初始化的数默认为0,如果是int arr[10] = { 1,2 },那么就是arr[0]和arr[1]分别初始化为1和2,其余为0;
- 数组名本身指的是数组的首地址,也就是arr[0]的地址;
- 地址在计算机中用8位16进制数表示,输出16进制数用格式控制符"%x'或'%X'。
5.操作符
简单介绍为主,之后的章节重点讲。
算术 | + | - | * | / | % | |||||
移位 | >> | << | ||||||||
位 | & | ^ | | | |||||||
赋值 | = | += | -= | *= | /= | &= | ^= | |= | >>= | <<= |
单目 | ! | - | + | & | sizeof | ~ | -- | ++ | * | 强制类型转换(类型) |
关系 | > | >= | < | <= | != | == | ||||
逻辑 | && | || | ||||||||
条件 | exp1?exp2:exp3 | |||||||||
逗号表达式子 | exp1,exp2,exp3 | |||||||||
下标引用、函数调用和结构成员 | [] | () | . | -> |
这些操作符会在之后章节详细讲解,并且我们会在不断地使用中更加熟练,所以本章不具体讲解。
6.常见关键字
break | 跳出循环,终止代码块 |
case | 常与switch搭配使用,表示各个分支 |
char | 字符型 |
const | 声明常量 |
continue | 结束该循环或代码块后续执行,回到循环的初始位置 |
default | 默认的意思,switch语句中的“其它情况” |
do | do...while语句中使用到,表示先执行一次循环 |
double | 双精度浮点型 |
else | if语句中搭配使用,表示选择 |
enum | 枚举 |
extern | 声明外部符号或者函数 |
float | 单精度浮点型 |
for | for循环语句 |
goto | 代码中随处都可使用,表示跳到代码的某个位置 |
if | if选择语句 |
int | 整型 |
long | 长整型 |
return | 返回 |
short | 短整型 |
sizeof | 计算关键字的内存大小 |
switch | switch选择语句 |
void | 表示函数或者参数不需要返回 |
while | while循环语句 |
signed | 符号型 |
unsigned | 无符号型 |
auto | 后续章节讲解。 |
register | 后续章节讲解。 |
static | 后续章节讲解。 |
struct | 后续章节讲解。 |
typedef | 后续章节讲解。 |
union | 后续章节讲解。 |
volatile | 后续章节讲解。 |
本部分内容先过过眼,具体的讲解要么在之前的章节中提到过,或者会在之后的章节中讲解。
7.结尾
《初识C语言(3)》的内容到此就结束了,本章包括前两章内容以及后续的更新都在我的专栏《C语言学习》中,专栏是免费的,欢迎关注不迷路哦。
最后,求求赞赞。