C语言学习笔记---初始C语言005

news2024/11/18 7:40:01

C语言程序设计笔记---005

  • 初识C语言三大结构语句+函数+数组+操作符
    • 1、初识C语言三个结构
    • 2、初识函数
    • 3、初识一维数组
    • 4、初识C语言操作符
      • 4.1、算数操作符例程
      • 4.2、赋值操作符例程
      • 4.3、关系操作符例程
      • 4.4、复合操作符例程
      • 4.5、单目操作符例程
      • 4.6、条件操作符例程
      • 4.7、逻辑操作符例程
      • 4.8、位操作符例程
      • 4.9、逗号运算符例程

初识C语言三大结构语句+函数+数组+操作符

/知识点汇总/

1、初识C语言三个结构

(1)自上而下顺序执行语句序列(顺序结构);
(2)通过测试,选择执行哪一个语句序列(分支/选择结构);
(3)如果满足某些条件就重复执行语句序列(循环结构);
生活中的场景或事件,都可以由三大结构抽象描述
1.1、初识选择结构
选择结构常用关键字:if、else、switch、case、continue、break、default、goto
1.1选择结构代码例程:

/*例程1.1*/
#include <stdio.h>
int main()
{
	int num;
	printf("今天有努力学习吗?\n");
	printf("输入1表示YES,输入其他表示NO\n");
	scanf("%d", &num);
	if (num == 1) 
		printf("有努力学习\n");
	else 
		printf("没有努力学习\n");
	return 0;
}

1.2、初识循环结构:
循环结构常用关键字:while循环、do while循环、for循环
1.2 循环结构代码例程:

/*例程1.1*/
#include <stdio.h>
int main()
{
	printf("今天代码写了多少行:\n");
	int line = 0;
	while (line < 1000)
	{
		printf("今天代码写了的行数:%d\n",line);
		line++;
	}
	//此时最后依次执行line = 1000 比较条件line < 1000 不满足所以跳出循环语句
	if (line == 1000)
		printf("完成今日学习!!!\n");
	return 0;
}

2、初识函数

(1)前言:数学中有,f(x) = ax + b f(x,y) = x+y
当然在C语言中:同样可以实现
(2)概念:语言函数是一种函数,用来编译C语言,一般包括字符库函数,数学函数,目录函数,进程函数,诊断函数,操作函数等,即:函数理解为描述的是一种关系

2.1、函数代码例程

/*例程2.1*/
#include <stdio.h>
//封装一个含参的加法函数add()  其中add为用户自定义函数名
add(int x,int y)
{
	int sum3 = x + y;
	return sum3;

}
int main()
{
	int a = 0;
	int b = 0;
	printf("请输入两个整数:\n");
	scanf("%d%d",&a,&b);
	int sum = a + b;
	printf("a=%d\nb=%d\nsum=%d\n", a, b,sum);
	//以函数的形式实现
	int sum2 = add(a, b);//调用add()函数
	printf("a=%d\nb=%d\nsum2=%d\n", a, b, sum2);
	return 0;
}

小结
一个工程中,可以有多个.c文件,但是多个.c文件中只能有一个main函数,函数的功能就是简化程序,方便调用。

3、初识一维数组

规范:
(1)一维数组—一组相同类型的元素集合
(2)数组名字符合标识符的书写规定(数字、英文字母、下划线) 。数字不可开头
(3)数组名不能与其它变量名相同 。
(4)方括号[]中常量表达式表示数组元素的个数 。
(5)数组是由下标进行访问,且下标从0开始,依次递增
如:a[3] 包含 a[0], a[1], a[2] 三个元素 //0, 1, 2分别表示其元素下标
(6)一维字符数组初始化三种情况
a、当字符个数少于数组空间大小时:
char ch[5] = {‘a’,‘b’,‘c’};//下标的数>元素的个数时,称为不完全初始化,其余元素默认为0
b、当字符个数等于数组空间大小时:
char ch[] = {‘a’,‘b’,‘c’,‘d’,‘e’};//下标可以不写,可直接写全元素,称为数组初始化
c、当字符个数多于空间大小时:
我们在初始化的时候,当字符个数多于空间大小时,编译时报错。
(7)一维字符数组赋值方式:
a、1)逐个字符赋值:char a[8] = {‘h’,‘e’,‘l’,‘l’,‘o’} ; //始值个数5小于数组a空间个数8
b、字符串初始化赋值:char a[15] = {“Hello World”}; //注意该数组的大小<小标个数

