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.学生可以在考试截止 ...
随机推荐
- mac item2 ssh
一.常规ssh登录流程 ssh登陆有三个参数,主机名,用户名,用户密码,流程都是一样. 1.ssh 用户名@主机名 2.返回包含(yes/no)的字符串,此时输入 “yes" 3.然后再返回 ...
- c#: UrlDecode()
1.源起: KV需要解析从插件传来的URL网址,因为其可能经过编码,所以需要解码. 初用System.Web.HttpUtility.UrlDecode()这个函数,但根据用户环境crash场景,发现 ...
- 阿里云视频直播API签名机制源码
阿里云视频直播API签名机制源码 本文展示:通过代码实现下阿里视频直播签名处理规则 阿里云视频直播签名机制,官方文档链接:https://help.aliyun.com/document_detail ...
- 解决在Mac的Vmware Fusion中装win7系统和mac原生系统直接切换win7系统分辨率变化的问题
虚拟机 - 设置 - 显示屏 - 全屏显示retina (此选项钩去掉)
- windows核心编程
第一章 函数返回值: void:不可能失败.极少数会返回VOID BOOL:失败返回0 HANDLE:失败会返回NULL 或INVALID_HANDLE_VALUE PVOID:失败返回NULL wa ...
- ckplayer iis6 mp4 播放404错误
设置mime. 1.右键网站 2.选择http头 3.点击编辑MIME按钮 4.新增MIME类型 5.在“扩展名”框内输入“mp4”,“MIME类型”框中输入“video/x-mp4” ps:类型不要 ...
- 19.Mysql优化数据库对象
19.优化数据库对象19.1 优化表的数据类型应用设计时需要考虑字段的类型和长度,并留有一定长度冗余.procedure analyse()函数可以对表中列的数据类型提出优化建议.procedure ...
- 转::before和::after伪元素的用法
一.介绍 css3为了区分伪类和伪元素,伪元素采用双冒号写法. 常见伪类——:hover,:link,:active,:target,:not(),:focus. 常见伪元素——::first-let ...
- Android开发之利用ViewPager实现在Activity或Fragment中引入别的布局文件实现滑动并进行页面跳转
有些时候经常可以看到其他APP中有一排的图标,可以在一个界面中滑来滑去,并且图标可以进行点击事件进行页面的跳转.这里对这种方法的实现做出总结. 首先看一下图片: 下面这两种图片是在一个Fragment ...
- RDMA的基础概念
一张图可以简单明确的说明,目前RDMA的几种技术的差别: RDMA是remote Direct memory access的简称,有几个最基本的特点: CPU offload kernel bypas ...