三.初识C语言(3)

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开始的。

        数组可以通过下标来访问。

例如:

数组arr各个下标所对应的值
int arr[10]0000000000
下标0123456789

③数组的使用

#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语句中的“其它情况”
dodo...while语句中使用到,表示先执行一次循环
double双精度浮点型
elseif语句中搭配使用,表示选择
enum枚举
extern声明外部符号或者函数
float单精度浮点型
forfor循环语句
goto代码中随处都可使用,表示跳到代码的某个位置
ifif选择语句
int整型
long长整型
return返回
short短整型
sizeof计算关键字的内存大小
switchswitch选择语句
void表示函数或者参数不需要返回
whilewhile循环语句
signed符号型
unsigned无符号型
auto后续章节讲解。
register后续章节讲解。
static后续章节讲解。
struct后续章节讲解。
typedef后续章节讲解。
union后续章节讲解。
volatile后续章节讲解。

        本部分内容先过过眼,具体的讲解要么在之前的章节中提到过,或者会在之后的章节中讲解。

7.结尾

        《初识C语言(3)》的内容到此就结束了,本章包括前两章内容以及后续的更新都在我的专栏《C语言学习》中,专栏是免费的,欢迎关注不迷路哦。

        最后,求求赞赞。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值