3.1、一维数组代码例程

/*例程3.1*/
#include <stdio.h>
int main()
{
	int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	int i = 0;
	while (i < 10)
	{
		printf("%d\n",arr[i]);
		i++;
	}
	return 0;
}

4、初识C语言操作符

(1)概念:操作符就是说明特定操作的符号,它是构造C语言表达式的工具
(2)常见的三大类:算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符等。

4.1、算数操作符例程

算术操作符:+,-,*,/,%
注意
a、% 操作符不能用于浮点数,只能作用于整数,如果作用于浮点数将会报错。
b、当/ 两边的操作都是整数,执行的就是整数除法
c、 当/ 两边的操作数有一个数为浮点数的话,执行的是浮点数除法

/*例程4.1*/
#include <stdio.h>
int main()
{
	int a = 9 / 2;
	int b = 10 % 3; //求10 % 3的余数/模,得出的余数是1
	//% 操作符不能用于浮点数,只能作用于整数,如果作用于浮点数将会报错。
	printf("%d\n", a);
	printf("%d\n", b);
	return 0;
}

4.2、赋值操作符例程

赋值操作符:=
注意:区分赋值运算符 = 与关系运算符 ==

/*例程4.2*/
#include <stdio.h>
int main()
{
	int a = 10;
	printf("%d\n", a);
	return 0;
}

4.3、关系操作符例程

关系操作符:>,>=,<,<=,!= ,==

/*例程4.3*/
#include <stdio.h>
int main()
{
	int num;
	printf("今天有努力学习吗?\n");
	printf("输入1表示YES,输入其他表示NO\n");
	scanf("%d", &num);
	if (num == 1) 
		printf("有努力学习\n");
	else 
		printf("没有努力学习\n");
	return 0;
}

4.4、复合操作符例程

复合操作符:+=,-=,*=,/=,%=,>>=,<<=,&=,|=,^=

/*例程4.4*/
#include <stdio.h>
int main()
{
	int x= 10;
    x+=10;  // 可以写成这样,等价于x= x + 10;
    //其他的运算符同理的操作
    printf("%d",x);//20
	return 0;
}

4.5、单目操作符例程

单目操作符表:

单目操作符类型说明
逻辑反操作符
-负值
+正值
&取地址
sizeof查询对象或类型的大小
~对一个数的二进制位 按位取反
前置、后置减减
++前置、后置加加
*间接访问操作符(解引用操作符)
(数据类型)强制类型转换

注意:(1)sizeof 是一个关键字,可以用来求一个变量或类型所占内存空间的大小(单位:字节)。
(2)++在前先加后用,++在后先用后加;–同理
注意
强制类型转换:()是括数据类型
int a= (int)3.14; 把3.14强制转换成int型
printf(“%d\n”,a); //a的结果为3。
a、double(大)—>int(小) 可能会丢失数据,报错
b、int(小)–>double(大) 满足条件

/*例程4.5*/
#include <stdio.h>
int main()
{
	int a = 10;
	printf("%d\n", sizeof(a));   //计算a所占内存空间的大小为4个字节
	printf("%d\n", sizeof(int)); //计算int类型为4个字节
 
	int arr[5] = { 1,2,3,4,5};
	printf("%d\n", sizeof(arr));  // 数组名 arr 单独放在sizeof代表的是整个数组,
								  //因为arr数组是int型且里面有5个元素,
                                  //int型大小是4个字节,所以总大小为20个字节
    return 0;
}

4.6、条件操作符例程

条件操作符(唯一的三目运算符):表达式1 ? 表达式2:表达式3

/*例程4.6*/
#include <stdio.h>
int main()
{
	int a = 5;
	int b = 8;
	int max = (a > b ? a : b);	//a如果大于b的话会把a赋值给max,如果a不大于b 的话则会把b赋值给max
	printf("%d\n", max);
	return 0;
}

4.7、逻辑操作符例程

逻辑操作符:&& 逻辑与(可以理解成:并且、与的意思)
|| 逻辑或(可以理解成:或 的意思)

/*例程4.7*/
#include <stdio.h>
int main()
{
	int age = 0;
    scanf("%d", &age);
	if (age> 0  && age <18)  //可以这样理解:age > 0 并且 age <18 两个条件同时为真才会打印未成                
    {                        //年,其中只要有一个条件不为真就不会执行该语句
	
		printf("未成年\n");
	}
	return 0;
}

4.8、位操作符例程

位操作符表:

