#include "stdafx.h"
#include <cstdio>
#include <cstring>
using namespace std;#define MaxSize 50
char str[MaxSize];int main()
{// 测试// 正常情况:|hello world a.  // 边界情况:|a.// 异常情况(不考虑多个'.'和'.'与最后一个单词离开)// 扩展性良好的思路:先根据空格‘分割’字符串,然后数每个char[]中的字符数量并打印// 一般思路:边识别边统计字符while (fgets(str,MaxSize,stdin)){bool IsInWord = false;  //判断是否在单词里int count = 0;  //统计每个单词的字符数int length = strlen(str);for (int i = 0;i < length;++i){// 当在单词中碰到空格、字符或'.'的情况时if (IsInWord){if (' ' == str[i]) // 空格{printf("%d ", count);IsInWord = true;count = 0;}else if ('.' == str[i])  // 结束(但无法确保只有'.'){printf("%d\n", count);}else  // 字符{count++;}}else  // 不在单词中{// 遇到字符,即开始一个单词if (str[i] != ' ')  // 遇到字符{count++;IsInWord = true;}}}}return 0;
}
// BST.cpp: 定义控制台应用程序的入口点。
//#include "stdafx.h"
//#include "stdio.h"struct  BST
{BST* leftChild;BST* rightChild;BST* parent;int data;
};// BST插入操作:root为BST的根节点,data要插入的数值,node为新插入的节点并返回
bool insert(BST* root, int data, BST** node){// 0.处理异常情况if (root == NULL){return false;}// 1.循环找到插入位置BST* tmp = root;BST* parent = root;bool isRight = true;while (tmp){parent = tmp;  //记录下父节点// 比较data大小决定往哪走if (data > tmp->data)  //往右走{tmp = tmp->rightChild;isRight = true;}else  //不然,向左走{tmp = tmp->leftChild;isRight = false;}}// 跳出来,说明到插入位置了,开始插入节点BST* insertNode = new BST;insertNode->data = data;insertNode->rightChild = insertNode->leftChild = NULL;insertNode->parent = parent;if (isRight)  //插入右边parent->rightChild = insertNode;else  //插入左边parent->leftChild = insertNode;*node = insertNode;  // 返回该节点return true;
}int main()
{//测试//正常情况//边界情况:一个节点//异常情况:null指针int NodeNumbers;BST* root=NULL;int data;while (scanf("%d", &NodeNumbers)){// 输入数字for (int i = 0;i < NodeNumbers;++i){scanf("%d", &data);// 处理第一个节点if (i == 0){root = new BST;root->data = data;root->leftChild = root->rightChild = root->parent= NULL;printf("%d\n", -1);}else{BST* node=NULL;if (insert(root, data, &node)){//插入成功后,打印父亲节点的数值printf("%d\n", node->parent->data);}}}// 存在内存泄漏,没有delete掉那些new 出来的内存,考试中为了速度不用考虑}return 0;
}
// InversionOfMatrix.cpp: 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;#define MaxSize 50bool inverse(int matrix[][MaxSize], int dimension)
{// 0.异常情况处理if (matrix == NULL || dimension <= 0)return false;// 1.核心部分for(int i=1;i<dimension;++i)for (int j = 0;j < i;++j){swap(matrix[i][j], matrix[j][i]);}return true;
}int matrix[MaxSize][MaxSize];int main()
{// 测试// 正常情况// 异常情况// 边界情况:1*1int dimension;while (scanf("%d", &dimension)){for (int i = 0;i < dimension;++i)for (int j = 0;j < dimension;++j)scanf("%d", &matrix[i][j]);// 转置if (inverse(matrix, dimension)){// 打印结果for (int i = 0;i<dimension;++i)for (int j = 0;j < dimension;++j){if (j == dimension - 1)printf("%d\n", matrix[i][j]);elseprintf("%d ", matrix[i][j]);}}}return 0;
}
#include "stdafx.h"
#include <cstdio>
#include <cstring>
#include <cstdlib>
using namespace std;#define MaxSize 50
char result[MaxSize][MaxSize];
char str[MaxSize];
// 一个简单的splitString函数,依据char分割由char紧密连接的string。
// 如:255.255.255.255中的'.' 或者 hello world you 中的空格。
bool splitString(char str[], int length, char Reg, char result[][MaxSize])
{// 0.异常情况处理if (str == NULL || result == NULL||length<=0)return false;// 1.核心部分char* source = str;int count = 0,num=0;  // count计数,num表示在result中存放字符串的顺序for (int i = 0;i < length;++i){// 根据当前是不是分隔符来划分字符串if (str[i] == Reg||i==length-1){// 把前面的字符串复制到result中memcpy(result[num], source, count);result[num][count+1] = '\0';// count重新计数,num\source移位source += count+1;count = 0;num++;}else{// count计数count++;}}return true;
}bool IsRight(char str[], int length)
{// 0.异常情况处理if (str == NULL || length <= 0)return false;// 将字符串转换成数值,进行比较 int data = atoi(str);if (data >= 0 && data <= 255)return true;elsereturn false;
}int main()
{// 测试// 正常情况 256.2.1.1// 边界情况 // 异常情况while (fgets(str, MaxSize, stdin)){int length = strlen(str);bool isRight = true;if (splitString(str, length, '.', result)){for (int i = 0;i < 4;i++){length = strlen(result[i]);if (!IsRight(result[i], length)){isRight = false;break;}}}if(isRight)printf("%s\n", "Yes!");elseprintf("%s\n", "No!");}return 0;
}
在这里插入代码片
// sort.cpp: 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include "stdlib.h"
#include "time.h"
// 快速排序
// 一次分配过程
void Swap(int* a, int *b)
{int c;c = *b;*b = *a;*a = c;
}int Partition(int* data, int start, int end)
{// 0.处理异常情况/*if (data == NULL || start > end)return ;*/// 1.核心部分/and(time(NULL));  //种子//int index = rand() % (end - start) + start;//Swap(&data[index], &data[start]);int i = start, j = end, tmp = data[start];while (i < j){while (i < j&&tmp < data[j]) j--;if (i < j){data[i]=data[j];i++;}while (i<j&&tmp>data[i]) i++;if (i < j){data[j] = data[i];j--;}}data[i] = tmp;return i;
}void qsort(int* data, int start, int end)
{// 0.处理异常情况if (data == NULL || start > end)return;// 1.核心部分int index = Partition(data, start, end);if (index > start)qsort(data, start, index-1);if (index < end)qsort(data, index+1, end);
}// 归并排序
int data[100];
int main()
{// 测试// 正常情况// 边界情况// 异常情况int n;while (scanf("%d", &n)){for (int i = 0;i < n;i++)scanf("%d", &data[i]);qsort(data, 0, n - 1);for (int i = 0;i < n;i++){if (i == n - 1)printf("%d\n", data[i]);elseprintf("%d ", data[i]);}}return 0;
}
在这里插入代码片
初学者 2020/5/12 9:08:01
// sort.cpp: 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include "stdlib.h"
#include "time.h"
// 快速排序
// 一次分配过程
void Swap(int* a, int *b)
{int c;c = *b;*b = *a;*a = c;
}int Partition(int* data, int start, int end)
{// 0.处理异常情况/*if (data == NULL || start > end)return ;*/// 1.核心部分/and(time(NULL));  //种子//int index = rand() % (end - start) + start;//Swap(&data[index], &data[start]);int i = start, j = end, tmp = data[start];while (i < j){while (i < j&&tmp < data[j]) j--;if (i < j){data[i]=data[j];i++;}while (i<j&&tmp>data[i]) i++;if (i < j){data[j] = data[i];j--;}}data[i] = tmp;return i;
}void qsort(int* data, int start, int end)
{// 0.处理异常情况if (data == NULL || start > end)return;// 1.核心部分int index = Partition(data, start, end);if (index > start)qsort(data, start, index-1);if (index < end)qsort(data, index+1, end);
}// 归并排序
int data[100];
int main()
{// 测试// 正常情况// 边界情况// 异常情况int n;while (scanf("%d", &n)){for (int i = 0;i < n;i++)scanf("%d", &data[i]);qsort(data, 0, n - 1);for (int i = 0;i < n;i++){if (i == n - 1)printf("%d\n", data[i]);elseprintf("%d ", data[i]);}}return 0;
}初学者 2020/5/12 9:08:39
// SpecialSort.cpp: 定义控制台应用程序的入口点。
//#include "stdafx.h"void Swap(int* a, int* b)
{int c;c = *b;*b = *a;*a = c;
}// 堆排序
void adjustHeap(int *data, int node, int length)  //调整堆
{int lchild = 2 * node + 1;       //i的左孩子节点序号 int rchild = 2 * node + 2;     //i的右孩子节点序号 int parent = node;while (lchild <= length-1)  //左孩子在堆里{if (rchild <= length-1)  //若右孩子也在堆里{if (data[rchild] > data[lchild])  //左孩子比右孩子小{// 右孩子与父亲节点比较if (data[parent] < data[rchild]){Swap(&data[parent], &data[rchild]);parent = rchild;lchild = parent * 2 + 1;rchild = parent * 2 + 2;continue;}elsebreak;}}if (data[lchild] > data[parent]) //左孩子大于父亲节点{Swap(&data[lchild], &data[parent]);parent = lchild;lchild = parent * 2 + 1;rchild = parent * 2 + 2;}elsebreak;}
}void buildHeap(int *data, int length)    //建堆
{for (int i = length / 2 - 1;i >= 0;i--)    //非叶节点最大序号值为length/2 - 1 {adjustHeap(data, i, length);}
}void HeapSort(int *data, int length)    //堆排序
{// 0.异常情况if (data == NULL || length <= 0)return;int i;// 建堆buildHeap(data, length);// 调整堆顶元素,并进行堆调整for (i = length-1;i >= 1;i--){Swap(&data[0], &data[i]);    //交换堆顶和最后一个元素,即每次将剩余元素中的最大者放到最后面 adjustHeap(data, 0, i);      //重新调整堆顶节点成为大顶堆}
}int data[1000];int main()
{// 测试// 正常情况// 边界情况// 异常情况int n;while (scanf("%d", &n)){for (int i = 0;i < n;i++)scanf("%d", &data[i]);HeapSort(data, n);  //堆排序printf("%d\n", data[n - 1]);for (int i = 0;i < n-1;i++){if (i == n - 2){ printf("%d\n", data[i]);break;}printf("%d ", data[i]);}}return 0;
}

