阿尔卡特笔试题目之一

2024-04-23 02:38
文章标签 笔试 题目 阿尔卡特

本文主要是介绍阿尔卡特笔试题目之一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、能否实现一个宏来实现sizeof(type),   sizeof(var),   type为基本类型,var   为变量.  
  #define     NEWSIZEOF(x)     sizeof(x)       这样答题是不会得分的。回答不能实现,也是0分。   
//  selfsizeof.cpp : 定义控制台应用程序的入口点。
//

#include 
" stdafx.h "
#include 
< iostream >
using   namespace  std;

#define  NEWSIZEOFVAR(x)     ((char*)(&x+1)-(char*)&x) 

int  _tmain( int  argc, _TCHAR *  argv[])
{
    
int rhs = 0;
    
int result = NEWSIZEOFVAR(rhs);
    cout 
<< "the result is " << result;
    
return 0;
}

3、 结构 体sizeof   的题目。不写了。最后一问:   结构体成员能否进行   16bytes对齐?  
根据 编译器和OS,   在64位OS上结构体内的数据成员可能16bytes   对齐. http://www.vckbase.com/document/viewdoc/?id=1054;http://blog.vckbase.com/panic/archive/2005/04/02/4340.aspx


4、写一个函数reverse一个byte  
  unsigned   char   ByteReverse(unsigned   char   szByte)  
  {    
      unsigned   char   a   =   szByte,    
      unsigned   char   b   =   0;  
      int   i;  
      for(i=0;   i<8;   i++) {  
      b   <<=   1;  
      b   |=   (0x01   &   a);  
      a   >>=   1;  
      }  
      return   b;  
  }   
   
5、写一个函数判断一个整型是不是power   of   2  
  bool   IS_POWEROFTWO(unsigned   int   m)  
  {   
      if(   ((m&(m-1))==0)   &&   m>0   )   //decrease by 1 to remove one "1" in the binary of num at once.
      return   true;  
      else  
      return   false;  
  }   
   
7、2选1  
写个函数实现反转一个字符串的 功能

// stringReverse.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <iostream>
using namespace std;

/************************************************************************/  
//   函数名称:   Ustrlen  
//   输入参数:   strSource,待求长度字符串;  
//   输出参数:   int,字符串的长度。  
//   描         述:   通过判断字符'/0'来得到字符串的长度  
/************************************************************************/    
int   Ustrlen(const   char   *strSource)  
{  
 //   声明变量  
 int   iLength(0);  
 //   遍历字符串,查找字符'/0'  
 while(*strSource++   !=   '/0')  
 {  
  ++iLength;  
 }  
 //   返回字符串的长度  
 return   iLength;  
}  
/************************************************************************/  
//   函数名称:   _ReversalChar  
//   输入参数:   strSouce,待反转字符串;iStart,旋转字符串开始位置;iEnd,旋转字符串结束位置  
//   输出参数:   char*,反转后字符串的指针;  
//   描         述:   反转iStart到字符串iEnd之间的字符串  
/************************************************************************/  
char*   _ReversalChar(char   *strSouce,int   iStart,int   iEnd)  
{  
 //   反转字符串  
 for(;iEnd   >   iStart;   ++iStart,--iEnd)  
 {  
  char   ch;  
  ch   =   strSouce[iStart];  
  strSouce[iStart]   =   strSouce[iEnd];  
  strSouce[iEnd]   =   ch;  
 }  
 //   返回字符串指针  
 return   strSouce;  
}  

/************************************************************************/  
//   函数名称:   ReversalChar  
//   输入参数:   strSource,待反转字符串  
//   输出参数:   char*,反转字符串后的指针  
//   描         述:   按单词反转字符串  
/************************************************************************/  
char   *   ReversalChar(char   *strSouce)  
{  
 //   获取字符串的长度  
 int   iLength   =   Ustrlen(strSouce);  

 //   反转整个字符串  
 _ReversalChar(strSouce,0,iLength-1);  

 //   声明变量(单词的开始以及结束默认从0开始)  
 int   iStart(0),iEnd(0);  

 //   查找单词  
 //   像上面讨论的查找单词的情况,我们只需要修改这部分,就可以实现对不  
 //   同格式类型单词进行处理,为了更好的通用性,其实最好把查找单词这部分  
 //   作为单独一个函数,或者一个类来处理  
 for(int   i   =   0;   i   <   iLength;   ++i)  
 {  
  //   查找空格分割符号  
  if(strSouce[i]  ==   ' ')  
  {  
   //   找到一个单词  
   iEnd   =   i-1;  
   //   对于只有一个字符的单词比如说(I)没有必要反转  
   if(iStart   <   iEnd)  
   {  
    //   反转单词  
    _ReversalChar(strSouce,iStart,iEnd);  
   }  
   //   记录下一个单词的开始位置  
   iStart   =   i+1;  
  }  
  //   特殊处理几种常见标点符号  
  else   if(strSouce[i]   ==   '!'   ||   strSouce[i]   ==   ','   ||   strSouce[i]   ==   '.')  
  {  
   iStart   =   i+1;  
  }  
 }  
 //   返回反转后的字符串  
 return   strSouce;  
}  

