神雕侠侣续写龙过:【转】最全的C/C++面试题和答案

来源:百度文库 编辑:中财网 时间:2024/04/27 15:48:43

【转】最全的C/C++面试题和答案

2007-04-04 20:10 671人阅读 评论(0) 收藏 举报

最全的C/C++面试题集(C/C++试题和部分答案)
最全的C/C++面试题集(最全的C/C++试题集和答案)(续)

1. 以下三条输出语句分别输出什么?[C易]
char str1[] = "abc";
char str2[] = "abc";
const char str3[] = "abc";
const char str4[] = "abc";
const char* str5 = "abc";
const char* str6 = "abc";
cout << boolalpha << ( str1==str2 ) << endl; // 输出什么?
cout << boolalpha << ( str3==str4 ) << endl; // 输出什么?
cout << boolalpha << ( str5==str6 ) << endl; // 输出什么?


2. 非C++内建型别 A 和 B,在哪几种情况下B能隐式转化为A?[C++中等]

if (flag == TRUE)
if (flag == 1 )
if (flag == FALSE)
if (flag == 0)

请写出 float x 与“零值”比较的 if 语句。(4分)

标准答案示例:

const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。

如下是错误的写法,不得分。

if (x == 0.0)
if (x != 0.0)



请写出 char *p 与“零值”比较的 if 语句。(3分)

标准答案:

if (p == NULL)
if (p != NULL)
如下写法均属不良风格,不得分。

if (p == 0)
if (p != 0)

if (p)
if (!)

二、以下为Windows NT下的32位C++程序,请计算sizeof的值(10分)
char str[] = “Hello” ;
char *p = str ;
int n = 10;
请计算
sizeof (str ) = 6 (2分)
sizeof ( p ) = 4 (2分)
sizeof ( n ) = 4 (2分)
void Func ( char str[100])
{
请计算
sizeof( str ) = 4 (2分)
}

void *p = malloc( 100 );
请计算
sizeof ( p ) = 4 (2分)

三、简答题(25分)
1、头文件中的 ifndef/define/endif 干什么用?(5分)
答:防止该头文件被重复引用。

2、#include 和 #include “filename.h” 有什么区别?(5分)

华为的C/C++面试题

Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?
: Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用?
: TCP与UDP呢?
: 总得来说前面两道题目还是比较简单的!
: Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实
: 现的?
: Q4:请问C++的类和C里面的struct有什么区别?
: Q5:请讲一讲析构函数和虚函数的用法和作用?
: Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器
: 是怎么知道的?
: Q7:一些寄存器的题目,我忘记了具体实什么题目,主要好像是寻址和内
: 存管理等一些知识,不记得了。
: Q8:8086是多少尉的系统?在数据总线上是怎么实现的?还有一些硬件方
: 面的知识我既不清楚了。

: 一般建议参加华为的研发面试的同学先要准备一下相关的知识,软件的主要
: 是看看C和数据结构方面的,硬件模电,数电和微机原理

两道c面试题

1、一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。

程序代码#i nclude "stdio.h"
#i nclude "conio.h"

struct stu{
char name[20];
char sex;
int no;
int age;
struct stu * next;
}*linklist;
struct stu *creatlist(int n)
{
int i;
//h为头结点,p为前一结点,s为当前结点
struct stu *h,*p,*s;
h = (struct stu *)malloc(sizeof(struct stu));
h->next = NULL;
p=h;
for(i=0;i{
s = (struct stu *)malloc(sizeof(struct stu));
p->next = s;
printf("Please input the information of the student: name sex no age /n");
scanf("%s %c %d %d",s->name,&s->sex,&s->no,&s->age);
s->next = NULL;
p = s;
}
printf("Create successful!");
return(h);
}
void deletelist(struct stu *s,int a)
{
struct stu *p;
while(s->age!=a)
{
p = s;
s = s->next;
}
if(s==NULL)
printf("The record is not exist.");
else
{
p->next = s->next;
printf("Delete successful!");
}
}
void display(struct stu *s)
{
s = s->next;
while(s!=NULL)
{
printf("%s %c %d %d/n",s->name,s->sex,s->no,s->age);
s = s->next;
}
}
int main()
{
struct stu *s;
int n,age;
printf("Please input the length of seqlist:/n");
scanf("%d",&n);
s = creatlist(n);
display(s);
printf("Please input the age:/n");
scanf("%d",&age);
deletelist(s,age);
display(s);
return 0;
}


2、实现一个函数,把一个字符串中的字符从小写转为大写。

程序代码#i nclude "stdio.h"
#i nclude "conio.h"

void uppers(char *s,char *us)
{
for(;*s!='/0';s++,us++)
{
if(*s>='a'&&*s<='z')
*us = *s-32;
else
*us = *s;
}
*us = '/0';
}
int main()
{
char *s,*us;
char ss[20];
printf("Please input a string:/n");
scanf("%s",ss);
s = ss;
uppers(s,us);
printf("The result is:/n%s/n",us);
getch();
}
C/C++面试题大汇总之微软亚洲技术中心面试题
2006年10月28日 更新
C/C++面试题大汇总之微软亚洲技术中心面试题
1.进程和线程的差别。
2.测试方法
3.Heap与stack的差别。
4.Windows下的内存是如何管理的?
5.介绍.Net和.Net的安全性。
6.客户端如何访问.Net组件实现Web Service?
7.C/C++编译器中虚表是如何完成的?
8.谈谈COM的线程模型。然后讨论进程内/外组件的差别。
9.谈谈IA32下的分页机制
10.给两个变量,如何找出一个带环单链表中是什么地方出现环的?
11.在IA32中一共有多少种办法从用户态跳到内核态?
12.如果只想让程序有一个实例运行,不能运行两个。像winamp一样,只能开一个窗口,怎样实现?
13.如何截取键盘的响应,让所有的‘a’变成‘b’?
14.Apartment在COM中有什么用?为什么要引入?
15.存储过程是什么?有什么用?有什么优点?
16.Template有什么特点?什么时候用?
17.谈谈Windows DNA结构的特点和优点。
18.网络编程中设计并发服务器,使用多进程与多线程 ,请问有什么区别?