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.学生可以在考试截止 ...
随机推荐
- 对arm裸板调试的理解
由于arm芯片一般都包含的由jtag调试这项功能,cpu向外部发出信号时,一般都要同jtag发送出去,它就像一个路口的交警一样,能够控制车辆的运行,当然在arm中指的是cpu发出的数据和地址,我们在调 ...
- java bean validation 参数验证
一.前言 二.几种解决方案 三.使用bean validation 自带的注解验证 四.自定义bean validation 注解验证 一.前言 在后台开发过程中,对参数的校验成为开发环境不可缺少的一 ...
- Python: re.sub()第二个参数
起源: 问题源于解析kissanime.io这个网站.为反扒抑或是防止ddos攻击,此视频页面,初进去会有个5秒延迟并提交一表单验证.而其表单验证,为下面一段html代码: <form id=& ...
- sqlserver判断字段是否存在更改字段
use naire go if COL_LENGTH('options','optionsGroup') is null begin--options为表名,optionsGroup为列名 alter ...
- OC 线程操作1 - pthread
#import "ViewController.h" #import <pthread.h> //1.需要包含这个头文件 @interface ViewControll ...
- 微信公众号开发(5)---使用开源组件开发公众号OAuth2.0网页授权授权登录
搞清微信公众号授权登录的步骤步骤,我们的开发就完成了一大步 献上github 地址: https://github.com/Wechat-Group/weixin-java-tools/wiki/MP ...
- Git下的.DS_Store文件
.DS_Store 是什么 使用 Mac 的用户可能会注意到,系统经常会自动在每个目录生成一个隐藏的 .DS_Store 文件..DS_Store(英文全称 Desktop Services Stor ...
- linux查看目录下所有文件内容中是否包含某个字符串
转发自:http://blog.csdn.net/yimingsilence/article/details/76071949 查找目录下的所有文件中是否含有某个字符串 find .|xargs gr ...
- VS2013中Nuget程序包管理器控制台使用入门(二)-如何使用Nuget提供的帮助(原创)
如何使用Nuget提供的帮助? 1.从get-help Nuget开始,键入“get-help NuGet”以查看所有可用的 NuGet 命令. 用法: PM> get-help Nuget 主 ...
- c# 使用ssh.net 上传文件
在ssh.net 客户端实例下无法普通用户切换到su root 超级用户,原因是tty 的不支持,具体原因未查, 连接时用超级用户,问题解决 使用ssh.net 能实现远程命令, 使用其中的sf ...