记录2017/9/7趋势科技笔试题

来源:互联网 发布:自己制作名片软件 编辑:程序博客网 时间:2024/06/05 16:45

1.下面程序一共会在屏幕上输出多少个“-” ?

#include<iostream>#include<stdio.h>#include<sys/types.h>#include<unistd.h>using namespace std;int main( ){    int i;    for(i = 0; i < 2; i++)    {        cout<<"-\n";        fork( );        cout <<"-\n";    }    cout << endl;    return 1;}

解答:

第一个‘-’为第一次循环的第一个,后面4个为fork子进程的,循环第二次主进程2个,fork进程1个,一共8次,Ubuntu输出8个,参考答案为9个,不明所以、

2.该段代码的输出结果是?

#include<iostream>using namespace std;int nest(int i){    if (i < 0 )        return 0;    else if (i == 0)        return 1;    else        return nest(i-1) + nest(i-2) + i;}int main( ){    cout << nest(7)<< endl;    return 1;}

//本题应该倒着计算比较容易nest(-1) = 0;nest(0) = 1;nest(1) = nest(-1) + nest(0) + 1 = 2;nest(2) = nest(1) + nest(0) + 2 = 2+1+2=5;nest(3) = nest(2) + nest(1) + 3 = 5+2+3=10;nest(4) = nest(3) + nest(2) + 4 = 10+5+4=19;nest(5) = nest(4) + nest(3) + 5 = 19+10+5=34;nest(6) = nest(5) + nest(4) + 6 = 34+19+6=59;nest(7) = nest(6) + nest(5) + 7 = 59+34+7=100;

3.下面协议中用于WWW传输控制的是?答案:HTTP(超文本传输协议)

URL:资源定位符

SMTP:简单邮件传输协议

HTML:超文本标记语言

4.以下表达式选择结果。(    )

std::string str1("trend");std::string str2("micro");std::string& strs = str1;std::string* ptrs = &str1;strs = str2;ptrs = &str2;

答:
strs = micro, * ptrs = micro
引用在初始化以后赋值操作是无效的,

5.请选择正确的数字填充:某缓存系统采用LRU(近期最少使用算法)淘汰算法,假定缓存容量为4,并且初始为空,那么在顺序访问以下数据项的时候1,5,1,3,2,4,1,2出现缓存命中的次数是__。最后缓存中即将准备淘汰的数据项是(3,3    )
最后在缓存中的排列为12534,1命中的次数为3,在命中4的时候3将淘汰

参考博客

6.请选择表达式 '0' + 1 的结果(本题数值均为十进制)?

字符‘0’的ASCLL的值为48,所以结果为49

7.线程是CPU调度和分派的基本单位,进程操作系统的基本单位(资源竞争)

8.以下表达式选择结果

int a = 0;int b = (a=-1) ? 2:3;int c = (a=0) ? 2:3;
(a=-1)表达式的值为1,所以b=2,(a=0)表达式的值为0,所以c=3;

9.编程题一为剑指offer上的题:

1.给出一个二叉树,用一个函数确定是否有一条从根节点到叶子节点的路径,这个路径上所有节点的值加在一起等于给定的sum的值。函数声明hasPathSum已经给出,写出程序设计思路并且实现该函数。尽量提供多种实现方法

struct TreeNode {     int val;    TreeNode *left;     TreeNode *right;    TreeNode(int x) : val(x), left(NULL), right(NULL) {} };bool hasPathSum(TreeNode *root, int sum) {if (root == NULL)//递归终止条件{return false;}if (sum<0)//如果路径中前几个点大于sum提前结束{return false;}if (root->left==NULL&&root->right==NULL)//最后一个节点{return false;}return hasPathSum(root->left, sum - root->val) || hasPathSum(root->right, sum - root->val);}

2.请编写一个函数将字符串s2添加到字符串s1的末端,函数不受s1、s2空间大小的限制。可以利用常用字符串函数strlen,strcpy,strcat,strcmp,strstr实现

简单不在贴代码

原创粉丝点击