嵌入式C语言面试3(附有自己做的答案) (2)

雪柳 分享 2020-06-28 下载文档

最后一个节点的pNext = NULL. Node* SortChain( Node* pHead ); 返回值:链表头

c/c++面试题集锦 2006-7-7更新

24.Assignment 2: Picture Processing

Use C++, Java, or similar languages or/and any middleware such as EJB and J2EE to process a picture with a high resolution (3 Mega Pixels for example). Use some methodologies to degrade the resolution of the picture to make it quicker for browsing. Then divide the degraded picture into 9 sectors equally. Click any of the 9 sectors will result a detailed picture for this sector with the same resolution as that of the original picture. This assignment is designed for you to demonstrate your ability to handle pictures. 25.用<<,>>,|,&实现一个WORD(2个字节)的高低位交换!!

26.要开辟P1,P2,P3,P4内存来做缓冲,大小自定,但这四个缓冲的大小要一样,并且是连续的!

27.有一浮点型数组A,用C语言写一函数实现对浮点数组A进行降序排序,并输出结果,要求要以数组A作为函数的入口.(建议用冒泡排序法) 28.找错:

#include #include class Base {

private:

char * name; public:

Base(char * className) {

name = new char[strlen(className)]; strcpy(name, className); }

~Base() {

delete name; }

char * copyName() {

char newname [256]; strcpy(newname, name); return newname; }

char * getName() {

return name; }

static void print(Base base) {

printf(\ } };

class Subclass : public Base {

public:

Subclass(char * className) : Base(className) { } };

int main() {

Base * pBase = new Subclass(\ Base::print(*pBase);

printf(\

printf(\ return 0; }

NetFetch [2006-07-07 09:22 AM] c/c++面试题集锦 2006-7-7更新

21.有双向循环链表结点:

typedef struct node {

int date;

struct node *front,*next; }_Node;

有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两上链表中date值相同的结点删除

22.

char * GetStr() {

char *tmp; tmp = \ return tmp; }

void main() {

printf(\ }

会输出123吗?123创建在堆上还是栈上呢?123的空间是什么时候释放的?

输出123,存在代码段(code segment/text segment)中,是静态存储区,程序执行完后释放;它既不属于堆,也不属于栈;它会编入.exe中,随可执行文件加载

23.

字符指针、浮点数指针、以及函数指针这三种类型的变量哪个占用的内存最大?为什么? 类ClassB从ClassA派生,那么ClassA *a = new ClassB(…); 试问该表达是否合法?为什么?

如果ClassA中定义并实现虚函数int func(void),ClassB中也实现该函数,那么上述变量a->func()将调用哪个类里面的函数?如果int func(void)不是虚函数,情况又如何?为什么?

char **p, a[16][8]; 问:p=a是否会导致程序在以后出现问题?为什么? 如下所述的if else和switch语句哪个的效率高?为什么?

在同一个进程中,一个模块是否可以通过指针操作破坏其它模块的内存,为什么? 应用程序在运行时的内存包括代码区和数据区,其中数据区又包括哪些部分? NetFetch [2006-07-06 09:20 AM] c/c++面试题集锦 2006-7-6更新

18.Consider the following code:

#include #include

int main(int argc, char *argv[]) { int i = 1; char buf[4];

strcpy(buf, \ printf(\ return 0; }

a) When compiled and executed on x86, why does this program usually not output what the programmer intended? i=0

根据栈的特点:i先入栈,占4个字节,然后存buf,先入高地址,后如低地址

当执行完strcpy后,实际是从buf[0]的地址开始连续拷贝了5个字节的内容,因为用字符串给字符数组赋值时,后面会默认添加一个’\\0’,也就是0,当执行完strcpy后,此时i实际指向的内容是0。按由高到低的存放顺序,其内容如下示意: (高)i buf (低地址,栈顶) 没执行strcpy前:0 0 0 1 0 0 0 0 执行完strcpy后:0 0 0 0 D C B A

b) Name several ways in which the security problem that causes this

program not to output what the programmer intended can be prevented WITHOUT changing the code. 不改变代码的几种解决办法:(实际还是产生了溢出) 方法1:把这两个变量中的一个或者两个申明为全局变量,或者静态变量 方法2:把这两个变量的定义换一下顺序

19.int w=1,x=2,y=3,z=4; m=(w

printf(\说出结果 1

20.说出结果

#include main() {

FILE *fp;

int i,a[4]={1,2,3,4},b;

fp=fopen(\这里帮忙解释一下 for(i=0;i<4;i++)

fwrite(&a[i],sizeof(int),1,fp);//这里也帮忙看一下 fclose(fp);

fp=fopen(\

fseek(fp,-2L*sizeof(int),SEEK_END);//还有这里 fread(&b,sizeof(int),1,fp);//这里还有也看一下 fclose(fp);

printf(\ //3 }

NetFetch [2006-07-06 09:19 AM] c/c++面试题集锦 2006-7-6更新

12.请完成以下题目。注意,请勿直接调用 ANSI C 函数库中的函数实现。

a)请编写一个 C 函数,该函数给出一个字节中被置 1 的位的个数,并请 给出该题的至少一个不同解法。

b)请编写一个 C 函数,该函数将给定的一个字符串转换成整数。 c)请编写一个 C 函数,该函数将给定的一个整数转换成字符串。 d)请编写一个 C 函数,该函数将一个字符串逆序。

e)请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回 该字符所在位置索引值。

f)请编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串, 该字符串是由同一字符组成的。

给出演示上述函数功能的一个简单程序,并请编写对应的 Makefile 文件

13.我们需要编写一个图形相关的应用程序,需要处理大量图形(Shape)信息, 图形有矩形(Rectangle),正方形(Square),圆形 (Circle)等种类,应用 需要计算这些图形的面积,并且可能需要在某个设备上进行显示(使用在标准 输出上打印信息的方式做为示意)。

a)请用面向对象的方法对以上应用进行设计,编写可能需要的类 b)请给出实现以上应用功能的示例性代码,从某处获取图形信息, 并且进行计算和绘制

c)如果你的Square继承自Rectangle,请给出理由,如果不是, 请给出理由,并且请比较两种方式的优劣

d)请问你所编写的类,在如下代码中会有何表现,请解释

void test_rectangle_area(Rectangle& r) {

r.set_width(10); r.set_height(15);

assert(r.area() == 150); }

14.假设现有一个单向的链表,但是只知道只有一个指向该节点的指针p,并且假设这个节点不是尾节点,试编程实现删除此节点

15.写一个程序,把一个100以内的自然数分解因数。(自然数分解因数就是将一个自然数分解为几个素数的乘积,提示,由于该数不是很大,所以可以将质数保存在数组中,以加快计算速度)

16.编写一个Identify的分配、释放的函数,为1-10000之间的自然数。

17.分别实现itoa和atoi.

NetFetch [2006-07-06 09:18 AM] c/c++面试题集锦 2006-7-6更新

1.多态类中的虚函数表是Compile-Time,还是Run-Time时建立的? 虚函数表示是在编译时建立的,运行时动态绑定虚函数。

2.将一个 1M -10M 的文件,逆序存储到另一个文件,就是前一个文件的最后一个 字符存到新文件的第一个字符,以此类推。

3.main主函数执行完毕后,是否可能会再执行一段代码?

crt会执行另一些代码,进行处理工作。

如果你需要加入一段在main退出后执行的代码,可以使用atexit()函数,注册一个函数。

#include


嵌入式C语言面试3(附有自己做的答案) (2).doc 将本文的Word文档下载到电脑

下一篇:大学生零食消费报告

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx