搜档网
当前位置:搜档网 › C、C++经典面试笔试题及答案

C、C++经典面试笔试题及答案

C、C++经典面试笔试题及答案
C、C++经典面试笔试题及答案

面试题1:变量的声明和定义有什么区别

为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但是只在一个地方定义。加入extern 修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。

说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。

面试题2:写出bool 、int、float、指针变量与―零值‖比较的if语句bool型数据:if( flag ) { A; } else { B;}

int型数据:if( 0 != flag ) { A; } else { B;}

指针型数:if( NULL == flag ) { A; } else { B;}

float型数据:if ( ( flag >= NORM ) && ( flag <= NORM ) ) { A;

2

}

注意:应特别注意在int、指针型变量和―零值‖比较的时候,把―零值‖放在左边,这样当把―==‖误写成―=‖时,编译器可以报错,否则这种逻辑错误不容易发现,并且可能导致很严重的后果。

面试题3:sizeof和strlen的区别

sizeof和strlen有以下区别:

sizeof是一个操作符,strlen是库函数。

sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为?\0?的字符串作参数。

编译器在编译时就计算出了sizeof的结果。而strlen函数必须在运行时才能计算出来。并且sizeof计算的是数据类型占内存的大小,而strlen计算的是字符串实际的长度。

数组做sizeof的参数不退化,传递给strlen就退化为指针了。

注意:有些是操作符看起来像是函数,而有些函数名看起来又像操作符,这类容易混淆的名称一定要加以区分,否则遇到数组名这类特殊数据类型作参数时就很容易出错。最容易混淆为函数的操作符就是sizeof。

面试题4:C语言的关键字static 和C++ 的关键字static 有什么区别

在C中static用来修饰局部静态变量和外部静态变量、函数。而C++中除了上述功能外,还用来定义类的成员变量和函数。即静态成员和静态成员函数。

注意:编程时static的记忆性,和全局性的特点可以让在不同时期调用的函数进行通信,传递信息,而C++的静态成员则可以在多个对象实例间进行通信,传递信息。

面试题5:C中的malloc和C++中的new有什么区别

malloc和new有以下不同:

(1)new、delete 是操作符,可以重载,只能在C++中使用。(2)malloc、free是函数,可以覆盖,C、C++中都可以使用。(3)new 可以调用对象的构造函数,对应的delete调用相应的析构函数。

(4)malloc仅仅分配内存,free仅仅回收内存,并不执行构造和析构函数

(5)new、delete返回的是某种数据类型指针,malloc、free返回的是void指针。

注意:malloc申请的内存空间要用free释放,而new申请的内存空间要用delete释放,不要混用。因为两者实现的机理不同。

面试题6:写一个―标准‖宏MIN #define min(a,b)((a)<=(b)?(a):(b)) 注意:在调用时一定要注意这个宏定义的副作用,如下调用:((++*p)<=(x)?(++*p):(x)。

p指针就自加了两次,违背了MIN的本意。

3

面试题7:一个指针可以是volatile吗

可以,因为指针和普通变量一样,有时也有变化程序的不可控性。常见例:子中断服务子程序修改一个指向一个buffer的指针时,必须用volatile来修饰这个指针。

说明:指针是一种普通的变量,从访问上没有什么不同于其他变量的特性。其保存的数值是个整型数据,和整型变量不同的是,这个整型数据指向的是一段内存地址。

面试题8:a和&a有什么区别

请写出以下代码的打印结果,主要目的是考察a和&a的区别。#include void main( void ) { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf(―%d,%d‖,*(a+1),*(ptr-1)); return; }

输出结果:2,5。

注意:数组名a可以作数组的首地址,而&a是数组的指针。思考,将原式的int *ptr=(int *)(&a+1);改为int *ptr=(int *)(a+1);时输出结果将是什么呢?

面试题9:简述C、C++程序编译的内存分配情况

C、C++中内存分配方式可以分为三种:

(1)从静态存储区域分配:

内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量,static 变量等。

(2)在栈上分配:

在执行函数时,函数内局部变量的存储单元都在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

(3)从堆上分配:

即动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由程序员决定,使用非常灵活。如果在堆上分配了空间,就有责任回收它,否则运行的程序会出现内存泄漏,另外频繁地分配和释放不同大小的堆空间将会产生堆内碎块。

一个C、C++程序编译时内存分为5大存储区:堆区、栈区、全局区、文字常量区、程序代码区。

4

面试题10:简述strcpy、sprintf与memcpy的区别

三者主要有以下不同之处:

(1)操作对象不同,strcpy的两个操作对象均为字符串,sprintf的操作源对象可以是多种数据类型,目的操作对象是字符串,memcpy 的两个对象就是两个任意可操作的内存地址,并不限于何种数据类型。

(2)执行效率不同,memcpy最高,strcpy次之,sprintf的效率最低。

(3)实现功能不同,strcpy主要实现字符串变量间的拷贝,sprintf 主要实现其他数据类型格式到字符串的转化,memcpy主要是内存块间的拷贝。

说明:strcpy、sprintf与memcpy都可以实现拷贝的功能,但是针对的对象不同,根据实际需求,来选择合适的函数实现拷贝功能。

面试题11:设置地址为0x67a9的整型变量的值为0xaa66 int *ptr; ptr = (int *)0x67a9; *ptr = 0xaa66;

说明:这道题就是强制类型转换的典型例子,无论在什么平台地址长度和整型数据的长度是一样的,即一个整型数据可以强制转换成地址指针类型,只要有意义即可。

面试题12:面向对象的三大特征

面向对象的三大特征是封装性、继承性和多态性:

封装性:将客观事物抽象成类,每个类对自身的数据和方法实行

protection(private,protected,public)。

