2025年程序员入门代码大全(程序员入门代码大全)

程序员入门代码大全(程序员入门代码大全)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p>C语言学习代码</p> 

讯享网

1.基础的HelloWorld代码

讯享网

2.有关于常量整型常量(包含正数、负数、0):18、19;
实型常量(所有带小数点的数):1.93、1.83;
字符常量(单引号引起来的字母、数字、英文符号):‘A’,‘B’;
字符串常量(双引号引起来):“XXX”,“我真厉害”。

3.
%d(整型),%f(实型),%c(字符),%s(字符串)
实形常数的例子:

 

4.输出两个数相加

讯享网

5.变量的注意注意事项:
(1)只能存在一个值
(2)变量名不允许重复定义
(3)一条语句可以定义多个变量
(4)变量在使用前一定要赋值
(5)变量的作用域范围。

6.同时要注意进制不同时输入的前缀也不同。
二进制:由0和1组成,代码中以*ob*开头.
十进制:由0~9组成,前面不加任何前缀。
八进制:由0~7组成,代码中以*0*开头。
十六进制:由0~9还有a到组成,代码以*ox*开头。
例如:

 

*7.不同的整型输入
*short
型:

讯享网

*int*型:

 

*long*型:

讯享网

*long long*型:

 

8.关于有符号整数、无符号整数的定义情况
*signed
*有符号整数 正数 负数:

讯享网

*unsigned*无符号整数 正数:

 
讯享网

关于*double:*

 

关于*long double:*

讯享网

10.变量的硬性命名规则:由数字、字母、下划线(-)组成,不能以数字开头,不能为关键字,区分大小写(a、A为不同的变量)。

 
讯享网

例题
(char一般用与单个字符,scanf后要用&标识)

 
讯享网

12.同时输出多个数据

 

13.取余(%):printf("%d ",10%3);//1
整数计算,结果一定是个整数:
printf("%d ",3+2);//5

汇总:通用细节:
1.两整数计算,结果整数(如果有小数,舍小数部分)
2.两小数计算,结果一定是小数。
3.整数和小时计算,最终的结果是小数。
4.小数直接参与计算,结果是有可能不精确的.
除法:1.不允许·除以0(与数学一样)。
取余:1.运算符必须是整形。
2.结果的符号跟第一个数字保持一致。
3.不允许%0(与数学保持一致)。

14.数值拆分:(输入一个三位数拆分为个位、十位、百位 )

讯享网

2.short char类型的数据在运算的时候,先提升为int,再进行运算。
douible > float > long long > long > int > short > char
short(两个字节)、int(4个字节)、long(4个字节)、long long(8字节)
一个字节:0 000 0000 0000 0000

例如
short a= 10;
int b =a
此时short:0000 0000 0000 0010
int:0000 0000 0000 0000 0000 0000 0000 0010

格式::目标数据类型 变量名=(目标数据类型)被强制转换的数据;

例如:int b = 10;
short i =(short)b;
此时int:0000 0000 0000 0000 0000 0000 0000 0010
short:0000 0000 0000 0010

例如

 

想要转成什么类型,就在前面的小括号中写什么类型即可。
short i = (short)b;
强制转换的弊端:有可能导致错误。

17.当需要查看ASCII码表中各个字符相应的数字时,可以通过下面的代码运行:

讯享网

18.在进行计算时,/与%的区别:两个数据做除法,/取结果的商,%取结果的余数。整数计算只能·得到整数想要得到小数,必须要有小数参与计算。

数据类型一样时可以直接计算,类型不一样时默认隐式转换(1.小变大 2.char short>int),强制大变小:强制转换

19.自增自减运算符:++为变量值加一,–为变量值减一。例如:

 

(1)先用后加

讯享网

(2)先加后用

 

同时也要注意有些坑:

讯享网
 

此时的意思是将a与b相加后将a+b的值赋值给a,对b的值没任何影响。


讯享网

 

||:两边都为假,结果才是假,或者。两边都不成立,那么最终的结果才是不成立的,只要有一个成立的,最终的结果计就是成立的。

讯享网

!:取反。

 

