金山软件面试题

上传人:xzh****18 文档编号:34589592 上传时间:2018-02-26 格式:WPS 页数:7 大小:38KB
返回 下载 相关 举报
金山软件面试题_第1页
第1页 / 共7页
金山软件面试题_第2页
第2页 / 共7页
金山软件面试题_第3页
第3页 / 共7页
金山软件面试题_第4页
第4页 / 共7页
金山软件面试题_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《金山软件面试题》由会员分享,可在线阅读,更多相关《金山软件面试题(7页珍藏版)》请在金锄头文库上搜索。

1、一、请你就C/C+或者JAVA代码行数、注释行数统计工具的实现,描述一下:1、 需要考虑哪些过滤条件?你如何处理?答:过滤条件:(取得每行并去掉两头的空格后)空行,行的长度为0;如果是以/开头,为注释行;/在行中,并判断不是在字符串中,即“”中,为代码+注释混合行,/在“”中时为代码行;如果/*在行中,判断是否是在“”内,否则为注释行,*/不在“”中时是结束 ;/* */只在一行,判断行中是否有代码,无代码为注释行,有代码是混合行;/* */多行,并且/*前无代码,/*后无代码,去掉其中空行都是注释行;/* */多行,/*在代码后,或*/后有代码,有混合行;一行中有2个/*并且就1个*/,此行

2、为混合行,其后是注释行。2、 怎样提升这个工具的易用性?答:把这个工具设置成图形界面,用户只需输入文件名或者在文件对话框中选择文件即 行输 结果。只需要提 文 ,不需要 代码。、 一个 数n, 成如下 , 输 不 n的 有 数( 数)。1、 请提 代码,以 文 。答: : 一个数j的 sqrt(j), j 以2sqrt(j)的数,只要 一,就不是 数,后数j2。#include#includevoid main() int N=1000;int i,j,k,m=0;for(j=1;jk) /*/ k一currency1 ,是 数*/ printf(“%d “,j);3、 请“一下 以哪些度 f

3、ifl 的时性 ?答:数( 2)不 为 数;判断一个数j是否为 数,只要 其 以2 sqrt(j)的 数,一 ,currency1有要对 有数行 ,只需对 有sqrt(j)以内的 有 数 就 以。、”度用户输入两个不 256 的 数, 行 ,并 过 结果。:输入:12, 32输 : #include #include #include #define max 256int Amax,Bmax;int Alen,Blen;int Smax *2;void InputAB() /输入A B int c;while (!isdigit(c = getchar() ;Alen=1;A0= c 0;wh

4、ile (isdigit(c = getchar()AAlen+ = c 0;while (!isdigit(c = getchar() ;Blen = 1;B0 = c 0;while (isdigit(c = getchar()BBlen+ = c 0;void Print(int Array, int len) /输 数 int i=0;while (i= 0; i)Resulti+1 = Arrayi*n;Result0 = 0;for (i = len; i 0; i) if (Resulti = 10) / 10的 Resulti-1 +=Resulti / 10; Resulti

5、 %= 10;for (i = 1; i 0) & (alen 0) / tlen;alen;totaltlen += addalen;for (i = k 1; i=0; i)if (totali = 10) / 10的 totali - 1 += totali / 10;totali %= 10;void main() int i,j;int tempmax*2;InputAB();Print(A,Alen);printf(“*”);Print(B,Blen);printf(“n”);for(i = Blen-1; i = 0; i) for(j=Blen-i,j=0;j) /输 空格 p

6、rintf(“ ”);Mul(A, Alen, Bi, temp, Blen 1 -i);/B中的一个数A的 有数Print(temp, Alen + 1); /输 过 中的每行Add(S, max*2, temp, Alen + Blen i);/每行printf(“n”);Print(S, max*2); 、输入一个N 数, 其 成 M 数(1#include #include #include #include using namespace std;int main()char digit16 = 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F;cout =0&aj=a

7、&aj=A&ajn;assert(n1)int num=0;for(i=0,j=length-1;j=0;j,i+)/输入的数 成 num+=bi*pow(n,j);cout m;cout 1)stack stk;char remain;while (num!=0)/ 成M remain = digitnum%m;stk.push(remain); num/= m;cout #include #include #include #include #include using namespace std;int word_find(const char t, int m, const char

8、s, int n ,vector& colpos)/查找单词,char t为单词,m单词长度,char s为行,n行的长度,colpos记录找单词在的置 int i=0,j=0,cnt=0;while(j= m) if(!isalpha(sj)&!isalpha(sj-m-1)/字符串前后不是字母时是单词 colposcnt+ = j m ;/单词的第一个字符 在的行下标i=0; /单词串下标重置为0if(cnt = colpos.size()colpos.resize(cnt * 2);/长度重设为原 2倍else i=0; else if (sj=ti) +i;+j; else j=j-i

9、+1; i=0; /下标后退重新开始匹配 return cnt;/返回查的个数int count_string(string source, string target, vector& colpos) int find_cnt = 0;find_cnt = word_find(target.c_str(), target.size(), source.c_str(),source.size(),colpos);return find_cnt;/返回查的个数int main()string file_name, line;vector lines;lines.resize(10);cout f

10、ile_name;ifstream in_file; /打开文件tryin_file.open(file_name.c_str();if(!in_file)throw(file_name);catch(string file_name) cout colpos;/单词中第一个字符 在置colpos.resize(10);do cout tag;if(tag = “#”) break; int count = 0, line_no = 0 , inline_count;/line_no是行号,第?行for(line_no = 0 ;line_no 0)cout “在第” line_no”行找” inline_count”个” tag;cout ” , 在置是 “;for(int i = 0 ;i inline_count ;i+)cout colpos ;/输 置cout endl;cout linesline_no endl;/输 行, 作着重while(tag != “#”);in_file.close();return 0;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题 > 高中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号