昨天去华为面试了,贴几个面试题出来供大家参考

sexmwj 2005-03-04 06:42:54
字符指针、浮点数指针、以及函数指针这三种类型的变量哪个占用的内存最大?为什么?

类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语句哪个的效率高?为什么?

在同一个进程中,一个模块是否可以通过指针操作破坏其它模块的内存,为什么?

应用程序在运行时的内存包括代码区和数据区,其中数据区又包括哪些部分?
哪位老大贴个标准答案出来供大家参考
...全文
3143 84 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
84 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobobie 2005-08-24
  • 打赏
  • 举报
回复
mk
navyblue1982 2005-03-09
  • 打赏
  • 举报
回复
char **p, a[16][8]; 问:p=a是否会导致程序在以后出现问题?为什么?

void Test(char **p);

void main(void)
{
char a[10][8];
Test(a);

}

运行后出现:error C2664: 'Test' : cannot convert parameter 1 from 'char [10][8]' to 'char ** 'Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
virm 2005-03-08
  • 打赏
  • 举报
回复
回复: elssann(臭屁虫和他的开心果)
我说的华为不错是指华为里面真能锻炼人
工资一般般吧,其他的工资我不太熟悉,见笑了
多多指教



zhangcloud 2005-03-08
  • 打赏
  • 举报
回复
看得懂一点点
MARK一下
THQ 2005-03-08
  • 打赏
  • 举报
回复
呵呵!~华为还是不错的~!
BlueGenie 2005-03-08
  • 打赏
  • 举报
回复
类ClassB从ClassA派生,那么ClassA *a = new ClassB(…); 试问该表达是否合法?为什么?


------------------------------------------------------------------------------------
不一定,如果class B public 继承自class A, 可以的,因为B is a A.
如果B private继承自A, 上述表达式通不过编译,B与A之间是is implemented of 关系.
lao_du 2005-03-08
  • 打赏
  • 举报
回复
#include<stdio.h>
main()
{
int i,j;
char **p,chr[4][2];
chr[0][0] = 'a';
chr[0][1] = 'b';
chr[1][0] = 'c';
chr[1][1] = 'd';
chr[2][0] = 'e';
chr[2][1] = 'f';
chr[3][0] = 'g';
chr[3][1] = 'h';
p = chr; //此处有一警告: 指针转换后指向其它类型在 main 函数中
for (i=0;i<4;i++)
{
for (j=0;j<2;j++)
{
printf("chr[%d][%d]=%c\n",i,j,(*p + i * 2 + j));
}
printf("\n");
}

getch();
}
xxgcr 2005-03-08
  • 打赏
  • 举报
回复
呵呵,走过路过
elssann 2005-03-08
  • 打赏
  • 举报
回复
回复人: virm(查无此人) ( ) 信誉:100 2005-03-07 20:57:00 得分: 0


据我了解
华为还是不错的,不想传闻的那样
有工作经验的已毕业本科生C++/JAVA工资在5000左右,不包吃住


------------------------------------------------------------

这样的待遇在深圳算不错?
horisly 2005-03-08
  • 打赏
  • 举报
回复
字符指针、浮点数指针、以及函数指针这三种类型的变量哪个占用的内存最大?为什么?
---------
==>>都是一样的内存大小。在win32下都为4个字节
horisly 2005-03-08
  • 打赏
  • 举报
回复
类ClassB从ClassA派生,那么ClassA *a = new ClassB(…); 试问该表达是否合法?为什么?

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

1。合法。由于继承机制,派生类是基类的子类型或特例。所以,可以用子类的对象初始化基类指针。

2。如果虚函数,则是调用派生类的func,如果不是虚函数,则是调用基类的func
happyhpc 2005-03-08
  • 打赏
  • 举报
回复
学了不少!!
softstarxy 2005-03-08
  • 打赏
  • 举报
回复
up
zhousqy 2005-03-08
  • 打赏
  • 举报
回复
up
Tray 2005-03-08
  • 打赏
  • 举报
回复
mark
t0h 2005-03-08
  • 打赏
  • 举报
回复
呵呵 偶上面代码写错了 :)
t0h 2005-03-08
  • 打赏
  • 举报
回复
char **p, a[16][8]; 问:p=a是否会导致程序在以后出现问题?为什么?

这个会出现问题吗?

char **p,chr[4][2];
chr[0][0] = 'a';
chr[0][1] = 'b';
chr[1][0] = 'c';
chr[1][1] = 'd';
chr[2][0] = 'e';
chr[2][1] = 'f';
chr[3][0] = 'g';
chr[3][1] = 'h';
p = (char**)chr;
for (int i=0;i<4;i++)
{
for (int j=0;j<2;j++)
{
printf("chr[%d][%d]=%c\n",i,j,(*p + i * 2 + j));
}
printf("\n");
}

这样没问题啊 请教
linyd 2005-03-07
  • 打赏
  • 举报
回复
make
zhangzhuobing 2005-03-07
  • 打赏
  • 举报
回复
怎么没有正确答案呢?
playmud 2005-03-07
  • 打赏
  • 举报
回复
基本上木有一个完全回答正确了。
me too
加载更多回复(64)

70,026

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