【C语言面试题详解】掌握嵌入式开发岗位笔试题中的基础C语言知识(5)

架构师李肯 发表于 2022/11/30 23:17:07 2022/11/30
【摘要】 一般来说,嵌入式开发岗位,学习C语言是必须的,以下基础C语言的知识考查,希望不会难倒你。本期知识点:字符串相关知识。

【C语言面试题详解】掌握嵌入式开发岗位笔试题中的基础C语言知识(5)

一般来说,嵌入式开发岗位,学习C语言是必须的,以下基础C语言的知识考查,希望不会难倒你。本期知识点:字符串相关知识。

1 写在前面

C语言的编程能力在嵌入式开发中,还是非常重要的。为了帮助刚入门C语言编程的童鞋尽快掌握其核心基础知识,我会从本期开始输出若干期经典的笔试原题解析,力求从原题的角度深入剖析每一个知识点。

2 本期知识点

本期给大家带来的基础知识点是:字符串

  • 字符串的定义:使用char基础数据类型定义一个字符串,比如 char *p = "123456";或者 char p[] = "123456";
  • 字符串的长度:使用strlen对字符串进行求长度,该长度值不包括字符串末尾的\0
  • 字符串的约束:一个有效的字符串必须以\0字符结束

3 几道笔试原题

3.1 考察点:字符串的定义

题目原题:

下列定义语句中,不是有效的字符串定义的()?
A char *p = "123456";
B char p[] = "123456";
C char p[10] = "123456";
D char *p[] = "123456";

题目考查的知识点:C语言的字符串定义

题目解析

A选项正确:因为它是有效的定义方式;

B选项正确:因为它是有效的定义方式;

C选项正确:因为它是有效的定义方式;它B选项的区别是,它指定了p数组的大小,而B选项中却没有;

D选项错误:因为它定义的一个字符串数组,而不是一个字符串,且这样的写法是会报语法错误的;正确字符串的数组应加上 {}

char *p[] = { “123456” };

题目答案:C

3.2 考察点:字符串的长度

题目原题:

char s[] = "a+b=12\n";
strlen(s) 的返回值为( )。
A 8
B 12
C 7
D 6

题目考查的知识点:C语言的字符串长度的求法

C语言中,使用strlen对字符串进行求长度,其返回值不包含字符串末尾的\0

题目解析

跟进strlen的定义和功能,s这字符串的长度应该是7,值得注意的是\n其实是一个转移字符,它占1个字节的长度.

题目答案:C

3.3 考察点:字符串与数组的关系

题目原题:

假设有一个字符串的定义如下:
char s[] = "1234567890";
那么,下列表达式的值为()?
*(s + 2) + *(s) + s[7] = ( )?    
A 155
B 156
C 157
D 158

题目考查的知识点:

C语言中,字符串和字符数组是互通的,所以对字符串取偏移求值,即对数据取偏移求值。

字符的ASCII值是整型数,可进行加减运算,比如 字符 ‘1’ 的 ASCII值为 0x31 = 49

题目解析

*(s + 2) = s[2] = ‘3’ = 0x33 = 51

*s = s[0] = ‘1’ = 0x31 = 49

*(s + 7) = s[7] = ‘8’ = 0x38 = 56

因此,三者相加等于 51 + 49 + 56 = 156

题目答案:B

4 更多分享

架构师李肯

架构师李肯全网同名),一个专注于嵌入式IoT领域的架构师。有着近10年的嵌入式一线开发经验,深耕IoT领域多年,熟知IoT领域的业务发展,深度掌握IoT领域的相关技术栈,包括但不限于主流RTOS内核的实现及其移植、硬件驱动移植开发、网络通讯协议开发、编译构建原理及其实现、底层汇编及编译原理、编译优化及代码重构、主流IoT云平台的对接、嵌入式IoT系统的架构设计等等。拥有多项IoT领域的发明专利,热衷于技术分享,有多年撰写技术博客的经验积累,连续多月获得RT-Thread官方技术社区原创技术博文优秀奖,荣获CSDN博客专家CSDN物联网领域优质创作者2021年度CSDN&RT-Thread技术社区之星2022年RT-Thread全球技术大会讲师RT-Thread官方嵌入式开源社区认证专家RT-Thread 2021年度论坛之星TOP4华为云云享专家(嵌入式物联网架构设计师)等荣誉。坚信【知识改变命运,技术改变世界】!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。