【1】输入一个数列以0为结束标志,建立链式线性表,查找其中最大的数并输出删除释放节点,然后对剩余的进行排序,并输出释放节点。

参考代码:

#include<stdio.h> #include<stdlib.h> typedef struct LinkNode{//链表结点结构体定义; int data; struct LinkNode *next; }LinkNode,*SqList; void createList(SqList &L){//创建单链表的函数; SqList p=L,q,s; int value; scanf("%d",&value); if(value==0)return; L->data=value; s=NULL; while(1){ int v; scanf("%d",&v); if(v==0) return; q=(SqList)malloc(sizeof(LinkNode)); q->data=v; q->next=s; p->next=q; p=q; } L=L->next; } void display(SqList L){//输出单链表; SqList p=L; while(p->next!=NULL){ printf("%d->",p->data); SqList q=p->next; free(p);//释放结点; p=q; } printf("%d",p->data); free(p);//释放结点; printf("/n"); } int getMax(SqList L){//获取最大结点值; int MaxNum=0; SqList p=L; while(p!=NULL){ if(p->data>MaxNum)MaxNum=p->data; p=p->next; } return MaxNum; } void freeMax(SqList &L){//释放此链表中值最大的结点; if(L!=NULL){ SqList p,q; p=L; q=L->next; if(p->data==getMax(L)){ free(p); L=q; } else{ while(q!=NULL){ if(q->data==getMax(L)){ p->next=q->next; free(q); break; } p=q; q=q->next; } } } } void sortList(SqList &L){//对链表结点进行排序; SqList p,q; p=L; while(p->next!=NULL){ q=p->next; while(q!=NULL){ if(p->data>q->data){ int temp; temp=p->data; p->data=q->data; q->data=temp; } q=q->next; } p=p->next; } } int main(){ SqList L; L=(SqList)malloc(sizeof(LinkNode)); printf("创建链表:/n"); createList(L); int maxnumber; maxnumber=getMax(L); printf("链表中结点的最大值:%d/n",maxnumber); freeMax(L); printf("释放值最大的结点后的链表:/n"); // sortList(L); printf("对剩余结点进行排序后:/n"); display(L); //printf("所创建的链表:/n"); //display(L); system("pause"); }

【2】输入一个先序遍历数列以0为结束标志,建立二叉遍历树,并对其进行逆中序遍历,释放空间。

参考代码:

#include<stdio.h> #include<stdlib.h> typedef struct BiTNode{//二叉树数据结构定义; int data; BiTNode *lchild,*rchild; }BiTNode,*BiTree; BiTree CreateTree(){//创建二叉树; int value; BiTree t; scanf("%d",&value); if(value==0)return NULL; else{ t=(BiTree)malloc(sizeof(BiTNode)); t->data=value; t->lchild=CreateTree(); t->rchild=CreateTree(); return t; } } void ReInOrder(BiTree t){//逆中序遍历二叉树; if(t!=NULL){ ReInOrder(t->rchild); printf("%d ",t->data); ReInOrder(t->lchild); free(t); } } int main(){ BiTree t; printf("请按序输入二叉树结点的值(以0为标志结束):/n"); t=CreateTree(); printf("逆中序遍历二叉树:/n"); ReInOrder(t); system("pause"); }

数据测试:

【3】给出年分m和一年中的第n天,算出第n天是几月几号(提示中给出了判断闰年的方法),按 yyyy-mm-dd的格式打印出来;

参考代码:

#include<stdio.h> #include<stdlib.h> int ping[12]={31,28,31,30,31,30,31,30,31,30,31,30}; int run[12]={31,29,31,30,31,30,31,30,31,30,31,30}; int main(){ int m,n,flag,i,day,days; while(scanf("%d %d",&m,&n)!=EOF){ if(m%400==0)flag=1; else if(m%4==0&&m%100!=0)flag=1; else flag=0; if(flag==1){//是闰年 days=0; for(i=0;i<12;i++){ days+=run[i]; if(days>=n){ break; } } if(i<12){ days=days-run[i]; day=n-days; printf("%d-%d-%d/n",m,i+1,day); } else printf("illegal input!/n"); } else if(flag==0){//是平年; days=0; for(i=0;i<12;i++){ days+=ping[i]; if(days>=n){ break; } } if(i<12){ days=days-ping[i]; day=n-days; printf("%d-%d-%d/n",m,i+1,day); } else printf("illegal input!/n"); } } system("pause"); }

数据测试:

【4】职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来。

代码:

