恒生电子笔试 C-C++开发笔试题

本文核心词:恒生电子笔试题。

  1.关于fork()函数:

  子进程的()改变,父进程没有也相应改变 a.文件指针 b.局部变量 c.全局变量 d.静态变量

  b

  pid_t pid;

  switch (pid = fork())

  {

  case -1:

  /* 这里pid为-1,fork函数失败 */

  /* 一些可能的原因是 */

  /* 进程数或虚拟内存用尽 */

  perror(“The fork failed!”);

  break;

  case 0:

  /* pid为0,子进程 */

  /* 这里,我们是孩子,要做什么? */

  /* … */

  /* 但是做完后, 我们需要做类似下面: */

  _exit(0);

  default:

  /* pid大于0,为父进程得到的子进程号 */

  printf(“Child’s pid is %d\n”,pid);

  }

  fork之后,操作系统会复制一个与父进程完全相同的子进程,虽说是父子关系,但是在操作系统看来,他们更像兄弟关系,这2个进程共享代码空间,但是数据空间是互相独立的,子进程数据空间中的内容是父进程的完整拷贝,指令指针也完全相同,但只有一点不同,如果fork成功,子进程中fork的返回值是0,父进程中fork的返回值是子进程的进程号,如果fork不成功,父进程会返回错误,

恒生电子笔试 C/C++开发笔试题

  可以这样想象,2个进程一直同时运行,而且步调一致,在fork之后,他们分别作不同的工作,也就是分岔了。这也是fork为什么叫fork的.原因。

  至于那一个最先运行,可能与操作系统有关,而且这个问题在实际应用中并不重要,如果需要父子进程协同,可以通过原语的办法解决。

  2.C函数可否单独编译?

  外部函数,可以在开始引进来

  3.sum max avg count 哪个函数不可以跳过空值不处理?

  count 不跳过空值null 其他都可以,我选择了AVG。。。。。。

  4.理解static局部变量和全局变量:

  静态局部变量属于静态存储方式,它具有以下特点:

  (1)静态局部变量在函数内定义 它的生存期为整个源程序,但是其作用域仍与自动变量相同,只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。

  (2)允许对构造类静态局部量赋初值 例如数组,若未赋以初值,则由系统自动赋以0值。

  (3) 对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以 看出它是一种生存期为整个源程序的量,

资料共享平台

《恒生电子笔试 C/C++开发笔试题》()。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的 值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成 意外的副作用,因此仍以采用局部静态变量为宜。

  静态全局变量

  全局变量(外部变量)的说明之前再冠以static 就构 成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局 变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在 定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此 可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量 后是改变了它的作用域, 限制了它的使用范围。因此static 这个说明符在不同的地方所起的作用是不同的。

  5.高级通信包括信号量,——-,——–

  通常把信号、信号量通信称为低级通信 ,而把管道、消息队列、共享存储区通信称为高级通信,这个题目我也不知道怎么填了,。。。。。。

  6.double*p 利用malloc函数生成。。。。:

  malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。还有一点必须注意的是,当函数未能成功分配存储空间(如内存不足)就会返回一个NULL指针。所以在调用该函数时应该检测返回值是否为NULL并执行相应的操作。

  p=(double*)malloc(sizeof(double))

  7.DB事务处理的四个特性:

  原子性,一致性,隔离性,持久性

  就答对一个:一致性,

  8.建立索引语句:

  create unique/cluster index <索引名> on< 表名> 次序

  例如:create unique index Stusno on Student(Sno)

  9.还有自身连接,嵌套查询,集合查询等等 都忘了快

  10.本流程图将数字 1,2,…,N2(N≥2)按逆时针方向依次写在 N*N 矩阵中,下图给出了 N=4 和 N=5时的情况:

未经允许不得转载:全书网 » 恒生电子笔试 C-C++开发笔试题

赞 (0)