亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

華為筆試題及答案

時(shí)間:2024-10-22 03:12:59 華為認(rèn)證 我要投稿
  • 相關(guān)推薦

2016年華為筆試題及答案

  1. 找錯(cuò)

2016年華為筆試題及答案

  void test1()

  {

  char string[10];

  char* str1="0123456789";

  strcpy(string, str1);

  }

  答:表面上并且編譯都不會(huì)錯(cuò)誤。但如果string數(shù)組原意表示的是字符串的話,那這個(gè)賦值就沒有達(dá)到意圖。最好定義為char string[11],這樣最后一個(gè)元素可以存儲(chǔ)字符串結(jié)尾符'\0';

  void test2()

  {

  char string[10], str1[10];

  for(int I=0; I<10;I++)

  {

  str1[I] ='a';

  }

  strcpy(string, str1);

  }

  答:strcpy使用錯(cuò)誤,strcpy只有遇到字符串末尾的'\0'才會(huì)結(jié)束,而str1并沒有結(jié)尾標(biāo)志,導(dǎo)致strcpy函數(shù)越界訪問,不妨讓str1[9]='\0',這樣就正常了。

  void test3(char* str1)

  {

  char string[10];

  if(strlen(str1)<=10)

  {

  strcpy(string, str1);

  }

  }

  答:這又會(huì)出現(xiàn)第一道改錯(cuò)題的錯(cuò)誤了。strlen(str1)算出來的值是不包含結(jié)尾符'\0'的,如果str1剛好為10個(gè)字符+1結(jié)尾符,string就得不到結(jié)尾符了。可將strlen(str1)<=10改為strlen(str1)<10。

  2. 找錯(cuò)

  #define MAX_SRM 256

  DSN get_SRM_no()

  {

  static int SRM_no;

  int I;

  for(I=0;I {

  SRM_no %= MAX_SRM;

  if(MY_SRM.state==IDLE)

  {

  break;

  }

  }

  if(I>=MAX_SRM)

  return (NULL_SRM);

  else

  return SRM_no;

  }

  答:我不知道這段代碼的具體功能,但明顯有兩個(gè)錯(cuò)誤

  1,SRM_no沒有賦初值

  2,由于static的聲明,使該函數(shù)成為不可重入(即不可預(yù)測(cè)結(jié)果)函數(shù),因?yàn)镾RM_no變量放在程序的全局存儲(chǔ)區(qū)中,每次調(diào)用的時(shí)候還可以保持原來的賦值。這里應(yīng)該去掉static聲明。

  3. 寫出程序運(yùn)行結(jié)果

  int sum(int a)

  {

  auto int c=0;

  static int b=3;

  c+=1;

  b+=2;

  return(a+b+c);

  }

  void main()

  {

  int I;

  int a=2;

  for(I=0;I<5;I++)

  {

  printf("%d,", sum(a));

  }

  }

  答:8,10,12,14,16

  該題比較簡(jiǎn)單。只要注意b聲明為static靜態(tài)全局變量,其值在下次調(diào)用時(shí)是可以保持住原來的賦值的就可以。

  4.

  int func(int a)

  {

  int b;

  switch(a)

  {

  case 1: b=30;

  case 2: b=20;

  case 3: b=16;

  default: b=0;

  }

  return b;

  }

  則func(1)=?

  答:func(1)=0,因?yàn)闆]有break語(yǔ)句,switch中會(huì)一直計(jì)算到b=0。這是提醒我們不要忘了break。呵呵。

  5:

  int a[3];

  a[0]=0; a[1]=1; a[2]=2;

  int *p, *q;

  p=a;

  q=&a[2];

  則a[q-p]=?

  答:a[q-p]=a[2]=2;這題是要告訴我們指針的運(yùn)算特點(diǎn)

  6.

  定義 int **a[3][4], 則變量占有的內(nèi)存空間為:_____

  答:此處定義的是指向指針的指針數(shù)組,對(duì)于32位系統(tǒng),指針占內(nèi)存空間4字節(jié),因此總空間為3×4×4=48。

  7.

  編寫一個(gè)函數(shù),要求輸入年月日時(shí)分秒,輸出該年月日時(shí)分秒的下一秒。如輸入2004年12月31日23時(shí)59分59秒,則輸出2005年1月1日0時(shí)0分0秒。

  答:

  /*輸入年月日時(shí)分秒,輸出年月日時(shí)分秒的下一秒,輸出仍然在原內(nèi)存空間*/

  void NextMinute(int *nYear,int *nMonth,int *nDate,int *nHour,int *nMinute,int *nSecond)

  {

  int nDays;

  (*nSecond)++; // 秒加1

  if(*nSecond>=60) // 秒滿60,做出特殊處理,下面時(shí),日,月等類同

  {

  *nSecond=0;

  (*nMinute)++;

  if(*nMinute>=60)

  {

  *nMinute=0;

  (*nHour)++;

  if(*nHour>=24)

  {

  *nHour=0;

  (*nDate)++;

  switch(*nMonth)

  {

  case 1:

  case 3:

  case 5:

  case 7:

  case 8:

  case 10:

  case 12:

  nDays=31;

  break;

  case 2:// 判斷閏年

  if(*nYear%400==0||*nYear%100!=0&&*nYear%4==0)

  {

  nDays=29;

  }

  else

  {

  nDays=28;

  }

  break;

  default:

  nDays=30;

  break;

  }

  if(*nDate>nDays)

  {

  *nDate=1;

  (*nMonth)++;

  if(*nMonth>12)

  {

  *nMonth=1;

  (*nYear)++;

  }

  }

  }

  }

  }

  }

  /*示例可運(yùn)行代碼*/

  void main()

  {

  int nYear=2004,nMonth=12,nDate=31,nHour=59,nMinute=59,nSecond=59;

  NextMinute(&nYear,&nMonth,&nDate,&nHour,&nMinute,&nSecond);

  printf("The result:%d-%d-%d %d:%d:%d",nYear,nMonth,nDate,nHour,nMinute,nSecond);

  }

【華為筆試題及答案】相關(guān)文章:

華為筆試題及答案11-01

華為2017筆試試題07-06

華為認(rèn)證最新試題及答案08-28

華為C語(yǔ)言上機(jī)試題及答案07-01

華為認(rèn)證考試試題及答案08-20

華為網(wǎng)絡(luò)筆試試題及答案11-05

華為hcna認(rèn)證模擬試題及答案06-15

2016年華為機(jī)試題及答案07-23

2016華為HCNE認(rèn)證模擬試題及答案06-23

2024華為認(rèn)證考試仿真試題(附答案)10-26