欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 教学文档 > 试题>普天C++类笔试题目

普天C++类笔试题目

2024-02-03 08:44:54 收藏本文 下载本文

“阿恒爱芭蕾”通过精心收集,向本站投稿了12篇普天C++类笔试题目,以下是小编整理后的普天C++类笔试题目,欢迎阅读与收藏。

普天C++类笔试题目

篇1:普天C++类笔试题目

1.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数,

2.写一个函数,将其中的`\t都转换成4个空格。

3.Windows程序的入口是哪里?写出Windows消息机制的流程。

4.如何定义和实现一个类的成员函数为回调函数?

5.C++里面是不是所有的动作都是main引起的?如果不是,请举例。

6.C++里面如何声明const void f(void)函数为C程序中的库函数?

7.下列哪两个是等同的

int b;

A const int* a = &b;

B const* int a = &b;

C const int* const a = &b;

D int const* const a = &b;

8.内联函数在编译时是否做参数类型检查?

void g(base & b){

b.play;

}

void main(){

son s;

g(s);

return;

}

更多相关的

篇2:普天C++笔试题目

以下笔试题目是普天面试最常考的题目,现在分享给大家练习,

1.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。

2.写一个函数,将其中的\t都转换成4个空格。

3.Windows程序的入口是哪里?写出Windows消息机制的流程。

4.如何定义和实现一个类的成员函数为回调函数?

5.C++里面是不是所有的动作都是main()引起的?如果不是,请举例。

6.C++里面如何声明const void f(void)函数为C程序中的`库函数?

7.下列哪两个是等同的

int b;

A const int* a = &b;

B const* int a = &b;

C const int* const a = &b;

D int const* const a = &b;

8.内联函数在编译时是否做参数类型检查?

void g(base & b){

b.play;

}

void main(){

son s;

g(s);

return; }

更多相关的

篇3:c笔试题目

1.求下面函数的返回值(微软)

int func(x)

{

int countx = 0;

while(x)

{

countx ++;

x = x&(x-1);

}

return countx;

}

假定x = 9999。 答案:8

思路:将x转化为2进制,看含有的1的个数。

2. 什么是“引用”?申明和使用“引用”要注意哪些问题?

答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。

3. 将“引用”作为函数参数有哪些特点?

