17 题!!!

17教育网――为中学生学习提供优质的试题和试卷
&&学习方法 &&&&&
人气排行hot
&&&&&&&&&&
Copyright ? 2011- Inc. All Rights Reserved. 17教育网站 版权所有 备案号:
站长:朱建新7168人阅读
1、进程切换需要注意哪些问题?
保存处理器PC寄存器的值到被中止进程的私有堆栈;&&&&& 保存处理器PSW寄存器的值到被中止进程的私有堆栈;&&& 保存处理器SP寄存器的值到被中止进程的进程控制块;
保存处理器其他寄存器的值到被中止进程的私有堆栈;&&&& 自待运行进程的进程控制块取SP值并存入处理器的寄存器SP;&&& 自待运行进程的私有堆栈恢复处理器各寄存器的值;
自待运行进程的私有堆栈中弹出PSW值并送入处理器的PSW;&&&& 自待运行进程的私有堆栈中弹出PC值并送入处理器的PC。
2、输入一个升序数组,然后在数组中快速寻找两个数字,其和等于一个给定的值。
这个编程之美上面有这个题目的,很简单的,用两个指针一个指向数组前面,一个指向数组的后面,遍历一遍就可以了。
3、有一个名人和很多平民在一块,平民都认识这个名人,但是这个名人不认识任何一个平民,任意两个平民之间是否认识是未知的,请设计一个算法,快速找个这个人中的那个名人。& 已知已经实现了一个函数& bool know(int a,int b) 这个函数返回true的时候,表明a认识b,返回false的时候表明a不认识b。
思路:首先将n个人分为n/2组,每一组有2个人,然后每个组的两个人调用这个know函数,假设为know(a,b),返回true的时候说明a认识b,则a肯定不是名人,a可以排除掉了,依次类推,每个组都调用这个函数依次,那么n个人中就有n/2个人被排除掉了,数据规模将为n/2。同理在剩下的n/2个人中在使用这个方法,那么规模就会将为n/4,这样所有的遍历次数为n/2+n/4+n/8+........ 这个一个等比数列,时间复杂度为o(n)。
<span style="font-size:16 color:#000000; background-color:#、有一类数组,例如书序[1,2,3,4,6,8,9,4,8,11,18,19,100] 前半部分是是一个递增数组,后面一个还是递增数组,但整个数组不是递增数组,那么怎么最快的找出其中一个数?
#include &iostream&
int binary_search(int* a, int low, int high, int goal)
//二分查找
while(low &= high)
int middle = (low+high)&&1;
//(low+high)/2
if(a[middle] == goal)
//在右半边
else if(a[middle] & goal)
low = middle + 1;
//在左半边
high = middle - 1;
return -1;
void getNum(int *a, int len, int goal)
for(i = 0; i & len-1; i++)
if(a[i] & a[i+1])
//找到前、后两个数组的分界点
if(a[i] &= goal)
//对前面数组进行二分查找
index = binary_search(a, 0, i, goal);
printf(&%d\n&,index);
if(a[i+1] &= goal)
//对后面数组进行二分查找
index = binary_search(a+i+1, 0, len-i-2, goal);
if(index != -1)
index += (i+1);
//后面的那个数组相对于前面数组的偏移量为i+1
printf(&%d\n&,index);
int main(void)
int a[]={1,2,3,4,6,8,9,4,8,11,18,19,100};
int len = 13, goal = 4;
getNum(a,len,goal);
5、判断一个自然数是否是某个数的平方。当然不能使用开方运算。
遍历从1到N的数字,求取平方并和N进行比较。
如果平方小于N,则继续遍历;如果等于N,则成功退出;如果大于N,则失败退出。
复杂度为O(n^0.5)。
使用二分查找法,对1到N之间的数字进行判断。
复杂度为O(log n)。
(n&#43;1)^2
=n^2 &#43; 2n &#43; 1,
= 1 &#43; (2*1 &#43; 1) &#43; (2*2 &#43; 1) &#43; ... &#43; (2*n &#43; 1)
注意到这些项构成了等差数列(每项之间相差2)。
所以我们可以比较 N-1, N - 1 - 3, N - 1 - 3 - 5 ... 和0的关系。
如果大于0,则继续减;如果等于0,则成功退出;如果小于 0,则失败退出。
复杂度为O(n^0.5)。不过方法3中利用加减法替换掉了方法1中的乘法,所以速度会更快些。
例如:3^2 = 9 = 1 &#43; 2*1&#43;1 &#43; 2*2&#43;1 = 1 &#43; 3 &#43; 5
4^2 = 16 = 1 &#43; 2*1 &#43; 1 &#43; 2*2&#43;1& &#43;&2*3&#43;1
int square(int n)
int i = 1;
while( n & 0 )
if( n == 0 )
//是某个数的平方
//不是某个数的平方
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2460334次
积分:26377
积分:26377
排名:第103名
原创:254篇
评论:2403条
文章:14篇
阅读:24589
文章:19篇
阅读:418727
(1)(9)(1)(2)(4)(2)(2)(9)(2)(9)(10)(19)(20)(16)(18)(2)(2)(19)(10)(61)(14)(30)&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
正在努力加载中...
【精品】电气工程学概论17章习题答案
下载积分:820
内容提示:【精品】电气工程学概论17章习题答案
文档格式:DOC|
浏览次数:28|
上传日期: 04:41:09|
文档星级:&#xe60b;&#xe612;&#xe612;&#xe612;&#xe612;
该用户还上传了这些文档
【精品】电气工程学概论17章习题答案
官方公共微信}

我要回帖

更多关于 17套psat真题下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信