美图2017秋招C++开发工程师笔试试卷

时长:120分钟 总分:100分

182浏览 0人已完成答题

题型介绍
题型 判断题 简答题
数量 1 7
1.
请计算 sizeof 的值.
问题详情

请计算 sizeof 的值.

void Func(char str[100]){}

请计算 sizeof(str)=()

char str[]=”Hello”

char *p=str

int n=10

请计算

sizeof(str)=()

sizeof(p)=()

sizeof(n)=()

void *p=malloc(100)

请计算 sizeof(p)=()

2.
有什么区别
问题详情

#include<filename.h>include “filename.h”有什么区别?

3.
头文件中的 ifndef/define/endif 的作用?
问题详情

头文件中的 ifndef/define/endif 的作用?

4.
Const 有什么用途?(请至少说明两种)
问题详情

Const 有什么用途?(请至少说明两种)

5.
在 c++ 程序中调用被 c 编译器编译后的函数,为什么要加 extern “C” 声明?
问题详情

c++ 程序中调用被 c 编译器编译后的函数,为什么要加 extern  “C” 声明?

6.
编写 strcpy 函数 已知 strcpy 函数的原型是 Char *strcpy(char *strDest,const char *strSrc) 其中 strDest 是目的字符串, strSrc 是源字符串。 (1) 不调用 c++ 、 /c 的字符串库函数,请编写函数 strcpy (2) Strcpy 能把 strSrc 的内容复制到 strDest ,为什么还要 char * 类型的返回值?
问题详情

编写 strcpy 函数

已知 strcpy 函数的原型是

Char *strcpy(char *strDest,const char *strSrc)

其中 strDest 是目的字符串, strSrc 是源字符串。

(1) 不调用 c++ /c 的字符串库函数,请编写函数 strcpy

(2) Strcpy 能把 strSrc 的内容复制到 strDest ,为什么还要 char * 类型的返回值?

7.
请阅读下面的代码,提出意见与建议,并优化代码
问题详情

请阅读下面的代码,提出意见与建议,并优化代码

源代码: 
#define BYTE unsigned char    //256个字节,数值范围[0,255]BYTE Fun1(BYTE nOral,BYTE nTemp)
{
    BYTE nResult = (((nTemp <128)?(2*nOral *nTemp/255):(255-2*(255-nOral)*(255-nTemp)/255)))
    nResult = 2*((nOral>>1)+64)*nResult/255
    return nResult
}
void Test()
{
    intnWidth = 10000       int nHeight = 10000
  BYTE*pOralData = new BYTE(nWidth*nHeight) 
    BYTE*pTempData = new BYTE(nWidth*nHeight)
   ...//赋值不考虑,每个值的范围在0-255之间
  int i,j
    for (j=0j<nHeightj++)
   {      
        for (i=0i<nWeighti++)      
        {
         BYTE* pOral = pOralData + i*nHeight + i
       BYTE* pTemp = pTempData– j*nHeight + i          
            pOral[0] = Fun1(pOral[0],pTemp[0])
      }
   }
}


8.
实现一个动态数组类,功能包括在位置 N 增加一个数据,在位置 N 删除一个数据,获取第 N 大的数据,获取第 N 小的数据,获取数组的第 N 个数据,其中, N 取任意值;
问题详情

实现一个动态数组类,功能包括在位置 N 增加一个数据,在位置 N 删除一个数据,获取第 N 大的数据,获取第 N 小的数据,获取数组的第 N 个数据,其中, N 取任意值。