继承性:广义的继承有三种实现形式:实现继承(使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承(仅使用属性和方法,实现滞后到子类实现)。 多态性:是将父类对象设置成为和一个或更多它的子对象相等的技术。用子类对象给父类对象赋值之后,父类对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。

说明:面向对象的三个特征是实现面向对象技术的关键,每一个特征的相关技术都非常的复杂,程序员应该多看、多练。

面试题13:C++的空类有哪些成员函数

缺省构造函数。

缺省拷贝构造函数。

缺省析构函数。

缺省赋值运算符。

缺省取址运算符。

缺省取址运算符const。

注意:有些书上只是简单的介绍了前四个函数。没有提及后面这两个函数。但后面这两个函数也是空类的默认函数。另外需要注意的是,只有当实际使用这些函数的时候,编译器才会去定义它们。

5

面试题14:谈谈你对拷贝构造函数和赋值运算符的认识

拷贝构造函数和赋值运算符重载有以下两个不同之处:

(1)拷贝构造函数生成新的类对象,而赋值运算符不能。

(2)由于拷贝构造函数是直接构造一个新的类对象,所以在初始化这个对象之前不用检验源对象是否和新建对象相同。而赋值运算符则需要这个操作,另外赋值运算中如果原来的对象中有内存分配要先把内存释放掉

注意:当有类中有指针类型的成员变量时,一定要重写拷贝构造函数和赋值运算符,不要使用默认的。

面试题15:用C++设计一个不能被继承的类template class A { friend T; private: A() {} ~A() {} }; class B : virtual public A { public: B() {} ~B() {} }; class C : virtual public B { public: C() {} ~C() {} }; void main( void ) { B b; //C c; return; }

注意:构造函数是继承实现的关键,每次子类对象构造时,首先调用的是父类的构造函数,然后才是自己的。

面试题16:访问基类的私有虚函数

写出以下程序的输出结果:#include class A

6

{ virtual void g() { cout << ―A::g‖ << endl; } private: virtual void f() { cout << ―A::f‖ << endl; } }; class B : public A { void g() { cout << ―B::g‖ << endl; } virtual void h() { cout << ―B::h‖ << endl; } }; typedef void( *Fun )( void ); void main() { B b; Fun pFun; for(int i = 0 ; i < 3; i++) { pFun = ( Fun )*( ( int* ) * ( int* )( &b ) + i ); pFun(); } }

输出结果:B::g A::f B::h

注意:本题主要考察了面试者对虚函数的理解程度。一个对虚函数不了解的人很难正确的做出本题。在学习面向对象的多态性时一定要深刻理解虚函数表的工作原理。

面试题17:简述类成员函数的重写、重载和隐藏的区别

(1)重写和重载主要有以下几点不同。

范围的区别:被重写的和重写的函数在两个类中,而重载和被重载的函数在同一个类中。

参数的区别:被重写函数和重写函数的参数列表一定相同,而被重载函数和重载函数的参数列表一定不同。

virtual的区别:重写的基类中被重写的函数必须要有virtual修饰,而重载函数和被重载函数可以被

7

virtual修饰,也可以没有。

(2)隐藏和重写、重载有以下几点不同。

与重载的范围不同:和重写一样,隐藏函数和被隐藏函数不在同一个类中。

参数的区别:隐藏函数和被隐藏的函数的参数列表可以相同,也可不同,但是函数名肯定要相同。当参数不相同时,无论基类中的参数是否被virtual修饰,基类的函数都是被隐藏,而不是被重写。

说明:虽然重载和覆盖都是实现多态的基础,但是两者实现的技术完全不相同,达到的目的也是完全不同的,覆盖是动态态绑定的多态,而重载是静态绑定的多态。

面试题18:简述多态实现的原理

编译器发现一个类中有虚函数,便会立即为此类生成虚函数表vtable。虚函数表的各表项为指向对应虚函数的指针。编译器还会在此类中隐含插入一个指针vptr(对vc编译器来说,它插在类的第一个位置上)指向虚函数表。调用此类的构造函数时,在类的构造函数中,编译器会隐含执行vptr与vtable的关联代码,将vptr指向对应的vtable,将类与此类的vtable联系了起来。另外在调用类的构造函数时,指向基础类的指针此时已经变成指向具体的类的this指针,这样依靠此this指针即可得到正确的vtable,。如此才能真正与函数体进行连接,这就是动态联编,实现多态的基本原理。

注意:一定要区分虚函数,纯虚函数、虚拟继承的关系和区别。牢记虚函数实现原理,因为多态C++面试的重要考点之一,而虚函数是实现多态的基础。

面试题19:链表和数组有什么区别

数组和链表有以下几点不同:

(1)存储形式:数组是一块连续的空间,声明时就要确定长度。链表是一块可不连续的动态空间,长度可变,每个结点要保存相邻结点指针。

(2)数据查找:数组的线性查找速度快,查找操作直接使用偏移地址。链表需要按顺序检索结点,效率低。

(3)数据插入或删除:链表可以快速插入和删除结点,而数组则可能需要大量数据移动。

(4)越界问题:链表不存在越界问题,数组有越界问题。

说明:在选择数组或链表数据结构时,一定要根据实际需要进行选择。数组便于查询,链表便于插入删除。数组节省空间但是长度固定,链表虽然变长但是占了更多的存储空间。

面试题20:怎样把一个单链表反序

(1)反转一个链表。循环算法。List reverse(List n) { if(!n) //判断链表是否为空,为空即退出。{ return n; } list cur = n.next; //保存头结点的下个结点list pre = n; //保存头结点list tmp;

8

pre.next = null; //头结点的指针指空,转换后变尾结点while ( NULL != cur.next ) //循环直到cur.next为空{ tmp = cur; //实现如图10.3—图10.5所示tmp.next = pre pre = tmp; cur = cur.next; } return tmp; //f返回头指针}

(2)反转一个链表。递归算法。List *reverse( List *oldList, List *newHead = NULL ) { List *next = oldList-> next; //记录上次翻转后的链表oldList-> next = newHead; //将当前结点插入到翻转后链表的开头newHead = oldList; //递归处理剩余的链表return ( next==NULL )? newHead: reverse( t, newHead ); }

说明:循环算法就是图10.2—图10.5的移动过程,比较好理解和想到。递归算法的设计虽有一点难度,但是理解了循环算法,再设计递归算法就简单多了。

面试题21:简述队列和栈的异同

队列和栈都是线性存储结构,但是两者的插入和删除数据的操作不同,队列是―先进先出‖,栈是―后进先出‖。

注意:区别栈区和堆区。堆区的存取是―顺序随意‖,而栈区是―后进先出‖。栈由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。分配方式类似于链表。它与本题中的堆和栈是两回事。堆栈只是一种数据结构,而堆区和栈区是程序的不同内存存储区域。

面试题22:能否用两个栈实现一个队列的功能

结点结构体:typedef struct node { int data; node *next; }node,*LinkStack;

创建空栈:LinkStack CreateNULLStack( LinkStack &S) { S = (LinkStack)malloc( sizeof( node ) ); //申请新结点if( NULL == S) { printf(―Fail to malloc a new node.\n‖);

9

return NULL; } S->data = 0; //初始化新结点S->next = NULL; return S; }

栈的插入函数:LinkStack Push( LinkStack &S, int data) { if( NULL == S) //检验栈{ printf(―There no node in stack!‖); return NULL; } LinkStack p = NULL; p = (LinkStack)malloc( sizeof( node ) ); //申请新结点if( NULL == p) { printf(―Fail to malloc a new node.\n‖); return S; } if( NULL == S->next) { p->next = NULL; } else { p->next =

S->next; } p->data = data; //初始化新结点S->next = p; //插入新结点return S; }

出栈函数:node Pop( LinkStack &S) { node temp; temp.data = 0; temp.next = NULL; if( NULL == S) //检验栈{ printf(―There no node in stack!‖); return temp; } temp = *S;

10

if( S->next == NULL ) { printf(―The stack is NULL,can‘t pop!\n‖); return temp; } LinkStack p = S ->next; //节点出栈S->next = S->next->next; temp = *p; free( p ); p = NULL; return temp; }

双栈实现队列的入队函数:LinkStack StackToQueuPush( LinkStack &S, int data) { node n; LinkStack S1 = NULL; CreateNULLStack( S1 ); //创建空栈while( NULL != S->next ) //S出栈入S1 { n = Pop( S ); Push( S1, n.data ); } Push( S1, data ); //新结点入栈while( NULL != S1->next ) //S1出栈入S { n = Pop( S1 ); Push( S, n.data ); } return S; }

说明:用两个栈能够实现一个队列的功能,那用两个队列能否实现一个队列的功能呢?结果是否定的,因为栈是先进后出,将两个栈连在一起,就是先进先出。而队列是现先进先出,无论多少个连在一起都是先进先出,而无法实现先进后出。

面试题23:计算一颗二叉树的深度

深度的计算函数:int depth(BiTree T) { if(!T) return 0; //判断当前结点是否为叶子结点

11

int d1= depth(T->lchild); //求当前结点的左孩子树的深度int d2= depth(T->rchild); //求当前结点的右孩子树的深度return (d1>d2?d1:d2)+1; }

注意:根据二叉树的结构特点,很多算法都可以用递归算法来实现。面试题24:编码实现直接插入排序

直接插入排序编程实现如下:#include void main( void ) { int ARRAY[10] = { 0, 6, 3, 2, 7, 5, 4, 9, 1, 8 }; int i,j; for( i = 0; i < 10; i++) { cout<

i < 10; i++) { cout<

12

注意:所有为简化边界条件而引入的附加结点(元素)均可称为哨兵。引入哨兵后使得查找循环条件的时间大约减少了一半,对于记录数较大的文件节约的时间就相当可观。类似于排序这样使用频率非常高的算法,要尽可能地减少其运行时间。所以不能把上述算法中的哨兵视

为雕虫小技。

面试题25:编码实现冒泡排序

冒泡排序编程实现如下:#include #define LEN 10 //数组长度void main( void ) { int ARRAY[10] = { 0, 6, 3, 2, 7, 5, 4, 9, 1, 8 }; //待排序数组printf( ―\n‖ ); for( int a = 0; a < LEN; a++ ) //打印数组内容{ printf( ―%d ―, ARRAY[a] ); } int i = 0; int j = 0; bool isChange; //设定交换标志for( i = 1; i < LEN; i++ ) { //最多做LEN-1趟排序isChange = 0; //本趟排序开始前,交换标志应为假for( j = LEN-1; j >= i; j–) //对当前无序区ARRAY[i..LEN]自下向上扫描{ if( ARRAY[j+1] < ARRAY[j] ) { //交换记录ARRAY[0] = ARRAY[j+1]; //ARRAY[0]不是哨兵,仅做暂存单元ARRAY[j+1] = ARRAY[j]; ARRAY[j] = ARRAY[0]; isChange = 1; //发生了交换,故将交换标志置为真} } printf( ―\n‖ ); for( a = 0; a < LEN; a++) //打印本次排序后数组内容{ printf( ―%d ―, ARRAY[a] ); } if( !isChange ) //本趟排序未发生交换,提前终止算法{ break; } } printf( ―\n‖ ); return; }

13

面试题26:编码实现直接选择排序#include‖stdio.h‖ #define LEN 9 void main( void ) { int ARRAY[LEN]={ 5, 6, 8, 2, 4, 1, 9, 3, 7 }; //待序数组printf(―Before sorted:\n‖); for( int m = 0; m < LEN; m++ ) //打印排序前数组{ printf( ―%d ―, ARRAY

); } for (int i = 1; i <= LEN – 1; i++) //选择排序{ int t = i – 1; int temp = 0; for (int j = i; j < LEN; j++) { if (ARRAY[j] < ARRAY[t]) { t = j; } } if

(t != (i – 1)) { temp = ARRAY[i - 1]; ARRAY[i - 1] = ARRAY[t]; ARRAY[t] = temp; } } printf( ―\n‖ ); printf(―After sorted:\n‖); for( i = 0;

i < LEN; i++ ) //打印排序后数组{ printf( ―%d ―, ARRAY ); }

printf( ―\n‖ ); }

注意:在直接选择排序中,具有相同关键码的对象可能会颠倒次序,因而直接选择排序算法是一种不稳定的排序方法。在本例中只是例举了简单的整形数组排序,肯定不会有什么问题。但是在复杂的数据元素序列组合中,只是根据单一的某一个关键值排序,直接选择排序则不保证其稳定性,这是直接选择排序的一个弱点。

面试题27:编程实现堆排序

堆排序编程实现:#include

14

void createHeep(int ARRAY[],int sPoint, int Len) //生成大根堆{ while( ( 2 * sPoint + 1 ) < Len ) { int mPoint = 2 * sPoint + 1 ; if( ( 2 * sPoint + 2 ) < Len ) { if(ARRAY[ 2 * sPoint + 1 ] < ARRAY[ 2 * sPoint + 2 ] ) { mPoint = 2*sPoint+2; } } if(ARRAY[ sPoint ] <

ARRAY[ mPoint ]) //堆被破坏,需要重新调整{ int tmpData= ARRAY[ sPoint ]; //交换sPoint与mPoint的数据ARRAY[ sPoint ] = ARRAY[ mPoint ]; ARRAY[ mPoint ] = tmpData; sPoint = mPoint ; } else { break; //堆未破坏,不再需要调整} } return; } void heepSort( int ARRAY[], int Len ) //堆排序{ int i=0; for ( i = ( Len / 2 –1 ); i >= 0; i– ) //将Hr[0,Lenght-1]建成大根堆{ createHeep(ARRAY,

i, Len); } for ( i = Len – 1; i > 0; i– ) { int tmpData = ARRAY[0]; //与最后一个记录交换ARRAY[0] = ARRAY; ARRAY = tmpData; createHeep( ARRAY, 0, i ); //将H.r[0..i]重新调整为大根堆} return; }

int main( void )

15

{ int ARRAY[] ={ 5, 4, 7, 3, 9, 1, 6, 8, 2}; printf(―Before sorted:\n‖); //打印排序前数组内容for ( int i = 0; i < 9; i++ ) { printf(―%d ―, ARRAY); } printf(―\n‖); heepSort( ARRAY, 9 ); //堆排序printf(―After sorted:\n‖); //打印排序后数组内容for( i = 0; i < 9; i++ ) { printf( ―%d ―, ARRAY ); } printf( ―\n‖ ); return 0; }

说明:堆排序,虽然实现复杂,但是非常的实用。另外读者可是自己设计实现小堆排序的算法。虽然和大堆排序的实现过程相似,但是却

可以加深对堆排序的记忆和理解。

面试题28:编程实现基数排序#include #include

#define LEN 8 typedef struct node //队列结点{ int data; struct node * next; }node,*QueueNode; typedef struct Queue //队列{ QueueNode front; QueueNode rear; }Queue,*QueueLink; QueueLink CreateNullQueue( QueueLink &Q) //创建空队列{ Q = NULL; Q = ( QueueLink )malloc( sizeof( Queue ) ); if( NULL == Q ) { printf(―Fail to malloc null queue!\n‖); return NULL; }

16

Q->front = ( QueueNode )malloc( sizeof( node ) ); Q->rear =

( QueueNode )malloc( sizeof( node ) ); if( NULL == Q->front || NULL == Q->rear ) { printf(―Fail to malloc a new queue‘s fornt or rear!\n‖); return NULL; } Q->rear = NULL; Q->front->next= Q->rear; return Q; } int lenData( node data[], int len) //计算队列中各结点的数据的最大位数{ int m = 0; int temp = 0; int d; for( int i = 0; i < len; i++) { d = data.data; while( d > 0) { d /= 10; temp ++; } if( temp > m ) { m = temp; } temp = 0; } return m; } QueueLink Push( QueueLink &Q , node node ) //将数据压入队列{ QueueNode p1,p; p

=( QueueNode )malloc( sizeof( node ) ); if( NULL == p ) { printf(―Fail to malloc a new node!\n‖); return NULL; } p1 = Q->front; while(p1->next != NULL) { p1 = p1->next; } p->data = node.data;

p1->next = p; p->next = Q->rear;

17

return NULL; } node Pop( QueueLink &Q) //数据出队列{ node temp; temp.data = 0; temp.next = NULL; QueueNode p; p = Q->front->next; if( p != Q->rear ) { temp = *p; Q->front->next = p->next; free( p ); p = NULL; } return temp; } int

