前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言复习备考踩的坑

C语言复习备考踩的坑

作者头像
Aomsir
发布2021-02-25 14:31:59
4180
发布2021-02-25 14:31:59
举报
文章被收录于专栏:Aomsir的专栏Aomsir的专栏

前言

我呢,学的语言很少,几乎没有,高中的时候粗略的学过PHP,但当时脑袋里没有很强的意识,也没实操过,只记得几个常见的知识,可以说是连门都没入,HTML也学过一点点,后来败在了css和js的理解上,也没那么多少时间可以实践,只会写写小页面(特别垃圾的那种),高考后的暑假,跟着哔哩哔哩自学了一段时间Python,大学开学就学的C语言,然后就有了现在的这篇文章。

题外话

学习C语言的过程中,最大的感触就是太别扭了,因为最系统学习过一点点的语言是Python,怎么说呢,Python的语法和C语言的还是有很大的差距的,比如说Python不需要写头文件和主函数啥的,Python对数据类型的要求是很严格的,个人觉得C语言对数据类型相对不那么严格,还有C语言的输入也要格式化数据,阿这,Python又不一样了,然后两节课下来就有点懵了,还好我Python没学多少,不然。。。对比一下

这是Python的

代码语言:javascript
复制
#通过输入语句给变量num赋值
num = input("请输入一个值")

这是C语言的

代码语言:javascript
复制
/*通过通过输入语句给变量num赋值*/

include <stdio.h>

int main(void){
    int num;
    printf("请输入一个值");
    scanf("%d",&num);
}

好了好了,回归主题,然后后面学的就很混,好多基本的知识点就不稳固,因为这种知识点我没有练过,我还沾沾自喜觉得自己学的还行,还好老师给了两套测试卷,让我发现了很多不够的地方,接下来来讲讲题目中踩过的坑,然后把正确的理解也说一下,方便日后查阅

正文

未掌握内容

  1. 标识符命名规则不熟悉
  2. 布尔值和逻辑运算符的混合使用不熟悉
  3. 逗号运算符不熟
  4. 零碎基本知识
  5. 未把ASCII值放在心上(最开始不知道怎么用)
  6. 未完待续...

遇到的题目

完整测试卷已托管至GitHub,自行访问查阅 点击查看

1.下面四个选项中,均为常量的选项是__。 ​ A.E-5——good——'a'——012 B."a"——112——0abc——2e2.3 C.123——0xad——0.——25 ​ D.'ab'——3.14——2.e2——.5

2.若以下变量均是整型,且m=n=2;则执行语句m--,m=m+(++n),m+2;后m的值为__。 ​ A.2 B.3 C.4 D.6

3.若有定义语句int a=1,b=2,c=3,d=4,m=5,n=6;,则执行语句(m=a>b)&&(n=c>d);后n的值是__。 ​ A.3 B.4 C.5 D.6

4.若有定义语句:float x=1.0,y=2.0;,当执行语句printf(“%f”,(x,y));后,其输出结果为__。 ​ A.1.0 B.2.0 C.1.000000 D.2.000000

5.已知x、y、z均为整型变量,且值均为2,则执行语句++x||++y&&++z后,表达式x+y+z的值为__。 ​ A.6 B.7 C.8 D.9

6.下面程序段的输出结果是__。 ​ char c[]=”\x2a\0ab\0”;undefined ​ printf(“%d”,strlen(c)); ​ A.1 B.2 C.3 D.4

7从键盘输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字母,否则,则不转换,最终将结果输出。

8阅读程序写出运行后的输出结果 int main(){ int i,j; float x,y; i=4; j=8; x=4.0; y=1.0+i/j+x; printf("y=%f",y); }

理解与收获

从上面的题目中我是有很多的收获的,比如:

  • 标识符的命名规则
代码语言:txt
复制
1. 标识符中不能有空格,但可以用下划线隔开
2. 下划线和英文字母开头常量的表示
代码语言:txt
复制
1. 整型常量:十进制、八进制或十六进制,也可以带U和L表示无符号和长整型,比如112L,118U,122UL
2. 浮点常量:常见小数形式(必须要有小数点),还有对指数形式:2.1E5=2.1乘10的5次方【E前后必须要有数字】
3. 字符串常量:必须放置在""里面逗号运算符(顺序求值运算符)的运算
代码语言:txt
复制
1. 逗号运算符是从左到右依次运算,但只取最后的一次,比如x=(m=1,m++,++m);,从左到右运算,再将最后一次的运算赋值给x
2. 逗号运算符的表达式,不是运算的直接跳过,比如x=(m=1,m+1,++m);输出为2,因为m+1运算后的结果没有赋值的对象,但++m有布尔值的理解
代码语言:txt
复制
1. 真-1,假-0(老是记不住)布尔值及与逻辑运算符混合使用的理解
代码语言:txt
复制
1. 使用!(非)时候,只是判断这个值的真假,只要不是0(假)就是真的,那值就是1
2. 逻辑运算符的短路:例如上面的N5,++x的值为2,非0,||后面的就不用看啦零碎知识 ASCII值的运用,比如上面的N7,就可以把字母(字符型)强制转换成整型,输出的就是对应的整型,暂时记住常见的字母对应的ASCII值和顺序(比如A和a)求字符串长度的时候记住\0(结束符),字符中遇到\0就截止了,比如上面的N6

结语

C语言的学习时间是短暂的,两个多月就结课了,进度也只到函数,指针也没讲,除了懂了一些基本的写法和方法外,其余讲真啥都不会,也没能力参加团队项目,结课了,期末考了,不代表我会停止对它的学习,趁闲暇时间对C语言较为深度的学习一下,如果有幸,结合单片机来学也是不错的。

版权属于:奥秘Sir(除特别注明外)

本文链接:https://cloud.tencent.com/developer/article/1793224

本站文章采用 知识共享署名4.0 国际许可协议进行许可,请在转载时注明出处及本声明!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 题外话
  • 正文
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档