没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式软件工程师笔试题1.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 135 浏览量
2022-06-25
15:02:31
上传
评论
收藏 83KB DOC 举报
温馨提示
试读
21页
嵌入式软件工程师经典笔试题
资源推荐
资源详情
资源评论
(一)
1 什么是预编译,何时需要预编译:
答案:
1、总是使用不经常改动的大型代码体。
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这
种情况下,可以将所有包含文件预编译为一个预编译头。
2 char * const p char const * p const char *p 上述三个有什么区别?
答案:
常量指针, 的值不可以修改
;指向常量的指针,指向的常量值不可以改;和
3
!
!
!
!
结果是:""
### 是数组变量,它们有各自的内存空间;而 ### 是指针,它们指
向相同的常量区域。
4 以下代码中的两个 sizeof 用法有问题吗?
$ 易
%& '$将中的小写字母转换成大写字母
()))*&+,&"&&+*&+*"--&)))))))
&*..&//&.+.)))))))))))
&0..0.1.
2
34
字符长度为5&+*&+*" !
'$
!
答案:函数内的 &+* 有问题。根据语法,&+* 如用于数组,只能测出静态数组的大小,
无法检测动态分配的或外部数组大小。函数外的 是一个静态定义的数组,因此其大小为
,因为还有.6".,函数内的 实际只是一个指向字符串的指针,没有任何额外的与数组相
关的信息,因此 &+* 作用于上只将其当指针看,一个指针为 个字节,因此返回 。
5 一个 32 位的机器,该机器的指针是多少位
答案:
指针是多少位只要看地址总线的位数就行了。" 以后的机子都是 的数据总线。所以
指针的位数就是 个字节了。
6 main()
{
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf("%d,%d",*(a+1),*(ptr-1));
}
答案:
分析:-)就是 ,0就是 #执行结果是 ,。/- 不是首地址-,系统会
认为加一个 数组的偏移,是偏移了一个数组的大小(本例是 个 &)&&
/-则 实际是/#也就是 -原因如下:/ 是数组指针,其类型为&而
指针加 要根据指针类型加上一定的值,不同类型的指针- 之后增加的大小不同 是长度
为 的 & 数组指针,所以要加&+*&所以 实际是 但是 与/-类型是不
一样的这点很重要所以 0 只会减去 &+*&。#/ 的地址是一样的,但意思不一样,
是数组首地址,也就是 "的地址,/ 是对象(数组)首地址,- 是数组下一元素的
地址,即 #/- 是下一个对象的地址,即 7
7 请问以下代码有什么问题:
&)8&
(
/
9#!!
&*
"
2
答案:没有为 分配内存空间,将会发生异常,问题出在将一个字符串复制进一个字符变
量指针所指地址。虽然可以正确输出结果,但因为越界进行内存读写而导致程序崩溃。
8
Char * s="AAA";
printf("%s",s);
s[0]='B';
printf("%s",s); 有什么错?
答案:111是字符串常量。 是指针,指向这个字符串常量,所以声明 的时候就有问题。
111然后又因为是常量,所以对是 "的赋值操作是不合法的。
9 写一个“标准”宏,这个宏输入两个参数并返回较小的一个。
答案:7: *&;&<#=<>=?=5<)结尾没有‘;’
10 嵌入式系统中经常要用到无限循环,你怎么用 C 编写死循环?
答案:@&!(2或者 *
11 关键字 static 的作用是什么?
答案:定义静态变量或静态函数
12 关键字 const 有什么含意?
答案:表示常量不可以修改的变量。
13 关键字 volatile 有什么含意?并举出三个不同的例子?
答案:提示编译器对象的值可能在编译器未监测到的情况下改变。
()并行设备的硬件寄存器(如状态寄存器)
()中断函数中会访问到的非自动变量
()多线程应用中被几个任务共享的变量
14 int (*s[10])(int) 表示的是什么啊?
答案:&"&函数指针数组,每个指针指向一个 &*&8的函数。
15 有以下表达式:
int a=248,b=4;
int const c=21;
const int *d=&a;
int *const e=&b;
int const *f const =&a; 请问下列表达式哪些会被编译器禁止?为什么?
答案: / /*"A*这是个什么东东,禁止 说了是
,禁止/说了是 禁止*/禁止
16 交换两个变量的值,不使用第三个变量。即 a=3,b=5,交换之后 a=5,b=3;
答案:有两种解法#一种用算术算法#一种用B异或。-00
或者B只能对 MBBBB
17 c 和 c++中的 struct 有什么不同?
答案: 和 --中 的主要区别是 中的 不可以含有成员函数,而 --中的
可以。--中 和 ! 的主要区别在于默认的存取权限不同, 默认为 !&,而
! 默认为 &%
18.
:&! &7>)
:&! !&7>)
%& C889)
()))
8!!"")))
9#!!@! )
2)
&8&)
()))
D'EE)))
C889)))
&*F#)))
*)))
"))
2
答案:程序崩溃,C889 中的 8!!不能返回动态内存,*()对 操作很危险
19
char szstr[10];
strcpy(szstr,"0123456789");
产生什么结果?为什么?
答案:#长度不一样,会造成非法的 GH
20 列举几种进程的同步机制,并比较其优缺点
答案:#原子操作信号量机制###自旋锁###管程,会合,分布式系统
21.进程之间通信的途径
答案:共享存储系统消息传递系统管道:以文件系统为基础
22.进程死锁的原因
答案:资源竞争及进程推进顺序非法
23.死锁的 4 个必要条件
答案:互斥、请求保持、不可剥夺、环路
24.死锁的处理
答案:鸵鸟策略、预防策略、避免策略、检测与解除死锁
25. 操作系统中进程调度策略有哪几种?
答案:I$IH先来先服务,优先级,时间片轮转,多级反馈
26.类的静态成员和非静态成员有何区别?
答案:类的静态成员每个类只有一个,非静态成员每个对象一个
27.纯虚函数如何定义?使用时应注意什么?
答案:%&!%& *"是接口,子类必须要实现
28.数组和链表的区别
答案:数组:数据顺序存储,固定大小连表:数据可以随机存储,大小可动态改变
剩余20页未读,继续阅读
资源评论
资料大全
- 粉丝: 14
- 资源: 26万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功