(1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。

(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。

(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用“*指针变量名”的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。

4. 在什么时候需要使用“常引用”?

如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。常引用声明方式:const 类型标识符 &引用名=目标变量名;

例1

int a ;

const int &ra=a;

ra=1; //错误

a=1; //正确

例2

string foo( );

void bar(string & s);

那么下面的表达式将是非法的:

bar(foo( ));

bar(“hello world”);

原因在于foo( )和“hello world”串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的。因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是非法的。

引用型参数应该在能被定义为const的情况下,尽量定义为const 。

篇4:c笔试题目

1. 已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数,请编写函数 strcpy。

答案:

char *strcpy(char *strDest, const char *strSrc)

{

if ( strDest == NULL || strSrc == NULL)

return NULL ;

if ( strDest == strSrc)

return strDest ;

char *tempptr = strDest ;

while( (*strDest++ = *strSrc++) != ‘/0’)

return tempptr ;

}

2. 已知String类定义如下:

class String

{

public:

String(const char *str = NULL); // 通用构造函数

String(const String &another); // 拷贝构造函数

~ String; // 析构函数

String & operater =(const String &rhs); // 赋值函数

private:

char *m_data; // 用于保存字符串

};

尝试写出类的成员函数实现。

答案:

String::String(const char *str)

{

if ( str == NULL ) //strlen在参数为NULL时会抛异常才会有这步判断

{

m_data = new char[1] ;

m_data[0] = '/0' ;

}

else

{

m_data = new char[strlen(str) + 1];

strcpy(m_data,str);

}

}

String::String(const String &another)

{

m_data = new char[strlen(another.m_data) + 1];

strcpy(m_data,other.m_data);

}

String& String::operator =(const String &rhs)

{

if ( this == &rhs)

return *this ;

delete m_data; //删除原来的数据,新开一块内存

m_data = new char[strlen(rhs.m_data) + 1];

strcpy(m_data,rhs.m_data);

return *this ;

}

String::~String

{

delete m_data ;

}

3. .h头文件中的ifndef/define/endif 的作用?

答:防止该头文件被重复引用。

4. #i nclude 与 #i nclude “file.h”的区别?

答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。

5.在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?

首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。

通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样,模块B中调用模块A中的函数时,在编译阶段,模块B虽然找不到该函数,但是并不会报错;它会在连接阶段中从模块A编译生成的目标代码中找到此函数

extern “C”是连接申明(linkage declaration),被extern “C”修饰的变量和函数是按照C语言方式编译和连接的,来看看C++中对类似C的函数是怎样编译的:

作为一种面向对象的语言,C++支持函数重载,而过程式语言C则不支持。函数被C++编译后在符号库中的名字与C语言的不同。例如,假设某个函数的原型为:

void foo( int x, int y );

该函数被C编译器编译后在符号库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同,但是都采用了相同的机制,生成的新名字称为“mangled name”)。

_foo_int_int 这样的名字包含了函数名、函数参数数量及类型信息,C++就是靠这种机制来实现函数重载的。例如,在C++中,函数void foo( int x, int y )与void foo( int x, float y )编译生成的符号是不相同的,后者为_foo_int_float。

同样地,C++中的变量除支持局部变量外,还支持类成员变量和全局变量。用户所编写程序的类成员变量可能与全局变量同名,我们以“.”来区分。而本质上,编译器在进行编译时,与函数的处理相似,也为类中的变量取了一个独一无二的名字,这个名字与用户程序中同名的全局变量名字不同。

未加extern “C”声明时的连接方式

假设在C++中,模块A的头文件如下:

// 模块A头文件 moduleA.h

#ifndef MODULE_A_H

#define MODULE_A_H

int foo( int x, int y );

#endif

在模块B中引用该函数:

// 模块B实现文件 moduleB.cpp

#i nclude “moduleA.h”

foo(2,3);

实际上,在连接阶段,连接器会从模块A生成的目标文件moduleA.obj中寻找_foo_int_int这样的符号!

加extern “C”声明后的编译和连接方式

加extern “C”声明后,模块A的头文件变为:

// 模块A头文件 moduleA.h

#ifndef MODULE_A_H

#define MODULE_A_H

extern “C” int foo( int x, int y );

#endif

在模块B的实现文件中仍然调用foo( 2,3 ),其结果是:

(1)模块A编译生成foo的目标代码时,没有对其名字进行特殊处理,采用了C语言的方式;

(2)连接器在为模块B的目标代码寻找foo(2,3)调用时,寻找的是未经修改的符号名_foo。

如果在模块A中函数声明了foo为extern “C”类型,而模块B中包含的是extern int foo( int x, int y ) ,则模块B找不到模块A中的函数;反之亦然。

所以,可以用一句话概括extern “C”这个声明的真实目的(任何语言中的任何语法特性的诞生都不是随意而为的,来源于真实世界的需求驱动。我们在思考问题时,不能只停留在这个语言是怎么做的,还要问一问它为什么要这么做,动机是什么,这样我们可以更深入地理解许多问题):实现C++与C及其它语言的混合编程。

明白了C++中extern “C”的设立动机,我们下面来具体分析extern “C”通常的使用技巧:

extern “C”的惯用法

(1)在C++中引用C语言中的函数和变量,在包含C语言头文件(假设为cExample.h)时,需进行下列处理:

extern “C”

{

#i nclude “cExample.h”

}

而在C语言的头文件中,对其外部函数只能指定为extern类型,C语言中不支持extern “C”声明,在.c文件中包含了extern “C”时会出现编译语法错误。

C++引用C函数例子工程中包含的三个文件的源代码如下:

/* c语言头文件:cExample.h */

#ifndef C_EXAMPLE_H

#define C_EXAMPLE_H

extern int add(int x,int y);

#endif

/* c语言实现文件:cExample.c */

#i nclude “cExample.h”

int add( int x, int y )

{

return x + y;

}

// c++实现文件,调用add:cppFile.cpp

extern “C”

{

#i nclude “cExample.h”

}

int main(int argc, char* argv)

{

add(2,3);

return 0;

}

如果C++调用一个C语言编写的.DLL时,当包括.DLL的头文件或声明接口函数时,应加extern “C” { }。

(2)在C中引用C++语言中的函数和变量时,C++的头文件需添加extern “C”,但是在C语言中不能直接引用声明了extern “C”的该头文件,应该仅将C文件中将C++中定义的extern “C”函数声明为extern类型。

C引用C++函数例子工程中包含的三个文件的源代码如下:

//C++头文件 cppExample.h

#ifndef CPP_EXAMPLE_H

#define CPP_EXAMPLE_H

extern “C” int add( int x, int y );

#endif

//C++实现文件 cppExample.cpp

#i nclude “cppExample.h”

int add( int x, int y )

{

return x + y;

}

/* C实现文件 cFile.c

/* 这样会编译出错:#i nclude “cExample.h” */

extern int add( int x, int y );

int main( int argc, char* argv )

{

add( 2, 3 );

return 0;

}

篇5:c笔试题目

1. 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则?

格式:类型标识符 &函数名(形参列表及类型说明){ //函数体 }

好处:在内存中不产生被返回值的副本;(注意:正是因为这点原因,所以返回一个局部变量的引用是不可取的。因为随着该局部变量生存期的结束,相应的引用也会失效,产生runtime error!

注意事项:

(1)不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了“无所指”的引用,程序会进入未知状态。

(2)不能返回函数内部new分配的内存的引用。这条可以参照Effective C++[1]的Item 31。虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数内部new分配内存的引用),又面临其它尴尬局面。例如,被函数返回的引用只是作为一个临时变量出现,而没有被赋予一个实际的变量,那么这个引用所指向的空间(由new分配)就无法释放,造成memory leak。

(3)可以返回类成员的引用,但最好是const。这条原则可以参照Effective C++[1]的Item 30。主要原因是当对象的属性是与某种业务规则(business rule)相关联的时候,其赋值常常与某些其它属性或者对象的状态有关,因此有必要将赋值操作封装在一个业务规则当中。如果其它对象可以获得该属性的非常量引用(或指针),那么对该属性的单纯赋值就会破坏业务规则的完整性。

(4)流操作符重载返回值申明为“引用”的作用:

流操作符<<和>>,这两个操作符常常希望被连续使用,例如:cout << “hello” << endl; 因此这两个操作符的返回值应该是一个仍然支持这两个操作符的流引用。可选的其它方案包括:返回一个流对象和返回一个流对象指针。但是对于返回一个流对象,程序必须重新(拷贝)构造一个新的流对象,也就是说,连续的两个<<操作符实际上是针对不同对象的!这无法让人接受。对于返回一个流指针则不能连续使用<<操作符。因此,返回一个流对象引用是惟一选择。这个唯一选择很关键,它说明了引用的重要性以及无可替代性,也许这就是C++语言中引入引用这个概念的原因吧。赋值操作符=。这个操作符象流操作符一样,是可以连续使用的,例如:x = j = 10;或者(x=10)=100;赋值操作符的返回值必须是一个左值,以便可以被继续赋值。因此引用成了这个操作符的惟一返回值选择。

例3

#i nclude

int &put(int n);

int vals[10];

int error=-1;

void main

{

put(0)=10; //以put(0)函数值作为左值,等价于vals[0]=10;

put(9)=20; //以put(9)函数值作为左值,等价于vals[9]=20;

cout<

cout<

}

int &put(int n)

{

if (n>=0 && n<=9 ) return vals[n];

else { cout<<“subscript error”; return error; }

}

(5)在另外的一些操作符中,却千万不能返回引用:+-*/ 四则运算符。它们不能返回引用,Effective C++[1]的Item23详细的讨论了这个问题。主要原因是这四个操作符没有side effect,因此,它们必须构造一个对象作为返回值,可选的方案包括:返回一个对象、返回一个局部变量的引用,返回一个new分配的对象的引用、返回一个静态对象引用。根据前面提到的引用作为返回值的三个规则,第2、3两个方案都被否决了。静态对象的引用又因为((a+b) == (c+d))会永远为true而导致错误。所以可选的只剩下返回一个对象了。

2. “引用”与多态的关系?

引用是除指针外另一个可以产生多态效果的手段。这意味着,一个基类的引用可以指向它的派生类实例。

例4

Class A; Class B : Class A{...}; B b; A& ref = b;

3. “引用”与指针的区别是什么?

指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。此外,就是上面提到的对函数传ref和pointer的区别。

4. 什么时候需要“引用”?

流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。

以上 2-8 参考:

5. 结构与联合有和区别?

1. 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员的存放地址不同)。

2. 对于联合的不同成员赋值, 将会对其它成员重写, 原来成员的值就不存在了, 而对于结构的不同成员赋值是互不影响的。

6. 下面关于“联合”的题目的输出?

a)

#i nclude

union

{

int i;

char x[2];

}a;

void main

{

a.x[0] = 10;

a.x[1] = 1;

printf(“%d”,a.i);

}

答案:266 (低位低地址,高位高地址,内存占用情况是Ox010A)

b)