华科研究生复试机试题代码堆积供以后参考相关推荐

  1. 中南大学2019研究生复试机试题

    中南大学2019研究生复试机试题 机试题共六题 1.选球问题 题目描述 输入 输出 样例输入 样例输出 解决代码 2.模拟出入栈游戏 题目描述 输入 输出 样例输入 样例输出 解决代码 3.爬楼梯游戏 ...

  2. 【华科考研复试机试题】华中科技大学考研复试机试题解题报告

    题目来源:牛客网华科考研复试题 以下代码均在牛客网提交通过.(编译器类型为G++5.4) 若以下题解思路有考虑欠缺处,望读者指正. 1.1. 矩阵转置 1.1.1. 题目描述 输入一个N*N的矩阵,将 ...

  3. 13-19年复旦大学计算机学院研究生复试机试题

    (不保证代码完全正确,自己敲的可能存在不完善的地方,请各位大佬发现后指出,谢谢!) 暂时结束. 试题列表 2019上机题 2018上机题 2017上机题 2016上机题 2015上机题 2014上机题 ...

  4. 1028: 安全路径(2014年中南大学研究生复试机试题 )

    1028: 安全路径 时间限制: 1 Sec  内存限制: 128 MB 提交: 228  解决: 96 [提交][状态][讨论版] 题目描述 卫斯理小说经常提及外星人,比如蓝血人. 在土星星球有很多 ...

  5. 2018年 中南大学研究生复试机试题(1025~ 1028)

    目录: A:最短距离 B:a + b问题 C:逃离迷宫 D:可乐 A:最短距离 http://39.106.164.46/problem.php?id=1025 思路: 设小王的坐标为(x1 + u1 ...

  6. 2014年中南大学研究生复试机试题(字符串、基础dp、最短路)

    A.B.C题很简单. D.最大连续子序列 思路: 求最大连续子序列的值以及左右端点. 那么我们记录连续和值为s,最值为maxx,只有maxx改变时才改变左右端点,考虑记录l,r,即当前的区间端点. 那 ...

  7. 1028-可乐(中南大学18年研究生复试机试题)

    题目描述 猪年快乐!在这个快乐的日子里我们当然要去超市买可乐喝啦! 现在超市有n种可乐,第 i 种可乐的价格为C[i] ,体积为 2i-1 毫升,每种可乐都是无限供应的 ,现在你想买至少 L毫升的可乐 ...

  8. 2016年中南大学研究生复试机试题(1015~1019)

    目录: **A:第几天 B:加油站 C:序列求平均 D:士兵排阵 ** A:第几天 http://39.106.164.46/problem.php?id=1015 思路: 分闰年和非闰年讨论即可. ...

  9. 2018年华科考研复试机试题记录

    (40')1.输入一句英文(含空格),求 (1)统计英文单词个数(10') (2)统计字符个数(10') (3)查找出现次数最多的字符(可能不止一个),要求全部给出并输出出现的次数(20') 以上输出 ...