题目:键盘录入一个两位整数

讯享网

&&、||连续写多个的,多个&&,表示同时满足多个条件,多个||,表示在多个条件当中,只要满足其中一个(a1 || a2|| a ==3)

规则:当左边的表达式能确定整个表达式的结果了,右边不参与运算。

 

真题练习

讯享网
 

范例:a > b ? a : b

例子:获取两个变量中的较大值

讯享网

获取三个变量中的最大值

 

从左到右,最后一个式子表达式的结果,是整个表达式的结果,优先级最低(永远最后执行)
格式:表达式1, 表达式2,…,表达式n
(i == 3, i++,++i,i=5)

讯享网
 

题目

讯享网

运算符的优先级:

 
讯享网
 

题目

讯享网
 

如果满足运行条件,才可以执行指定的代码。
利用if语句对数据进行判断,从而执行不同的代码。
语法格式:

讯享网
 

(练习)当温度大于37.5度,就会由语音警报:

讯享网

(练习):

 

使用场景:需要对参数进行判断
细节:1.判断的结构是数字,非零->成立,零->不成立
2.大括号中语句体只有一行,大括号可以省略

讯享网

练习

 

规则:从上往下依次进行判断
只有要有一个判断成立,就执行对应的语句体
如果所有的判断都不成立,就执行else的语句体

语法格式:

讯享网

例子

 

语法格式

讯享网

执行流程:1.首先计算表达式的值。
2.依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
3.如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。
细节
|.表达式:计算结果只能为(字符/整数)
||.case:值只能是(字符/整数)的字面量,不能是变量
||:case:值不允许重复
|||:break:表示中断,结束的意思,结束switch语句
IV.default:所有情况都不匹配,执行该处的内容
defaultd的位置和省略

例子

 

switch和if第三种格式各自的使用场景
switch:有限个case进行匹配的情况,10个左右
if:一般是对一个范围进行判断

case穿透的规则
1.还是根据小括号中表达式的结果去匹配对应8case
2.执行对应case里面的代码
3.如果在执行的过程中,遇到了break,那么直接结束整个switch、但是如果没有遇到break,就会继续执行下面case中的代码。直到遇到break,或者把整个switch中所有的代码全部执行完了,才会执行。
4.细节:case穿透只会往下穿,不会回到上面。

练习
需求:健盘录入月份数,输出对应的季节。
春季:3、4、5月份
夏季:6、7、8月份
秋季:9、10、11月份
冬季;12月份到次年的2月份

讯享网

循环:重复的执行某件事情
初始化语句:循环的开始条件
条件判断语句:循环的结束条件
条件控制语句:控制循环次数的
循环体语句:要重复执行代码
执行流程;
(1)执行初始化语句
(2)执行条件判断语句,看其结果是否成立
成立:执行循环体语句
不成立:结束循环
(3)执行条件控制语句
(4)回到(2)继续执行条件判断语句
格式:

 

例子


讯享网

讯享网
 

题目

讯享网

练习
案例4:统计满足条件的数字
需求:键盘录入两个数字,表示一个范围。
统计这个范围中。
既能被6整除,又能被8整除数字有多少个?

 
讯享网

例子

 

for与while的对比,区别:
for循环中:知道循环次数·或者循环的范围
while循环:不知道循环的次数和范围,只知道循环的结束条件。

练习:

讯享网

题目
案例1:2的幂
给你一个整数 n,请你判断该整数是否是2的幂次方

举例:
n=1输出:yes n=2 输出:yes n=3输出:no
规则:任意的一个数字,不断的除以2,最终都会得到数字1

循环的结束案件息什么?
1.结果是1的时候,就可以结束了,yes
2.结果无法被2整除了,也可以结束了,no

 

题目
案例2:打印折纸的次数

需求:世界最高山峰是珠穆朗玛峰(8844.43米=毫米),假如我
有一张足够大的纸,它的厚度是0.1毫米。
请问,我折叠多少次,可以折成珠穆朗玛峰的高度?

思路:
利用循环折叠纸张,当纸张的厚度超过珠穆朗玛峰的高度,循环就结束了
循环的结束条件:纸张的厚度 》穆朗玛峰的高度

