前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >斗罗世界中的C语言与数据结构:第一章

斗罗世界中的C语言与数据结构:第一章

作者头像
Regan Yue
发布2022-03-13 12:04:16
3770
发布2022-03-13 12:04:16
举报
文章被收录于专栏:ReganYue's Blog

斗罗世界中的C语言与数据结构:第一章

我出生在斗罗联邦斗罗星的史莱克城之中,我一出生就知道使用C语言编写程序总是从main()函数开始执行。

下面上题目[编号1-1]:

image-20220311223028647
image-20220311223028647

解析:C语言和其他很多类C语言一样,程序都是从main()函数开始执行,所以A错,C对。B、D选项都是错误的,没有理由,C语言就是这样设计的。

在这个世界中,我们的名字和C语言的标识符一样有些是合法的,有些是不合法的。

C语言是这样设计的,标识符仅能是字母(26个英文字母大小写皆可)、阿拉伯数字(0到9)以及下划线(_)组成,而且标识符的第一个字符需要是字母、下划线,注意一定不能是数字。

下面上题目[编号1-2]:

image-20220311223913387
image-20220311223913387

解析:A\D明显是错误的。这时你会觉得是不是我们可以选B和C?是的!

但是我们还要注意有32个关键字不能作为标识符:

image-20220311224201197
image-20220311224201197

父亲给我取名叫夕羽颜,我很喜欢这个名字。父亲和母亲都是唐门的技术人员,曾经参与对传灵塔的网络攻击。我三岁那年。父亲就给我出了一道C语言题目。

下面上题目,编号为[1-3]:

image-20220311225127039
image-20220311225127039

我当时天天看父母敲代码,于是马上选出我的答案:B,父亲很满意的拍了拍我的小脑袋。

又过了几天,我在唐门的程序员幼儿园进行一月一次的月考,其中有这么一道题目:

题目编号[1-4]

;

这到题目出得非常好,要做对这道题,首先我们得了解for循环:

  1. 在这里,先执行“i=0”。
  2. 然后再执行“f(s[i])”,如果该表达式的值为真,也就是不为0,那么就执行d+=s[i],不然就会结束整个循环。
  3. 执行d+=s[i]完毕后就执行“i++”。
  4. 然后不断重复执行步骤 2) 和 3),直到“f(s[i])”的值变为假,也就是0,即可结束整个循环。

在上面的步骤中,执行一遍2) 和 3) 即为执行一次循环,可以不断执行,这也即是for 循环语句的主要作用。

就这样,一天一天过去了,终于幼儿园毕业,到了我该进行武魂觉醒的时候了。

史莱克城的同学父母武魂都很强大,望着同学们一个个强大的武魂觉醒,我不由得紧张起来。

终于到我了,我慢慢走上台阶…

我的武魂居然是计算机!这可是具有唯一性的武魂,也就是历史上从来没有出现过!

并且我居然是先天满魂力,此时脑中传来一个年轻人的声音:“您好,我是丘山子,我来自遥远的银河系,已经在斗罗星漂泊了很久,因为某些原因,成为你的武魂和魂灵的融合体。我现在要沉睡了,你需要我的时候,我自然会苏醒。现在来回答一道C语言题目来获取你的第一个魂环吧!”

题目编号[1-5]

image-20220312125138444
image-20220312125138444

解析:回答此道题目,我们先要了解C语言的数组在内存层面上是一块连续的内存空间。因此指针p指向的是数组a的第0个元素的地址(即数组a的首地址),因此C正确。那么为什么A和B的加法也能正确?

下面听我详细道来:p是int的指针,因此p每次加1,它的地址实际上是增加了sizeof(int) * 1,加6,也就是增加了sizeof(int) * 6,而p+6 等价于 *(p+6),因此A和B均正确。

我选对了答案,很快,身上升起了一圈带有电路花纹的银色魂环,第一魂技:代码领域。这是范围类攻击魂技。

不久后,我参加了史莱克学院工程师系进行入学考试。其中有这么一些题目:

image-20220312132907457
image-20220312132907457

解析:

  • 第一问:我们要明白,continue和break都可以用于循环语句之中,不过continue正如其名——继续,他虽然结束了本次循环,可是还是继续执行下一次循环。而break则是直接结束整个循环过程,不会再继续判断循环条件是否成立。
  • 第二问:我们要明白局部和全局是相对于函数而言的,局部变量是只能在定义它的函数内部使用,不能在其他函数使用,所以叫局部变量。而全局变量是在函数外部定义的,可以在所有函数内部使用。
  • 第三问:
    1. 单步:逐语句调试是能够进入函数的内部,而逐过程调试是不会进入函数内部。
    2. 断点:设置断点的作用是,当程序运行至断点时,程序就会停止。我们可以在认为可能会出错的的地方设置断点,根据变量的中间状态值来判断程序出现问题的原因。
    3. 监视窗:我们可以在该窗口输入变量或表达式来查看变量的之间状态值变化情况。
  • 第四问:指针指向某变量的内存地址,指针本身也是变量,也拥有内存地址。注意细节:要对指针进行初始化、进行正确的传递地址方式、使用时要进行判断。
  • 第五问:函数嵌套调用是在一个函数中调用另一个函数,而函数递归调用是函数调用函数本身。函数递归是函数嵌套的一个特例。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/03/12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 斗罗世界中的C语言与数据结构:第一章
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档