C语言干货及基础编程思维 – 第一节

作者:繁星Stars

作者官网:www.stars22.xyz

作者GitHub:github.com/Stars-22

此文章页码对应《C语言程序设计》——英昌盛、谭振江、李昊著

作者推荐刷题网站:

  1. 能力提升综合题单Part1:https://www.luogu.com.cn/training/9349
  2. 能力提升综合提单完全版:https://www.luogu.com.cn/training/9391

I – C语言干货

一、C程序基础

1.基础框架

#include <stdio.h> //预处理命令,C语言标准头文件
//入口函数 main()函数
int main(){

	return 0;
}

2.注释

注释内容不会被编译器编译以及执行

//单行注释
//[注释内容]

//块注释
/*
[注释内容]
*/

二、基础数据类型 – P20,28,223

//变量的定义
data_type var_name;
//例:
int a;
/*命名规则:
1. 由字母数字下划线组成
2. 不能以数字开头(尽量也不以下划线开头,可能与操作系统和C语言库函数冲突)
3. 不能与保留关键字冲突 - P31
  • unsigned – 在部分变量类型前添加,无符号型
  • short – 短整型
  • int – 整形
  • long – 长整形
  • long long – 加长整型
  • float – 单精度浮点型
  • double – 双精度浮点型
  • char – 字符型
  • void – 无类型

三、常用转义字符 – P33

  • \0 – 空字符,字符串结尾
  • \b – 退格
  • \n – 换行
  • \r – 回车(光标回到本行首位)
  • \t – 水平制表符
  • \’ – 单引号
  • \” – 双引号
  • \\\ – 反斜线
  • \? – 问号

四、运算符

1.赋值运算符 – P36

//赋值语句
var = expr;
//使用样例
int a = 10;
a = 5 / 2;
//注意事项
int b = (a = 10) - 2;
//运行结果:a = 10, b = 8;

2.sizeof()运算符 – P47

//sizeof()运算符 - 用于返回以字节为单位的数据类型所占存储空间的大小
sizeof(type); //数据类型,如int、char
sizeof(object); //对象,如变量a
sizeof(expr); //表达式,如1+2

313.算数运算符 – P48

a. +加,-减,*乘,/除,%取余,+正,-负。 – P48

b. +=,-=,*=,/=,%=。如a+=2; 先计算a+2,然后将结果赋值给a。 – P50

c. 自增自减运算符 – P50

int a = 1;
//a++:1, a:2 - 先获值,后自增
//++a:2, a:2 - 先自增,后获值
//a--:1, a:0 - 先获值,后自减
//--a:0, a:0 - 先自减,后获值

d. 注意,当算数运算符两方的数均为整数时,结果将自动向下取整。例如:5/2:2,正确写法:5.0/2或5/2.0或5.0/2.0。 – P53

4.关系运算符 – P59

<小于,<=小于等于,>大于,>=大于等于,==等于,!=不等于。 – P59

注意不能使用连等,例如:1<a<3,正确写法:a>1&&a<3。

5.逻辑运算符 – P61

运算符含义实例结果
&&逻辑与exprA && exprBexprA与exprB均为真时,结果为true,否则为false
||逻辑或exprA || exprBexprA与exprB均为假时,结果为false,否则为true
!逻辑非!exprA!exprA为false,否则为true
C语言的逻辑运算符

6.条件运算符

expr1?expr2:expr3

如果expr1为真,则整个表达式的值为expr2,否则为expr3。

7.其他

a. 位运算 – P64

b. () – 在所有表达式中优先计算括号里的

c. 运算符优先性 – P225

五、输入、输出 – P39

1.输出函数printf() – P39

/*printf() 函数 - 格式化输出函数*/
int printf(const char* format, ...);
//使用方式
printf("<格式化字符串>"[, 参量表]);
//使用样例
float height = 1.75;
printf("Hello World!");
printf("我的身高为:%.2f\t体重为%d:%d", height,60); //%.2f 为保留两位小数的单精度浮点型

printf()函数通用格式控制字符 – P40

