小蒟蒻最近总结了一下自己的上机经验,还写了一点小笔记提醒自己,写的比较随便,有错误,还请大佬指正,嘻嘻

advance_lion 领风者 2021-12-24 20:00:42

兄弟们答应我,上机考试能搞简单就别整复杂好吗,还有多复制粘贴,能快则快

1.bool类型,c语言中需要引入头文件<stdbool.h>
2.标识符以字母开头,_被视为字母
3.‘\’进制or十六进制整数时看做asc码对应字符,\101或\x41表示A, \0表示字符null
4.c中不应该出现连续关系表达式,a<b<c,应写为(a<b)&&(y﹤b)
5.优先级(运算次序)难记,所以多用括号,用好括号()
6.复合语句一定要用{},否则变为顺序执行就要哭了
7.不确定类型,可以用强转,例如(int)(表达式)
8.int不过改long long
9.c语言中的除法是小学除法,结果取整
10.getchar()用的时候注意读回车的问题
11.if else if else才有对应关系,注意对应问题

12.switch,case后面要用常量表达式,注意空格,除了最后一种情况,记得加break

13.枚举常量表的第一个标识符对应整数0,其他对应,前一个+1,比如enum r{a,b,c,d};a对应0,b对应1,c对应2,d对应3;d但也可以在声明枚举类型时设定对应整数值,例如enum r{a=10,b=a+2,c=15,d},a对应10,b对应12,c对应15,d对应16;标识符中的元素不要重复

14.if/while(a)a就算是bool类型的判断表达式对应的也是整数,真则结果a=1,就为假=0;实际上a为非0整数就为真。

15.使用do while注意是先执行后判断

16.闰年的定义是:能被4整除,且不能被100整除,或能被400整除

17.(v++)==v,()中得到表达式的值为v,但v变量中所存为v+1,相当于先赋值再+1

   (++v)==v+1,()………………………为v+1,………………………….为v+1,………..先+1再赋值

    v--,--v同理,正常使用是主要是看用不用表达式就行。

18.素数i判断条件,用2----根号i每个整数去除,都不能整除(取余为0)就为素数,但做题时懒得去引math.h函数库,就直接2---i/2去除就好

19.最大公因数辗转相除,但建议递归写 if(y==0) return x; else return gcd(y,x%y),

     最小公倍数==两数乘积/最大公因数

20.c字符对应asc码整数,因此可对应进行整数类型运算

21.return值由函数定义(类型说明符)决定,void用*d指针带回也行

22.数组,静态分配,长度规定,小心别越界,多维数组使用小心

23,主元选择排序,冒泡排序,插入排序,半分检索(不着急,一个个检索也行)都会了吗

24.数组初值,①数据个数<数组长度,剩余填0,例如int a[5]={1};各个元素初值为1,0,0,0,0;

             。。。。。。。>…………… ,多的不要,例如int a[3]={0,1,2,3,4,5},各个元素初值0,1,2

            ②只有数组最外层一维,可以不指长度(元素个数),而由初始化算子中的元素个数决定,例如 int a[]={0,1}两个元素;int b[][3]={ {0,1,2},

{1,2,3},

{2,3,4} };

25.char st[]={‘a’,‘b’,c‘,…‘d’,’\0’},这样写的记得自己加\0,我正经人直接char st[]=”abc…d”

   变量字符串(字符数组)记得自己加\0

26.字符数组的操作能用string.h里的函数就别自己编,还有在部分编译器上strcmp(st,”a’)不一定返回1或-1,可能返回一个>0或<0的数,所以…。列举一下常用的函数,比较strcmp(),后值赋给前strcpy(), 求长度strlen(), 连接两个字符串的函数  strcat(str1,str2)

 

27.typedef重命名结构体指针好用,结构体也OK,能少打就少打,虽然直接复制粘贴也行,但保不准你可能忘记打*或啥struct

28.队列和栈不好整,小菜鸡的我不建议多用,除了必要

29.上机的时候建议对printf的部分动手脚,反序啥的从尾输出即可,毕竟oj只看输出结果,你懂得

30.指针,记得给指向关系啊喂,指针只能存地址,指针指向数组时,与整数做加减表示向数组尾部方向移位,int a[5] ,*p=a; p=p+3,现在表示a[3];在指向同一数组时,指针间可以做减法,表示指针间距离,记住数组连续分配地址的性质,一般用在自编求长度时用,此时指针间也可以做判等,关系运算; 记住数组名是地址常量,指针才是地址变量,咋不干给常量赋值的事啊; 用指针时看看指哪了,别整越界

31. 对于二维数组a[m][n],若看成m行n列的形式。

(1)a+i指向第i行,此时还没有获得第i行元素首地址,没有办法访问其中的元素

(2)*(a+i)或a[i]指向第i行首元素,获得第i行元素的首地址。

(3)a[i]+j指向第i行第j个元素,可以通过a[i]第i行元素的首地址访问各个元素。关键是要记住a[i]=*(a+i),   a[i][j]=*(*(a+i)+j),当然你也可以a[i][j]=*(a+i*n+j)

32.结构体指针,用间接选择—>,c语言只允许对结构体变量整体赋值,结构体初赋值是数据是要对应结构体类型里的变量的。

33.递归全局量小心用,别忘了终止条件

34.链表记得先引<stdlib.h>才能malloc和free;尾插一般比较符合我们习惯,还有哨兵项用完记得释放啊。

35.编译器不要同时开多个项目容易崩掉

...全文
210 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
advance_lion 领风者 2021-12-24
  • 打赏
  • 举报
回复

太基础了,都不好意思发,主要是想给初学的同志们分享一下自己的教训,记录一下生活嘿嘿

29

社区成员

发帖
与我相关
我的任务
社区描述
欢迎吉大的兄弟姐妹加入CFJLU( Computer Fans of JLU)!
社区管理员
  • 易水卷长空
  • 卷儿~
  • 十小大
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎你加入Java修仙的大家庭,社区为各位同学提供以下服务:

  • 【---讨论---】 发布提问,交流技术
  • 【--技术栈-】 技术栈是多种技术的组合,包括前后端、中间件(数据库等) 、工具、框架、操作系统等等。分享自己的项目经验、做项目时遇到的困难等
  • 【课程相关】分享专业课程的学习笔记、知识点总结,或者是往年试题的解析
  • 【学习记录】记录每天的学习收获、读书打卡等
  • 【博文推荐】分享你的原创博文,(如要转载博文需征求原作者同意)

对于优质的帖子和资源,管理员会将其设为【精选】,同时社区也支持同学们自主申请加精。

此外若有什么意见或建议,请私聊管理员@易水卷长空。

最后,请开始你的社区之旅吧!

试试用AI创作助手写篇文章吧