C语言编程题
1、将整形a的第m位赋值到整形b的第n位
int fun4(int a, int m, int b, int n)
{
a = (a>>m) & ;//将a的第m位取出,为1或0,故分两种情况 if(a == )//a的第m位为1,即将b的第n位设为1
{
a = a << n;
b = b | a;
}
else//a的第n位为0,即将b的第n为设为0
{
a = ~(<<n);
b = b & a;
} return b;
}
2、判断一个数是2的几次方
//将2的n次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0,
//因此问题可以转化为判断1后面跟了几个0就可以了。
void log2(int value)
{
int n = value, count = ; if(n & (n-))//先判断是否是2的幂次方
{
cout << n << "不是2的幂次方" << endl;
return;
} while(n > )
{
n >>= ;
count++;
} cout << value << "是2的" << count << "次方" << endl;
}
3、判断一个数是否为质数
//质数:在大于1的自然数中,除了1和它本身以外不再有其他因数
bool judge(int n)
{
if(n <= )
return false;
else
{
for(int i=; i<n; i++)
{
if(n%i == )
return false;
}
} return true;
}
4、输出100至1000之间的偶数为哪两个质数的和,如:100=3+97;102=5+97。
void fun6()
{
for(int i=; i<=; i+=)
{
for(int j=; j<=i; j++)
{
if(judge(j)&&judge(i-j))
}
}
}
5、对整数的十进制显示逐位求和,如13的求和结果为4,-125的求和结果为6
int fun5(int n)
{
static int flag = ;//欲求和的数为正还是负的标志
if(n < )
{
n = -n;
flag = ;
} if(n/ > )//n大于1位
return n% + fun5(n/);
else//n为一位数
{
if(flag)
return -n;
else
return n;
}
}
6、实现atoi()
int my_atoi(char* pStr)
{
if (!pStr)
return ;
int iStrLen = strlen(pStr); //跳过空格
int i = ;
for (; i < iStrLen; i++)
{
if (*(pStr + i) != ' ')
break;
} //判断正负
int iSign = ;
if ('+' == *(pStr + i))
{
++i;
}
else if ('-' == *(pStr + i))
{
iSign = -;
++i;
} //转换
int iNum = ;
for (; i < iStrLen; i++)
{
char ch = *(pStr + i);
if (ch >= '' && ch <= '')
iNum = iNum * + (ch - '');
else
break;
} return (iNum * iSign);
}
7、实现itoa()
char* my_itoa(int iNum, char* pBuf)
{
if (!pBuf)
return nullptr; //判断正负
int iSign = ;
if (iNum < )
{
iSign = ;
iNum = -iNum;
} //转换
char* p = pBuf;
if (iSign)
*p++ = '-';
do
{
*p++ = iNum % + '';
iNum = iNum / ;
} while (iNum > );
*p = '\0'; //前后互换
int iStrLen = strlen(pBuf);
int i = ;
int iHalf = iStrLen / ;
if (iSign)
{
++iHalf;
++i;
}
for (; i < iHalf; i++)
{
int iRightIdx = ;
iSign ? iRightIdx = iStrLen - - i + : iRightIdx = iStrLen - - i; char ch = pBuf[i];
pBuf[i] = pBuf[iRightIdx];
pBuf[iRightIdx] = ch;
} return pBuf;
}
8、实现strstr()
/*实现字符串处理strstr():
对pStr逐字与pSubStr比较,eg:
A B C D E F
C D
pStr中第一个就不同,跳过第一个不再考虑 A B C D E F
C D
pStr中第二个也不同,跳过第二个不再考虑 A B C D E F
C D
pStr中有相同的,进行处理*/ char* MyStrstr(char* pStr, char* pSubStr)
{
//assert(pStr && pSubStr); char*pStrAdvance = pStr;
while (*pStrAdvance)
{
char* p = pStrAdvance, *q = pSubStr;
while (*p && *q)
{
if (*p == *q)
{
p++;
q++;
}
else
break;
}
if (!*q)
return pStrAdvance; pStrAdvance++;
} return NULL;
}
C语言编程题的更多相关文章
- 2018.3 江苏省计算机等级考试 C语言 编程题答案
题目要求:给定一个数字范围,输出满足这些条件: 1.能被3整除: 2.包含数字5, 将满足的数字放在特定的数组里输出.输出这些数里5出现的个数.数字的个数. 想起来有点伤心,本来很简单的题,考试的时候 ...
- C语言编程题002
给出两个整数,L和R,其中L<=A<=B<=R,然后求出A^B值最大的数.其中1<=L<=R<=1000. 比如说L = 1;R = 3; L 0001 R 001 ...
- C语言编程题001
有一颗树,一年两个生长周期,春天它长高一倍,夏天长高1m,问N个周期后树有多高?假设从春天开始树高为1m,第0个周期树高为1m. 要求:1.可以同时输入多个生长周期 如:3//表示下面有几个生长周期 ...
- 记一道C语言编程题(C语言学习笔记)
题目如下 解答如下 #include <stdio.h> #include<math.h> double Mysqrt(double n) { return sqrt(n); ...
- 程序设计入门—Java语言 第六周编程题 1 单词长度(4分)
第六周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 1 单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这 ...
- C语言程序设计进阶 第1周编程题
第1周编程题 查看帮助 返回 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数 ...
- 面向对象程序设计--Java语言第二周编程题:有秒计时的数字时钟
有秒计时的数字时钟 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成.但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做 ...
- 中国MOOC_面向对象程序设计——Java语言_期末考试编程题_1细胞自动机
期末考试编程题 返回 这是期末考试的编程题 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间之前提交答案,系统将取其中的最高分作为最终成 ...
- 中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零
期末考试的编程题 返回 这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止 ...
随机推荐
- expect命令自动登录ssh
expect是简单的工具原因,依赖于tcl. 直接apt安装就行. 四个关键字: spawn,派生出新进程. expect,期待得到的字符串,可以模式匹配. send,向进程发送字符串. intera ...
- 《centos系列》ubuntu终端链接centos服务器
首先你得知道centos的账户密码:如果你不知道可以直接在centos下使用root用户: passwd 用户名 直接更新用户的密码. 然后在ubuntu终端(前提是已经安装了ssh): ssh ad ...
- 【校招面试 之 C/C++】第32题 C++ 11新特性(三)之for关键字
1.for循环的一般写法: int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int i = 0; i < 10; i++) cout ...
- zookeeper 单机版配置
zookeeper :中间件,为分布式系统进行协调服务 作用于分布式系统,可以为大数据服务 支持java 和 C 客户端的api zookeeper 特性:一致性,数据会按照顺序分批入库: 原子性:数 ...
- java项目中常见的异常及处理
Java开发中常见异常及处理方法 1.JAVA异常 异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API ...
- ubuntu系统ssh遇到port 22:No route to host问题
ssh遇到这个port 22:No route to host这个问题 检查防火墙状态 (iptables -L) 检查ssh状态 (ps -elf |grep ssh) 检查网络状态(换根网线)
- Shell特殊变量:$0 $# $* $@ $? $$和命令行参数
一.特殊变量表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* ...
- linux下查看项目端口号,杀掉对应端口号的方法
查看端口号:netstat -anp 结束端口号:sudo iptables -A INPUT -p tcp --dport 8012 -j DROP"
- python学习-名字管理
记录代码片段 print("="*50) print(" 名片管理系统 v0.01") print("1. 添加一个新的名片") print ...
- VS新建API控制器时提示“运行所选代码生成器时出错”
使用Nuget安装microsoft.entityframeworkcore.tools这个包就行了,安装时注意版本. 根据下图提示应该是新建控制器时用到了这个包,所以安装一下就好了.之前遇到过一次, ...