顺便复习一下java异常的知识。
异常定义:能让程序意外中断运行的指令流。
java异常类的结构如下
Throwable包括了一切的异常。ERROR是JVM的异常,不可以用我们的代码处理。Exception是我们程序中可能出现的异常,可以处理。
RuntimeException和Exception的关系:
RuntimeException继承自Exception,RuntimeException和它的子类可以不用try catch进行处理。
Java代码 收藏代码
ry{
y = Integer.parseInt(year);
}catch(Exception ex){
System.out.println("ERROR");
return;
}
其实这里 Integer.parseInt(year) 可能会抛出NumberFormatException的,但是eclipse并没有提示这句代码需要处理异常,因为NumberFormatException是RuntimeException的子类。
当然因为RuntimeException是Exception的子类,所以,也可以用try catch来处理。
3.之前投了华为的实习生,昨天让去参加“华为编程大赛”机试。就一个题,在网吧上机,时间30分钟,题目如下:
17进制转成10进制,输入是数字跟大写字母。例如输入G、11、FF,分别输出16、18、270
参考代码如下:
void main()
{
string str;
cin>>str;
int i=0;
int num=0;//保存转换后数字
int factor=1;
bool sign=1;//用来标志输入字符串是否非法
int len=str.size();
for (i=0;i
{
if (str[i]>='0' && str[i]<='9')
{
num=num*factor+(str[i]-'0');
factor*=17;
}
else if (str[i]>='A' && str[i]<='G')
{
num=num*factor+(str[i]-'A'+10);
factor*=17;
}
else
{
sign=0;
break;
}
}
if (sign)
cout<
else
cout<<"Error Input!"<
}
4.一:通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔,请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’,并将子串存储。
如果输入”abc def ghi d”,结果将是abc,def,gh,i,d
要求实现函数
Void DivideString(const char *pInputStr,long IinputLen,char *pOutputStr);
输入:pInputStr:输入字符串
IinputLen:输入字符串的长度
输出:pOutputStr:输出字符串,字符串已开辟好,与输入字符串等长
注意:只需要完成该函数功能算法,中间不需要有任何IO的输入输出
解,首先去掉字符串前面开始的空格,然后遍历字符串,遇到空格时,将标志设为真,先不处理,等下次时循环时,若标志为真,则在字符前加一,号即可
oid DivideString(const char *pInputStr,long IinputLen, char *OutputStr)
{
int cnt=0,i=0;//计数
bool flag=false;
while(pInputStr[i]==' ')//去掉前面的空格
i++;
for(;i
{
if(pInputStr[i]==' ')
{
flag=true;
continue;
}
if(flag)//如果flag为true,说明有空格,则将空格变成了,
{
flag=!flag;
OutputStr[cnt++]=',';
}
OutputStr[cnt++]=pInputStr[i];
}
OutputStr[cnt]='\0';
}
二:将一个字符串中出现次数最少的字符删掉,并保证删除后的字符顺序不变,如果出现次数最少的字符有多种,则这几种字符都要删除,该字符串长度不会超过20个字符。 例如:源字符串为“abcdd”,删除后为“dd”
解:此题主要是内存移位操作
char *deleteMin(char *InputSrc,int ILen)
{
int sz[26]={0};
int min=20,i;//最小出现次数
for(i=0;i
++sz[InputSrc[i]-'a'];
for(i=0;i<26;i++)
if(sz[i]
min=sz[i];
for(int t=0;*(InputSrc+t);++t)
if(sz[InputSrc[t]-'a']==min)
{
memcpy(InputSrc+t,InputSrc+t+1,ILen-t);
--t;//因为跳过了一位
}
return InputSrc;
}
华为相关文章:
1.2016华为认证云计算工程师模拟试题及答案
2.华为HCIE-Enterprise Communication模拟试题及答案
3.华为HCNA-UC V2.8模拟试题及答案
4.华为认证HCNA-Big Data模拟试题及答案
5.华为认证HCNA-Storage-BSSN模拟试题及答案
6.2016华为认证模拟试题及答案
7.华为认证最新试题及答案
8.华为认证最新HCIE-Cloud试题及答案
9.2016年华为机试题及答案
10.华为认证考试试题及答案