main

{

union{ /*定义一个联合*/

int i;

struct{ /*在联合中定义一个结构*/

char first;

char second;

}half;

}number;

number.i=0x4241; /*联合成员赋值*/

printf(“%c%c/n”, number.half.first, mumber.half.second);

number.half.first='a'; /*联合中结构成员赋值*/

number.half.second='b';

printf(“%x/n”, number.i);

getch;

}

答案: AB (0x41对应'A',是低位;Ox42对应'B',是高位)

6261 (number.i和number.half共用一块地址空间)

篇6:c软件开发笔试题目

1、(4分)用变量a给出下面的定义

a) 一个整型数;

b)一个指向整型数的指针;

c)一个指向指针的指针,它指向的指针是指向一个整型数;

d)一个有10个整型的数组;

e)一个有10个指针的数组,该指针是指向一个整型数;

f)一个指向有10个整型数数组的指针;

g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数;

h)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数

答案:

a)int a

b)int *a;

c)int a;

d)int a[10];

e)int *a [10];

f) int (*a)[10]

g)int (*a)(int)

h) int( *a[10])(int)

2、(4分)请写出以下语句的输出结果:

Int i=43;

Int j=5;

Double f=25.45181;

a) printf(“i=%d,j=%d,f=%3.2f”,i,j,f);

b) printf(“i=%x,j=%06d,i/j=%d”,i,j,i/j);

答案:

A)i=43,j=5,f=25.45

(说明:本来应该输出最小3位有效数字,25.5,但是由于限定了2位小数,所以强制有2位小数,有效数字的个数就起不到强制作用了。如果是%3.1,则输出为25.5)

B)i=2B ,j=000005,i/j=8

(%x显示的是一个无符号的0x 16进制的整数,%06d输出的是6位数,不够6位数,前面补0,i/j两个整数相除,只取商的整数值)

3、(2分)请完成以下宏定义:

a)用预处理指令#define 声明一个常数,用以表明1年中有多少个秒(忽略闰年问题) b)写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个

答案:

a)#define SECONDS (365*24*60*60)UL

b) #define MIN(a,b) ((A)<(B)?(A):(B))

扩展:MAX宏 #define MAX ((A)>(B)?(A):(B))

ABS宏 #define ABS (((X)>0)?(X):(-(X)))

4、(6分)以下为32为windows下的c++程序,请计算:

a)

char str=”hello”;

char *p=str;

请计算:

sizeof(str)=6

sizeof(p)=4

strlen(p)=5

答案:6,字符串数组以\0(空格为结尾,所以str数组空间大小为5+1)

4,计算的是指针的长度。

5,strlen函数区的字符指针str的长度,不包括空字符。

b)

void func(char str[100])

{

Void *p=malloc(100);

}

请计算:

sizeof(str)=100,:表示在内存中预分配的内存大小。

sizeof (p)=4

c)

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

int b=sizeof(a)/sizeof(a[0]); sizeof(a)求的是数组的大小。

请计算:

b=3,对的。

5、(2分) 设有定义:int n=0,*p=&n,q=&p; 则以下选项中,正确的赋值语句是(d) a)p=1; b)*q=2; c)q=p; d)*p=5;

(c)改成q=&p; 才对。

6、(2分)const关键字的用途?(至少说明两种)

答案:

(1)可以定义 const 常量

(2)const 可以修饰函数的参数、返回值,甚至函数的定义体。被const 修饰的东 西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。