最新文章

  1. [开源]KJFramework.Message 智能二进制消息框架 -- 性能提升
  2. 干货|机器学习零基础?不要怕,吴恩达机器学习课程笔记2-多元线性回归
  3. 用C/C++开发《Photoshop》图像处理软件
  4. ubuntu18下vnpy1.9.2的安装
  5. 利用Python操作Excel实现自动化办公
  6. React --获取服务器数据的两种方式(Axios和FetchJsonp)
  7. selenium元素定位——下拉选择框
  8. 【金蝶K3】新/老单据转换流程相关表说明(单据转换流程下推老单,钩稽关系可为严格控制)
  9. Python爬虫——利用新浪微盘下载周杰伦的歌曲(共190首)
  10. python 全角字符和半角字符切换
  11. 未来十大最热门职业,可能消失的职业
  12. 迁移学习具体场景与方法
  13. 两阶段市场投标策略。 电力市场程序。 日前日内竞价 提出了日前电力市场和实时电力市场下充电站的投标策略
  14. Learning to rank 小结
  15. winpe修复计算机无法启动,PE修复系统启动故障的详细教程
  16. 微信小程序毕业设计 基于微信校园失物招领小程序系统开题报告
  17. 一个企业固定资产折旧案例
  18. 用系统磁盘管理修复SD卡或U盘显示为RAW问题
  19. 消费者协调器和组协调器(十二)
  20. 5款良心工具,专治各种流氓顽固软件!

热门文章

  1. 关于arcgis发布wfs问题
  2. ListView属性设置
  3. hive 的udf 函数使用
  4. Windows Server 2016软件定义存储:Storage Spaces Direct介绍
  5. 【翻译自mos文章】OGG replicat 进程使用的 TCP port
  6. Exchange 发送方式(Send As)和代表发送(Send on behalf)的区别
  7. MVC 自定义IModelBinder实现json参数转Dictionarystring, string
  8. SpringMVC下的基本配置
  9. sqlserver2008中如何用右键可视化的设置外键
  10. mingw msys 编译 libzip