讯享网

题目
案例3:整数反转

思路:
原先的数字:123
反转之后的数字:321
从右边开始,依次获取每一位数字,再次拼接起来

 

题目
案例4:X的平方根
给你一个非负整数X,计算并返回×的算术平方根
结果只保留整数部分,小数部分将被舍去

举例:
×=4 结果:2
×=8 结果:2

规则:任意的数字而言,如何确定平方根的整数部分呢?
从3开始一个一个的找,直到第一个相乘的结果大于原来的数字
那么前一个数字就是他平方根的整数部分

讯享网

题目
案例5:回文数(课堂练习)

例如:121是回文,而123不是。

题目
案例6:两数相除(课堂练习)

有两个整数,被除数dividend 和除数 divisor。
将两数相除,要求不使用乘法、除法和取余运算。
返回被除数dividend除以除数divisor 得到的商和余数。
比如说:两个整数11、3
输出结果:商:3
余:2
有两个整数,被除数dividend 和除数divisor.
将两数相除,要求不使用乘法、除法和取余运算。
返回被除数dividend 除以除数 divisor 得到的商和余数。
比如说:两个整数 11、3
输出结果:商:3
余:2
计算机中的乘法和除法:
除法11
商:执行减法的次数
余:剩下的数字


跳转控制语序:在循环过程中,跳转其他语句上执行
注意点:无限循环因为永远停不下来,所以下面不能再写其他的代码了
for:

 

while

讯享网

do…while:

 

格式:

讯享网

例如:

 

break不能单独书写,只能写在switch,或者是循环中,表示结束,跳出的意思

讯享网

练习

 

结束本次循环,继续下次循环

讯享网

练习
小全全早上一个吃了5个包子,吃到第三个包子时;发现里面有个虫子。直接扔掉不吃了,开始吃下一个包子。

 

小结:break:只能写在switch,循环中,表示结束整个语句
continue:只能写在循环中,表示跳过本次循环,继续执行下次循环


讯享网

练习

 

练习

讯享网

练习:打印九九乘法表:

 

练习:制表符详解:

讯享网

练习:计算质数
给定整数n,获取所有小于等于n的质数的数量

示例:
输入:n=100
输出:25个质数
质数:只能被1和本身整除的数字
抽丝剥茧大法
复杂的问题>>简单的问题
1.判断一个整数是否是一个质数
2.添加范围1~100
3.统计

 

练习:计算数字
1的1次方+2的2次方+3的B次方++10的10次方,结果是多少?
提示:结果过大用longlong类型
正确答案:

讯享网

练习:和为15的数字(课堂练习)
找出0~1000之内,符合要求的数字:要求:每一位的数字之和等于15举例:78,168,1167

 

练习

讯享网
 

函数:函数就是程序中独立的功能

讯享网

例子:

 

定义一个函数,求函数之和,并将结果输出到控制台上

返回值类型:函数最终结果的类型

讯享网
 
讯享网

小结。没有返回值
1.结束函数
2.把后面的数据,交给调用处

 

例子:

讯享网

题目
需求:小慧慧考试成绩:基础题得分93,附加题得分10
小丹丹考试成绩:基础题得分87,附加题得分9
请问,谁的总分更高?
最终格式:

 

调用方式:
变量=函数名(实参…)
用变量去接收函数的结果
printf(“占位符”,函数的调用);
提高了代码的复用性
提高了代码的可维护性

讯享网


练习

 

函数的注意事项
函数不调用就不执行
函数名不能重复
函数和函数之间是平级关系,不能嵌套定义
自定义函数写在main函数的下面,需要在上方申明
return下面,不能编写代码,永远执行不到,属于无效的代码。
函数的返回值类型为void,表示没有返回值,return可以省略不写,如果书写了return,后面不能跟具体的数据,仅表示结束函数。

<string.h>:
strlen() strcmp() strlwr() strupr() strcat() strcpy()
各个格式的演示

讯享网
 
讯享网

int num = 0;
int num1 = (31 * num0 + 13) % 100;
例子

 
讯享网

