华中科技大学计算机考研复试机试题(含代码)

合集下载

华科计算机考研复试历年上机题汇总

华科计算机考研复试历年上机题汇总

华科历年上机题汇总(欢迎补全)代码都很多是我自己写的,不一定正确啊!错了可不负责任的,呵呵~~~仅供参考!==》10年保送生上机试题1、不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。

#include<stdio.h>#include<stdlib.h>int main(){char s1[200],s2[100];int i,len1,len2;scanf("%s %s",s1,s2);for(i=0;i<200;i++){if(s1[i]=='\0'){len1=i;break;}}for(i=0;i<100;i++){if(s2[i]=='\0'){len2=i;break;}}for(i=len1;i<len1+len2;i++){s1[i]=s2[i-len1];}printf("%s\n",s1);system("pause");}2、输入一串数,要求建平衡二叉排序树,然后先序遍历。

3.、有4个小问,是超长整数的存储、计算、输出。

要把超长整数存在一个单向循环链表中,是每四位一个节点。

注:我是用单链表写的!感觉单循环链表没有什么用处么~~~#include<stdio.h>#include<string.h>#include<stdlib.h>#define MAXLEN 100typedef struct node{int data;struct node *next;}LNode,*LinkList;int changeString(char s[],int len){//把字符串长度变成4的整数倍;int i,temp;char ss[MAXLEN];if(len%4!=0){temp=4-len%4;//需要在前面添加的0的个数;for(i=0;i<len;i++){ss[i]=s[i];}for(i=0;i<temp;i++){s[i]='0';}for(i=temp;i<temp+len;i++){s[i]=ss[i-temp];}}return temp;}LinkList createList(char *s,int len){//创建单链表;int i,temp,add_len;LinkList L,p,start;if(len<=0){return NULL;}add_len=changeString(s,len);len+=add_len;i=0;temp=0;while(i<4&&i<len){//给头结点赋值;temp=temp*10+s[i]-'0';i++;}L=(LinkList)malloc(sizeof(LNode));//头结点;L->data=temp;L->next=NULL;start=L;temp=0;while(i<len){//继续创建单链表;if((i+1)%4==1){//需新建一个结点;p=(LinkList)malloc(sizeof(LNode));}temp=temp*10+s[i]-'0';if((i+1)%4==0||i==len-1){//一个结点结束;p->data=temp;p->next=NULL;start->next=p;//插入结点;start=p;temp=0;//重新计数;}i++;}start->next=NULL;return L;}LinkList reverse(LinkList L){//逆转单循环链表;LinkList p,q,r;if(L!=NULL){p=L->next;L->next=NULL;while(p!=NULL){q=p;p=p->next;q->next=L;L=q;//printf("**%d\n",L->data);}return L;}return NULL;}void display(LinkList L){//打印输出单链表;LinkList p;printf("%d ",L->data);p=L->next;while(p!=NULL){printf("%d ",p->data);p=p->next;}printf("\n");}LinkList add_LNumber(LinkList L1,LinkList L2){//2大数相加,单链表实现;LinkList L,p,q,head,r;int c;//进位;int temp;L=(LinkList)malloc(sizeof(LNode));head=(LinkList)malloc(sizeof(LNode));head->next=NULL;L=head;p=L1;q=L2;c=0;while(p!=NULL&&q!=NULL){r=(LinkList)malloc(sizeof(LNode));temp=p->data+q->data+c;r->data=temp%10000;//printf("***%d\n",r->data);r->next=NULL;c=temp/10000;head->next=r;head=r;p=p->next;q=q->next;}while(p!=NULL){//L1剩余部分非空;r=(LinkList)malloc(sizeof(LNode));temp=p->data+c;r->data=temp%10000;r->next=NULL;c=temp/10000;head->next=r;head=r;p=p->next;}while(q!=NULL){//L2剩余部分非空;r=(LinkList)malloc(sizeof(LNode));temp=q->data+c;r->data=temp%10000;r->next=NULL;c=temp/10000;head->next=r;head=r;q=q->next;}if(c!=0){//还有进位;r=(LinkList)malloc(sizeof(LNode));r->data=c;r->next=NULL;head->next=r;}return L->next;}int main(){char s1[MAXLEN],s2[MAXLEN];int len1,len2,add_len,i;LinkList L1,L2,L;L1=(LinkList)malloc(sizeof(LNode)); L2=(LinkList)malloc(sizeof(LNode)); printf("请输入第一个大数:\n"); scanf("%s",s1);len1=strlen(s1);L1=createList(s1,len1);printf("请输入第二个大数:\n"); scanf("%s",s2);len2=strlen(s2);L2=createList(s2,len2);L1=reverse(L1);L2=reverse(L2);//display(L1);//display(L2);L=add_LNumber(L1,L2);//display(L);L=reverse(L);display(L);}==》09年09华中科技大学复试有关题目嵌入式方向笔试是数据库和算法概论数据库考了查询语言,死锁,等等算法概论:1题:好像是螺丝和螺母问题,每个螺丝对应一个螺母,大概有100对吧,找出相应对,最后计算时空复杂度。