(3)const可以用来修饰指针变量,控制指针变量的存取规则。

篇7:c软件开发笔试题目

1、(2分)typedef的c语言中频繁用以声明一个已经存在的数据类型的同义词。也可以用以预处理器做类似的事情。例如:

#define dps struct s*

Typedef struct s * tps;

以上两种情况的意图都是要定义dps和tps作为一个指向结构s指针。哪种方法更好一些呢?(如果有的话)为什么? 考虑安全性还是用typedef好,宏定义在编译时是不检查的,只是简单替换,而typedef编译时要检查的 typedef,而且typedef,define并非等价,如#define string1 char *

typedef char *string2;第二种才能达到预想效果, string1 a,b;

得到的b是char

define是做替换的,typedef 则是重新定义一种数据类型的。可以向int型一样使用的。

#define FIND(struct,e) (size_t) &(((struct*)0)->e)

typedef是语句( 以';'结尾)

Typedef。它在自己的作用域内给一个已经存在的类型一个别名

2、(8分) 以下是一组有关内存知识的问题,请仔细看题,回答:

Void GetMemory(char *p)

{

P=(char *)malloc(100);

}

Void Test(void)

{

Char *str=Null;

GetMemory(str);

Strcpy(str,”hello world”);

Printf(str);

}

请问运行Test函数会有什么样的结果?

a)__________程序崩溃,运行时错误___________________________

char *GetMemory(void)

{

Char p=”hello world”);

Return p;

}

Void Test(void)

{

Char *str=NULL;

Str=GetMemory;

Printf(str);

}

请问运行Test函数会有什么结果?

b)_______________ hello world ________________________________

void GetMemory2(char p,int num)

{

*p=(char *)malloc(num);

}

Void Test(void)

{

Char *str=NULL;

GetMemory(&str,100);

Strcpy(str,”hello”);

Printf(str);

}

请问运行Test函数会有什么结果?

c)_______ hello __________________________________________

void Test(void)

{

Char *str=(char *)malloc(100);

Strcpy(str,”hello”);

Free(str);

If(str!=NULL)

{

Strcpy(str,”world”);

Printf(str);

}

}、

请问运行test函数会有什么样的结果?

d)_______程序崩溃:因为释放str指针后,没有将指针置为null,所以指针变为野指针了。再执行cpy时会因为找不到指针的指向而导致程序崩溃,请编程时,注意这一点。 __________________________________________

3、(6分)请写出以下程序的输出结果:

Class A

{

Public:

A

{ Printf(“A constructed.\n”);}

Virtual ~A

{printf(“A deconstructed.\n”);}

Virtual void Fn

{printf(“A fn called.\n”);} };

Class B:public A

{

Public:

B

{printf(“B constructed.\n”);} Virtual ~B

{printf(“B deconstructed.\n”);} Virtual void Fn

{printf(“B fn called.\n”);} };

Class C:public B

{

Public:

C

{printf(“C constructed.\n”);} Virtual ~C

{printf(“C deconstructed.\n”);} Virtual void Fn

{printf(“C fn called.\n”);} };

Void main(int argc,char* grgv) {

A *pA=new B;

If(pA!=NULL)

pA->fn;

B *pB=static_cast(pA);

If(pB!=NULL)

pB->fn;

C * pC=static_cast(pA); If(pC!=NULL)

pC->fn;

delete pA;

}

Answer:

A constructed

B constructed

B fn called

B fn called

B fn called

B deconstructed

A deconstructed

篇8:c软件开发笔试题目

1.(2分)以下说法错误的是:

A)指针和引用作为函数参数都可以改变实参

B)指针和引用都可以在定义后任意的改变指向,引用是不可以改变的。

C)引用必须在创建的时候初始化,而指针则不需要

D)不能空引用,但是可以有空指针

2、(2分) 运算符的重载形式有两种,重载为_重载为类的内部成员函数____________和_重载为类的友元函数______________________

3、(2分) main主函数执行完毕后,是否可能会再执行一段代码?请说明理由? 可以使用注册函数让程序在推出main之后,程序终止之前执行自定义的一些代码!

全局对象的构造函数会在main 函数之前执行

