以下是C/C++面试题目,共计17个题目,其中涵盖了c的各种基础语法和算法,
以函数接口设计和算法设计为主。这17个题目在C/C++面试方面已经流行了多
年,大家需要抽时间掌握好,每一个题目后面附有参考答案,希望读者能够抽
时间做完题目后在看参考答案,每一个题目至少做两边,设计出两种解决问题
的算法。

1、比较字符串,输出它们第一个不同字母的位置,大小写不敏感
2、判断一个数是不是回文数,数字 1234321。
3、比较两字符串长短,并返回结果。
4、给一个字符串,编程取其中一个特定的字符并输出。
5、是比较两个英文字符串的不相同的字符的位置(忽略字母大小写)
6、主函数调用一函数
如:检索出字符串中出现次数最多的那个字符,不考虑大小写,然后返回该字符。
7、查找字符串中出现次数最多的字符,并返回该字符,只考虑小写字母,不考虑不同字母出现次数一样多的情况
8、输入一个整数n,计算不大于n的数中和7相关的数的个数,包括能被7整出的数和含有字符7的数。
9、输入一个整数将每一位上的奇数放在一个新整数中,高位放在高位,地位在低位。
10、输入一串数,将其最小的放在第一位,次小的放在最后一位,再小的放在第二位,再再小的放在倒数第二位,以此类推。
11、写一个函数,传入参数为应付钱数。返回值为买家最少付出的钱的张数int get MoneyNum(int iInputMoney)例如:买家应付351元,最少张数为5.备注:可支付的钱币只有100、50、10、5、1不考虑2、20以及小数部分。
12、设有几个人围坐在一圈并按顺时针方向从1到几编号,从第S个人开始进行1到m的报数。报数到第M个人,此人出圈。再从他的下一个人重新开始1到M的报数,如此进行下一直到所有人都出圈为止,输出报数顺序。(其中该题目为选做题)
13、对姓氏进行排名
Char str[ ]=”zhang wang li zhao”
Char str_ new[ ]=”li wang zhang zhao”
接口:
14、将一组整数中为奇数的数提取出来,高低位顺序不变。如:8 3 7 9 5 2 1 4-----》3 7 5 1
15、一组2n+1个元素的正整形数组,按升序排序,然后将小于中间数值的成员替换为中间的值。(貌似还有:“位置不变”,不过实在不理解其含义,看了例子就不用关心它的意思了),例如:1,2,3,4,5,输出为:3,3,3,4,5,原型:int fun(int arry[],int n,char*output){return 0;}
16、输入一个四位的十进制整数,编程实现将这四位整数转化为十六进制的字符串,并输出十六进制的字符串(注意负数的处理)
17、输入:一个四位的整数,比如:2367,输出:2+3+6+7=18

以下是题目的参考答案:

1、比较字符串,输出它们第一个不同字母的位置,大小写不敏感
int str_cmp_diff(const char *str1,const char *str2)
{
while(str1[i] != '\0' && str2[i] != '\0')
{
if((str1[i] | 0x20) != (str2[i] | 0x20))
return i + 1;
i++;
}
if(str1[i] != str2[i]) return i + 1;
return 0;
}

2、判断一个数是不是回文数,数字 1234321。
int isrevert(int data)
{
data-->temp

if(data == temp)
return 1;
return 0;
}
3、比较两字符串长短,并返回结果。

int str_cmp_len(const char *str1,const char *str2)
{
len1 =
len2 =

return (len1 - len2);
}

4、给一个字符串,编程取其中一个特定的字符并输出。

int find_ch(const char *str,char ch)
{
while(str[i] != '\0')
{
if(str[i] == ch) return i;
i = i + 1;
}
return -1;
}

char *find_ch(const char *str,char ch)
{
}

5、是比较两个英文字符串的不相同的字符的位置(忽略字母大小写)

int find_diff(const char *str1,const char *str2,int array[])
{
j = 0;
while(str1[i] != '\0' && str2[i] != '\0')
{
if(str1[i] != str2[i])
{
array[j] = i;
j++;
}
i = i + 1;
}

return j;

}

6、主函数调用一函数
如:检索出字符串中出现次数最多的那个字符,不考虑大小写,然后返回该字符。

