c高级面试题目.docx
C高级面试题目c高级面试题目1、有一分数序列:1/2, 1/4, 1/6, 1/8,用函数调用的方法,求此数列 前20项的和 ttinclude stdio.hdouble getValue() (double result = 0;int i = 2;while(i 42) result += 1.0 / i;肯定要使用1.0做除数,不能用1,否则结 果将自动转化成整数,即0. 000000i +二 2;return result;int main () (printf (result is %fn, getValue();system(pause);return 0; 2、有一个数组a1000存放01000;要求每隔二个数删掉一个数, 到末尾时循环至开头连续进行,求最终一个被删掉的.数的原始下标 位置,c高级面试题目以7个数为例:0, 1, 2, 3, 4, 5, 6, 7 0-1-2 (删除)-3-4-5(删除)-6-7-0 (删 除),如此循环直到最终一个数被删除。方法1:数组#include iostreamusing namespace std;ttdefine null 1000int main()(int arr1000;for (int i=0;il000;+i)arri=i;int j=0;int count=0;while (count999)(while(arrj%1000=nul1)j=(+j)%1000;j=(+j)%1000;while (arrj%1000=null)j=(+j)%1000;j=(+j)%1000;while (arrj%1000=null)j=(+j)%1000;arrj=null;+count;)while(arrj=null)j=(+j)%1000;coutjendl;return 0;方法2:链表 ttincludeiostream using namespace std; #define null 0 struct node int data;node* next;);int main() ( node* head=new node; head-data=O;head-next=null;node* p=head;for (int i=l;ilOOO;i+) (node* tmp=new node; tmp-data=i;tmp-next=null; head-next=tmp; head=headnext;head-next=p;while(p!=p-next) (pnextnext=pnextnextnext; p=p-next-next;coutp-data;return 0;方法3:通用算法#include stdio.httdefine MAXLINE 1000 元素个数/*MAXLINE元素个数a元素数组R指针场suffix下标index返回最终的下标序号values返回最终的下标对应的值start从第几个开头K间隔*/int find_n(int a, int R口,int K, int index, int values, int s=0) (int suffix;int front_node, current_node;suffix=0;if(s=0) current_node=0;front_node=MAXLINE-l;)else (current_node=s;front_node=s-l;while (Rfront_node!=front_node) printf (%dn, acurrent_node);Rfront_node=Rcurrent_node;if (K=l) current_node=Rfront_node continue;for (int i=0;iK;i+)front_node=Rfront_node;)current_node=Rfront_node;index=front_node;values=afront_node;return 0;int main(void) int aMAXLINE, RMAXLINE, suffix, index, values, start, i, K;suffix=index=values=start=O;K=2;for(i=0;iMAXLINE;i+) ai=i;Ri=i+1;Ri-l=0;f ind_n (a, R, K, index, values, 2);printf (the value is %d, %dn, index, values);return 0;)文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有 需要的人。