首页 > 其他分享 >初阶C语言(01)—学习笔记

初阶C语言(01)—学习笔记

时间:2024-06-12 21:21:43浏览次数:10  
标签:语句 case 初阶 int C语言 break 01 printf else

if 语言

if 语句 其一

C语言被称为结构化的程序设计语言,包括顺序结构、选择结构(if switch)和循环结构(for while do while)。

因为今天要下雨,所以必须带伞。这就是一个简单的选择语句。例如:如果你的年龄大于18岁,那么输出成年。

#include<stdio.h>

int main()
{
	int age = 20;
	
	if (age > 18)
		printf("成年\n");
	return 0;
}

if 语句的格式如下

if (表达式)
	语句;

if 语句会让程序执行如下处理:

判断表达式的值,如果结果不等于0(即逻辑为真),则执行相应的语句。

括号内对条件进行判断的表达式称为控制表达式。

test: 奇数的判断

通过判断输入的整数能否被2整除,如果可以请输出“输入的数是奇数”。

#include<stdio.h>

int main()
{
	//初始化
	int n = 0;
	// 输入
	scanf("%d", &n);
	// 判断
	if (n % 2)
		//输出
		printf("输入的数是奇数\n");
	return 0;
}

if 语句 其二

执行选择语句:“如果你的年龄大于18岁,那么输出成年。”

当输入的年龄小于18岁时,不能输出任何信息,这样有可能会让使用者用起来不放心,因此,如果小于18岁,则输出“未成年”。

#include<stdio.h>

int main()
{
	//初始化
	int age = 20;
	// 输入
	scanf("%d", &age);
	// 判断和输出
	if (age >= 18)
		printf("成年");
	else
		printf("未成年");

	return 0;
}

if 语句的格式如下

if (表达式)
	语句1;
else
	语句2;

else是否则的意思。当表达式的值不等于0时,执行语句1;当表达式的值等于0时,执行语句2。

test: 奇数和偶数的判断

通过判断输入的整数能否被2整除,如果可以请输出“输入的数是奇数”;否则请输出“输入的数是偶数”。

#include<stdio.h>

int main()
{
	//初始化
	int n = 0;
	// 输入
	scanf("%d", &n);
	// 判断
	if (n % 2)
		//输出
		printf("输入的数是奇数\n");
	else
		printf("输入的数是偶数\n");
	return 0;
}

复合语句(代码块)

eg.,计算所输入的两个整数中的较大数和较小数

#include<stdio.h>

int main()
{
	//初始化
	int num1, num2,max,min;
	//输入
	scanf("%d %d", &num1, &num2);
	// 判断
	if (num1 > num2)
	{
		max = num1;
		min = num2;
	}
	else
	{
		max = num2;
		min = num1;
	}
	// 输出
	printf("较大的数是 %d\n",max);
	printf("较小的数是 %d\n",min);
	return 0;
}
if (num1 > num2)
{
	语句3;
	语句4;
}/语句块1
else
{
	语句1;
	语句2;
}//语句块2

形如语句块1和语句块2这样在大括号内并排上书写的语句被称为符合语句或者是程序块。在使用单一语句的位置,如果一定要使用多个语句,可以把他们组合成符合语句(代码块)来实现;否则可能会出现编译错误或达不到要求。

多分支语句

eg 对不同年龄阶段的称呼(左闭右开)

青少年(0~18),青年(18-28),中年(28-40),壮年(40-60),老年(60-100),老寿星(>=100)。代码如下

#include<stdio.h>

int main()
{
	int age = 10;
	// 输入
	scanf("%d", &age);
	//

	if (age < 18)
		printf("青少年\n");
	else if (age >= 18 && age < 28)
		printf("青年\n");
	else if (age >= 28 && age < 40)
		printf("中年\n");
	else if (age >= 40 && age < 60)
		printf("壮年\n");
	else if (age >= 60 && age < 100)
		printf("老年\n");
	else
		printf("老寿星");
	return 0;
}

多分支语句的结构如下

if (表达式1)
	语句1;
else if (表达式2)
	语句2;
else
	语句3;

当表达式1为真时执行语句1;当表达式2为真时执行语句2;当表达式1和表达式2都为0时执行语句3。

test 输出1-100之间的奇数

#include<stdio.h>

int main()
{
	int i = 1;
	while (i <= 100)
	{
		if (i % 2 == 1)
			printf("%d\n", i);
		i++;
	}
	return 0;
}

switch 语句

if ……else if……else if……else……的形式太过于复杂,那我们就得有不一样的语法形式,这就是swich语句,它的语法格式如下

switch(整型表达式)
{
	//语句项就是一些case语句:
	//如下:
	case 整型常量表达式:
		语句;	
}

switch 语句和 break语句

eg.,输出今天是星期几?

#include<stdio.h>

int main()
{
	int day = 0;
	//
	scanf("%d", &day);
	//
	switch (day)
	{
	case 1:
		printf("星期1");
		break;
	case 2:
		printf("星期2");
		break;
	case 3:
		printf("星期3");
		break;
	case 4:
		printf("星期4");
		break;
	case 5:
		printf("星期5");
		break;
	case 6:
		printf("星期6");
		break;
	case 7:
		printf("星期日");
		break;
	}
	return 0;
}

如“case 1:”这样用来表示程序跳转的标识称为标签(label)。