char find_max(const char *str)
{
max = 0;
ch = str[0];
while(str[i] != '\0')
{
if(isupper(str[i])
{
i = i + 1;
continue;
}
统计str[i]个数
          j = i;
ct = 0;
while(str[j] != '\0')
if(str[i] == str[j]) {ct++;j++;}
      比较记录个数最多的字符
if(max < ct) {max = ct;ch = str[i]};
}

      return 字符
}

7、查找字符串中出现次数最多的字符,并返回该字符,只考虑小写字母,不考虑不同字母出现次数一样多的情况

8、输入一个整数n,计算不大于n的数中和7相关的数的个数,包括能被7整出的数和含有字符7的数。

int count_sever(int data)
{

i = 7;
while(i < n)
{
i是否和7相关

     i = i + 1;
}

}

9、输入一个整数将每一位上的奇数放在一个新整数中,高位放在高位,地位在低位。

int fun(int data)
{
temp = 0
bit = 0;

while(data > 0)
{
bit = data % 10;
if(bit % 2 != 0)
temp = temp * 10 + bit;
data = data / 10
}

while(temp > 0)
{
bit = temp % 10;
tep = tem * 10 + bit;
temp = temp / 10
}

return tep;
}

12345--->135

int fun(int data)
{
temp = 0
bit = 0;
n = 1;
while(data > 0)
{
bit = data % 10;
if(bit % 2 != 0)
{
temp = temp + bit*n
n = n * 10;
}
data = data / 10
}

}

10、输入一串数,将其最小的放在第一位,次小的放在最后一位,再小的放在第二位,再再小的放在倒数第二位,以此类推。

void sort(int array[],int count)
{
循环count/2
  每一次寻找两个数

}

11、写一个函数,传入参数为应付钱数。返回值为买家最少付出的钱的张数int get MoneyNum(int iInputMoney)例如:买家应付351元,最少张数为5.备注:可支付的钱币只有100、50、10、5、1不考虑2、20以及小数部分。

int get MoneyNum(int iInputMoney)
{
int ct1 = 0,ct2 = 0,ct3 = 0,ct4 = 0,ct5 = 0;

int money = 0;

ct1 = iInputMoney / 100;
money = iInputMoney % 100;
ct2 = money / 50
money = money % 50;
ct3 = money / 10;
money = money % 10;
ct4 = money / 5

return ct1 + ct2 +...

}

选做题:
12、设有几个人围坐在一圈并按顺时针方向从1到几编号,从第S个人开始进行1到m的报数。报数到第M个人,此人出圈。再从他的下一个人重新开始1到M的报数,如此进行下一直到所有人都出圈为止,输出报数顺序。

13、对姓氏进行排名
Char str[ ]=”zhang wang  li    zhao”
Char str_ new[ ]=”li wang zhang zhao”
接口:

void sort(const char *str,int len,char *str_new)
{

char **strs = (char **)malloc(sizeof(char *) * len);
memset()

for(int i = 0;i < len;i++)
{
strs[i] = (char *)malloc(sizeof(char) * N)
          memset()
}

while(str[i] != '\0')
{
while(str[i]是字符)str[i]-->strs[j][k]
while(str[i]不是字符)
}

     排序

        for(i = 0;i < len;i++)
{
strncpy
str_new[] = ' '
}
        

}

14、将一组整数中为奇数的数提取出来,高低位顺序不变。如:8 3 7 9 5 2 1 4-----》3 7 5 1

int find_data(int array[],int count,int dest[])
{

}

15、一组2n+1个元素的正整形数组,按升序排序,然后将小于中间数值的成员替换为中间的值。(貌似还有:“位置不变”,不过实在不理解其含义,看了例子就不用关心它的意思了),例如:1,2,3,4,5,输出为:3,3,3,4,5,原型:
int fun(int arry[],int n,char*output)
{
if(array == NULL || output == NULL) return -1;

return 0;
}

16、输入一个四位的十进制整数,编程实现将这四位整数转化为十六进制的字符串,并输出十六进制的字符串(注意负数的处理)
char *int_to_hex(int data,char *str)
{
if(data < 0)
data = ~(-1 * data) + 1

while(data > 0)
{
bit = data % 16;
if(bit < 10)
str[i] = bit + '0'
else
str[i] = bit - 10 + 'a'
data = data / 16;
}

str逆序
      return str;
}

17、输入:一个四位的整数,比如:2367,输出:2+3+6+7=18

cc++面试------17道经典面试题目分析的更多相关文章

  1. 33条C#、.Net经典面试题目及答案

    33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如".NET中类和结构的区别"."ASP.NET页面之间传递值的几种方式? ...

  2. 33条C#、.Net经典面试题目及答案[zt]

    33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如“.NET中类和结构的区别”.“ASP.NET页面之间传递值的几种方式?”,并简明扼要的给出了答案,希 ...

  3. 经典面试题目——250M内存处理10G大小的log文件

    前言 周末逛知乎的时候,看到的一个经典面试题目:http://www.zhihu.com/question/26435483.非常经典的一道分而治之的题目. 题目描写叙述例如以下: 有次面试遇到一个问 ...

  4. hadoop面试100道收集(带答案)

    1.列出安装Hadoop流程步骤 a) 创建hadoop账号 b) 更改ip c) 安装Java 更改/etc/profile 配置环境变量 d) 修改host文件域名 e) 安装ssh 配置无密码登 ...

  5. c语言面试宝典(经典,超详细)

    c语言面试宝典(经典,超详细) 2018年08月25日 09:32:19 chengxuyuan997 阅读数:7799   摘自:https://blog.csdn.net/chengxuyuan9 ...

  6. JAVASE经典面试问题(必须熟背),你Get到了吗?

    JAVASE经典面试问题(必须熟背) 1. 编译java程序使用什么命令?运行java使用什么命令? javac *.java java 类名 2. 什么是JDK,什么是JRE,JDK与JRE有什么区 ...

  7. 阿里Linux Shell脚本面试25个经典问答

    转载: 阿里Linux Shell脚本面试25个经典问答 Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命 ...

  8. Angular 2的12个经典面试问题汇总(文末附带Angular测试)

    Angular作为目前最为流行的前端框架,受到了前端开发者的普遍欢迎.不论是初学Angular的新手,还是有一定Angular开发经验的开发者,了解本文中的12个经典面试问题,都将会是一个深入了解和学 ...

  9. Angular 2的12个经典面试问题汇总(文末附带Angular測试)

    Angular作为眼下最为流行的前端框架,受到了前端开发者的普遍欢迎.不论是初学Angular的新手.还是有一定Angular开发经验的开发者,了解本文中的12个经典面试问题,都将会是一个深入了解和学 ...