IsEmpty( QueueLink Q) { if( Q->front->next == Q->rear ) { return 0; } return 1; } int main( void ) { int i = 0; int Max = 0; //记录结点中数据的最大位数int d = 10; int power = 1; int k = 0; node Array[LEN] ={{450, NULL}, {32,NULL}, { 781,NULL}, { 57 ,NULL},组

{ 145,NULL},{ 613,NULL},{ 401,NULL},{ 594,NULL}}; //队列结点数

QueueLink Queue[10]; for( i = 0; i < 10; i++)

{ CreateNullQueue( Queue); //初始化队列数组} for( i = 0; i < LEN; i++) { printf(―%d ―,Array.data); } printf(―\n‖); Max = lenData( Array, LEN ); //计算数组中关键字的最大位数printf(―%d\n‖,Max);

18

for(int j = 0; j < Max; j++) //按位排序{ if(j == 0) power = 1; else power = power *d; for(i = 0; i < LEN; i++) { k = Array.data /power –(Array.data/(power * d)) * d; Push( Queue[k], Array ); } for(int l = 0, k = 0; l < d; l++) //排序后出队列重入数组{ while( IsEmpty( Queue[l] ) ) { Array[k++] = Pop( Queue[l] ); } } for( int t = 0; t < LEN; t++) { printf(―%d ―,Array[t].data); } printf(―\n‖); } return 0; }

说明:队列为基数排序的实现提供了很大的方便,适当的数据机构可以减少算法的复杂度,让更多的算法实现更容易。

面试题29:谈谈你对编程规范的理解或认识

编程规范可总结为:程序的可行性,可读性、可移植性以及可测试性。说明:这是编程规范的总纲目,面试者不一定要去背诵上面给出的那几个例子,应该去理解这几个例子说明的问题,想一想,自己如何解决可行性、可读性、可移植性以及可测试性这几个问题,结合以上几个例子和自己平时的编程习惯来回答这个问题。

面试题30:short i = 0; i = i + 1L;这两句有错吗

代码一是错的,代码二是正确的。

说明:在数据安全的情况下大类型的数据向小类型的数据转换一定要

显示的强制类型转换。

面试题31:&&和&、||和|有什么区别

(1)&和|对操作数进行求值运算,&&和||只是判断逻辑关系。

19

(2)&&和||在在判断左侧操作数就能确定结果的情况下就不再对右

侧操作数求值。

注意:在编程的时候有些时候将&&或||替换成&或|没有出错,但是其逻辑是错误的,可能会导致不可预想的后果(比如当两个操作数一个

是1另一个是2时)。

面试题32:C++的引用和C语言的指针有什么区别

指针和引用主要有以下区别:

(1)引用必须被初始化,但是不分配存储空间。指针不声明时初始化,在初始化的时候需要分配存储空间。

(2)引用初始化以后不能被改变,指针可以改变所指的对象。

(3)不存在指向空值的引用,但是存在指向空值的指针。

注意:引用作为函数参数时,会引发一定的问题,因为让引用作参数,目的就是想改变这个引用所指向地址的内容,而函数调用时传入的是实参,看不出函数的参数是正常变量,还是引用,因此可能会引发错

误。所以使用时一定要小心谨慎。

面试题33:在二元树中找出和为某一值的所有路径

输入一个整数和一棵二元树。从树的根结点开始往下访问,一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所

有路径。例如,输入整数9和如下二元树:

3

/ \

2 6

/ \

5 4

则打印出两条路径:3,6和3,2,4。

【答案】typedef struct path { BiTNode* tree; //结点数据成员struct path* next; //结点指针成员}PATH,*pPath;

初始化树的结点栈:void init_path( pPath* L ) { *L =

( pPath )malloc( sizeof( PATH ) ); //创建空树( *L )->next = NULL; } 树结点入栈函数:void push_path(pPath H, pBTree T) { pPath p = H->next; pPath q = H; while( NULL != p )

20

{ q = p; p = p->next; } p = ( pPath )malloc( sizeof( PATH ) ); //申请新结点p->next = NULL; //初始化新结点p->tree = T; q->next = p; //新

结点入栈}

树结点打印函数:void print_path( pPath L ) { pPath p = L->next;

while( NULL != p ) //打印当前栈中所有数据{ printf(―%d, ―,

p->tree->data); p = p->next; } }