2.输入函数scanf() – P42

/*scanf() 函数 - 格式化输入函数*/
int scanf(const char* format, ...);
//使用方式
scanf("<格式化字符串>", <地址表>);
//使用样例
float height;
printf("请输入你的身高(m):");
scanf("%d", &height);

scanf()函数通用格式控制字符与printf()一致

3.getchar()与putchar()函数 – P46

/*getchar()函数 - 从标准输入获取一个字符*/
int getchar(void);
//使用样例
char a;
a = getchar();

/*putchar()函数 - 将一个字符写到标准输出*/
int putchar(int character);
//使用样例
char b = 'A';
putchar(b);
putchar('A');

六、选择结构 – P72

1.单分支 if 语句 – P72

/*单分支if语句 - 满足条件时执行语句,否则不执行*/
if(bool_expr){
	statements;
}
//使用说明 - 表达式的值为非0时执行语句,否则不执行
if(<表达式>){
	语句1;
	......
}

2.双分支 if 语句 – P74

/*双分支if语句 - 满足条件时执行if后语句,否则执行else后语句*/
if(bool_expr){
	true statements block;
}
else{
	false statements block;
}
//使用说明 - 表达式的值为非0时执行if后语句,否则执行else后语句
if(<表达式>){
	语句1;
	......
}
else{
	语句1;
	......
}

3.if 语句的嵌套 – P77

if语句{}之中可以再嵌套if语句

4.多分支 if 语句 – P81

if(bool_expr_1){
	statements block_1;
}
else if(bool_expr_2){
	statements block_2;
}
......

5.switch 语句 – P84

/*switch语句 - "多选一"的分支控制结构*/
switch(expr){
	case const_expr1:
		statements block_1; break;
	case const_expr2:
		statements block_2; break;
	......
	default:
		statements block_0; break;
}
//如果expr的值与const_expr1相等,则执行statements block_1;......。
//如果expr的值与所有const_expr均不相等,咋执行statements block_0。
//注1:const_expr必须为常量表达式,例如:1,1+1。不可以为变量。
//注2:如果case后不写"break;",则后面所有case不会检验,直接向下执行case后的语句,直到遇到break截止。

II – 基础编程思维

一、代码规范

代码规范使得代码看着整齐舒适,条理清晰,逻辑清楚。

1.基础代码规范

  • 缩进 – 同一层的代码处于同一层缩进上,一行代码前不能乱加空格
  • {}单起一行,{}里的内容处于下一层缩进内

2.进阶代码规范

  • 空格 – “,”后加空格……等
  • 空行 – 两个独立的程序块之间空行
  • 命名
  • 注释

二、分析错误

1.分析错误的步骤

  1. 查看编译报告
  2. 用脑或者纸笔带入数,用程序的逻辑算出输出结果,在过程中寻找错误
  3. 在合适的位置添加输出打印变量的值,查找错误所在的位置
  4. 使用断点调试功能

2.容易遇到的错误

  1. 注意“=赋值”与“==相等“的使用,注意不要混淆
  2. 在语句末尾忘记添加”;“,或在不该加”;”的位置多加
  3. 使用scanf()输入时,变量前要加取址符”&“
  4. 在做除法时,注意强制取整问题
  5. 入口函数为”main()“,而非”mian()“
  6. 注意代码在除注释以及字符串的地方应全为英文字符

三、做题思维

  1. 分解:把复杂的问题分解成更小、更简单的问题
  2. 模式识别:与相似的问题和经验之间建立联系
  3. 抽象:关注关键信息,忽略不必要细节
  4. 算法:完成一项任务的程序步骤的方法
  5. 建模:对题的提炼,并将其作为模型,以便于泛化
  6. 泛化:调整/优化现有模型以解决新的问题
未经作者授权禁止转载
本文链接:https://blog.stars22.xyz/index.php/2024/03/18/550/
本文作者:繁星

评论

  1. 头像
    可惜雾散她不在
    Android
    2 月前
    2024-3-18 21:07:35

    太好了很适合新手使用

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