1、关于进程控制块(PCB)的一些知识:
PCB是操作系统能“感知”进程存在的唯一标志;PCB与进程是一一对应的;操作系统是通过管理PCB来管理进程的。
2、编程题:
编写程序将由数字及字符组成的字符串中的数字截取出来并按顺序输出,例如:“ ABC137GMNQQ2049PN5FFF”,输出结果应为“01234579”。
解答思路:采用桶排序的思想,申请数组来标志出现的数字,最大的字符为‘z’ = ‘a’+26-1=122;而’0’=48,‘A’=65,’a’=97。因此申请的数组空间为122-48 = 74。
实现代码为:
#include
#include
using namespace std;
int main()
{
string s="ABC1371242747GMNQQ200049PN5FFFz8";
int book[75];
int len = s.length();
for(int i = 0; i<75 ; i++)
book[i] = 0;
for(int j = 0;j < len;j++)
{
book[s[j]-'0']++;
}
for(i=0;i<=9;i++)
{
for(j=1;j<=book[i];j++)
cout<< i <<" ";
}
cout<return 0;
}
3、算法题
质数又称素数。指大于1的自然数中除了1和本身外,不能被其他自然数整除。把一个合数分解成若干个质因数乘积的形式,叫做分解质因数。例如12可以分解为2*2*3。编程实现能把任意合数分解成质因数的乘积。
思路没什么好说的,直接上代码吧!
#include
#include
using namespace std;
bool Isprime(int n)
{
int j = sqrt(n);
for(int i=2;iif(n%i==0)
return false;
}
return true;
}
int main()
{
int n,i;
cout << "input the num: n=";
cin>>n;
if(Isprime(n))
{
cout << "1*"<return 0;
}
for(i=2;i<=n;i++)
{
if(n%i==0)
{
cout << i <<"*";
n = n/i;
i=1;
}
}
cout <<"";
return 0;
}