树结点出栈函数:void pop_path( pPath H ) { pPath p = H->next; pPath q = H; if( NULL == p ) //检验当前栈是否为空{ printf(―Stack is

会计面试笔试题答案

会计面试笔试题答案 一、填空题 1.、资产负债表中反映的三个会计要素是:资产、负债、所有者权益。 2、更正错帐的方法有:补充登记法、划线更正法、红字冲销法。 3、现金折扣的情况下,应收帐款入帐金额确认有总价法、净价法两种处理方法。 4、固定资产加速折旧主要方法双倍余额递减法、年数总和法。 5、可做增值税抵扣凭证的有专用发票抵扣联、关税完税凭证、交通运输发票、农产品等收购凭证。 6、企业增加资本的途径投资者投入、资本公积转增资本、盈余公积转增资本。 二、会计分录实务题 1、某公司销售产品一批,价款50000元,增值部8500元,款项已存入银行 借:银行存款 58500 贷:主营业务收入 50000 应缴税费-应交增值税(销项税额)8500 2、购买原材料,支付现款5000元,支付进项税850元 借:原材料 5000 应缴税费-应交增值税(进项税额) 850 贷:库存现金 58500 3、以银行存款偿还原欠外单位货款7800元 借:应付账款 7800 贷:银行存款 7800 4、业务员借备用金2000元 借:其他应收款 2000 贷:库存现金 2000 5、业务员交水电费1500元,余款归还 借:管理费用 1500 库存现金 500 贷:其他应收款 2000

6、年末支付下年度房屋保险费6000元,下年度每月摊销500元 (1)借:预付账款6000 (2)借:管理费用500 贷:库存现金6000 贷:预付账款500 7、报废设备一台,原值20000元,累计折旧16000元,残值收入3000元 (1)借:固定资产清理4000 (2)借:库存现金3000 累计折旧16000 营业外支出1000 贷:固定资产20000 贷:固定资产清理4000 8、收到银行利息收入500元 借:银行存款500 贷:财务费用500 9、计提城建税300元,教育费及附加100元,房产税600元 借:主营业务税金及附加1000 贷:应缴税费—应交城建税300 —教育费及附加100 —房产税600 10、分期收款发出商品一批,售价50000元,增值税税率17%,成本40000元,本月已销售40000元,款项未收。 (1)借:发出商品40000 (2)借:应收账款46800 贷:主库存商品40000 贷:主营业务收入40000 应缴税费-应交增值税(销项税额)6800 (3)借:主营业务成本32000 贷:发出商品3200 三、问答题 1、谈谈你对会计工作内容的认识以及该如何做好会计工作。 2、你如何看待超时工作,周末和休息日加班?

嵌入式C语言经典笔试题目

嵌入式c语言经典笔试题目 1 .用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1) #define语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3)意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4)如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。 2 .写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B)((A)<= (B) ? (A) : (B)) 这个测试是为下面的目的而设的: 1)标识#define在宏中应用的基本知识。这是很重要的。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。 3)懂得在宏中小心地把参数用括号括起来 4)我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? least = MIN(*p++, b); 3.预处理器标识#error的目的是什么? 如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。 死循环(Infinite loops) 4.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 这个问题用几个解决方案。我首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,