随机推荐

  1. Redis的Lists数据类型

    Lists 就是链表,相信略有数据结构知识的人都应该能理解其结构.使用Lists结构,我们可以轻松地实现最新消息排行等功能.Lists的另一个应用就是消息队列,可以利用Lists的PUSH操作,将任务 ...

  2. CSS动画效果

    CSS变形效果 Transform translate:平移 translate(x,y) translateX(x) translateY(y)相对于元素原始位置平移. scale:缩放 大于1放大 ...

  3. Canvas绘制图片模糊

    canvas是html5的新标签,是个可以绘制图形的画布,画布的默认大小为300x150.在自定义绘制画布大小的时候有注意的问题,就是用样式来设置高度和宽度的时候 比如 <div style=& ...

  4. IE浏览器下的渐变背景

    background: linear-gradient(to bottom, #000000 0%,#ffffff 100%);(标准) linear-gradient 在 ie9 以下是不支持的,所 ...

  5. ezdpl:完全依赖脚本和ssh的自动化部署方案

    ezdpl是easy deployment的简写,使用简单的ssh和shell脚本来部署.升级.回滚和重新配置linux服务器. 重要提示:警告:这个项目还处于测试过程中,请仔细阅读说明,并且自己承担 ...

  6. 通过 PowerShell 的方式增加虚拟机终结点

    关于虚拟机终结点的概念请阅读:如何设置虚拟机的终结点 本文包含以下内容(本文在名称为"pstest"的虚拟机做测试): 通过 PowerShell 的方式增加终结点 通过 Powe ...

  7. SourceTree Win10 安装不成功解决过程记录

    简介 SourceTree 是一款拥有可视化界面的项目版本控制软件,适用于git项目管理,同时它集成了 git flow 工作流程,对于不熟悉 git 命令的初学者来说,可以通过 SourceTree ...

  8. HCNA配置手工负载分担模式链路聚合

    一.配置手工负载分担模式链路聚合 链路聚合(Link Aggregation)是将—组物理接口捆绑在一起作为一个逻辑接口来增加带宽的一种方法,又称为多接口负载均衡组(Load Sharing Grou ...

  9. SpringMvc-reset风格

    reset风格就是不用加?或者&等等符号直接通过地址栏向后台发送数据的方法 rest风格是实现 1.需要在web.xml中配置一个filter <filter> <filte ...

  10. 林锐:5 C++/C程序的基本概念

    5.1.1 main 不能重载 不能内联 不能定义为static 不能取其地址 不能由用户直接调用 5.1.3内部名称 struct Sample_1 { int count; }; struct S ...