int main ()
{
 char  str []= "I want to be get hired!!!";
 cout << "before reverse " << str << endl;
 cout << "after reverse " << ReversalChar(str) << endl;
 return 0;
}


8、不另外增加存储空间实现如下功能:   a=1,   b=2,   交换a和b的值   
public   int   swap (int   x,int   y){
      x   =   x   +   y;
      y   =   x   -   y;
      x   =   x   -   y;


9、改错题  
  void   f()  
  {  
  unsigned   static   int   i;  
  int   sum   =   0;  
  for(i=0;   i<=100;   i++)  
  sum+=i;  
          return   sum;  
  }  
  去掉static,否则每次调用函数得到的结果都不同,static变量会保留值. 

这篇关于阿尔卡特笔试题目之一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/927562

相关文章

题目1254:N皇后问题

题目1254:N皇后问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: N皇后问题,即在N*N的方格棋盘内放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在同一斜线上。因为皇后可以直走,横走和斜走如下图)。 你的任务是,对于给定的N,求出有多少种合法的放置方法。输出N皇后问题所有不同的摆放情况个数。 输入

题目1380:lucky number

题目1380:lucky number 时间限制:3 秒 内存限制:3 兆 特殊判题:否 提交:2839 解决:300 题目描述: 每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

码蹄集部分题目(2024OJ赛9.4-9.8;线段树+树状数组)

1🐋🐋配对最小值(王者;树状数组) 时间限制:1秒 占用内存:64M 🐟题目思路 MT3065 配对最小值_哔哩哔哩_bilibili 🐟代码 #include<bits/stdc++.h> using namespace std;const int N=1e5+7;int a[N],b[N],c[N],n,q;struct QUERY{int l,r,id;}que

两道笔试题

“char a='\72'”是什么意思? 这么理解:\为转义字符,\072转义为一个八进制数072,也就是十进制数的58买一送一,将转义字符对照表也一并贴给你吧:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT

2024 年高教社杯全国大学生数学建模竞赛题目——2024 年高教社杯全国大学生数学建模竞赛题目的求解

2024 年高教社杯全国大学生数学建模竞赛题目 (请先阅读“ 全国大学生数学建模竞赛论文格式规范 ”) 2024 年高教社杯全国大学生数学建模竞赛题目 随着城市化进程的加快、机动车的快速普及, 以及人们活动范围的不断扩大,城市道 路交通拥堵问题日渐严重,即使在一些非中心城市,道路交通拥堵问题也成为影响地方经 济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。 考虑一个拥有知名景区

力扣 739. 每日温度【经典单调栈题目】

1. 题目 理解题意: 1.1. 给一个温度集合, 要返回一个对应长度的结果集合, 这个结果集合里面的元素 i 是 当前 i 位置的元素的下一个更高温度的元素的位置和当前 i 位置的距离之差, 若是当前元素不存在下一个更高温度的元素, 则这个位置用0代替; 2. 思路 本题用单调栈来求解;单调栈就适用于来求当前元素左边或者右边第一个比当前元素大或者小的元素;【单调栈:让栈中的元素保持单调

华为23年笔试题

消息传输 题目描述 在给定的 m x n (1 <= m, n <= 1000) 网格地图 grid 中,分布着一些信号塔,用于区域间通信。 每个单元格可以有以下三种状态:  值 0 代表空地,无法传递信号;  值 1 代表信号塔 A,在收到消息后,信号塔 A 可以在 1ms 后将信号发送给上下左右四个方向的信号塔; 值 2 代表信号塔 B,在收到消息后,信号塔 B 可以在 2ms

实现的动态规划问题华为笔试题C++实现

秋招刷力扣题,我觉得我对动态规划不是熟练,在此处做总结 动态规划(Dynamic Programming,DP)算法通常用于求解某种具有最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解。我觉得最大的问题就是对问题的分解,分解后的问题与分解前的问题具有相同的决策机制,将决策机制进行抽象,最终可以得到对应的解; 动态规划中开始介绍的爬楼梯等问题,答