例子:

 

课堂练习
1.12~87
2.17~39
绝招:用于生成任意范围之内的随机数
1.把这个范围变成包头不包尾,包左不包右8-50
2.拿着尾巴 - 开头 50 - 8 =42
3. 修改代码

猜数字小游戏
生成1-100之间的随机数
使用键盘录入去猜,猜中为止

讯享网

是一种容器,可以用来存储同种数据类型的多个值
数组的定义:数组如何创建
数组的定义格式:数据类型 数组名 [长度]
特点: 连续的空间。一旦定义,长度不可变。

 

:定义数组的时候,第一次给数组赋值
数据格式:数据类型 数据名[长度] = {数据值,数据值…};
例如:
int arr[3] = {1, 2, 3}
长度省略:数据值的个数就是 数组长度
长度未省略, 数据值的个数<=长度
未赋值的部分有默认值
整数:0
小数:0.0
字符:’0‘
字符串:“NULL”(什么都没有)

练习
1.定义数据存储5个学生的年龄,并初始化。
2.定义数据存储你女朋友的身高,并初始化。

讯享网

1.获取数组的元素。2.如何修改数组里的元素
变量名 = 数据名[索引]
int num = arr[5]
printf(“占位符”,数据名[索引]);
printf(“占位符”,arr[5]);
数据名[索引] = 数据值;
arr[5] = 10;

 
讯享网

内存:软件在运行时,用来临时存储数据的
内存地址的规则:
1.32位的操作系统,内存地址以32位的二进制表示
2. 64位的操作系统,内存系统以64位的二进制表示
书写的事后转成十六进制

概念:在内存中申请空间的编号
内存地址:内存中每一个小格子的编号
作用:快速的管理内存空间

 

&变量名

数组的内存地址
是一个元素的第一个字节空间的地址,也是首地址

数组的常见问题:

讯享网

数组的算法题
数组求最值
需求:已知数组元素为{33,5,22,44,55}
请找出数组中最大值并打印在控制台

 

遍历数组的求和(基础版)
需求:生成10个1~100之间的随机数存入数组
1.求出所有数据的和

讯享网

需求:生成10个1~100之间的随机数存入数组,要求数据不能重复
1.求出所有数据的和
2.求所有数据的平均数
3.统计有多少个数据比平均数小

 

需求:键盘录入5个数据并存入数据,完成以下需求
1.遍历数组
2.反转数组
3.再次遍历

讯享网

需求:定义一个数据,存入1-5.要求打乱数组中所有的数据的顺序

 
讯享网

1.二分查找的优势?
提前查找效率

*2.*二分查找的前提条件?
数据必须是有序的
如果数据是乱的,先排序再用二分查找得到的索引没有实际意义,只能确定当
前数字在数组中是否存在,因为排序之后数字的位置就可能发生变化了

3.二分查找的过程
min和max表示当前要查找的范围
mid是在min和max中间的
如果要查找的元素在mid的左边,缩小范围时,min不变,max等于mid减1
如果要查找的元素在mid的右边,缩小范围时,max不变,min等于mid加1
练习

 

要求:数据要有序,且数据分布尽可能均匀一点
优势:满足要求,效率比二分查找快,否则反而会更慢
1.顺序查找的特点
对于数据没有任何要求,从头到尾遍历数组即可

2.二分查找、插值查找各自的特点
相同点:
都是通过不断的缩小范围来查找对应的数据的

分块的原则1:前一块中的最大数据,小于后一块中所有的数据(块内无序,块间有序)
分块的原则2:块数数量一般等于数字的个数开根号。比如:16个数字一般分为4块左右。
核心思路:先确定要查找的元素在哪一块,然后在块内挨个查找。
高级软件人才培训

讯享网

冒泡排序:相邻的数据两两比较,小的放前面,大的放后面。
1,相邻的元素两两比较,大的放右边,小的放左边。
2,第一轮循环结束,最大值已经找到,在数组的最右边。
3,第二轮循环只要在剩余的元素找最大值就可以了。
4,每二轮循环结束,次大值已经确定,第三轮循环继续在剩余数据中循环。

 