华中科技大学834计算机专业基础综合考研真题试题2017年

华中科技大学834计算机专业基础综合考研真题试题2017年

华中科技大学2017年招收攻读硕士研究生入学考试自主命题试题考试科目及代码: 834计算机专业基础综合(数据结构、计算机网络) 适用专业: 计算机系统结构、计算机软件与理论、计算机应用技术、网络空间安全、计算机技术、项目管理、控制科学与工程(所有答案都必须写在答题纸上,写在试题纸上及草稿纸上无效,考完后试题随答题纸交回)数据结构部分(90分)一、选择题(20分,每题2分)1.二元组形式表为A=(D,R),D={01,02,03,04,05}R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,03>,<03,04>},则数据结构A 是( )。

A.集合B.树形结构C.线性结构D.图形结构2.下列存储结构中,()适合作为队列的存储结构。

A.采用尾指针的单链表B.采用头指针的循环单链表C.采用尾指针的循环单链表D.采用头指针的单链表3.如下程序段的时间复杂度为()。

viod main(){ int s=0,i=0;do{ i=i+1;s=s+i; }while( i<=n);};A.O(nLog2n)B.O(n)C.O(n ^2)D.(n ^3/2)4.下列类型中不直用顺序结构存储的是( )。

A.树B.数组C.图D.广义表5.设指针变量p指向双链表结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点的操作序列为()。

A.p->next=s;s=->pre=p;p->next->pre=s;s->next=p->next;B.s->pre=p;s->next=p->next;p->next=s;p->next->pre=s;C.s->pre=p;s->next=p->next;p->next->pre=s;p->next=s;D.p->next=s;p->next->pre=s;s->pre=p;s->next=p->next;6.已知s=”abacbabcaccab”,串t1=“aba”串t2=“cba”,函数index(s,t)的返回值为串t在串s中首次出现的位置。

华科历年上机真题以及解答part2

华科历年上机真题以及解答part2

2007(3)矩阵转置题目描述:输入一个N*N的矩阵,将其转置后输出。

要求:不得使用任何数组(就地逆置)。

输入:输入的第一行包括一个整数N,(1<=N<=100),代表矩阵的维数。

接下来的N行每行有N个整数,分别代表矩阵的元素。

输出:可能有多组测试数据,对于每组数据,将输入的矩阵转置后输出。

样例输入:31 2 34 5 67 8 9样例输出:1 4 72 5 83 6 9AC:#include <stdio.h>#include <stdlib.h>#define N 101void main(){int n, i, j;int matrix[N][N];while(scanf("%d", &n) != EOF){for(i = 0; i < n; i ++){for(j = 0; j < n; j ++)scanf("%d", *(matrix + i) + j);}for(i = 0; i < n; i ++){for(j = 0; j < n; j ++){if(j == n - 1)printf("%d\n", matrix[j][i]);elseprintf("%d ", matrix[j][i]);}}}}2008保研(1)农夫、羊、菜和狼的故事题目描述:有一个农夫带一只羊、一筐菜和一只狼过河.果没有农夫看管,则狼要吃羊,羊要吃菜.但是船很小,只够农夫带一样东西过河。

问农夫该如何解此难题?输入:题目没有任何输入。

输出:题目可能有种解决方法,求出步骤最少的解决方法,按顺序输出农夫想把羊、菜、狼全部运过河需要哪几个步骤。

如果需要将羊带过河去则输出“sheep_go”。

如果需要将羊带回来则输出“sheep_come”。

如果需要将菜带过河去则输出“vegetable_go”。

华科控制系复试试题

华科控制系复试试题

