首页 > 其他分享 >三.初识C语言(3)

三.初识C语言(3)

时间:2024-08-06 19:55:39浏览次数:8  
标签:语句 章节 arr int 代码 C语言 初识 printf

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语言学习》中,专栏是免费的,欢迎关注不迷路哦。

        最后,求求赞赞。

标签:语句,章节,arr,int,代码,C语言,初识,printf
From: https://blog.csdn.net/Yu_Lijing/article/details/140884160

相关文章

  • 排序算法 堆排序 HeapSort -- C语言实现
    堆排序堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法:大顶堆:每个节点的值都大于或等于其子......
  • C语言:qsort详解
    在上一篇文章我们大致的了解了回调函数的用法和作用,在这一篇让我们来了解一下在回调函数qsort的使用吧。一.qsortqsort是一种用来排各种类型数据的函数,利用的是快速排序的方式。说到排序,我们就想到了之前学习的冒泡排序,但冒泡排序也有很明显的缺点:时间复杂度太高,效率慢,但qsor......
  • 排序算法 选择排序 SelectSort -- C语言实现
    选择排序描述选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n²)的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了。算法步骤首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻......
  • c语言11天笔记
    函数的概述函数:实现一定功能的,独立的代码模块。我们的函数一定是先定义,后使用。使用函数的优势:1.我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数,减少代码量。2.借助函数可以减少重复性的代码。3.实现结构化(模块化)程序设计思想:结构化程序设......
  • C语言开发1——C语言基础1——第一章
    本章目录一、什么是C语言(一)、自然语言(二)、C语言(三)、自然语言与C语言的区别二、计算机语言的发展历史三、C语言特点(一)、优点(二)、缺点四、环境搭建(一)、下载软件(二)、安装软件五、第一个C程序(一)、创建项目 (二)、创建文件(三)、编写代码(四)、运行程序六、注释(一)、作......
  • 排序算法 冒泡排序 BubbleSort -- C语言实现
    冒泡排序描述冒泡排序(BubbleSort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢......
  • C语言学习笔记 Day9(指针--上)
    Day9 内容梳理:目录Chapter7  指针7.0内存的概述7.1 基础知识(指针&指针变量)7.2指针7.3指针变量(1)野指针(2)空指针(3)万能指针void*(4)const修饰的指针变量Chapter7  指针7.0内存的概述存储器:计算机中用来存储程序和数据以便辅助CPU进行运算处理的组件......
  • 从零开始学嵌入式技术之C语言11:指针
    一:指针的理解(1)变量的访问方式        内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 ,为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元通常占用1个字节。变量在内存中分配空间,不同类型的变量占用不同大小的空间,那如何访问内......
  • Queue 队列 -- C语言实现 -
    队列队列的概念队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出的特点FIFO(FirstInFirstOut)入队:进行插入操作的一端称为队尾出队:进行删除操作的一端称为队头链实栈代码实现Ququq.h#pragmaonce#define_CRT_SECURE_NO_WARNI......
  • c语言(8.6)
    今天练习了几个小代码#include<stdio.h>voidorder(intarr[],intlen);intmain(){ intarr[]={3,5,2,1,4}; intlen=sizeof(arr)/sizeof(int); order(arr,len); for(inti=0;i<len;i++) { printf("%d\n",arr[i]); } return0;......