选择排序:从0索引开始,拿着每一个索引上的元素跟后面的元素依次比较,小的放前面,大的放后面,以此类推。
1,从0索引开始,跟后面的元素一—比较。
2,小的放前面,大的放后面。
3,第一轮循环结束后,最小的数据已经确定。
4,第二轮循环从1索引开始以此类推。
5,第三轮循环从2索引开始以此类推。
6,第四轮循环从3索引开始以此类推。

讯享网

查询数据:*指针名
存储数据:*指针名
例子:

 

指针的使用细节:
1.指针变量的名字
2.指针变量的数据类型要跟指向变量的类型保持一致
3.指针变量占用的大小,跟数据类型无关,跟编译器有关。
4.给指针变量赋值时,不能把一个数值赋值给指针变量

讯享网

作用:操作其他函数中的变量
练习:
定义两个变量,要求交换变量中记录的值
注意:交换的代码写在写在一个新的函数swap中

 

指针的作用一细节
函数中变量的生命周期跟函数相关,函数结束了,变量也会消失
此时在其他函数中,就无法通过指针使用了
如果不想函数中的变量被回收,可以在变量前面加statie关键字

讯享网

例子:

 

定义一个函数,求数组的最大值和最小值,并进行返回

讯享网
 

指针的类型是什么意思?
数据类型 * 变量名 = 内存地址
例子:
int * p = 0x001
指针中数据类型的作用:获取字节数据的个数


讯享网

步长:移动一次的字节个数

 

总结:
1.指针+7或者指针-1是什么意思?
把指针中记录的内存地址,往后或者往前移动一个步长

2.什么是步长?跟什么有关?
跟数据类型有关
Windows64位操作系统:char:移动一个字节short:移动两个字节int:移动四个字节long:移动四个字节long long:移动八个字节

有意义的操作
指针跟整数进行加、减操作(每次移动N个步长)
指针跟指针进行减探作(间隔步长)
无意义的操作
指针跟整数进行乘除操作
原因:此时指针指向不明
指针跟指针进行加、乘、除操作

讯享网
 

特殊类型

讯享网

不表示任何类型
特点:无法获得数据,无发计算,但是可以接收任意地址
(误)

 
讯享网

概念:指向数据的指针,叫做数据指针
作用:方便的操作数组中的各种数据

 

数组指针的细节
arr参与计算的时候,会退化为第一个元素的指针

讯享网

此时+1相当于增加了一个数组的长度。

练习:
数组指针的细节
arr参与计算的时候,会退化为第一个元素的指针

特殊情况:
sizeof运算的时候,不给退化,arr还是整体
&arr获取地址的时候,不会退化

 

总结:
1.什么是数组指针?
指向数组的指针,就是数组指针

2.指针数组的细节
arr参与计算的时候,会退化为第一个元素的指针
特殊情况
sizeof运算的时候,不会退化,arr还是整体
&arr获取地址的时候,不会退化
步长:数据类型 * 数组长度

数组指针

讯享网
 

二维数组(索引操作)

讯享网
 

二维数组的定义格式

讯享网

二维指针(指针操作)
数组内部元素的类型:
数据类型 * 指针名 = arr
int (*p)[5]

 
讯享网
 
讯享网

数组指针:指向数组的指针
作用:方便的操作数组中的各种数据
举例:int*p= arr; 步长为:int(4字节)
举例:int (*p)[5] =&arr; 步长为:int乘5(20字节)

指针数组:存放指针的数组
作用:用来存放指针
举例:int*p[5],这个数组里面存着int类型的指针

格式:返回值类型 (*指针名)(型参列表)
作用:利用函数指针,可以动态的调用函数

 

函数指针的练习:
定义加、减、乘、除、四个函数
用户键盘录入三个数字
前两个表示参与计算的数字
第三个数字表示调用的函数
1:加法
2:减法3:乘法4:除法

讯享网

整数:short int long long long
小数:float double
字符:char

获取字符串的两种方式

 
讯享网

有结束标记,内容可修改
有结束标记,指针 + 双引号定义时:内容不可更改
指针 + 双引号定义时:会复用

 