2011年真题一、填空题1、(2分)求补码2、(2分)8086初始化(复位)后,CS、DS、IP的初始值是多少3、(2分)MOV指令及WORD PRT指令4、(2分)CMOS门的功耗特点。

既当频率增大时,CMOS门的功耗怎样变化5、(2分)基本TTL门的拉电流与灌电流6、(2分)IP报头的长度及报头中的内容7、(1分)电路分析中的基本二端网络计算8、(1分)卡诺图化简9、(1分)一道考公务员的行测填空10、(1分)DS段寄存器的寻址范围11、(2分)单片机的常用外设有哪些12、(2分)一个正弦响应的填空题13、(2分)MPU指什么,MCU指什么(这个题目我没搞懂他问的是什么意思,我填的是MPU指的是微处理器,MCU指微控制器)14、(1分)一个n节点b支路电路的割集有多少二、简答计算题1、(10分)8086CPU中断的基本电路,中断向量表的初始化,中断的类型,中断响应后的栈操作2、(10分)8086CPU的RAM的扩展(扩展存储器寻址范围、扩展后的存储器的容量、用74LS138译码器译码寻找片选地址的电路图)3、(5分)NRC编码、曼彻斯特码编码、差分曼彻斯特码编码4、(5分)海明码编码5、(5分)一个电路分析中的一阶时域响应的计算6、(10分)C语言编程(实现对一顺序链表的插入操作)7、(8分)题目给出一用74LS161计数器组成的电路,要求分析电路的状态转移表、自启动特性及确定是模几计数8、(7分)要求用74LS161计数器组成一11进制计数器,画出电路图并写出状态转移图9、(15分)题目给出一约3500字的中文论文,让你写出该文章的200~300字的摘要2012年试题复试分两部分,填空+大题。

填空一般1-2分每空,覆盖面比较广,网上有流传2011年得题目,2012的题目题型相似,但内容变化非常大,以下回忆内容:填空:1.浮点数的三个组成部分2.dsp arm fpga 各表示什么意思3.csma/cd传输的基本字节的计算方法4.三态门oc门可以实现的功能5.给出逻辑地址,计算物理地址填空题还有一些记不起来了,不过都是很基础的。

【华科】历年机试题汇总打印下来随身带着

【华科】历年机试题汇总打印下来随身带着

华科历年上机题汇总(欢迎补全)2014华科机试回忆1.超素数就是这样的数,比如2333,2是素数,23是素数,233是素数,2333是素数,找出所有的四位超素数。

每行输出六个,数之间空格隔开。

(我的做法是先开个10000的数组,找出每个是素数的数组值为1,否则为0,对于每个四位数,分别看这几位是否都是素数即可,注意1不是素数)2.两个二进制数加减乘除,short型的,十六位,比如101 100 +,输出1001,也可把前几位0输出。

(我刚开始想用大数运算来计算,发现比较麻烦,就把这两个数转化为十进制,然后运算,再转化为short型的二进制(转化为二进制时我的负数形式估计考虑错了))。

3.判断一个整型变量是否正确,比如02是八进制,0x2是十六进制,12是十进制,只有这三种进制判断。

前面的0是零。

(我判断时将八进制和十六进制的负数形式搞错了,以为这两种也是前面加个负号(比如-01,-0x1)的,其他的都能判断出来,三个大if 语句就行了)。

大致就只能想出这些了,建议你们找找图片版的,其他同学应该已经上传了。

可以看出今年的试题还是很基础的,没有很复杂的算法。

算法一定要注释,首先说出自己的大致想法。

当时时间比较急,我也没细想,做的题想法也不一定好,反正能先运行再说。

2013华科机试试题回忆版1.素数就是不能被等分的数,如3,5,7等。

一个数n是素数,若n+2也是素数,则,这两个数是孪生素数。

找不超过整数m(m在5到10000之间)的最大孪生素数。

2.回旋矩阵:如5的回旋矩阵是1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9输入一个n,求他的回旋矩阵。

3.求一个字符串的最右最长回文子串。

字符串包括字符和标点,空格可忽略。

如abba是回文a bb a也是回文。

你这回忆不完整啊,第三题是考虑回文子串的时候要忽略掉标点符号,打印输出的时候要再加上->12上机按照要求是可以使用VC,TC和CodeBlocks环境。

华中科技大学计算机考研复试机试题(含代码)