利用atexit函数可以在程序终止前完成一些“清理”工作——如果将指向一组函数的指针传递给atexit函数,那么在程序退出main函数后(此时程序还未终止)就能自动调用这组函数。在使用atexit函数时你要注意这样两点:

main 之前:预编译 全局变量的初始化等

main 之后:全局变量的释放

main函数执行之前,主要就是初始化系统相关资源

mainCRTStartup中被调用的

在main之前会调用一系列初始化函数来初始化这个进程

而在main之后会调用exit(int)来进行进程的清理工作。可以用_onexit 注册一个函数

,可以用_onexit 注册一个函数,它会在main 之后执行int fn1(void), fn2(void), fn3(void), fn4 (void);

可能会执行一些注册过的Hook

注意,atexit以栈的方式注册函数,后注册的函数会先执行。

_onexit和atexit一样是以占的方式注册函数的,后注册的函数会被先执行。

void main( void )

篇9:硬件类笔试题目

1.用mos管搭出一个二输入与非门,

2.集成电路前段设计流程,写出相关的工具。

3.解释名词IRQ,BIOS,USB,VHDL,SDR。

4.简述如下Unix命令cp -r, rm,uname,

5.用波形表示D触发器的功能。

6.写异步D触发器的verilog module。

7.What is PC Chipset?

8.用传输门和倒向器搭一个边沿触发器。

9.画状态机,接受1,2,5分钱的卖报机,每份报纸5分钱。

篇10:数据库类笔试题目

看题目的意思是USERS跟PRODUCT的对应关系应该是1:n,一个USERS可以生产许多个PRODUCT。

INSERT INTO PRODUCT(PRODUCT.PRODUCTNAME,PRODUCT.PRODUCTCOUNT,PRODUCT.USERNAME) VALUES (char,int,char);

插入产品

INSERT INTO USERS (USERNAME) VALUES (char);

插入用户

删除就省略了。

至于如何确定是否存在,你直接在插入产品前搜索USERS表就好了啊

4.存储过程

CREATE PROC proc_AddUserAccount //定义一个过程名

@pName nvarchar(200),@pCount intAS,@pUser nvarchar(200)//3个变量

BEGIN

INSERT INTO PRODUCT(PRODUCT.PRODUCTNAME,PRODUCT.PRODUCTCOUNT,PRODUCT.USERNAME) VALUES (@pName,@pCount ,@pUser);//添加记录

RETURN @@ID //返回ID

END

篇11:市场营销类笔试题目

市场营销类笔试题目

一份关于市场营销的笔试题目,欢迎收看unjs介绍

科学管理理论由泰勒提出

韦伯的管理理论(官僚行政组织)

目标管理法的理论基础

目标管理对上级和下级的要求

群体决策缺点(1)费时(2)少数人垄断(3)服从的压力(4)“从众现象(5)模糊的`责任

心理定价包括哪些(尾数定价法招徕定价习惯定价策略声望定价策略整数定价策略)

波特提出的竞争性战略(成本法,差异定价,聚焦法)

海尔公司调查市场对空调的需求量应该用什么方法

行为归因理论(特异性,一致性,和一贯性)

组织发展方法

矩阵组织缺点

长期雇佣关系的优点

马斯洛需求层次理论

波士顿矩阵分析

管理幅度定义

有个公司没有分好工作职责,导致员工效率低下,公司不景气怎么怎么滴,如果你是HR,首先会怎么治理公司

考虑国际贸易、直接投资、股权转移的是什么理论

篇12:运营类笔试题目

运营的笔试题,如你喜欢什么游戏?优缺点!或者你平时都上什么网?这些网站都有什么特点,或者分析一些这些网站的优缺点等等之类的题目,如果你是面试官,什么样的答案是令你感到满意的?(我笔试的主要是产品运营、游戏运营、互联网运营)

[运营类笔试题目]

【普天C++类笔试题目】相关文章:

1.会计核算类笔试题目

2.笔试题目

3.格力笔试题目

4.CAD笔试题目

5.外管局笔试题目

6.索尼笔试题目

7.星巴克笔试题目

8.外企笔试题目

9.科尔尼笔试题目

10.新闻业笔试题目

下载word文档
《普天C++类笔试题目.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部