google面试-笔试逻辑题及答案

谷歌笔试面试逻辑题目,部分答案在最后边。 1.一辆学校班车里面能装多少个高尔夫球? 2.你被缩小到只有硬币厚度那么点高(不是压扁,是按比例缩小),然后被扔到一个空的玻璃搅拌器中,搅拌刀片一分钟后就开始转动。你怎么办? 3.要是让你清洗整个西雅图的所有窗子,你会收取多少费用? 4.怎么才能识别出电脑的内存堆栈是向上溢出还是向下溢出? 5.你要向你8岁的侄子解释什么是数据库,请用三句话完成。 6.时钟的指针一天内会重合几次? 7.你需要从A地去B地,但你不知道能不能到,这时该怎么办? 8.好比你有一个衣橱,里面塞满了各种衬衫,你会怎么整理这些衬衫,好让你以后找衬衫的时候容易些? 9.有个小镇有100对夫妇,每个丈夫都在欺骗他的妻子。妻子们都无法识破自己丈夫的谎言,但是她们却能知道其他任何一个男人是否在撒谎。镇上的法律规定不准通奸,妻子一旦证明丈夫不忠就应该立刻杀死他,镇上所有妇女都必须严格遵守这项法律。有一天,镇上的女王宣布,至少有一个丈夫是不忠的。这是怎么发生的呢? 10.在一个重男轻女的国家里,每个家庭都想生男孩,如果他们生的孩子是女孩,就再生一个,直到生下的是男孩为止。这样的国家,男女比例会是多少? 11.如果在高速公路上30分钟内到一辆车开过的几率是0.95,那么在10分钟内看到一辆车开过的几率是多少(假设为常概率条件下) 12.如果你看到钟的时间是3:15,那一刻时针和分针的夹角是多少?(肯定不是0度!)

13.4个人晚上要穿过一座索桥回到他们的营地。可惜他们手上只有一支只能再坚持17分钟的手电筒。通过索桥必须要拿着手电,而且索桥每次只能撑得起两个人的份量。这四个人过索桥的速度都不一样,第一个走过索桥需要1分钟,第二个2分钟,第三个5分钟,最慢的那个要10分钟。他们怎样才能在17分钟内全部走过索桥? 14.你和朋友参加聚会,包括你们两人在内一共有10个人在场。你朋友想跟你打赌,说这里每有一个人生日和你相同,你就给他1元,每有一个人生日和你不同,他给你2元。你会接受么? 15.全世界有多少个钢琴调音师? 16.你有8个一样大小的球,其中7个的重量是一样的,另一个比较重。怎样能够用天平仅称两次将那个重一些的球找出来。 17.有5个海盗,按照等级从5到1排列。最大的海盗有权提议他们如何分享100枚金币。但其他人要对此表决,如果多数反对,那他就会被杀死。他应该提出怎样的方案,既让自己拿到尽可能多的金币又不会被杀死?(提示:有一个海盗能拿到98%的金币) A.逻辑推理 1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费? 2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。 3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。问:小明一家如何过桥?

华为面试笔试题目(附答案)

华为面试笔试题目(附答案)

华为面试/笔试题目(附答案) (1)什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头。 (2)char * const p char const * p const char *p 上述三个有什么区别? 答案: char * const p; //常量指针,p的值不可以修改 char const * p;//指向常量的指针,指向的常量值不可以改 const char *p; //和char const *p (3)char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout < < ( str1 == str2 ) < < endl; cout < < ( str3 == str4 ) < < endl; cout < < ( str5 == str6 ) < < endl; cout < < ( str7 == str8 ) < < endl; 结果是:0 0 1 1 str1,str2,str3,str4是数组变量,它们有各自的内存空间;而str5,str6,str7,str8是指针,它们指向相同的常量区域。 (4)以下代码中的两个sizeof用法有问题吗? [C易] void UpperCase( char str[] ) // 将 str 中的小写字母转换成大写字母 { for( size_t i=0; i (Y)?(Y):(X)) //结尾没有‘;’

c语言笔试题(答案)(精心整理)

笔试题 一、填空题(每个空4分,共28分) 1)struct tagABC { char name[10]; char sex; long sno; float score[4]; }*pAbc;(四字节对齐) pAbc=NULL; 那么,执行pAbc+=2;之后pAbc的值为(64 ) 2)如下代码,最终value的值是(8) int *p1,*p2; int value; p1=(int*)0×400; p2=(int*)0×408; value = p2-p1; 3)如下代码,printf的结果为(2) #include〈stdio.h〉 #include〈string.h〉 void main(void) { char acNew[20]= “\\0\0”; printf(“%d\n”,strlen(acNew)); } 4) 有如下程序段,运行该程序的输出结果是(33) main () { int y=3,x=3,z=1; printf(“%d%d\n”,(++x,y++),z+2); } 5)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值为(2)6)struct tagAAA { Unsigned char ucId:1; Unsigned char ucPara0:2; Unsigned char ucState:6; Unsigned char ucTail:4; Unsigned char ucAvail; Unsigned char unTail2:4; Unsigned long ulData; }AAA_S 问:AAA_S在字节对齐分别为1,4情况下,占用的空间大小分别是多少?( 9)(12 )

百一测评——Java经典面试题 带答案

职业技能题库&在线云笔试平台https://www.sodocs.net/doc/184874443.html, 试卷名称:Java经典面试题带答案 试卷描述:java笔试题目、招聘笔试、微信考试、在线考试 试卷链接:https://www.sodocs.net/doc/184874443.html,/store/open/paperInfo/41651 试卷限时:50分 一.单项选择题 每题分值:2.5分 是否题目乱序:是 是否选项乱序:是 是否可回溯:是 难度:中 1.[单选]Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.[单选]下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确

职业技能题库&在线云笔试平台https://www.sodocs.net/doc/184874443.html, 答案:B 3.[单选]下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名 C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 4.[单选]提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.sodocs.net/doc/184874443.html,ng D.java.swing 答案:A 5.[单选]下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.[单选]执行如下程序代码 a=0;c=0;

职业技能题库&在线云笔试平台https://www.sodocs.net/doc/184874443.html, do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C 7.[单选]下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.[单选]下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象

c语言笔试题目及答案

c语言笔试题目及答案 C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面是c语言笔试题目及答案,请参考。 c语言笔试题目及答案 一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选 项涂写在答题卡相应位置上,答在试卷上不得分。 (1)数据的存储结构是指________。 A)存储在外存中的数据 B)数据所占的存储空间量 C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示 答案:D 评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。 (2)下列关于栈的描述中错误的是________。 A)栈是先进后出的线性表