华中科技大学计算机考研复试机试题(含代码)

华科历年复试机试题汇总上机考试。

一般网站上公布上机环境要求是TC2.0,但实际上是可以使用VC的。

这里有一点特别要大家注意:TC2.0只支持纯C代码,不支持C++风格代码。

华科的计算机学生称,不管你是用VC还是TC,老师都要在TC2.0上进行验收程序,以确认你的代码是纯C。

比如:p = new Node ; 的代码写法在TC2.0下是通不过的,只能写p = (Node *)malloc (sizeof (Node)) ; 。

另外TC2.0不支持引用,如:Pop (Stack &s , ElemType &e)中含有“&”的引用,在TC2.0下无法通过。

华科的上机题目每年都差不多,经常考的就是排序、链表和树的操作等。

建议在去复试前一定要进行专门练习上机。

Note:要快,不要总抓着一个不放,时间在不知不觉中过的是很快的。

2010年的机试题:a、输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数!(如‘3’,输出:10110011);#include <stdio.h>#include <string.h>#define max 1000int pd(char c){int i=0;int num=0;for(i=0;i<7;i++){if(c&(1<<i))num++;}if(num%2==0)return 1;elsereturn 0;}void main(){char a[max];scanf("%s",a);int i,j;int len=strlen(a);for(i=0;i<len;i++){if (pd(a[i])){a[i]=a[i]|(1<<7);}for(j=7;j>=0;j--)if(a[i]&(1<<j))printf("1");elseprintf("0");printf("\n");}}b、设计8个任务函数task0()-task7()只输出一句话:如task0()输出“task0 is called!”;设计一个调度函数schedule ()输入一个字符串如"012345"然后返回一个函数指针数组和字符串的长度作为执行函数execute()的参数进行调度任务函数。

华科计算机保研复试机试题目2

华科计算机保研复试机试题目2

华中科技大学复试机试题目2008年一.1、狼过河问题(运用到回溯)2、统计文件中单词数目3、N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。

(递归)4、链表操作二.第一个是一个上楼梯的种数的统计,本来是一个用递归可以解决的问题,但是题目偏偏要求编写快速算法,言下之意就是要求你把递归转化成非递归。

第二个题是链表的,要求依照给出的结构体依次实现输入链表,保存链表,删除链表,从磁盘读取链表,显示链表这几个操作。

做这个题,如果不记得保存文件的函数,很可能做不全或者做不出来。

第三个是要求根据- | \ / 四个字符来实现题目所规定的一个长方体。

并能使这个长方体适当的放大。

这个是一个递归问题,但是我想了半天也没有做出来。

20061.输入一个数列以0位结束标志,建立链式线性表,查找其中最大的数并输出删除释放节点,然后对剩余的进行排序,并输出释放节点2.输入一个数列以0位结束标志,建立二叉遍历数,并对其进行逆中序遍历,释放空间第一题是对输入的5个数排序,输出的结果到文件里。

第二题是用链表去对上面的5个数字排序。

第三题是输入一个ip地址串,判断是否合法。

2005第一题:对给定的一个字符串,找出有重复的字符,并给出其位置,如:输入:abcaaAB12ab12输出:a,1;a,4;a,5;a,10b,2;b,111,8;1,122,9;2,13第二题:输入一个四行五列的矩阵,找出每列最大的两个数,如:输入:1 2 3 4 9-1 4 9 8 812 9 8 7 07 8 9 7 0输出:12 9 9 8 97 8 9 7 8第三题:输入一个字符串,建立一个二叉排序树,并中序遍历输出;其它年份题目1.给出年分m和一年中的第n天,算出第n天是几月几号(提示中给出了判断闰年的方法),按yyyy-mm-dd的格式打印出来2.职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来,n可以取63.n个人排一圈123报数,报到3的人退到圈外,直到剩最后一个人为止4.冒泡排序。

计算机考研复试面试题库及答案

计算机考研复试面试题库及答案

计算机考研复试面试题库及答案一、专业基础知识1. 计算机组成原理题目:简述冯·诺伊曼体系结构的基本原理。

答案:冯·诺伊曼体系结构是一种计算机系统的设计原则,也是现代计算机的基础。

它的基本原理包括以下几点:- 存储程序:计算机通过将指令和数据存储在同一个存储器中,实现了程序的自动执行。

