- 相關(guān)推薦
2016年華為認(rèn)證考試題及答案
華為認(rèn)證考試由Prometric考試服務(wù)公司代理。華為認(rèn)證不同級(jí)別與方向的認(rèn)證考試項(xiàng)目具有不同的考試要求與流程。要獲得HCNA、HCNP、HCIE等華為認(rèn)證,需參加并通過一門或多門與認(rèn)證項(xiàng)目對(duì)應(yīng)的考試。本文為大家推薦的是華為認(rèn)證的上機(jī)考試題及答案,希望能給予大家?guī)椭?
1、通過鍵盤輸入100以內(nèi)正整數(shù)的加、減運(yùn)算式,請(qǐng)編寫一個(gè)程序輸出運(yùn)算結(jié)果字符串。
輸入字符串的格式為:“操作數(shù)1 運(yùn)算符 操作數(shù)2”,“操作數(shù)”與“運(yùn)算符”之間以一個(gè)空格隔開。
補(bǔ)充說明:
1. 操作數(shù)為正整數(shù),不需要考慮計(jì)算結(jié)果溢出的情況。
2. 若輸入算式格式錯(cuò)誤,輸出結(jié)果為“0”。
要求實(shí)現(xiàn)函數(shù):
void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);
【輸入】 pInputStr: 輸入字符串
lInputLen: 輸入字符串長(zhǎng)度
【輸出】 pOutputStr: 輸出字符串,空間已經(jīng)開辟好,與輸入字符串等長(zhǎng);
【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出
示例
輸入:“4 + 7” 輸出:“11”
輸入:“4 - 7” 輸出:“-3”
輸入:“9 ++ 7” 輸出:“0” 注:格式錯(cuò)誤
復(fù)制代碼
1 void arithmetic(const char *pInputStr,long lInputLen,char *pOutputStr)
2 {
3 assert(pInputStr!=NULL && pOutputStr!=NULL && lInputLen>0);
4 int iOperand1=0;
5 int iOperand2=0;
6 char cSymbol;
7 long i;
8 for (i=0;;i++)
9 {
10 if (pInputStr[i]>='0' && pInputStr[i]<='9')
11 {
12 iOperand1=iOperand1*10+(pInputStr[i]-'0');
13 }
14 else if (pInputStr[i]==' ')
15 {
16 break;
17 }
18 else
19 {
20 return;
21 }
22 }
23
24 for (++i;;i++)
25 {
26 if (pInputStr[i]=='+' || pInputStr[i]=='-')
27 {
28 cSymbol=pInputStr[i];
29 }
30 else if (pInputStr[i]==' ')
31 {
32 break;
33 }
34 else
35 {
36 return;
37 }
38 }
39
40 for (++i;i
41 {
42 if (pInputStr[i]>='0' && pInputStr[i]<='9')
43 {
44 iOperand2=iOperand2*10+(pInputStr[i]-'0');
45 }
46 else
47 {
48 break;
49 }
50 }
51 int iTemp;
52 switch(cSymbol)
53 {
54 case '+':
55 iTemp=iOperand1+iOperand2;
56 break;
57 case '-':
58 iTemp=iOperand1-iOperand2;
59 break;
60 default:
61 break;
62 }
63
64 int k=0;
65 if (iTemp<0)
66 {
67 iTemp=-iTemp;
68 pOutputStr[0]='-';
69 k++;
70 }
71
72 char cTemp[10];
73 itoa(iTemp,cTemp,10);
74 int j=0;
75 while(cTemp[j])
76 {
77 pOutputStr[k++]=cTemp[j++];
78 }
79
80 pOutputStr[k]='\0';
81
82 }
復(fù)制代碼
2、手機(jī)號(hào)碼合法性判斷(20分)
問題描述:
我國(guó)大陸運(yùn)營(yíng)商的手機(jī)號(hào)碼標(biāo)準(zhǔn)格式為:國(guó)家碼+手機(jī)號(hào)碼,例如:8613912345678。特點(diǎn)如下:
1、 長(zhǎng)度13位;
2、 以86的國(guó)家碼打頭;
3、 手機(jī)號(hào)碼的每一位都是數(shù)字。
請(qǐng)實(shí)現(xiàn)手機(jī)號(hào)碼合法性判斷的函數(shù)(注:考生無需關(guān)注手機(jī)號(hào)碼的真實(shí)性,也就是說諸如86123123456789這樣的手機(jī)號(hào)碼,我們也認(rèn)為是合法的),要求:
1) 如果手機(jī)號(hào)碼合法,返回0;
2) 如果手機(jī)號(hào)碼長(zhǎng)度不合法,返回1
3) 如果手機(jī)號(hào)碼中包含非數(shù)字的字符,返回2;
4) 如果手機(jī)號(hào)碼不是以86打頭的,返回3;
【注】除成功的情況外,以上其他合法性判斷的優(yōu)先級(jí)依次降低。也就是說,如果判斷出長(zhǎng)度不合法,直接返回1即可,不需要再做其他合法性判斷。
要求實(shí)現(xiàn)函數(shù):
int verifyMsisdn(char* inMsisdn)
【輸入】 char* inMsisdn,表示輸入的手機(jī)號(hào)碼字符串。
【輸出】 無
【返回】 判斷的結(jié)果,類型為int。
示例
輸入: inMsisdn = “869123456789“
輸出: 無
返回: 1
輸入: inMsisdn = “88139123456789“
輸出: 無
返回: 3
輸入: inMsisdn = “86139123456789“
輸出: 無
返回: 0
復(fù)制代碼
1 int verifyMsisdn(char *inMsisdn)
2 {
3 assert(inMsisdn!=NULL);
4
5 int iLen=strlen(inMsisdn);
6 if (iLen!=13)
7 {
8 return 1;
9 }
10
11 for (int i=0;i
12 {
13 if (inMsisdn[i]<'0' || inMsisdn[i]>'9')
14 {
15 return 2;
16 }
17 }
18
19 if (inMsisdn[0]!='8' || inMsisdn[1]!='6')
20 {
21 return 3;
22 }
23
24 return 0;
25
26 }
復(fù)制代碼
3、將一個(gè)字符串的元音字母復(fù)制到另一個(gè)字符串,并排序(30分)
問題描述:
有一字符串,里面可能包含英文字母(大寫、小寫)、數(shù)字、特殊字符,現(xiàn)在需要實(shí)現(xiàn)一函數(shù),將此字符串中的元音字母挑選出來,存入另一個(gè)字符串中,并對(duì)字符串中的字母進(jìn)行從小到大的排序(小寫的元音字母在前,大寫的元音字母在后,依次有序)。
說明:
1、 元音字母是a,e,i,o,u,A,E,I,O,U。
2、 篩選出來的元音字母,不需要剔重(chong);
最終輸出的字符串,小寫元音字母排在前面,大寫元音字母排在后面,依次有序。
要求實(shí)現(xiàn)函數(shù):
void sortVowel (char* input, char* output);
【輸入】 char* input,表示輸入的字符串
【輸出】 char* output,排好序之后的元音字符串。
【返回】 無
示例
輸入:char *input = “Abort!May Be Some Errors In Out System. “
輸出:char *output =“aeeeooouAEIO “
復(fù)制代碼
1 void sortVowel(char *pInput,char *pOutput)
2 {
3 assert(pInput!=NULL && pOutput!=NULL);
4
5 int iLen=strlen(pInput);
6 char *pSmall=new char[iLen+1];
7 char *pLarge=new char[iLen+1];
8
9 int iSmallCount=0;
10 int iLargeCount=0;
11
12 for (int i=0;i
13 {
14 if (pInput[i]=='a' || pInput[i]=='e' || pInput[i]=='i' || pInput[i]=='o' || pInput[i]=='u')
15 {
16 pSmall[iSmallCount++]=pInput[i];
17
18 }
19 else if (pInput[i]=='A' || pInput[i]=='E' || pInput[i]=='I' || pInput[i]=='O' || pInput[i]=='U')
20 {
21 pLarge[iLargeCount++]=pInput[i];
22 }
23 }
24
25 sort(pSmall,pSmall+iSmallCount);
26 sort(pLarge,pLarge+iLargeCount);
27
28 int j,k=0;
29 for (j=0;j
30 {
31 pOutput[k++]=pSmall[j];
32 }
33 for (j=0;j
34 {
35 pOutput[k++]=pLarge[j];
36 }
37
38 pOutput[k]='\0';
39
40 delete []pSmall;
41 delete []pLarge;
42 }
復(fù)制代碼
4、我國(guó)公民的身份證號(hào)碼特點(diǎn)如下:
1、 長(zhǎng)度為18位;
2、 第1~17位只能為數(shù)字;
3、 第18位可以是數(shù)字或者小寫英文字母x。
4、 身份證號(hào)碼的第7~14位表示持有人生日的年、月、日信息。
例如:511002198808080111或51100219880808011x。
請(qǐng)實(shí)現(xiàn)身份證號(hào)碼合法性判斷的函數(shù)。除滿足以上要求外,需要對(duì)持有人生日的年、月、日信息進(jìn)行校驗(yàn)。年份大于等于1900年,小于等于2100年。 需要考慮閏年、大小月的情況。所謂閏年,能被4整除且不能被100整除 或 能被400整除的年份,閏年的2月份為29天,非閏年的2月份為28天。其他情況的合法性校驗(yàn),考生不用考慮。
函數(shù)返回值:
1) 如果身份證號(hào)合法,返回0;
2) 如果身份證號(hào)長(zhǎng)度不合法,返回1;
3) 如果身份證號(hào)第1~17位含有非數(shù)字的字符,返回2;
4) 如果身份證號(hào)第18位既不是數(shù)字也不是英文小寫字母x,返回3;
5) 如果身份證號(hào)的年信息非法,返回4;
6) 如果身份證號(hào)的月信息非法,返回5;
7) 如果身份證號(hào)的日信息非法,返回6(請(qǐng)注意閏年的情況);
【注】除成功的情況外,以上其他合法性判斷的優(yōu)先級(jí)依次降低。也就是說,如果判斷出長(zhǎng)度不合法,直接返回1即可,不需要再做其他合法性判斷。
要求實(shí)現(xiàn)函數(shù):
int verifyIDCard(char* input)
【輸入】 char* input,表示輸入的身份證號(hào)碼字符串
【輸出】 無
【返回】 判斷的結(jié)果,類型為int
示例
1) 輸入:”511002111222”,函數(shù)返回值:1;
2) 輸入:”511002abc123456789”,函數(shù)返回值:2;
3) 輸入:”51100219880808123a”,函數(shù)返回值:3;
4) 輸入:”511002188808081234”,函數(shù)返回值:4;
5) 輸入:”511002198813081234”,函數(shù)返回值:5;
6) 輸入:”511002198808321234”,函數(shù)返回值:6;
7) 輸入:”511002198902291234”,函數(shù)返回值:6;
8) 輸入:”511002198808081234”,函數(shù)返回值:0;
復(fù)制代碼
1 int verifyIDCard(char *input)
2 {
3 assert(input!=NULL);
4
5 int iLen=strlen(input);
6 if (iLen!=18)
7 {
8 return 1;
9 }
10
11 int i;
12 for (i=0;i<17;i++)
13 {
14 if (input[i]<'0' || input[i]>'9')
15 {
16 return 2;
17 }
18 }
19
20 if ((input[17]<'0' || input[17]>'9') && input[17]!='x')
21 {
22 return 3;
23 }
24
25 int iYear=0;
26 for (i=6;i<10;i++)
27 {
28 iYear=iYear*10+(input[i]-'0');
29 }
30 if (iYear<1900 || iYear>2100)
31 {
32 return 4;
33 }
34
35 int iMonth=0;
36 for (i=10;i<12;i++)
37 {
38 iMonth=iMonth*10+(input[i]-'0');
39 }
40 if (iMonth<1 || iMonth>12)
41 {
42 return 5;
43 }
44
45 int iDay=0;
46 for (i=12;i<14;i++)
47 {
48 iDay=iDay*10+(input[i]-'0');
49 }
50
51 if ((iYear%4==0) || (iYear%100!=0 && iYear%400==0))
52 {
53 if (iMonth==2)
54 {
55 if (iDay<1 || iDay>29)
56 {
57 return 6;
58 }
59 }
60 else if (iMonth==1 || iMonth==3 || iMonth==5 || iMonth==7 || iMonth==8 ||iMonth==10 || iMonth==12)
61 {
62 if (iDay<1 || iDay>31)
63 {
64 return 6;
65 }
66 }
67 else
68 {
69 if (iDay<1 || iDay>30)
70 {
71 return 6;
72 }
73 }
74 }
75 else
76 {
77
78 if (iMonth==2)
79 {
80 if (iDay<1 || iDay>28)
81 {
82 return 6;
83 }
84 }
85 else if (iMonth==1 || iMonth==3 || iMonth==5 || iMonth==7 || iMonth==8 ||iMonth==10 || iMonth==12)
86 {
87 if (iDay<1 || iDay>31)
88 {
89 return 6;
90 }
91 }
92 else
93 {
94 if (iDay<1 || iDay>30)
95 {
96 return 6;
97 }
98 }
99 }
100
101 return 0;
102
103 }
【華為認(rèn)證考試題及答案】相關(guān)文章:
華為認(rèn)證考試試題及答案08-22
華為認(rèn)證考試模擬卷及答案08-29
2016年華為認(rèn)證考試題庫08-11
Adobe Photoshop認(rèn)證考試題庫(含答案)08-30