B)栈只能顺序存储 C)栈具有记忆作用 D)对栈的插入与删除操作中,不需要改变栈底指针 答案:B 评析:栈是一种特殊的线性表,又称先进后出表(FILO—First In Last Out)。 (3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 ________。 A)冒泡排序为n2 B)冒泡排序为n C)快速排序为n D)快速排序为n(n一1)/2 答案:D 评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。 (4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。 A)log2n B)n/2 C)n D)n+l 答案:C 评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。对长度为n的线性表进行顺序查找,在最坏情况下需要比较

人事助理(hr)笔试题及答案-面试笔试

人事助理(hr )笔试题及答案_面试笔试 1、请列出人事助理的岗位职责和考核指标。 2、请列举招聘中常见的几种误区以及如何规避。 3、请说明如何对应聘人员进行综合素质的测评。 4、请简单编写it 企业《员工电脑管理制度》,包含:笔记本电脑——外借外带被抢遗失等情况。 大家讨论下:) 忘了把前程无忧上的相关职责放上来了,其实是人事专员/主管的职位了,头衔写的是助理而已@ 任职要求: 1、计算机或人力资源相关专业大专以上学历,至少三年以上人事工作经验; 3、熟悉国家和广东省的人事方面的法律、法规、章程、方针、政策; 4、熟悉招聘(重点)、绩效考核、薪酬福利、员工激励、人才引进等事务性工作; 5、熟练使用word 、excel 等办公软件和相关办公设备,对人事测评有比较深入了解; 6、有一定英文基础,具有良好的人际沟通及语言、文字表达能力;能独挡一面。 7、勤勉敬业,责任心强,做事有条理,具有团队精神和合作意识; 8、男女不限。 回头把自己的答案贴上来大家给予指导哦??:)一-其实我主要是做行政的,人事的 实操经验不是很多,呵呵把自己的答案贴上来??大家多指教 笔试题 1、请列出人事助理的岗位职责和考核指标。答:岗位职责: 1、招聘工作:执行招聘管理制度流程,参与招聘需求调查分析、招聘渠道选择、招聘活动策划与执行、人员甄选,确保及时完成人员补充计划目标; 2、培训工作:推进落实培训计划和体系,建立各部门的内训员队伍及培训手册; 3、薪酬管理:结合公司发展实际情况制定薪资体系,每月薪资核算、个税申报及奖惩管理,并及时有效的进行调整员工档案管理、提供人力资源成本分析报表; 4、绩效工作:推行并完善绩效考核体系,协助各部门作好绩效考核执行工作; 5、协调员工关系,处理员工投诉,及时处理公司管理过程中的人力行政问题; 6、管理员工信息档案工作,完善公司各项人事数据资料; 7、完成公司人力资源流程性工作:入职、转正、合同、离职等手续办理; 8、协助完成职位描述和职位说明书的撰写; 9、解答所负责区域员工社保、公积金等疑问,并办理社会保险、公积金等相关事宜; 10、上级领导交办的其他事项。 考核指标: (1)目标管理法(2)关键绩效指标(3)平衡计分法(4)360 度考核法人力资源部主管绩效考核指标量表 被考核人姓名职位人事主管部门人力资源部考核人姓名职位总经理部门序号kpi 指标权重绩效目标值考核得分 1 人力资源工作计划按时完成率15% 考核期内人力资源工作计划按时完成率达100% 2 人力资源成本预算控制率15% 考核期内人力资源成本预算控制率在 _________ % 以下

面试笔试题(带答案)

面试笔试题(带答案) https://www.sodocs.net/doc/184874443.html,work Information Technology Company.2020YEAR

1:当你在嘈杂环境中忽然接到面试电话,你会? A:无所谓,留在原地,继续接听 B:立刻找一个比较安静的地方 C:附近没有安静的地方,请对方留下联系方式,然后迅速打过去 D:附近没有安静的地方,请对方留下联系方式,第二天再打 标准选项:B,此题考察的是情商,会表现跟人的沟通、交际能力。 2:对方要求你于某日某时到该公司面试,但并未告诉你该公司详细地址,你会? A:在电话中向对方询问公司的具体地址 B:若对方态度和善,不但会问具体地址,还会询问行车路线 C:挂断电话后才想起来,没办法,按照刚才的号码再打回去询问吧 D:挂断电话后才想起来,没关系,我上网查查去,如有好几个地址,那再打电话询问 标准选项:D,此题考察是求职者的专业素质,开拓精神,以及主观能动性。3:面试前,你是否会特地整理一下个人形象和卫生? A:不会,我对自己的形象很有信心,恩,明天打算穿那套看起来很青春的牛仔装 B:不会,我相信面试官会更看重我衣衫滥屡的外表下,那出色的才能 C:会,洗洗头发洗洗澡,以干净、清爽、利落的形象出现在面试官面前 D:说不定,看心情还有要去面试的公司,知名外企我会适当修饰以下,小公司就算了 E:会,我会洗洗头发洗洗澡,再洒点香水,画个妆,这让我更有信心 标准选项:C。此题考察的是求职者对自己整体形象的包装,通过包装可以了解一个人 的性格。 4:当你历尽千辛万苦终于赶到公司之后,你发现你比预定时间早到了半个小时,这时你会 A:直接进公司找前台,平静地联系面试人员

企业面试笔试题及答案

