关闭

moto面试题目1

816人阅读 评论(0) 收藏 举报

1.打印如下图案,共19行,只能有一个for循环(题目已经提供)
         *         
        ***        
       *****       
      *******      
     *********     
    ***********
   *************   
  ***************  
 ***************** 
*******************
 ***************** 
  ***************  
   *************   
    ***********    
     *********     
      *******      
       *****       
        ***        
         *         
for(i=0;i<19;i++)
{

}
2.
void fun(int x)
{
if(x/2>0)fun(x/2);
printf("%d",x);
}
求fun(10)的输出结果
3。
#define f1(n) (n)*(n)

         int i=5;
int k=0;
k=f1(i++);
printf("%d %d",i,k);
输出结果:
4。下面那个for循环是无限循环
for(int i=010;i==10;i+=0)

for(int i=10;(i++^--i)==0;i+=0)
还有几个忘了

5.Email relay 和Email access分别用了什么协议?(其他还有很多,略)
6。in a mobile phone,软件运行期,stack data 存在于
a.rom,b.flash c.eeprom d.ram e.none of the above
7.
int i;
int x=0x12345678;
unsigned char *p=(unsigned char *)&x;
for(i=0;i<sizeof(x);i++)
printf("%2x",*(p+i));

在80x86pc机器上运行结果
Sun Sparc Unix上运行结果

8.
char a[2][2][3]={{{1,6,3},{5,4,15}},{{3,5,33},{23,12,7}} };

for(int i=0;i<12;i++)
printf("%d ",_______);
空格处填上合适的语句,顺序打印出a中的数字
9。void fun(char *a,char *b)
{
a=b;
(*a)++;
}
void main()
{
char s1='A',s2='a';
char *p1=&s1;
char *p2=&s2;
fun(p1,p2);
printf("%c%c",s1,s2);
输出结果:
10。写一个strstr()函数

相关部分参考答案:

题1:
#include <stdio.h>
#include <string.h>

int main()
{
 char arr[19];
 memset(arr, ' ', 19);

 int nRight = 9;
 int nLeft = 9;
 for(int i=0; i<19; ++i)
 {
  if(i <= 9)
  {
   arr[nLeft] = '*';
   arr[nRight] = '*';
   nLeft--;
   nRight++;
  }
  else
  {
   nLeft++;
   nRight--;
   arr[nLeft] = ' ';
   arr[nRight] = ' ';
  }
  printf("%s/n", arr);
 }

 return 0;
}
题2:
1 2 5 10
题3:
如果k=f1(i++)则结果为 7, 25
如果k=f1(++i)则结果为 7, 49
(这个道题目本身和编译器有关系)
题4:
题5:
Email relay SMTP Client>Server Or Server>Server
Email access POP3 Server>Client
题6:ram
题7:
题8:
*((char*)a+i) 或者 *(&a[0][0][0]+i) 或者 a[i/6][(i%6)/3][(i%6)%3]
题9:
Ab
题10:
char * mystrstr(const char *string, const char *strCharSet)
{
 char *p = (char *)string;
 int nLen = strlen(strCharSet);
 for(; *p != '/0'; ++p)
 {
  if(strncmp(string, strCharSet, nLen) == 0)
  {
   return p;
  }
 }
 return NULL;
}
char * mystrstr(const char *string, const char *strCharSet)
{
 char *ret = (char*)string;
 char *tmp, *cur;
 while(*ret)
 {
  tmp = (char*)strCharSet;
  cur = ret;
  while(*cur && *tmp && *tmp == (*cur)++)
  if(!(*tmp)) return ret;
  ret++;
 }
 return NULL;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5360次
    • 积分:96
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论