#include<stdio.h> #include<stdlib.h> struct node{//职工信息数据结构; int id;//职工号; char name[20];//姓名 int age;//年龄; }emp[1000]; int cmp(const void *a,const void *b){//比较函数; return (*(struct node *)a).age-(*(struct node *)b).age; } int main(){ int n,i; printf("请输入职工数及其各职工的职工号、姓名、年龄:/n"); scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d %s %d",&emp[i].id,emp[i].name,&emp[i].age); } qsort(emp,n,sizeof(node),cmp); printf("年龄最小的三位职工是:/n"); for(i=0;i<3;i++){ printf("%d %s %d/n",emp[i].id,emp[i].name,emp[i].age); } }

数据测试:

【5】n个人排一圈123报数,报到3的人退到圈外,直到剩最后一个人为止。

代码:

#include<stdio.h> #include<stdlib.h> typedef struct node{//链表结点数据结构定义; int data; struct node *next; }LNode,*LinkList; void Josephus(int n,int k,int m){//约瑟夫环问题;n:人数,k:开始计数位置,m:数到几退出一个人; LinkList p,q,r;//p指向表头; int i,cnt; p=(LinkList)malloc(sizeof(LNode)); p->data=1; p->next=NULL; q=p; for(i=2;i<=n;i++){//创建单循环链表; r=(LinkList)malloc(sizeof(LNode)); r->data=i; r->next=NULL; q->next=r; q=q->next; } q->next=p; for(i=1;i<k;i++){ q=p;//q始终指向前驱; p=p->next; //p移到开始的结点; } cnt=1; while(q->next!=q){ cnt++; q=p; p=p->next; if(cnt%m==0){//将要退出一个人; printf("%d ",p->data); q->next=p->next; p=p->next; cnt++; } } printf("%d/n",q->data); } int main(){ int n,k; printf("请输入人数n、从谁开始数k:/n"); scanf("%d %d",&n,&k); Josephus(n,k,3); system("pause"); }

数据测试:

【7】建立二叉树,并中序遍历。

代码:

#include<stdio.h> #include<stdlib.h> typedef struct node{ int data; node *lchild,*rchild; }BTNode,*BiTree; BiTree createBiTree(){//创建二叉树; int value; BiTree T; T=(BiTree)malloc(sizeof(BTNode)); scanf("%d",&value); if(value!=0){ T->data=value; T->lchild=createBiTree(); T->rchild=createBiTree(); return T; } else{ return NULL; } } void InOrderTraverse(BiTree T){//中序遍历二叉树; if(T!=NULL){ InOrderTraverse(T->lchild); printf("%d ",T->data); InOrderTraverse(T->rchild); free(T); } } int main(){ BiTree T=createBiTree(); InOrderTraverse(T); system("pause"); }

数据测试:

【8】生成一个长度为21的数组,依次存入1到21;建立一个长度为21的单向链表,将上述数组中的数字依次存入链表每个结点中;将上述链表变为单向封闭(循环)链表;从头结点开始数,将第17个结点删除,将它的下一个结点作为新的头结点;重复上述过程,直到该链表中只剩一个结点,显示该结点中存入的数字。
分三个文件,一个main; 一个.h; 一个.c 文件。

参考代码:

count21.h文件:

#ifndef COUNT_21_H_INCLUDED #define COUNT_21_H_INCLUDED #define NUM 21//链表节点数; typedef struct node{//链表结点数据结构定义; int data; struct node *next; }LNode,*LinkList; LinkList CreateList();//创建单循环链表; #endif

count21.c文件:

#include<stdio.h> #include<stdlib.h> #include"Count21.h" LinkList CreateList(){//建立单循环链表; LinkList L,p,q; int i; L=(LinkList)malloc(sizeof(LNode)); p=L; L->data=1; L->next=NULL; for(i=2;i<=NUM;i++){ q=(LinkList)malloc(sizeof(LNode)); q->data=i; q->next=NULL; p->next=q; p=p->next; } p->next=L;//构成循环链表; return L; }

main.c文件:

#include<stdio.h> #include<stdlib.h> #include"Count21.h" int main(){ LinkList L,p,q; L=CreateList(); p=L;//p指向当前节点; q=L; while(q->next!=L){ q=q->next; }//q指向前驱; int cnt=1; while(q->next!=q){ cnt++; q=p; p=p->next; if(cnt%17==0){ printf("%d ",p->data); q->next=p->next; p=p->next; cnt++; } } printf("%d/n",p->data); system("pause"); }

数据测试:

