C语言程序设计-重点知识笔记 (选择、填空、判断题)必备、期末、专升本、单招、二级、专业通用

C语言程序设计

  1. 程序结构的三种:顺序、选择、循环结构
  2. 读程序都要从main()主函数(有且有一个)入口,然后从上往下读。
  3. 计算机数据是以二进制存储
  4. bit是位,指0/1,byte是字节,一字节=8位
  5. 预处理不是C语言的一部分,不占运行时间,不用加分号
  6. C语言编译的程序叫源程序(编译单位),它是以ASCII码存储在文本文件
  7. 算法:可以没有输入、但一定有输出
  8. break用于循环结构和switch的结束
  9. 程序的运行:编译.c->链接.obj->运行.exe
  10. 标识符:由字母、数字、下划线组成,且第一个必须为字母或下划线
  11. 标识符分为:关键字、预处理标识符、用户标识符
  12. 关键字:不可以用作用户标识符,如:main、define、scanf、printf、float、auto、break、this、int、try、for、while、char、short、unsigned(但是如果首字母大写就可以使用)
  13. 预定义标识符:define、scanf、printf、include,可以作为用户标识符
  14. C语言中只有八、十、十六进制,没有二进制运行时都会转换成二进制来处理
  15. C语言中八进制规定以0开头,且每一位不大于不等于8
  16. 十六进制规定以0x开头,如0xa5
  17. 小数的合法写法:小数点两边有0可以不写,例0.2为.2
  18. 实型数据的合法形式:e前e后必有数,e后必为整数。例9.99e-2即9.99*10-2
  19. 数据类型:整型int 4个字节、字符型char 1个字符、双精度float 8个字节、长整型long int、无符号整型unsigned int
  20. 算数表达式:+、-、*、/、%(加、减、乘、除、取余)
  21. 除法/,两边是整型结果为整型,若一边为小数则结果为小数取余%两边必须为整数
  22. 赋值表达式:赋值是从右往左进行的,且常量不能赋值(不可以2=a=5)、定义时不能连续赋值(不可以int x=y=z=0)
  23. 复合赋值表达式:a*=5相当于a=a*5(+-*/%一样的)
  24. 自加、减表达式:若a=5,b=a++;则b=5,a=6(++在后面先赋值再自增);若a=5,b=++a;则b=6,a=6(++在前面先自增再赋值),--同理
  25. 逗号表达式:优先级别最低,例a=(1,2,3)则a=3;若a=1,2,3则a=1,(要注意括号的区别!)
  26. 空语句不可以随意执行、会导致逻辑错误
  27. 注释:不是C语言、不占用运行时间、没有分号、不可以嵌套
  28. 强制类型转换:(int)a(将强制转换成int整型数据类型,注意括号是将类型括起来的,而且强制类型转换优先级比运算表达式高,例(int)a+b是先转换再运算加+的,记住括号里的先算就行了)
  29. 强制类型转行会丢失数据的精度,如a=5.3,(int)a=5,需要谨慎使用!还有int a=1.6,a=1因为是整型;a=1/2,a=0整型会直接省略小数部分(切记不是四舍五入)
  30. 字符数据的合法形式:‘a’是字符占一个字节;“a”是字符串占二个字节(含有一个结束符),区别一个单引号,一个双引号。
  31. ‘0’的ASCII码数值表达是48,‘a’是97、‘A’是65。请记住!
  32. 转义字符:\___、\x__、\0、\n、\’、\”、\\
  33. 位运算:|、&、^、<<、>>

&

运算,将2个数转换成二进制,两个相应的位都为 1,则结果为 1,否则为 0。

|

或运算,将2个数转换成二进制,如果两个相应的位都为 0,则结果为 0,否则为 1。

^

异或运算,将2个数转换成二进制,如果两个相应的位值相同,则结果为 0,否则为 1。

~

取反运算,将数转换成二进制,即将每一位的 0 变为 1,1 变为 0。取反运算符

<<

二进制左移运算符,将数转换成二进制,所有位向左移动指定的位数。左移 n 位相当于乘以 2 的 n 次方。(左边的二进制位丢弃,右边补0)

>>