位操作符类型运算规则
& 按位与有0为0,全1为1
按位或有1为1,全0为0
^按位异或相同为0,不同为1
~ 按位取反1变为0,0变为1
& 按位与有0为0,全1为1
<<按位左移扩大2的多少倍
>> 按位右移缩小2的多少倍

注意
(1)左移操作符规则:左边抛弃,右边补0
(2)右移操作符可以分为:
a、算术右移 (右边丢弃,左边补原来的符号位数)
b、逻辑右移 (右边丢弃,左边不用考虑符号位数,直接用0补充)具体算术右移还是 逻辑右移,取决于编译器,我们常见的编译器大多都是算术右移
注意
(1)移位操作符的操作数只能是整数,不能是浮点数。
(2)<< 左移操作符技巧:左移n位扩大2的多少(n)倍,向右补0,左移n位就*2^n
(3)>> 右移操作符技巧:有移n位缩小2的多少(n)倍,当为正整数或无符号整数时,向左(高位)补0,;当为负整数时,高位补1;右移n位就/2^n
(4)知识点:正码,反码,补码
在这里插入图片描述

/*例程4.8*/
#include <stdio.h>
int main()
{
	int a = 9 / 2;//a=4
	int c = a << 1;
	printf("%d\n", c);//c=8
	return 0;
}

4.9、逗号运算符例程

(1)逗号操作符:表达式1 , 表达式2,表达式3
(2)逗号操作符两种执行形式:
a、int a = (1,2,3);
//逗号操作符遇带括号时,结果为最右边的数值3
b、int a = 1,2,3;
//逗号操作符遇不带括号时,结果为最左边的数值1

