下了份《46家公司笔试题》做做,好久没接触这些基本知识了,熟悉下
1.完成下列程序
*
*.*.
*..*..*..
*...*...*...*...
*....*....*....*....*....
*.....*.....*.....*.....*.....*.....
*......*......*......*......*......*......*......
*.......*.......*.......*.......*.......*.......*.......*.......
复制代码
#include <iostream>
using namespace std;
const int ROWS = 8;//行数
void DoPrint()
{
int i,j,k;
for(i=1;i<=ROWS;++i)
{
for(j=1;j<=i;++j)
{
cout<<"*";
for(k=1;k<=i-1;++k)cout<<".";
}
cout<<endl;
}
}
int main()
{
DoPrint();
return 0;
}
复制代码
2.完成程序,实现对数组的降序排序
复制代码
#include <iostream>
using namespace std;
void printArray(int a[],int n)
{
for(int i=0;i<n;++i)
cout<<a[i]<<"\t";
cout<<endl;
}
int partion(int a[],int left,int right)   
{//分割  
int temp = a[left];
while (left<right)
{
while (left<right && a[right]<=temp)--right;
a[left] = a[right];
while (left<right && a[left]>=temp)++left;
a[right] = a[left];
}
a[left] = temp;
return   left;   
}   
void quicksort(int a[],int left,int right)   
{//快速排序  
if(left>=right)     
return;   
int pivotloc;   
pivotloc = partion(a,left,right);   
quicksort(a,left,pivotloc-1);   
quicksort(a,pivotloc+1,right);   
}   
int main()
{
int array[] = {45,56,76,234,1,34,23,2,3};
int size = sizeof(array)/sizeof(array[0]);
quicksort(array,0,size-1);
printArray(array,size);
return 0;
}
复制代码
3,费波那其数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其他
方法,但要说明你选择的理由。
复制代码
#include <iostream>
using namespace std;
int Pheponatch(int N)
{//返回斐波那契数列第N项
int a[100]={1,1};
for (int i=2;i<N;++i)
{
a[i] = a[i-1]+a[i-2];
}
return a[N-1];
}
int main()
cout<<Pheponatch(4)<<endl;
return 0;
}
复制代码
4,错误原因:指针未初始化,
改正后的代码:
复制代码
#include <stdio.h> 
#include <malloc.h> 
#include <iostream>
using namespace std;
struct TNode
TNode* left; 
TNode* right; 
int value; 
}; 
TNode* root=NULL; 
void append(int N) 
TNode* NewNode=(TNode *)malloc(sizeof(TNode)); 
NewNode->value=N; 
NewNode->left = NULL;
NewNode->right = NULL;
if(root==NULL) 
{
root=NewNode; 
return; 
else 
TNode* temp; 
temp=root;
while((N>=temp->value && temp->left!=NULL) || (N<temp->value && temp->right!=NULL)) 
while(N>=temp->value && temp->left!=NULL) 
temp=temp->left; 
while(N<temp->value && temp->right!=NULL) 
temp=temp->right; 
if(N>=temp->value) 
temp->left=NewNode; 
else 
temp->right=NewNode; 
return; 
}
void printTree(TNode* t)
{
if (t!=NULL)
{
printf("%d\n",t->value);
printTree(t->left);
printTree(t->right);
}
}
int main() 
append(63); 
append(45); 
append(32); 
append(77); 
append(96); 
append(21); 
append(17); // Again,  数字任意给出
printTree(root);
return 0;
复制代码
5,设计函数 int atoi(char *s) 。
复制代码
#include <iostream>
using namespace std;
int my_aoti(char* s)
{//字符串转化为整数
int len = strlen(s);
int result = 0;
for (int i=0;i<len;++i)
{
result = result*10+s[i]-'0';
}
return result;
}
int main() 
char* str = "123";
int num = my_aoti(str);
cout<<num<<endl;
return 0;
}
复制代码
6,实现双向链表删除一个节点P,在节点P 后插入一个节点,写出这两个函数
复制代码
//双向链表节点
struct DbLinkNode
{
struct DbLinkNode* prev;//前一个节点
struct DbLinkNode* next;//后一个节点
int value;
};
bool Delete(DbLinkNode* head,int num)
{//在双向链表(带头节点)中删除第一个值为num的节点
if (head->next!=NULL)
{//表中有节点存在
struct DbLinkNode* pre = head,p = head->next;
while (p!=NULL&&p->value!=num)
{
pre = p;
p = p->next;
}
if (p==NULL)
{//没找到
return false;
}
else if (p->next==NULL)
{//待删除的是最后一个节点
pre->next = NULL;
delete p;
p = NULL;
}
else
{//待删除的不是最后一个
pre->next = p->next;
p->next->prev = pre;
delete p;
p = NULL;
}    
return true;
}
else
{
return false;
}
}
bool Insert(struct DbLinkNode* head,int target,int num)
{//在节点target后插入节点num
if (head->next!=NULL)
{//表中有节点存在
struct DbLinkNode* p = head->next;//指向第一个节点
struct DbLinkNode* newNode = (struct DbLinkNode*)malloc(sizeof(DbLinkNode));
newNode->value = num;
newNode->next = NULL;
newNode->prev = NULL;
while (p!=NULL && p->value!=num)
{
p = p->next;
}
if (p==NULL)
{
free(newNode);
newNode = NULL;
return false;
else if (p->next==NULL)
{//目标节点是最后一个节点,新节点插入为尾节点
p->next = newNode;
newNode->prev = p;
}
else
{//目标节点不是最后一个
newNode->next = p->next;
p->next->prev = newNode;
p->next = newNode;
newNode->prev = p;
}
return true;
}
else
{
return false;
}
}
复制代码
本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2009/02/18/1393441.html,如需转载请自行联系原作者

C++ Exercises(十八)相关推荐

  1. NeHe OpenGL第二十八课:贝塞尔曲面

    NeHe OpenGL第二十八课:贝塞尔曲面 贝塞尔曲面: 这是一课关于数学运算的,没有别的内容了.来,有信心就看看它吧. 贝塞尔曲面 作者: David Nikdel ( ogapo@ithink. ...

  2. 2008R2Win7管理二十八Mail之基本使用

    2008R2Win7管理二十八Mail之基本使用 上篇我们已经安装好了exchange2010,呵呵本片简单介绍和看下ex2010的基本界面和使用 安装完成打开exchange控制台如图所示 汗,有试 ...

  3. 微信小程序把玩(二十八)image组件

    原文:微信小程序把玩(二十八)image组件 image组件也是一个程序不可缺少的,可以这样说一个app中image组件随处可以看到,一般 image有两种加载方式第一种是网络图片第二种是本地图片资源 ...

  4. Citrix 服务器虚拟化之二十八 XenApp6.5发布文档内容

    Citrix 服务器虚拟化之二十八  XenApp 6.5发布文档内容 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1)  服务器桌面:发布场中服务器的整个 ...

  5. 刘道成mysql视频教程_燕十八刘道成Mysql 系列视频教程 Mysql视频教程打包下载

    课程名称 燕十八刘道成Mysql 系列视频教程 Mysql视频教程打包下载 课程介绍 本教程完全从初学者的角度出发,循序渐进,逐步深入,确保每一位初学者能够理解和掌握,进而达到精通的程度,本套教程非常 ...

  6. ugui 转轮_Unity3D研究院之Android NDK编译C/C++结合Unity实现本地数据共享(二十八)...

    开始本篇文章之前我先为大家简单的介绍一下Android NDK编程的原理, 我们知道Android开发使用JAVA语言来编程它的运行效率要比C/C++低很多,为了让JAVA语言可以调用 C/C++ 这 ...

  7. 2018冬令营模拟测试赛(十八)

    2018冬令营模拟测试赛(十八) [Problem A]Table 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见"试题描述&qu ...

  8. 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)

    设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述 在软件开发中也经常遇到类似的情况,实现某一个功能有多种算法或者策略,我们能够依据环境或者条件的不同选择不同的算法或者策略来完毕 ...

  9. iOS 11开发教程(十八)iOS11应用视图之使用代码添加按钮

    iOS 11开发教程(十八)iOS11应用视图之使用代码添加按钮 由于使用编辑界面添加视图的方式比较简单,所以不在介绍.这里,直接讲解代码中如何添加.使用代码为主视图添加一个按钮的方式和在1.3.3节 ...

  10. 趣谈网络协议笔记-二(第十八讲)

    趣谈网络协议笔记-二(第十八讲) DNS协议:网络世界的地址簿 自勉 勿谓言之不预也 -- 向为祖国牺牲的先烈致敬! 正文 DNS用于域名解析,但也不仅仅是用于域名解析,不仅仅是将域名转换成IP. 在 ...

