c语言常用知识点总结

First-----软件
经过先导课的一些了解,大概可以把我们的专业基础课分为这几个模块:

  1. C语言程序设计
  2. 数据结构
  3. 数据库原理及其应用
  4. Java语言程序设计

现在我们在学的是C语言,所以我就通过一部分代码总结一下这一个多月以来学习C语言的一些感受:

1.c语言已跳坑小知识:
(1).scanf两个%d之间最好不要用逗号和其他转义字符啥的 不然很容易出现错误
在这里插入图片描述
(2).数据需要互换则需要第三个变量来帮忙(就像两杯果汁互换需要第三个杯子过渡)
如:a b交换,则定义临时变量temp
temp=a;
a=b;
b=temp;
(3).a++与++a的区别
在这里插入图片描述
(4).c语言的printf里只能用双引号 不能用单引号

(5).只要要用scanf输入数据,就要记得加&

(6).取余符号%用法
300%60= 10 (310÷60=5……10)

(7).if语句后的条件尽量写在括号里面,就算只有一个,括号后不要加分号

(8).c语言中单双引的作用不一样,单引可以用来为char赋值,双引用于字符串

(9).如果输出内容本身含有"" /等内容,为避免识别错误,应该用转义字符处理1
在这里插入图片描述
(10).C语言中一个大括号必定有另一个大括号与其相对,所以千万不要忘了加哇

(11).do while和while
do while 不论如何都要进循环体,至少执行一次
while要满足条件才能进循环体,可能一次也不执行

(12).一定要注意while if for后面的大括号 就算只有一个语句也要记得加

(13).break不能直接用于if 但如果if是循环内部语句就行 break只能终止离他最近的那个循环

(14).%u为无符号十进制输出

(15).数组定义的时候和使用是不一样,定义的时候假如定义了 int[5],相当于向内存空间申请了5个int类型的空间。但是数组的使用下标是从0开始的,所以5个内存空间是int[0],int[1],int[2],int[3],int[4]
int[5]是不存在的!
int[5]是不存在的!

(16).代码规范
在这里插入图片描述
括号啥的不能乱放,代码美观很重要!
(17).ASCII不是一个值,而是一种规定,ASCII规定了不同的字符是使用哪个整数值去表示
常见ASCII码:
‘A’ – 65
‘B’ – 66
‘a’ – 97
‘b’ – 98
‘0’ – 48

2.代码思路借鉴

(1).计算时差问题
先将两时间换算成分钟相减得出分钟差,再将分钟差换算成小时和分钟(这里巧妙利用取余符号即可得出结果)
在这里插入图片描述
(2).输错密码3次退出系统
注意的点:=与= =一个是赋值一个才是等于,一定要记住噢
密码正确用break直接退出
因为有次数限制,所以定义i来记录输入的次数,所以i==4的时候就退出系统
在这里插入图片描述
(3).循环典例之输出九九乘法表
首先明确循环嵌套的执行顺序:
for(1;2;3)
{
for(4;5;6)
条件1
}
条件2
顺序:1 — 2(满足)— 4 — 5(满足)— 条件1— 6 — 5(不满足)— 3 — 2(不满足)— 条件2

  • 九九乘法表1
    在这里插入图片描述
    输出结果:
    在这里插入图片描述

  • 九九乘法表2(从1到2,仔细观察一下,行列数无变化,但每行输出的式子个数与原来正好相反
    且每行开头的乘法都是从行号*行号开始的,由此小改代码即可实现)
    在这里插入图片描述
    输出结果:
    在这里插入图片描述

(4).数组的代码集合

  • 分别输出数组数字;并输出它们的和,平均数 ;查找数组数字,找到了输出,未找到则提示未找到(searchnum==nums【i】,和输入密码那个有很大的相似之处
    数组的元素输出是靠循环实现的,所以一个简单的printf输出不了完整的数组,要想打印出来,就循环吧)
    在这里插入图片描述

在这里插入图片描述

  • 数组元素冒泡排序
    int nums[]={56,45,76,25,9};
    一共五个数字,冒泡排序实现的是将这五个数字按从大到小或从小到大的顺序排列再输出
    遍历和交换:通过内外层循环(内层循环确定两数之间最值并交换,循环完数组前后两数最值确定但无序; 外层循环再继续对整个数组进行排序,循环完后数组有序)实现
    外层循环次数:N-1
    内层循环次数:N-i-1
    在这里插入图片描述
    在这里插入图片描述

  • 数组逆序输出

    法一:交换法
    在这里插入图片描述

法二:反向输出法(注:申请了5个内存空间,但编号是从0开始的,所以只有nums【4】,没有nums【5】,所以正序输出下的count要-1。然后因为前面的计算位数是从最后一位开始的,所以后来的正序输出要反向,从count-1开始)
一位一位取数字方法:num%10;num/10;(然后循环)
在这里插入图片描述

  • 数组数据的删除
    这样并没有做到真正的删除,只是换了一种方式,把要删除的数据换到了数组的最后面,然后再少打印一个数,即可实现(要点:定义下标,根据数字下标判断是否覆盖)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (5).指针函数啥的还没怎么摸到边,所以下次再来总结
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值