首页 > 全部 > 程序员面试 > 程序员面试模拟试卷7

程序员面试模拟试卷7

本单篇文档共5142字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
程序员面试 模拟试卷 7884人下载
价格: 1.00 原价:¥9.60
收藏

程序员面试模拟试卷7

面试题

1.有4种面值(面值为1, 4, 12, 21)的邮票很多枚,从中最多任取5张进行组合,求邮票最大连续组合值

#define N 5

#define M 5

int k, Found, Flag[N];

int Stamp[M] = {0, 1, 4, 12, 21};

// 在剩余张数n中组合出面值和Value

int Combine(int n, int Value)

{

if(n >= 0 && Value == 0){

Found = 1;

int Sum = 0;

for(int i=0; i<N && Flag[i] != 0; i++){

Sum += Stamp[Flag[i]];

printf(\\

解析:

2.大整数数相乘的问题。

void Multiple(char A[], char B[], char C[])

{

int TMP, In=0, LenA=-1, LenB=-1;

while(A[++LenA] != ’\\\\0’);

while(B[++LenB] != ’\\\\0’);

int Index, Start = LenA + LenB – 1;

for(int i=LenB-1; i>=0; i–)

{

Index = Start–;

if(B[i] != ’0’){

for(int In=0, j=LenA-1; j>=0; j–)

{

TMP = (C[Index]-’0’) + (A[j]-’0’) * (B[i] – ’0’) + In;

C[Index–] = TMP % 10 + ’0’;

In = TMP / 10;

}

C[Index] = In + ’0’;

}

}

}

int main(int argc, char* argv[])

{

char A[] = \\

解析:

3.求最大连续递增数字串(如“ads3sl456789DF3456ld345AA”中的“456789”)

int GetSubString(char *strSource, char *strResult)

{

int iTmp=0, iHead=0, iMax=0;

for(int Index=0, iLen=0; strSource[Index]; Index++)

{

if(strSource[Index] >= ’0’ && strSource[Index] <= ’9’

&& strSource[Index-1] > ’0’ && strSource[Index] == strSource[Index-1]+1)

{

iLen++; // 连续数字的长度增1

}else{ // 出现字符或不连续数字

if(iLen > iMax)

{

iMax = iLen;

iHead = iTmp;

}

// 该字符是数字,但数字不连续

if(strSource[Index] >= ’0’ && strSource[Index] <= ’9’){

iTmp = Index;

iLen = 1;

}

}

}

for(iTmp=0 ; iTmp < iMax; iTmp++) // 将原字符串中最长的连续数字串赋值给结果串

strResult[iTmp] = strSource[iHead++];

strResult[iTmp]=’\\\\0’;

return iMax; // 返回连续数字的最大长度

}

int main(int argc, char* argv[])

{

char strSource[]=\\

解析:

4.四个工人,四个任务,每个人做不同的任务需要的时间不同,求任务分配的最优方案。(2005年5月29日全国计算机软件资格水平考试——软件设计师的算法题)。

#include \\

解析:

5.八皇后问题(输出所有情况,不过有些结果只是旋转了90度而已)。哈哈:)回溯算法的典型例题

#define N 8

int Board[N][N];

int Valid(int i, int j) // 所下棋子有效性的严正

{

int k = 1;

for(k=1; i>=k && j>=k;k++)

if(Board[i-k][j-k]) return 0;

for(k=1; i>=k;k++)

if(Board[i-k][j]) return 0;

for(k=1; i>=k && j+k<N;k++)

if(Board[i-k][j+k]) return 0;

return 1;

}

void Trial(int i, int n)

{

if(i==n){

for(int k=0; k<n; k++){

for(int m=0; m<n; m++)

printf(\\

解析:

6.实现strstr功能(寻找子串在父串中首次出现的位置)

char * strstring(char *ParentString, char *SubString)

{

char *pSubString, *pPareString;

for(char *pTmp=ParentString; *pTmp; pTmp++)

{

pSubString = SubString;

pPareString = pTmp;

w

本文档预览:3600字符,共5142字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
程序员面试模拟试卷7

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号