- 二进制系统:计算机使用二进制表示数据和指令,简化了计算机系统的设计和实现。

- 指令流水线:计算机通过将指令的执行过程划分为多个阶段,并同时进行不同指令的执行,提高了计算机的执行效率。

- 内存层次结构:计算机通过多层次的存储器结构,包括高速缓存、内存和外部存储器,提供了不同速度和容量的存储器选择。

2. 算法与数据结构题目:什么是二叉搜索树?如何实现插入和删除操作?答案:二叉搜索树(BST)是一种特殊的二叉树,满足以下条件:- 对于树中的每个节点,其左子树的所有节点的值小于该节点的值,右子树的所有节点的值大于该节点的值。

- 对于树中的每个节点,其左子树和右子树也是二叉搜索树。

实现插入操作的步骤:- 从根节点开始,将待插入的值与当前节点的值进行比较。

- 如果待插入的值小于当前节点的值,且当前节点的左子树为空,则将待插入的值作为当前节点的左子节点。

- 如果待插入的值大于当前节点的值,且当前节点的右子树为空,则将待插入的值作为当前节点的右子节点。

- 如果待插入的值小于当前节点的值,且当前节点的左子树不为空,则将当前节点更新为其左子节点,重复上述步骤。

- 如果待插入的值大于当前节点的值,且当前节点的右子树不为空,则将当前节点更新为其右子节点,重复上述步骤。

实现删除操作的步骤:- 如果待删除的节点为叶子节点,直接删除。

- 如果待删除的节点只有一个子节点,将子节点连接至待删除节点的父节点。

- 如果待删除的节点有左右子节点,找到其右子树中的最小节点,用该节点替换待删除节点,并删除最小节点。

二、算法设计与分析1. 动态规划题目:请简述动态规划算法的基本思想,并给出一个应用动态规划算法的例子。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华科历年复试机试题汇总上机考试。

一般网站上公布上机环境要求是TC2.0,但实际上是可以使用VC的。

这里有一点特别要大家注意:TC2.0只支持纯C代码,不支持C++风格代码。

华科的计算机学生称,不管你是用VC还是TC,老师都要在TC2.0上进行验收程序,以确认你的代码是纯C。

比如:p = new Node ; 的代码写法在TC2.0下是通不过的,只能写p = (Node *)malloc (sizeof (Node)) ; 。

另外TC2.0不支持引用,如:Pop (Stack &s , ElemType &e)中含有“&”的引用,在TC2.0下无法通过。

华科的上机题目每年都差不多,经常考的就是排序、链表和树的操作等。

建议在去复试前一定要进行专门练习上机。

Note:上机时间为1个半小时,题目一般为三道题,前两道一般代码不会超过70行,最后一道会达到150~200行。

上机时做题速度一定要快,不要总抓着一个不放,时间在不知不觉中过的是很快的。

2010年的机试题:a、输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数!(如‘3’,输出:10110011);#include <stdio.h>#include <string.h>#define max 1000int pd(char c){int i=0;int num=0;for(i=0;i<7;i++){if(c&(1<<i))num++;}if(num%2==0)return 1;elsereturn 0;}void main(){char a[max];scanf("%s",a);int i,j;int len=strlen(a);for(i=0;i<len;i++){if (pd(a[i])){a[i]=a[i]|(1<<7);}for(j=7;j>=0;j--)if(a[i]&(1<<j))printf("1");elseprintf("0");printf("\n");}}b、设计8个任务函数task0()-task7()只输出一句话:如task0()输出“task0 is called!”;设计一个调度函数schedule ()输入一个字符串如"012345"然后返回一个函数指针数组和字符串的长度作为执行函数execute()的参数进行调度任务函数。

主函数只有调度函数。

