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实现
简单不在贴代码
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)