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语言编程题的更多相关文章

  1. 2018.3 江苏省计算机等级考试 C语言 编程题答案

    题目要求:给定一个数字范围,输出满足这些条件: 1.能被3整除: 2.包含数字5, 将满足的数字放在特定的数组里输出.输出这些数里5出现的个数.数字的个数. 想起来有点伤心,本来很简单的题,考试的时候 ...

  2. C语言编程题002

    给出两个整数,L和R,其中L<=A<=B<=R,然后求出A^B值最大的数.其中1<=L<=R<=1000. 比如说L = 1;R = 3; L 0001 R 001 ...

  3. C语言编程题001

    有一颗树,一年两个生长周期,春天它长高一倍,夏天长高1m,问N个周期后树有多高?假设从春天开始树高为1m,第0个周期树高为1m. 要求:1.可以同时输入多个生长周期 如:3//表示下面有几个生长周期 ...

  4. 记一道C语言编程题(C语言学习笔记)

    题目如下 解答如下 #include <stdio.h> #include<math.h> double Mysqrt(double n) { return sqrt(n); ...

  5. 程序设计入门—Java语言 第六周编程题 1 单词长度(4分)

    第六周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 1 单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这 ...

  6. C语言程序设计进阶 第1周编程题

    第1周编程题 查看帮助 返回 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数 ...

  7. 面向对象程序设计--Java语言第二周编程题:有秒计时的数字时钟

    有秒计时的数字时钟 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成.但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做 ...

  8. 中国MOOC_面向对象程序设计——Java语言_期末考试编程题_1细胞自动机

    期末考试编程题 返回   这是期末考试的编程题 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间之前提交答案,系统将取其中的最高分作为最终成 ...

  9. 中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零

    期末考试的编程题 返回   这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止 ...

随机推荐

  1. js正则表达式中的正向肯定预查和正向否定预查

    对于没有使用过这几个表达式的人,应该对这个概念都有点不太理解,下面就以实际例子说明这几个表达式的用户. 一.?:pattern——匹配检验:会作为匹配校验,是一个非获取匹配,并出现在匹配字符结果里面, ...

  2. vue 路由参数变化,页面不更新的问题

    监控$route 在vue项目中,假使我们在同一个路由下,只是改变路由后面的参数值,如果不监听路由参数值的变化,页面无数据刷新,需手动刷新浏览器,这样做就不是我们的预期效果. 举例:当前路由为  /p ...

  3. PAT L2-014 列车调度(最长上升nlogn)

    火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道进入,最后从出口离开.在图中有 ...

  4. 【疑】checkpoint防火墙双链路切换导致丢包问题

    拓扑: 外线联通.电信各200M,通过边界交换机(纯二层,用于分线),分别接到主.备防火墙. 具体配置如下: 故障现象: 由于电信光缆中断导致电信链路不可用.大量员工反映频繁出现断网现象,通过公网注册 ...

  5. swift4.2 - UIDynamic

    1. SB放上俩 imageview,拖线成类属性 import UIKit class ViewController: UIViewController { @IBOutlet weak var b ...

  6. day15 json,os,sys,hashlib

     序列化模块 import json # json 序列化模块 是所有语言通用的一种标准(数据转化格式). # str int bool dict list(tuple) None import pi ...

  7. 在textarea中鼠标指定的位置插入字符或表情

    有些时候我们已经在textarea中输入了一些字符,然后想在鼠标指定的位置插入表情或者字符,这就需要用到jquery的一个小插件了. 代码如下: (function ($) { $.fn.extend ...

  8. YII2表单中上传单个文件

    有些时候我们提交的表单中含有文件.怎么样让表单里的数据和文件一起提交. 我的数据表tb_user内容如下: CREATE TABLE `tb_user` ( `id` int(11) unsigned ...

  9. Json解析数据

    Json数据解析(重点网址推荐:www.json.org   code.google.com/   https://www.json.com/) 1:什么是Json? 2:Json数据格式的特点? 3 ...

  10. 求助Ubuntu16.10如何设置默认启动为字符界面

    字符界面:sudo systemctl set-default multi-user.target图形界面:sudo systemctl set-default graphical.target