(这个题难道很多同学因为很多同学不知道函数指针数组怎么用啊!)#include<stdio.h>#include<string.h>#include<stdlib.h>typedef void (*ptask)();//8个任务函数;void task0(){printf("task0 is called!\n");}void task1(){printf("task1 is called!\n");}void task2(){printf("task2 is called!\n");}void task3(){printf("task3 is called!\n");}void task4(){printf("task4 is called!\n");}void task5(){printf("task5 is called!\n");}void task6(){printf("task6 is called!\n");}void task7(){printf("task7 is called!\n");}ptask fun[9]={task0,task1,task2,task3,task4,task5,task6,task7,};void execute(ptask* fun,int len){//执行函数for(int i=0;i<len;i++){ptask pfun=fun[i];pfun();}}void schedule(){//调度函数;ptask fun[100];//定义函数指针数组;int len;//字符串长度;char s[1000];printf("请输入字符串:\n");scanf("%s",s);len=strlen(s);for(int i=0;i<len;i++){int temp;temp=s[i]-'0';if(temp==0)fun[i]=task0;else if(temp==1)fun[i]=task1;else if(temp==2)fun[i]=task2;else if(temp==3)fun[i]=task3;else if(temp==4)fun[i]=task4;else if(temp==5)fun[i]=task5;else if(temp==6)fun[i]=task6;else if(temp==7)fun[i]=task7;}execute(fun,len);}int main(){schedule();system("pause");}c、实现一个加法器,保证两个加数是任意长的整数。

(这个题的加数由于是任意长所以把它声明成什么类型(long、int)的都是不对的,要用到结构体)。

(所以这应该是个串行加法器)#include <stdio.h>#include <string.h>#define max 1000void add(char buff1[max],char buff2[max],int len1,int len2){int num[max];int s1,s2,flag=0,i;for(i=0;i<max;i++)num[i]=0;int n1=len1-1,n2=len2-1;int k=max-1;while((n1>=0)&&(n2>=0)){s1=buff1[n1]-'0';s2=buff2[n2]-'0';if(s1+s2+flag>9){num[k]=(s1+s2+flag)%10;flag=1;}else{num[k]=(s1+s2+flag)%10;flag=0;}n1--;n2--;k--;}if(n1>=0){while(n1>=0){s1=buff1[n1]-'0';if(s1+flag>9){num[k]=(s1+flag)%10;flag=1;}else{num[k]=(s1+flag)%10;flag=0;}n1--;k--;}}if(n2>=0){while(n2>=0){s1=buff2[n1]-'0';if(s1+flag>9){num[k]=(s1+flag)%10;flag=1;}else{num[k]=(s1+flag)%10;flag=0;}n2--;k--;}}if(flag){num[k]=1;k--;}for(i=k+1;i<=max-1;i++)printf("%d",num[i]);printf("\n");}void main(){char buff1[max];char buff2[max];int len1,len2;scanf("%s",buff1);scanf("%s",buff2);len1=strlen(buff1);len2=strlen(buff2);add(buff1,buff2,len1,len2);}==》08年的华科招收研究生上机试题:(1)输入一个十进制数,将其先转化为八进制数,然后再输出#include <stdio.h>main(){int a = 0 ;printf ("Please enter a decimal number:") ;scanf ("%d",&a) ;printf ("%d's octal number is %o\n",a,a) ;}(2)用户输入一个文本名,编程实现输出文本中最长的一行和最短的一行。

如果最长和最短的不止一行,请全部输出。

#include<stdio.h>#include<string.h>#include<stdlib.h>#define BUFFSIZE 1000int main(){FILE *fp;char filename[255];printf("Please input the name of the file:\n");scanf("%s",filename);if((fp=fopen(filename,"r"))==NULL){printf("File open error!");}char Line[BUFFSIZE][BUFFSIZE];int i,cnt;i=0;cnt=0;while((fgets(Line[i],BUFFSIZE,fp))&&i<BUFFSIZE){i++;cnt++;}char tempMax[BUFFSIZE];char tempMin[BUFFSIZE];strcpy(tempMax,Line[0]);strcpy(tempMin,Line[0]);for(i=1;i<cnt;i++){if(strlen(Line[i])>strlen(tempMax))strcpy(tempMax,Line[i]);if(strlen(Line[i])<strlen(tempMin))strcpy(tempMin,Line[i]);}printf("The longest string :\n");for(i=0;i<cnt;i++){if(strlen(Line[i])==strlen(tempMax))printf("%s\n",Line[i]);}printf("The shortest string :\n");for(i=0;i<cnt;i++){if(strlen(Line[i])==strlen(tempMin))printf("%s\n",Line[i]);}//system("pause");}本文来自CSDN博客,转载请标明出处:/xiajun07061225/archive/2011/03/18/6259774.aspx(3)输入学生信息:学号,三门课程的成绩,学号为0时结束,将其存储在链表A中,从中找出分数大于平均分的学生,并将该学生信息按平均分降序排列存入到链表B中,最后输出链表B。

相关文档
最新文档