字符串数组`
需求:定义一个数组储存5个学生的名字并进行遍历

讯享网
 

strlen:获取字符串的长度
strcat:拼接两个字符串
strcpy:复制字符串
strcmp:比较两个字符串
strlwr:将字符串变成小写
strupr:将字符串变成大写

讯享网

用户登录
需求:已知正确的用户名和密码,请用程序实现模拟用户登录。
总共给三次机会,登录之后,给出相应的提示

 
讯享网

 

结构体格式:

讯享网
 
讯享网
 

总结:
1.什么是结构体?
结构体可以理解为自定义的数据类型
他是由一批数据组合·而成的数据结构体
里面的每一个数据都是结构体的“成员”
2.如何定义,如何使用?
结构体格式:

讯享网
 

结构体练习:

讯享网

结构体格式:

 
讯享网
 
讯享网

游戏人物
定义一个结构体表示游戏人物
属性有:姓名,攻击力,防御力,血量
要求:把三个游戏人物放入数组当中,并遍历数组

 

两种情况:
传递结构体中的数据值
传递结构体的地址值

练习:结构体作为函数参数
定义一个结构体表示学生
学生的属性:姓名、年龄
要求:
定义一个函数,修改学生中的数据

讯享网

如果结构体中成员的类型是其他的结构体,就用到结构体的嵌套
练习:定义一个结构体表示学生Student
Student成员如下:
名字、年龄、性别、身高、联系方式

 

投票选举:
某班级组织野外郊游,想要在ABCD四个景点中选择其中一个。
现在班上有80位同学进行投票,找出投票数最多的景点

PS:
1.学生投票,用随机数模拟
2.如果多少个景点投票一样的话,A优先B,B优先C,C优先D

讯享网
 
讯享网

练习:

 
  1. 数组
    定义和初始化
    定义:数组是一组相同类型数据的集合。使用类型 数组名[大小];来定义数组。
    初始化:可以在定义时初始化数组,语法为类型 数组名[] = {值1, 值2, …};。注意,数组的大小可以省略。
    访问元素
    索引:通过索引访问数组元素,索引从0开始,例如数组名[0]表示第一个元素。
    遍历:使用循环(如for循环)遍历数组元素。
    多维数组
    定义:例如类型 数组名[行数][列数];,可以用于表示矩阵等结构。
    初始化和访问:类似于一维数组,通过多重索引访问。
  2. 指针
    基础概念
    定义:指针是存储变量地址的变量,使用类型 指针名;定义。
    取地址和解引用:取地址使用&,例如&变量名。
    解引用使用
    ,例如指针名。
    指针与数组的关系
    数组名本身是指向数组首元素的指针。可以通过指针访问数组元素,例如
    (指针名 + i)等同于数组名[i]。
    指向指针的指针
    可以定义指向指针的指针,使用类型 指针名;,可以实现更复杂的数据结构。
  3. 结构体
    定义和使用
    定义:使用struct关键字定义结构体,例如:c
讯享网

实例化:定义结构体后可以创建实例,如struct 结构体名 变量名;。
访问成员
使用.运算符访问结构体成员,例如变量名.成员名。
对于指向结构体的指针,使用-&gt;运算符,例如指针名-&gt;成员名。
结构体数组
可以定义结构体的数组,如struct 结构体名 数组名[大小];,可通过索引访问结构体实例及其成员。

  1. 总结
    理解基础概念:确保掌握数组、指针和结构体的基本定义和用途。
    实践应用:通过编写代码和练习,增强对这些概念的理解。可以尝试实现一些小项目,比如学生管理系统、图书管理系统等。
    解决问题:学会使用指针操作数组和结构体,掌握动态内存分配(malloc, free)以及指针和数组结合的技巧。
  2. 进阶知识
    动态数组:通过指针和动态内存分配创建可变大小的数组。
    结构体指针和函数:传递结构体指针到函数中以避免复制大结构体,提高效率。

小讯
上一篇 2025-05-22 11:41
下一篇 2025-04-27 10:34

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/157387.html