2017年华为笔试题及答案

发布时间:2017-02-21 00:00:00 编辑:少芬 手机版

  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,因为没有break语句,switch中会一直计算到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;这题是要告诉我们指针的运算特点

  6.

  定义 int **a[3][4], 则变量占有的内存空间为:_____

  答:此处定义的是指向指针的指针数组,对于32位系统,指针占内存空间4字节,因此总空间为3×4×4=48。

  7.

  编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。

  答:

  /*输入年月日时分秒,输出年月日时分秒的下一秒,输出仍然在原内存空间*/

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

  {

  int nDays;

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

  if(*nSecond>=60) // 秒满60,做出特殊处理,下面时,日,月等类同

  {

  *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)++;

  }

  }

  }

  }

  }

  }

  /*示例可运行代码*/

  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);

  }


更多华为认证试题相关文章:

1.2017年华为笔试题及及答案

2.2017年华为机试练习题及答案

3.2017年华为认证真题及答案

4.2017年华为认证考试题库

5.2017年华为嵌入式笔试题

6.2017年华为笔试面试题及答案

7.2017年华为上机考试题

8.华为测试面试题整理2017

9.华为上机试题汇总

10.2017年华为认证考试题及答案

下页更精彩:首页 上一页 1 2
本文已影响3371
+1
0