笔试编程三
来源:互联网 发布:如何申请淘宝店铺 编辑:程序博客网 时间:2024/06/16 23:22
1.编写函数,实现字符串逆序。
char *ptr = “abcdefg”;
int size = strlen(ptr);
char *str = new char[size+1];
int i = 0,j=size-1;
for(i = 0;i<size+1;i++,j--)
str[i] = ptr[j];
cout<<str<<endl;
delete str;
2.通过编程实现输出2 的1000次方。
#define Max 1000
double a[400] = {2};
int i = 0,j = 0;
for(i = 0 ; i < Max; i++)
{
for(j = 0; j < 400 ; j++)
{
if(a[j] < 5)
{
a[j]=a[j]*2; //不产生进位
}
else
{
a[j]=a[j]*2-10;
a[j+1]=a[j+1]+0.5; //注意,此处加上0.5,所以定义数组时为double型,下一位*2时正好是进位加1
}
}
}
cout<<”2^1000 = ”;
for(i = 399 ; i >=0 ; i--)
{
cout<<a[i]; //数组逆序输出
}
3、用c++写个程序,如何判断一个操作系统是16位还是32位的?不能用sizeof()函数。
int main()
{
int i = 65536; //65536二进制是1 0000 0000 0000 0000
int j = 65535; //65535二进制是 1111 1111 1111 1111
cout<<i<<endl; //16位输出0 ,32位输出65536
cout<<j<<endl; //16位输出-1, 32位输出65535
}
因为数值在计算机中都是以二进制补码存储的,65536的二进制在16位下溢出一位,所以只有后面16位为0,而在32位下不会溢出输出65536.
65535二进制在16位只有16位,最高位1是符号位表示负数,1111 1111 1111 1111是补码,他的原码是-1取反,求得为1000 0000 0000 0001 = -1;所以16位下输出-1。而32位下他是正数,所以原码补码反码一样,输出65535.
4、输入一颗二叉树的根节点,求该树的深度。从根节点到叶子结点一次经过的结点形成树的一条路径,最长路径的长度为树的深度。根结点的深度为1。
int TreeDepth(strcut BinaryTreeNode *pRoot)
{
if(pRoot == NULL)
return 0;
int numLeft = TreeDepth(pRoot->left);
int numRight = TreeDepth(pRoot->right);
return (numLeft > numRight)?(numLeft +1);
}
- 笔试编程三
- 新浪笔试编程题三
- Java笔试面试题三(编程算法)
- Java笔试 系列三
- 阿尔卡特笔试题目(三)
- 华为笔试题三
- C笔试三
- 笔试面试题三
- 笔试题三
- 三道笔试题
- C笔试三
- 常见笔试题三
- 笔试练习三
- 笔试面试题三
- 笔试题(三)
- 前端笔试(三)
- 笔试笔记(三)
- 笔试整理三
- Jmeter 压测和AB压测的比较
- Django学习笔记六:form表单实现评论(检验数据合法性)
- 测试Java_AbstractJavaSamplerClient
- Mac安装配置Mongodb
- 看图理解单链表的反转
- 笔试编程三
- Nginx配置
- RSpec测试
- CC13X0CC26X0EvaluationBoard
- 使用Spring Boot创建微服务
- 常见Dos攻击原理及防护(死亡之Ping、Smurf、Teardown、LandAttack、SYN Flood)
- Mysql免安装版配置
- Delphi DataSet和JSON互转函数
- 专访丨大咖传教之App性能测试