标签的值必须是常量,不可以是变量。另外,不允许多个标签为同一个值。程序跳转到该标签后,会按照顺序执行其后的语句。

当程序执行到break语句时,会跳出将它包围起来的switch语句。

#include<stdio.h>

int main()
{
	int day = 0;
	//
	scanf("%d", &day);
	//
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日");
		break;
	case 6:
	case 7:
		printf("休息日");
		break;
	}
	return 0;
}
  • 编程好习惯

    最后一个case的末尾加上break语句的话,就可以灵活的对case的增加或删除了。

注意通过单一表达式来控制的程序流程分支的时候,使用switch语句的效果通常要比使用if 语句的更好。

default子句

如果表达式的值和所有的case标签值都不匹配怎么办?

其实也没什么,结果就是所有的语句都被跳过而已。

程序并不会终止,也不会报错,因为这种情况在C语言下不认为是一个错误。

但是,如果你并不想忽略不匹配的所有标签的表达式的值应该怎么办呢?

你可以在语句块中增加一条default子句。代码如下:

#include<stdio.h>

int main()
{
	int day = 0;
	//
	scanf("%d", &day);
	//
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日");
		break;
	case 6:
	case 7:
		printf("休息日");
		break;
	default:
		printf("选择错误\n");
		break;
	}
	return 0;
}

注意default子句可以写在任何一个case标签出现的位置,但是每一个switch语句中只能出现一条default子句。

  • 编程好习惯

    每一个switch语句中都放一条default子句,甚至可以在后边再加一个break。

标签:语句,case,初阶,int,C语言,break,01,printf,else
From: https://www.cnblogs.com/DLChen/p/18244711

相关文章

  • 零基础非科班也能掌握的C语言知识21 编译链接(介于作者实力有限并且没有可以演示的过程
    编译链接1.翻译环境和运行环境2.翻译环境2.1编译2.1.1预处理(预编译)2.1.2编译2.1.3汇编2.2链接3.运行环境1.翻译环境和运行环境在ANSIC的任何⼀种实现中,存在两个不同的环境。编译环境运行环境2.翻译环境翻译环境由编译和链接两个大的过程组成的,而编译又可......
  • C语言指针介绍加练习
    #指针相关介绍定义    指针(Pointer),通常用于数据的间接访问,指针存储的是指向变量的首地址,16位平台就是2位,如果在32位平台,地址就是4个字节,如果实在64位平台,地址就是8个字节(1Byte=8bit),Int类型4Byte char类型1Byte这个是变量在内存中,分配的地址大小,在内存中一个By......
  • 2025秋招图像处理面试题01_LBP算法原理
    问题LBP是一种常见的特征描述算法,用来提取局部的纹理特征,其原理其实很简单,下面我们就来看看它是怎么一回事吧。LBP简介LBP(LocalBinaryPatterns,局部二值模式)是一种很简单但很高效的局部纹理特征描述算子,于1994年由T.Ojala,M.Pietikäinen和D.Harwood提出,经过后续的......
  • C语言王国——数组的旋转(轮转数组)三种解法
    一、题目给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]向右轮转2步:[6,7,1,2,3,4,5]向右轮转3步:[5,6,7,1,2,3,4]示例......
  • C语言字符串处理函数strstr的用法
    C语言字符串处理函数strstr的用法在C语言中,strstr函数是一个字符串处理函数,用于在一个字符串(称为“主字符串”)中查找另一个字符串(称为“子字符串”)的首次出现。如果找到子字符串,则该函数返回一个指向主字符串中子字符串首次出现位置的指针;如果没有找到,则返回NULL。函数的原型定......
  • 1018 锤子剪刀布-PAT乙级真题-极简代码-C++
    大家应该都会玩“锤子剪刀布”的游戏:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第1行给出正整数 N(≤105),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J......
  • Gitlab01-安装配置
    使用yum安装并配置GitLab安装#安装依赖工具sudoyuminstall-ycurlpolicycoreutils-pythonopenssh-server#启用SSH服务sudosystemctlenablesshdsudosystemctlstartsshd#安装邮件服务sudoyuminstallpostfixsudosystemctlenablepostfixsudosystemct......
  • c语言开发 php扩展 sm4
    首先php可以直接调用openssl直接进行sm4sm3的加密如:openssl_encrypt($plaintext,'sm4-cbc',$key,OPENSSL_RAW_DATA,$iv);openssl_digest('123','sm3')php如果直接调用sm2需要统一使用openssl的evp接口openssl1.1的源码在sm2_crypt文件里面此处只是学习/*gmteste......
  • windows server 2019 操作步骤和知识点(第一节)
    windowsserver1.1vmwareworkstation作用模拟硬件模拟操作系统步骤安装1模拟硬件文件新建虚拟机典型稍后安装操作系统Mcirosoftwindowswindows10X64win10-1d:/xujiji/win10-12模拟操作系统CD\DVD(SATA)使用ISO映像文件d:\iso\win10..........
  • MBR20100FCT-ASEMI肖特基二极管MBR20100FCT
    编辑:llMBR20100FCT-ASEMI肖特基二极管MBR20100FCT型号:MBR20100FCT品牌:ASEMI封装:TO-220最大平均正向电流(IF):20A最大循环峰值反向电压(VRRM):100V最大正向电压(VF):0.80V工作温度:-65°C~175°C芯片个数:2芯片尺寸:mil正向浪涌电流(IFMS):200AMBR20100FCT特性:低正向压降低功率损耗......