面试的两道试题
来源:互联网 发布:阿里双十一实时数据 编辑:程序博客网 时间:2024/06/05 00:55
发表于2008年08月11日 00:58 阅读(24) 评论(2)
真系要写程序出黎先知功底差!
1.问题:给出一串字符串,如"avASkdggddiphhppSSDFFJOK",就你设设一程序求出现次数最多的那个字母出现的次数。
//////////////////////////////////////////////////////////////
网络上找到的一些想法:
答案:同样选用cin.getline( )函数实现字符串读入。统计过程的实现同样依靠循环依次判断归类并计数。根据题目要求,统计值应该有26个,为简化处理,使用整型数组实现。
实现一:归类用switch语句实现。
#include<iostream.h>
void main()
{
char s[81];//定义存放字符串的数组
int c[26]={0};//定义存放个数的数组,各记数值赋初值为0
cin.getline(s,81);//读入一行带空白符的字符串
for(int i=0;s;i++)//从字符串头到尾循环判断
{
switch(s){//如果是某字母,相应计数值加一
case 'A': case 'a': c[0]++; break;
case 'B': case 'b': c[1]++; break;
case 'C': case 'c': c[2]++; break;
case 'D': case 'd': c[3]++; break;
case 'E': case 'e': c[4]++; break;
case 'F': case 'f': c[5]++; break;
case 'G': case 'g': c[6]++; break;
case 'H': case 'h': c[7]++; break;
case 'I': case 'i': c[8]++; break;
case 'J': case 'j': c[9]++; break;
case 'K': case 'k': c[10]++; break;
case 'L': case 'l': c[11]++; break;
case 'M': case 'm': c[12]++; break;
case 'N': case 'n': c[13]++; break;
case 'O': case 'o': c[14]++; break;
case 'P': case 'p': c[15]++; break;
case 'Q': case 'q': c[16]++; break;
case 'R': case 'r': c[17]++; break;
case 'S': case 's': c[18]++; break;
case 'T': case 't': c[19]++; break;
case 'U': case 'u': c[20]++; break;
case 'V': case 'v': c[21]++; break;
case 'W': case 'w': c[22]++; break;
case 'X': case 'x': c[23]++; break;
case 'Y': case 'y': c[24]++; break;
case 'Z': case 'z': c[25]++; break;
}
}
for(i=0;i<26;i++)
cout<<char('a'+i)<<"个数:"<<c<<endl;//输出26个字母的个数
}
实现二:利用ASCII码表中字母字符排序与字母顺序相同的特点简化了归类判断。
#include<iostream.h>
void main()
{
char s[81];//定义存放字符串的数组
int c[26]={0};//定义存放个数的数组,各记数值赋初值为0
int zm;
cin.getline(s,81);//读入一行带空白符的字符串
for(int i=0;s;i++)//从字符串头到尾循环判断
{
if(s>='a'&&s<='z'){ zm=s-'a'; c[zm]++; }//如果是小写字母,相应字母个数加一
if(s>='A'&&s<='Z'){ zm=s-'A'; c[zm]++; } //如果是大写字母,相应字母个数加一
}
for(i=0;i<26;i++)
cout<<char('a'+i)<<"个数:"<<c<<endl;//输出26个字母的个数
}
2.问题:设计一个目录(象Windows的敢)用数据库保存这样的结构
网络上找到的一些想法:
////////////////////////////////////////////////
多级目录数据库设计方案
在实际工作中,经常碰到需要多级目录的情况,例如设计一个论坛,它的版面是分级的,而且为了灵活扩展,这种分级是没有限制的,也就是说设计者,不限制用户设定多少级目录。
针对这种情况,我提出的设计方案如下,先设计如下的 Table (以 SQL Server 为例)
CREATE TABLE [ 版面表 ] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[ 版面名称 ] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 版面级别 ] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 上级版面 id] [int] NOT NULL
) ON [PRIMARY]
其中顶级版面的上级版面 id 就是它自己的版面 id
输入如下数据:
id
版面名称
版面级别
上级版面 id
1
英语学习
1
1
2
四六级学习
2
1
3
GRE
2
1
4
GRE 作文
3
3
5
GRE 词汇
3
3
6
GRE 阅读
3
3
7
GRE 填空
3
3
8
GRE 作文互评
4
4
9
GRE 作文提纲
4
4
10
TOEFL
2
1
11
TOEFL 作文
3
10
12
TOEFL 听力
3
10
13
TOEFL 阅读
3
10
14
TOEFL 语法
3
10
15
体育
1
15
16
足球
2
15
17
中国足球
3
16
18
世界足球
3
16
19
篮球
2
15
20
CBA
3
19
21
NBA
3
19
/////////////////////////////////////////////////////////////////////
设计的确有好多的变化,比较别人的思想,可以比自己想到更大空间,同时又可能限制左自己的想法~~~~
1.问题:给出一串字符串,如"avASkdggddiphhppSSDFFJOK",就你设设一程序求出现次数最多的那个字母出现的次数。
//////////////////////////////////////////////////////////////
网络上找到的一些想法:
答案:同样选用cin.getline( )函数实现字符串读入。统计过程的实现同样依靠循环依次判断归类并计数。根据题目要求,统计值应该有26个,为简化处理,使用整型数组实现。
实现一:归类用switch语句实现。
#include<iostream.h>
void main()
{
char s[81];//定义存放字符串的数组
int c[26]={0};//定义存放个数的数组,各记数值赋初值为0
cin.getline(s,81);//读入一行带空白符的字符串
for(int i=0;s;i++)//从字符串头到尾循环判断
{
switch(s){//如果是某字母,相应计数值加一
case 'A': case 'a': c[0]++; break;
case 'B': case 'b': c[1]++; break;
case 'C': case 'c': c[2]++; break;
case 'D': case 'd': c[3]++; break;
case 'E': case 'e': c[4]++; break;
case 'F': case 'f': c[5]++; break;
case 'G': case 'g': c[6]++; break;
case 'H': case 'h': c[7]++; break;
case 'I': case 'i': c[8]++; break;
case 'J': case 'j': c[9]++; break;
case 'K': case 'k': c[10]++; break;
case 'L': case 'l': c[11]++; break;
case 'M': case 'm': c[12]++; break;
case 'N': case 'n': c[13]++; break;
case 'O': case 'o': c[14]++; break;
case 'P': case 'p': c[15]++; break;
case 'Q': case 'q': c[16]++; break;
case 'R': case 'r': c[17]++; break;
case 'S': case 's': c[18]++; break;
case 'T': case 't': c[19]++; break;
case 'U': case 'u': c[20]++; break;
case 'V': case 'v': c[21]++; break;
case 'W': case 'w': c[22]++; break;
case 'X': case 'x': c[23]++; break;
case 'Y': case 'y': c[24]++; break;
case 'Z': case 'z': c[25]++; break;
}
}
for(i=0;i<26;i++)
cout<<char('a'+i)<<"个数:"<<c<<endl;//输出26个字母的个数
}
实现二:利用ASCII码表中字母字符排序与字母顺序相同的特点简化了归类判断。
#include<iostream.h>
void main()
{
char s[81];//定义存放字符串的数组
int c[26]={0};//定义存放个数的数组,各记数值赋初值为0
int zm;
cin.getline(s,81);//读入一行带空白符的字符串
for(int i=0;s;i++)//从字符串头到尾循环判断
{
if(s>='a'&&s<='z'){ zm=s-'a'; c[zm]++; }//如果是小写字母,相应字母个数加一
if(s>='A'&&s<='Z'){ zm=s-'A'; c[zm]++; } //如果是大写字母,相应字母个数加一
}
for(i=0;i<26;i++)
cout<<char('a'+i)<<"个数:"<<c<<endl;//输出26个字母的个数
}
2.问题:设计一个目录(象Windows的敢)用数据库保存这样的结构
网络上找到的一些想法:
////////////////////////////////////////////////
多级目录数据库设计方案
在实际工作中,经常碰到需要多级目录的情况,例如设计一个论坛,它的版面是分级的,而且为了灵活扩展,这种分级是没有限制的,也就是说设计者,不限制用户设定多少级目录。
针对这种情况,我提出的设计方案如下,先设计如下的 Table (以 SQL Server 为例)
CREATE TABLE [ 版面表 ] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[ 版面名称 ] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 版面级别 ] [varchar] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ 上级版面 id] [int] NOT NULL
) ON [PRIMARY]
其中顶级版面的上级版面 id 就是它自己的版面 id
输入如下数据:
id
版面名称
版面级别
上级版面 id
1
英语学习
1
1
2
四六级学习
2
1
3
GRE
2
1
4
GRE 作文
3
3
5
GRE 词汇
3
3
6
GRE 阅读
3
3
7
GRE 填空
3
3
8
GRE 作文互评
4
4
9
GRE 作文提纲
4
4
10
TOEFL
2
1
11
TOEFL 作文
3
10
12
TOEFL 听力
3
10
13
TOEFL 阅读
3
10
14
TOEFL 语法
3
10
15
体育
1
15
16
足球
2
15
17
中国足球
3
16
18
世界足球
3
16
19
篮球
2
15
20
CBA
3
19
21
NBA
3
19
/////////////////////////////////////////////////////////////////////
设计的确有好多的变化,比较别人的思想,可以比自己想到更大空间,同时又可能限制左自己的想法~~~~
- 面试的两道试题
- java面试中遇到的两道String的面试题
- 面试的两道智力题
- 面试遇到的两道算法题
- 百度面试的两道题目
- 两道面试中常见的智力题
- (常面试的面试题)Service的两种启动方式的区别?
- 两道简单的面试题 java
- 两道简单的面试题
- 【USACO】两道简单的ACM试题
- 两道普通的面试题
- 两道设计模式的面试题
- 两道有意思的面试题
- 两道有趣的面试题
- 两道设计模式的面试题
- 近期面试的两家公司所遇到的面试题
- 华为的面试试题
- 两道baidu试题
- 电子书网站
- 母亲的一生为你做了什么你知道吗?
- 常用CSS元素div ul dl dt ol的简单解释
- 教你学会做人
- VC(C)操作文件之-文件的打开(fopen函数)
- 面试的两道试题
- 单元测试工具你用过吗?
- 到底用PC服务器好还是小型机好?
- SQL语句
- 用ROME创建RSS服务
- 自我领悟的OO
- 一个程序员的成长历程
- 为什么要使用EJB?
- 项目开发经验----如何同时应对多个项目 & embedded tomcat 使用