华科05-03年计算机考研复试机试相关推荐

  1. 华科10年保送生计算机考研复试机试

    [1]不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来. 貌似比较简单,这是我写的代码,也不知道是否正确. 仅供参考! 代码: #include<stdio.h> ...

  2. 华师大计算机在线作业,华东师范大学计算机考研复试机试习题

    华东师范大学计算机考研复试机试习题 华东师范大学计算机考研:计算机系.数据学院复试机试历年真题以及AC代码.历年学长总结得到.适用学院:计算机学院.数据学院.软件学院也可参考.sum/=10;prin ...

  3. 南京大学java机试,2019年南京大学计算机考研复试机试真题

    目录 第一题 Stepping Numbers 题意 思路 代码 反思 第二题 Nodes from the Root 题意 思路 代码 大佬的标准题解代码: 菜鸡我的又费空间,又费时间,又臭又长,思 ...

  4. 华科00年计算机考研复试机试

    [1]输入n, 求y1=1!+3!+...m!(m是小于等于n的最大奇数) y2=2!+4!+...p!(p是小于等于n的最大偶数) 参考代码: #include<stdio.h> int ...

  5. 上海交大计算机考研复试,上海交大计算机考研复试机试

    上海交大 计算机考研 SJTU-CS 复试机试 (2005-2010) 题目 我自己在准备考研时曾做了下06,07,08,09年的题目,并且在博客中提供了一个参考的题解,10年的题目以及11年保研的题 ...

  6. 华科计算机考研复试机试【零散大汇总】

    [1] 屏幕的格式化输出:给出一幅图形,用程序实现.如下所示. 我的代码: #include<stdio.h> int main(){ char c; int sum,i,j; while ...

  7. 清华计算机考研复试机试,请问清华考研计算机复试考什么

    满意答案 vwild 2015.06.01 采纳率:55%    等级:11 已帮助:5245人 清华大学计算机专业研究生复试有体检,专业课笔试,英语面试,上机考试,导师面试等几个部分.而复试的比例一 ...

  8. 苏州大学计算机考研复试机试,苏州大学计算机复试机试 2018 年

    题目 在20000个数中找一个满足下列条件的最大集合: 集合中所有数之间的最大公因数是1(即两两互质) 代码 def _2018(arr: list): # 准备工具 arr = list(set(a ...

  9. 清华计算机考研复试机试,清华大学历年考研复试机试真题 - 论文

    题目描述 Time Limit: 1000 ms Memory Limit: 256 mb 小H为了完成一篇论文,一共要完成n个实验.其中第i个实验需要ai的时间去完成. 小H可以同时进行若干实验,但 ...

  10. 华科05年计算机考研复试机试

    [1] 第一题:对给定的一个字符串,找出有重复的字符,并给出其位置,如: 输入:abcaaAB12ab12 输出:a,1:a,4:a,5:a,10 b,2:b,11 1,8:1,12 2,9:2,13 ...

最新文章

  1. 世界首条柔性人造触觉神经诞生,有望应用于义肢感触等领域
  2. Jvm平时用到的参数
  3. 1000+高质量数据集免费高速下载!一个好用又丰富的AI公开数据集平台
  4. php 升序 排序字符串,PHP asort():对数组排序(升序),并保持索引关系
  5. 三消也玩策略?这款游戏没那么简单——《妙连千军》
  6. c语言二级考试真题新疆,新疆自治区计算机二级C语言考试题库.doc
  7. mysql 终端 远程访问,通过终端连接到远程mysql
  8. spring 3.x 学习笔记_spring mvc、spring jdbc 实现网站的登录注册功能
  9. graph面板x轴模式包括哪些_激光五轴加工机床技术参数有哪些?
  10. Linux 运维工程师 必掌握的技能 ?
  11. 计算机编程与数控宏程序实例教程,数控车床编程教程,图文实例详解
  12. 宝宝吃饭不乖,怎么办?
  13. 原神android和苹果,原神安卓苹果数据互通吗
  14. fatal: unable to access ‘https://github.com/NEGVS/the-economist-ebooks.git/‘: schannel: failed to re
  15. mysql memos
  16. Scala 将时间字符串转为时间戳
  17. Revit中视图范围的应用及快速批量视图命名
  18. jenkins api java封装_Jenkins api java 调用
  19. 寻找 中国互联网思想者
  20. 顾小清:人工智能何以促进未来教育发展

热门文章

  1. 浅谈opencl之错误码
  2. STTN、DSTT、FuseFormer总结(它们改进了什么?)
  3. 【Pytorch 】nn.functional.unfold()==>卷积操作中的提取kernel filter对应的滑动窗口
  4. Koa2-下载-文件流
  5. [Unity][FlowCanvas][NodeCanvas] FlowScript 控制条件延迟启动状态机:设置 First Activation
  6. phpcmsV9 用户vip过期后,自动降级的办法 - 代码篇
  7. Hbuilder 左侧项目栏文件打开方式(单击?双击?) - 设置篇
  8. vue中class绑定函数
  9. ZYI PHP授权系统开源
  10. WordPress多用途电子商务博客新闻主题betheme 21.5.6版本