企业面试笔试题及答案 1.住宅冷负荷指标:________,热负荷指标:________,噪音标准:________? 2.商场冷负荷指标:________,热负荷指标:________,新风量标准:________;噪音标准:________? 3.一般空调冷冻水供/回水温度为:______,空调采暖热水供/回水温度为:____? 4.一般空调、通风系统中主风管风速:________,支管风速: ________? 5. 防烟分区的最大面积:________。高规中关于排烟风机的风量的规定为:担负一个防烟分区应按每平方米面积不小于________计算(但单台风机最小排烟量不应小于________);担负两个或两个以上防烟分区排烟时,应按最大防烟分区面积每平方米不小于________计算? 6.机械加压送风机的`全压,除计算最不利环管道压头损失外,尚应有余压。防烟楼梯间余压值为:________;前室、合用前室、消防电梯间前室、封闭避难层(间)余压值为:________?

7.在空调系统末端选择方面,大空间建议采用:____________空 调系统,小空间建议采用___________空调系统? 8.请按管径大小,简述空调水系统常用的管材种类及连接方式? 9.请简述空调水系统及风系统常用的保温材料种类及其适用范围? 10.请简述在通风、空调系统中,哪些位置须安装防火阀? 11.请简述暖通空调系统中的设备、管道可采取哪些消声降噪措施? 12.请简述风机盘管的选型及安装要点? 13.请简述风冷热泵、VRV系统室外机、分体空调室外机等设备的 安装要点。上述设备在寒冷季节均会有制热量的衰减,可采取哪些 措施进行补偿? 14.请简述空调水系统可采取哪些水利平衡措施,在系统的调试过程中,可采取哪些简单方法确定水系统管路中的水量已达到设计要求?

公务员面试试题经典100题及答案

※1、你有一个非常好的工作设想,你经过实际调查认为这个设想既科学,又可行,但你的领 导和同事们很固执,你采取什么办法说服他们与你合作? ※2、在你朋友当中,有两位朋友由于发生一些矛盾而中断往来,如果需要协调他们之间的关系,你会如何做? ※3、你为什么要报考国家公务员(公安)? ※4、谈谈你的个人简历和家庭情况(不能透露自己的姓名)? ※5、以前我们的计划经济讲究公平,而现在的市场经济讲究效率,请你就这两点谈谈你的看法。 ※6、你刚到单位工作,找你的电话很多,你打给别人的电话也很多,有一位老同志看不过眼, 批评了你,你会怎么做? ※7、你认为你身边的某人犯了错误你会怎么做? ※8、你认为 DY是邪教吗?为什么? ※9、谈谈你对本次公务员考试的看法和建议? ※10、工作中你难以和同事、上司相处,你该怎么办? ※11、你觉的工作后,工作的单位与你的理想有很大的距离,谈谈你的想法? ※12、你的工作计划得到了单位局长的批准,而你部门科长且不同你的计划,你给怎么处理? ※13、领导让你下乡做扶贫工作,你该怎么制定计划? ※14、谈谈你对社会腐败现象的看法? ※15、你所学的知识,工作经验与考的职位之间有什么对应性? ※16、有人拿者介绍信说是灾区来的要你们部门捐款,你怎么办? ※17、谈谈你对“有权不用,过期作废”和“为官一方,造福一方”的看法? ※18、中国已经加入 WTO,谈谈 WTO对中国的经济、政治、文化的影响? ※19、新领导如何对待前任旧领导? ※20、谈谈你对代沟的看法?如果你与领导产生代沟上的问题,你该怎么处理?

1、你参加过什么工作,有什么体会? 2、当你和领导意见有冲突时,你如何做? 3、现在我市在打造“信用宁波”,你该怎么做? 4、谈谈你过去的学习和工作,认为最出色的一件事情,具体的说? 5、你手头上有许多重要的工作,你的领导又交给你一件任务,而你没有多余的时间,你如何处理这件事情? 6、在完成某项工作时,你认为领导要求的方式不是最好的,自己还有更好的方法,你该怎么办? 7、你刚上班没有多久就连续被偷了两辆自行车,你的同学让你买赃车,你怎么办? 8、培根说:“金钱是忠实的男仆,也是恶毒女主人”,你怎么看? 9、有人说:“腐败是经济的润滑剂”,你怎么看? 10、广西有位初一女生因受不了军训,吃洗衣粉自杀,你怎么看? 11、现在有些人收入比公务员高,有些人心理不平衡了,你怎么看? 12、现在学生在升学是摆“谢师宴”,你怎么看? 13、你去银行取钱,但是人很多,这时你会怎么做? 14、一个会议上,分成两派意见,大家争执不下,如果你是主持人,这时你会怎么做? 15、你对反腐败的问题是怎么看的? 16、如果你遇到挫折你会怎么做?、 17、你觉得现在的公务员素质怎么样,请你谈谈你的看法? 18、如果国庆节休假与加班发生了冲突,请你谈谈工作与加班问题? 19、对目前年轻人以游戏心态从事工作的看法? 公务员面试试题汇编及答案3

嵌入式C语言面试题汇总(超经典)

第一部分:基本概念及其它问答题 1、关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。 2、“引用”与指针的区别是什么? 答、1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。 流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。 3、.h头文件中的ifndef/define/endif 的作用? 答:防止该头文件被重复引用。 4、#include 与#include “file.h”的区别? 答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。 5、描述实时系统的基本特性 答:在特定时间内完成特定的任务,实时性与可靠性。 6、全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 答:全局变量储存在静态数据区,局部变量在堆栈中。 7、什么是平衡二叉树? 答:左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。 8、堆栈溢出一般是由什么原因导致的? 答:1.没有回收垃圾资源 2.层次太深的递归调用

面试笔试题带答案

1:当你在嘈杂环境中忽然接到面试电话,你会? A:无所谓,留在原地,继续接听 B:立刻找一个比较安静的地方 C:附近没有安静的地方,请对方留下联系方式,然后迅速打过去 D:附近没有安静的地方,请对方留下联系方式,第二天再打标准选项:B,此题考察的是情商,会表现跟人的沟通、交际能力。 2:对方要求你于某日某时到该公司面试,但并未告诉你该公司详细地址,你会? A:在电话中向对方询问公司的具体地址 B:若对方态度和善,不但会问具体地址,还会询问行车路线 C:挂断电话后才想起来,没办法,按照刚才的号码再打回去询问吧 D:挂断电话后才想起来,没关系,我上网查查去,如有好几个地址,那再打电话询问 标准选项:D,此题考察是求职者的专业素质,开拓精神,以及主观能动性。 3:面试前,你是否会特地整理一下个人形象和卫生?

A:不会,我对自己的形象很有信心,恩,明天打算穿那套看起来很青春的牛仔装 B:不会,我相信面试官会更看重我衣衫滥屡的外表下,那出色的才能 C:会,洗洗头发洗洗澡,以干净、清爽、利落的形象出现在面试官面前 D:说不定,看心情还有要去面试的公司,知名外企我会适当修饰以下,小公司就算了 E:会,我会洗洗头发洗洗澡,再洒点香水,画个妆,这让我更有信心 标准选项:C。此题考察的是求职者对自己整体形象的包装,通过包装可以了解一个人 的性格。 4:当你历尽千辛万苦终于赶到公司之后,你发现你比预定时间早到了半个小时,这时你会 A:直接进公司找前台,平静地联系面试人员 B:先在公司附近晃一晃,熟悉一下环境,整理好心情,顺带想想可能遇见的面试问题, 提前5-10分钟再进去 C:先观察一下公司附近的环境,食堂远不远,购物方不方便,周

面试护理考试题(含答案)

护理面试考试题 一、单选题(每题3分,共36分) 1、插胃管时,病人出现呛咳、紫绀应( C ) A、嘱病人深呼吸 B、嘱病人作吞咽动作 C、立即拔管、休息片刻后重插 D、托起病人头部再插管 2、急诊护士在抢救过程中,正确的是( B ) A、不执行口头医嘱 B、口头医嘱向医生复述一遍,经双方确认无误后方可执行 C、抢救完毕,请医生第二天补写医嘱 D、急救药品的空安瓿经患者检查后方可丢弃 3、无菌包潮湿后,应该( C ) A、烘干后使用 B、四小时内用完 C、重新灭菌 D、在最短时间内用完 4、一昏迷病人,护士巡视患者的时间应是下列哪一项( C ) A、10——15分 B、15——20分 C、15——30分 D、30——60分 5、.当对医嘱内容有疑问时,护士应: D A.拒绝执行 B.询问护士长后执行 C. 凭经验执行 D.询问医生,核对无误后执行 6、成人插胃管时,测量长度的正确方法是: A A、从鼻尖至耳垂再至剑突 B、从鼻尖至剑突 C、从耳垂再至剑突 D、从口至耳垂再至剑突 7、无菌用物的保管,错误的是 D A、无菌用物和非无菌用物分别放置 B、无菌包未被污染的情况下,有效期7天 C、一套无菌物品只供一位患者使用 D、无菌物品一经取出,如果未用,应放回原容器中 8、长期卧床患者预防压疮发生,正确的护理措施是D A、一般每4小时翻身1次,必要时2小时翻身一次 B、翻身时注意节力原则,不要将患者身体抬起 C、分泌物多者,为避免污染可让其直接卧于橡胶单上 D、根据病情给予高蛋白、高维生素膳食 9、病人的活动假牙取下刷洗后,应浸泡在B A、70%的酒精中 B、冷开水中 C、新洁尔灭消毒液中 D.热开水中 10、.用吸痰管进行气管内吸痰的方法是 E A.自上而下抽吸 B.自下而上抽吸 C.上下移动吸痰管抽吸 E.左右旋转向上提吸 11、输液速度应减慢的情况是( D ) A.严重脱水B.血容量不足C.心肺功能良好者D.年老体弱婴幼儿、输入高渗盐水、含钾药物、升压药 12、使用约束带时应重点观察( D ) A、衬垫是否垫好 B、卧位是否舒适 C、约束带是否扎紧 D、局部皮肤颜色及皮肤温度有无变化

面试练习题以及答案

面试习题以及答案 面试问题1:钓过螃蟹的人或许知道,篓子中放了一群螃蟹,不必盖上盖子,螃蟹是爬不出来的。因为只要有一只想往上爬,其他螃蟹纷纷攀附在他身上,结果是把它拉下来,最后没有一只出的去。对此现象,结合实际谈谈你的想法。 我的回答: 各位考官,大家好!现在我开始答题。 在螃蟹这个群体中,每一个个体都有自己的目标那就是从篓子中爬出来,然而,它们为了自己的目标相互竞争,使群体的共同目标在它们无序的也可以说是不正当的竞争下走向失败。题目中的螃蟹的例子就是生活中的一个剪影,例如《特坦尼克号》这部电视剧在沉船的过程中很多人因为争着跳上救生艇而掉入海中,在这种慌乱中,船长镇定的面庞跟整个画面形成了鲜明的对比,正是船长的组织与安排才使多数人获救。而在在现实中有很多踩踏事件发生给我们留下了悲痛的教训。 出现螃蟹现象的原则有以下几个方面: 1、组织中的没有建立健康的竞争机制,导致每个个体只为了个人的目标而无序地竞争, 即伤害自己也伤害别人,甚至也破坏了组织的目标。 2、组织中的成员之间缺少沟通与合作,导致1+1<2的情况的出现,使组织不能有效的运 转,造成内耗加大。 3、在团体组织中,没有领导,即使有在这种无序的竞争中也很难履行领导应有的职责。解决的办法如下: 1、任何一个组织要想良性运作,需要建立组织目标。只要有两个人以上的团体就可以形成 一个组织,组织运作效率高低直接影响组织职能完成如何,为此,组织要高效率地实施职能必须确定科学、合理的组织目标。然后将组织目标分解到每一个成员身上,使个体目标明确并且与组织整体目标相一致。 2、组织中要有领导并且维护领导的权威。采用民主方法选举组织领导,领导统一指挥该组 织,在组织中及时领导、组织、协调员工之间的关系,使组织中的成员能够团结合作,从而达到双赢。 3、组织中建立有效的竞争、合作奖励机制。要调动组织中每个成员的积极性,必须建立既 竞争又合作的激励机制,才能激发每个成员积极向上的力量,尽情地施展才华,为完成组织总体目标而不断奋斗。 4、建立职位责任制。将每个员工的职位责任明晰化、制度化,让每个职员明确自己在组织 中的角色以及与其它职位之间的关系,并努力工作完成自己所在职位的角色,不要因为自己角色完成不当而影响其他职位的完成。 总的来说,任何组织以及组织中的个体要有目标;组织中要有领导并且维护领导的权威;组织中建立有效的竞争、合作奖励机制;建立职位责任制等一系列规章制度。在领导者的组织、协调、控制与带领下,组织才能达到最优,实现多赢。 回答完毕! 第二个问题假如你参加工作后,某天早上到单位后有下列工作要处理,你准备怎么办? 1. 由你起草的某工作方案,下午即将参加领导班子集体讨论,你感觉还有不完善的地方. 2. 群众上访的事件中,牵扯到有你负责的某一工作,因此领导责成你尽快出面解释,但问题你还没有彻底搞清楚.你处室某同志参加了后备干部的竞选,组织上已经通知你上午找他谈话,了解该同志的工作和思想上表现. 各位考官,我已准备就绪,现在开始答题: 根据公务员工作时间,我与早上八点三是到达办公室,对今天上午的工作任务进行日程

立信会计师事务所面试笔试题+答案

立信会计师事务所有限公司面试笔试题 单选,多选和计算分析题 (除特别说明外,本试题背景均为财政部2006年发布的《企业会计准则》) 一、单项选择题(本题共10小题,每小题3分,共30分) 1.商品流通企业,下列哪些成本支出可以计入存货的成本:( A ) A、在采购商品过程中发生的进货费用; B、采购过程中发生的物资毁损、短缺,扣除赔款部分后的超定额损失; C、大宗采购商品保管期间发生的仓储费用; D、从仓库移到门市部所发生的费用。 商品流通企业商品采购成本包括进价和按规定应计入商品成本的税金,采购过程中发生的运输费、装卸费、保险费、包装费、仓储费等费用、运输途中的合理损耗、入库前的挑选整理费等,不计入商品的实际成本,而作为进货费用,直接计入当期损益。 2.企业对于发出存货可以根据需要采用合适的成本计算方法,但以下方法中不允许使用的是:( B ) A、先进先出法 B、后进先出法 C、移动加权平均法 D、月末一次加权平均法 E、个别计价法 3.甲公司为增值税一般纳税人,于2010年5月25日购进一台不需要安装的生产设备,收到的增值税专用发票上注明的设备价款为3000万元,增值税额为510万元,款项已支付;另支付保险费15万元,装卸费5万元。当日,该设备投入使用。假定不考虑其他因素,甲公司该设备的初始入账价值为( D )万元。 A、3000 B、3020 C、3510 D、3530 4.下列各项资产减值准备中,在相应资产的持有期间内可以转回的是(B)。 A.固定资产减值准备 B.持有至到期投资减值准备 C.商誉减值准备 D.长期股权投资减值准备 5.下列各项中,会引起所有者权益总额发生增减变动的是(D )。 A.以盈余公积弥补亏损B.提取法定盈余公积 C.发放股票股利D.将债务转为资本 6.甲公司2009年1月10日开始自行研究开发无形资产,12月31日达到预定用途。其中,研究阶段发生职工薪酬30万元、计提专用设备折旧40万元;进入开发阶段后,相关支出符合资本化条件前发生的职工薪酬30万元、计提专用设备折旧30万元,符合资本化条件后发生职工薪酬100万元、计提专用设备折旧200万元。假定不考虑其他因素,甲公司2009年对上述研发支出进行的下列会计处理中,正确的是( C )。 A.确认管理费用70万元,确认无形资产360万元 B.确认管理费用30万元,确认无形资产400万元 C.确认管理费用130万元,确认无形资产300万元 D.确认管理费用100万元,确认无形资产330万元 7.2009年7月1日,甲公司从二级市场以2100万元(含已到付息日但尚未领取的利息100万元)购入乙公司发行的债券,另发生交易费用10万元,划分为交易性金融资产。当年12月31日,该交易性金融资产的公允价值为2200万元。假定不考虑其他因素,当日甲公司应就该资产确认的公允价值变动损益为(D)万元。

c语言经典面试题

C语言面试题大汇总之华为面试题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出内容 #include int main(void) { int a,b,c,d; a=10;

c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 答:10,12,120 5、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 答: 1) 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 2) 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。3) static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对

相关主题