嵌入式面试题 C语言常见面试题整理_2_char b[5], p=b;为什么正确的赋值语句为p

B、本程序的main函数开始,到本程序文件的最后一个函数结束

C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

D、本程序文件的第一个函数开始,到本程序main函数结束

5.动态链接和静态链接

绝大多数编译器并不是一个单一的庞大程序,他们通常由多达六七个稍小的程序所组成。

目标文件并不能直接执行,它首先需要载入到连接器映像,连接器确认main 函数为初始化

进入点,把符号应用绑定到内存地址,把所有的目标文件集中在一起,加上库文件,从而

产生可执行文件。

**静态链接:**把需要使用的每个库函数的一份拷贝加入到可执行文件中,现在静态链接基本淘汰。

**动态链接:**可执行文件只是包含了文件名,系统提供了庞大的函数库集合,让在如期运行时能

够寻找到程序所需要的函数库。

**动态链接的优点:**可执行文件的体积非常小,但是运行稍微慢些,但是动态链接可以有效的利用

磁盘空间。

C语言 - 静态链接和动态链接_c语言 动态链接 静态链接-CSDN博客

6.什么是右值引用,跟左值又有什么区别

**左值:**能对表达式取地址,一般指表达式结束后依然存在的持久对象。

**右值:**不能对表达式取地址,一般表达式结束后就不再存在的临时对象。

**右值和左值引用的区别:**左值可以寻址,而右值不行,左值可以被赋值,右值不能被赋值,

可以用来给左值赋值。左值可变,右值不可变。

7.float(单精度浮点型)和double(双精度浮点型)

**float:**1bit(符号位)+8bit(指数位)+23(尾数位)  2^23=8388608,共7位,意味着最多有

7位有效数字。

**double:**1bit(符号位)+11bit(指数位)+52bit(尾数位)  2^52=4503599627370496. 一共16位,

同理double的精度为15~16位。

#include <stdio.h>
int main(void)
{
    float m = (float)3.14;
    double n = 10.5;
    printf("%f,%lf\n",m,n);
    return 0;
}

**输出:**3.140000,10.500000 因为%lf只保留小数点后6位。

8.溢出

short  int  a,b;
A=10000;
B=1000000;

输出时a可以正确输出,但是b不能,因为b不能正确的存储,short只有16bit,转化为10进制只有5位。

char 占8位1字节转化为10进制只有3位。

short占16位2字节转化为10进制只有5位。

int 占32位4字节转化为10进制只有10位。

long 占32位4字节转化为10进制只有10位。

float占32位4字节转化为10进制只有10位。

double占64位8字节。

9.字符常量

char  beta; beta=’ab’; 是错误的,改正:char  beta; beta=’ab/’

char  beta; beta=”a”; 是错误的,改正:char  beta; beta=’a’

定义字符串数组:char  a[ ] = “abcse”

非图形字符,如退格,换行,也可以表示成字符型常量。表示方法是使用转义字符”/”;

若有说明语句:char c= ‘\64’ ; 则变量C包含: A

A. 1个字符 B. 2个字符 C. 3个字符 D. 说明不合法,C值不确定

已知char b[5],*p=b; ,则正确的赋值语句是  C

A. b=“abcd” ; B. *b=“abcd”; C. p=“abcd”; D. *p=“abcd”;

下列可以正确表示字符型常量的是  D

A、297 B、“a” C、“\n” D、‘\t’

设有定义:char*C;以下选项中能够使C正确指向一个字符串的是(A )。

A char str( )=”strin9”;C=str;

B scanf(”%s”,C.);

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值