最新文章

  1. void *指针的加减运算
  2. 菜鸟学SSH(十二)——Hibernate与Spring配合生成表结构
  3. JDK8新特性之Stream流
  4. spring mvc框架设计与实现
  5. Toast弹不出来之谜
  6. 2022速卖通328大促活动招商规则出炉啦,热销高潜产品抢先看
  7. 【直播预告】第四范式Intel AI应用与异构内存编程挑战赛专场活动开启报名
  8. 【LeetCode 55】【LeetCode 45】 跳跃游戏
  9. Vue + Spring Boot 项目实战(五):数据库的引入
  10. 计算机辅助审计的特点是,浅谈新环境下计算机辅助审计的特点和应用_1
  11. Codeforces 744C. Hongcow Buys a Deck of Cards(状压DP)
  12. JVM内存管理 (转)
  13. VB认识强大的ActiveX控件
  14. 致敬科比,JS手写贪吃蛇
  15. 层板等分衣柜(C++)
  16. 群控 云控营销神器代码研究
  17. window.print打印指定区域
  18. 2021年中国光谱分析仪器市场趋势报告、技术动态创新及2027年市场预测
  19. 5G 学习笔记 - NSA - ENDC架构
  20. 全新出炉:7 月编程语言最新排行榜

热门文章

  1. javascript 显示时间
  2. C/C++版数据结构之链表三
  3. 用例子说明MVC 设计模式(以Objective-C 实现)
  4. select 语句的执行顺序
  5. 吃透Java集合中的Set集合必备文章,快快收藏
  6. 处事22计、心态24条、伤心50句、礼仪73、学会长大20
  7. 链表倒置 (不额外开辟另一块空间)
  8. uvc摄像头代码解析7
  9. Linq To Sql中实现Left Join与Inner Join使用Linq语法与lambda表达式
  10. BC#65 T5 ZYB's Prime