/*例程4.9*/
#include <stdio.h>
int main()
{
	int a =(1,2,3);
	int b = 1,2,3;
	printf("%d\n", a);//3
	printf("%d\n", b);//1
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/694895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

222. 完全二叉树的节点个数

题目描述&#xff1a; 主要思路&#xff1a; 利用二分答案的思想进行求解。 首先遍历到最底下的最左结点&#xff0c;然后可以得到一个答案范围&#xff0c;然后二分求解验证即可。 具体细节见代码。 /*** Definition for a binary tree node.* struct TreeNode {* int v…

工程安全监测无线振弦采集仪在建筑物的应用

工程安全监测无线振弦采集仪在建筑物的应用 工程安全监测无线振弦采集仪是一种先进的监测设备&#xff0c;可以在建筑物、桥梁、隧道、大坝等工程施工或运营中进行振动监测和安全评估。其在建筑物的应用主要是针对建筑物结构的振动和变形进行监测和分析&#xff0c;以确保建筑…

java抽象类中的静态方法

Java的抽象类中可以包含静态方法&#xff0c;即类方法。尽管抽象类不能实例化&#xff0c;但抽象类中的静态方法是可以用抽象类直接调用的。 下面的代码示例定义了一个抽象类AbstractDemo &#xff0c;其中包含一个抽象方法method&#xff0c;一个public静态方法showMessage。…

人工智能系统架构-应用架构

一、架构图 上图架构一个C/S架构 智能终端&#xff08;C&#xff09;包括智能音箱、人脸识别、人脸支付等应用和智能操作系统。 人工智能大脑&#xff08;S&#xff09;构成包括智能云平台、大数据平台&#xff0c;机器学习、深度学习&#xff0c;语音识别模型、图像识别模型和…

CentOS 设置系统字符集,显示为中文

环境&#xff1a; centos 背景&#xff1a; 使用vim打开含有中文的文件&#xff0c;中文显示为乱码。 1、 查看系统当前所用的字符集 locale 2、 安装字符集 查看系统当前安装的所有字符集中有没有 zh_CN.utf8 字符集 locale -a |grep zh_CN.utf8 假如没有&#xff0…

Linux 内存清理

1.查看内存使用情况 free -h 2.内存清理命令 清理PageCache缓存 sudo sync && echo 1 > /proc/sys/vm/drop_caches 清理dentries和inodes缓存 sudo sync && echo 2 > /proc/sys/vm/drop_caches 清理PageCache、dentries和inodes缓存 sudo sync &…

Sentieon | 每周文献-Tumor Sequencing-第三期

肿瘤测序系列文章-1 标题&#xff08;英文&#xff09;&#xff1a;The relationship between genetic characteristics and clinical characteristics and the efficacy of 131 I therapy in children and adolescents with locally advanced or metastatic differentiated th…

栈的简介与实现(Java)

一、简介 栈 (Stack) 只允许在有序的线性数据集合的一端&#xff08;称为栈顶 top&#xff09;进行加入数据&#xff08;push&#xff09;和移除数据&#xff08;pop&#xff09;。因而按照 后进先出 一般作用于深度搜索 假设堆栈中有n个元素。 访问&#xff1a;O&#xff08…

一文学会Python安装和基础语法-全程干货

安装Python程序 官网Python下载地址&#xff1a;Python Releases for Windows | Python.org 安装3.7版本即可&#xff0c;版本升级可能会有较小的改动&#xff0c;下面要学习的都以python3.7为例 下载安装包之后直接双击无脑安装即可 新手经常遇到的问题&#xff1a; 1.符号…

基于VUE框架的旅游平台-计算机毕设 附源码82070

基于VUE框架的旅游平台 摘 要 改革开放以来&#xff0c;我国的旅游业有了非常迅速的发展&#xff0c;但是比较而言&#xff0c;我国国内旅游业发展的广度深度都远远不能适应经济发展和人民生活水平提高的需要。随着市场经济的发展和人民收入水平的进一步提高&#xff0c;人民对…

『Vue组件』全局注册与局部注册及组件命名

一、组件注册的方式 在Vue中组件的注册一般可以分为两种方式&#xff0c;你可以在main.ts或globalComponents.ts等统一管理文件中对公共组件进行注册。也可以在父组件中引入组件并在components属性中对组件进行按需注册&#xff08;OptionsAPI&#xff09;&#xff0c;这样便可…

漏洞复现 飞视美 视频会议系统 Struts2 远程命令执行漏洞

0x01 阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&…

Grafana任意文件读取漏洞(CVE-2021-43798)

Grafana任意文件读取漏洞&#xff08;CVE-2021-43798&#xff09; 一、漏洞描述 Grafana是一个跨平台、开源的数据可视化网络应用程序平台。用户配置连接的数据源之后&#xff0c;Grafana可以在网络浏览器里显示数据图表和警告。 二、漏洞影响范围 影响版本&#xff1a; Gr…

antv-g6—在vue项目中实现网格拓扑流程图自定义绘制

实现效果图 这个是自己写着玩的&#xff0c;利用antv/g6自定义绘制流程图&#xff0c;然后保存到localstorage中&#xff0c;在左侧表格展示&#xff0c;还可以通过表格操作来查看对应的流程图以及删除&#xff1b; 这里特别注意一下&#xff0c;antv/g6版本是1.2.8&#xff0…

ModaHub魔搭社区:向量数据库MIlvus服务端配置(二)

目录 storage 区域 wal 区域 cache 区域 storage 区域 | 参数 | 说明 | 类型 | 默认值 | | ——————————————- | —————————————————————————————— | ——————————————————————————————- | ————…

解决 mac 系统报zsh: command not found: npm 问题

文章目录 1、报错zsh: command not found: npm2、解决办法 1、报错zsh: command not found: npm 根据提示&#xff1a;zsh: command not found: npm。说明没有找到 npm 命令&#xff0c;这说明有两种情况&#xff1a; 一是&#xff1a;你根本就没有安装 nodejs 的环境&#xf…

git add 时报错 warning: in the working copy of ‘package-lock.json‘, LF will...

问题&#xff1a; 执行git add . 时报错 原因&#xff1a; 换行符的问题&#xff0c; Windows下换行符和Unix下的换行符不一样&#xff0c;git会自动转换。 解决办法&#xff1a; 执行命令&#xff1a; git config --global core.autocrlf false 问题解决&#xff1a;

Windows网络服务综测刷题

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​ 前言 本章将会讲解Windows网络服务的刷题 一.刷题 在Windows Server 2016系统中&#xf…

【openpyxl】总结最近使用到的openpyxl方法

这里写自定义目录标题 单元格嵌入图片调节行高和列宽合并单元格自动换行按列插入数据tableWidget数据导出到excel 单元格嵌入图片 from openpyxl.drawing.image import Image from openpyxl.drawing.spreadsheet_drawing import AnchorMarker, TwoCellAnchor from openpyxl.wor…

Excel / PPT 办公技巧

Excel sum求和 我们先选中某个单元格单元格&#xff0c;并在编辑栏输入&#xff1a;SUM&#xff08;&#xff09;&#xff0c;然后输入函数参数&#xff1a;B2&#xff1a;B9&#xff0c;最后按回车键结束确认&#xff0c;即可计算出销量总和&#xff1b; PPT 组合 选中需要…