二进制右移运算符,将数转换成二进制,所有位向右移动指定的位数。右移n位相当于除以 2 的 n 次方。将一个数的各二进制位全部右移若干位,正数左补 0,负数左补 1,右边丢弃。

  1. 数据输出:printf输出、scanf输入(引入文件#include <”stdio.h”>)
  2. printf可以有多个参数,printf(“展示形式”,变量、表达式、常量)
  3. printf的输出格式形式:
    1. %d整型(小数后省略)
    2. %o八进制、%#o带前导的八进制(0__)
    3. %x十六进制、%#x带前导的十六进制(0x__)
    4. %c字符型(输出单个字符,如果是字符串只输出第一个)
    5. %ld长整型long int、%f浮点型float、%lf双精度浮点型double
    6. %%输出一个百分号
    7. %5d输出结果占5位(如11,   11,输出长度为5,不够前面补空格)
    8. %.3f输出结果保留3位小数;%5.3表示输出占5位且保留3位小数(小数位不够后面补零)
    9. 字符型char以%d整型的形式输出,会输出它对应的ASCII码(例printf(“%d”,‘A’);结果是65)
    10. 若输出两个参数,需要设置两个输出格式,若只设置一个,只会输出前一个(例:printf(“%d”,a,b);只会输出a)
  4. 数据输入:scanf(“%d %d”,&a,&b);注意第一部分是数据类型要加双引号,第二部分是变量的地址,注意是&_形式
    1. %2d,设置输入的为2位,多出来部分的赋值给下一个变量或者丢弃
    2. %c字符型char,如果输入的是整数,就会替换成ASCII码对应的字符(若输入97,则代表输入的是a)
    3. Getchar 输入:char a getchar(),没有参数,直接赋值给a
    4. Putchat输入:putchat(‘y’),它会直接输出y在控制台
  5. 运算的扩展:若将a、b的值进行调换,则可以t=a;a=b;b=t;不能直接a=b;b=a,因为赋值时a的值已经被覆盖了。
  6. 运算时四舍五入:(int)(x+0.5);解析将小数位逢5进一,再强制转换整型
  7. C语言中非0代表逻辑0代表逻辑(C语言中有构造类型,没有逻辑类型)
  8. 关系运算符符:<=、>=、==、!=、!、=(小于等于、大于等于、等于、不等于、取反、赋值
  9. 关系表达式运算:例9>8,代表表达式成立即为1;反正8>9,表达式不成立即为0
  10. 复合关系运算符:例1<0<3,需要从左往右计算,可以看出(1<0)<3,即(1<0)为假即为0,0<3为真即为1,所以表达式为1(切勿使用数学的算法
  11. 逻辑表达式:1表示0表示
  12. 逻辑运算符:&&||!或者并且取反);优先级(!>&&>||
  13. IF判断语句:if(表达式1){ 表达式1成立时处理 }else if(表达式2){ 表达式2成立处理 }else{ 上面表达式都不满足处理 } (提示:表达式成立的条件:括号里为非0数(详细原理解析请访问https://彪哥.top/note查看相关文章)
  14. 条件表达式(表达式1)?(表达式2):(表达式3) 口决:真前假后(理解:表达式1为非0数时为真,取表达式2;反之表达式1为0时为假,取表达式3)举个例子:(1>2)?3:7,因为(1>2)不成立为假,所以取7
  15. Switch语句:形式:switch(变量){ case (整数或字符):(变量和整数或字符一样就执行);break; }如果没有break;继续执行下一个表达式(详细原理解析请访问https://彪哥.top/note查看相关文章)
  16. 循环结构三种:for()、while()、do-while(); (详细原理解析请访问https://彪哥.top/note查看相关文章)
  17. for(初始化;结束条件;自变量)循环中必须有2个分号
  18. 程序时一定要有结束条件,否则执行后变成死循环
  19. do-while();循环不管条件是否成立至少执行一次循环,(注意while();后面是有分号的)
  20. break作用打破整个循环,结束整个循环(如果有多层循环嵌套,break在哪层循环结束哪层循环)
  21. continue作用:结束本次循环,遇到continue后面语句不执行,自变量++,重新进入新一轮的循环
  22. 嵌套循环:指循环里面还有循环,比较复杂!
  23. 函数:是具有一定功能的一个程序块,是C语言的基本组成单位
  24. 函数不可以嵌套定义,但是可以嵌套调用
  25. 函数名缺省返回值类型,默认是int
  26. C语言由函数组成,有且有一个main主函数,是程序运行的开始
  27. 函数的参数可以是变量、常量、表达式、以及函数调用
  28. 函数的实参:fun(a,b),逗号分开的就是2个实参(注意考题会有表达式等复杂表示,你只看最外层括号中逗号分隔几个参数
  29. 实参与形参的差别:传数值时形参不会有变化、实参有变化;传地址时形参变化,实参有可能变化
  30. 函数的声明:函数返回类型函数名函数的参数类型(例int fun(char a))形参不一定名称      (详细原理解析请访问https://彪哥.top/note查看相关文章)
  31. 库函数:就是已经写好的函数,放在仓库中,要想使用需要调用文件。常用库函数abs()、sqrt()、fabs()、sin()、常考pow(a,b),表示a的b次方即ab
  32. 指针变量的本质是用来放地址的,而一般变量是放数组的
  33. Int *p中*p是数值p是地址 (详细原理解析请访问https://彪哥.top/note查看相关文章)
  34. *p++和(*p)++的区别:*p++是地址变化(取当前值,然后移动地址);(*p)++是数值会变化(取当前值,再使数值+1
  35. 二级指针:*p一级指针(存放变量的地址)、*p二级指针(存放一级指针的地址)
  36. 三名主义:数组名:表示第一个元素的地址(数组名不可以自加,它是地址的常量名)、函数名:表示该函数的地址入口地址字符串常量名表示第一个字符的地址
  37. 指针扩展:指针变量是存放地址的,并且指向哪个就等价于哪个,所有出现*p的地方都可以用它等价替换
  38. 数组:存放的类型一致,多个数组元素的地址是连续的
  39. 一维数组的定义:int a[行]={1,2,3,4,5}(行数:可以为空,但是一定要大于后面数组的数据个数
  40. 二维数组的定义:int a[行][列]={1,2,3,4,5}(行列:行*列一定要大于后面数组的数据个数,但是行可以为空,列一定不能为空
  41. 一维数组的概念:a[10];a表示数组名,是第一个元素的地址,也就是元素a[0]的地址等价于&a(因为a是地址变量,所以a++或赋值运算是不成立的)
  42. 其他内容(小编的错题)后期更新 (详细原理解析请访问https://彪哥.top/note查看相关文章)
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值