漓江学堂程序设计与问题求解期末考试参考程序.docx

上传人:p** 文档编号:342879 上传时间:2023-08-03 格式:DOCX 页数:27 大小:39.75KB
下载 相关 举报
漓江学堂程序设计与问题求解期末考试参考程序.docx_第1页
第1页 / 共27页
漓江学堂程序设计与问题求解期末考试参考程序.docx_第2页
第2页 / 共27页
漓江学堂程序设计与问题求解期末考试参考程序.docx_第3页
第3页 / 共27页
漓江学堂程序设计与问题求解期末考试参考程序.docx_第4页
第4页 / 共27页
漓江学堂程序设计与问题求解期末考试参考程序.docx_第5页
第5页 / 共27页
漓江学堂程序设计与问题求解期末考试参考程序.docx_第6页
第6页 / 共27页
漓江学堂程序设计与问题求解期末考试参考程序.docx_第7页
第7页 / 共27页
漓江学堂程序设计与问题求解期末考试参考程序.docx_第8页
第8页 / 共27页
漓江学堂程序设计与问题求解期末考试参考程序.docx_第9页
第9页 / 共27页
漓江学堂程序设计与问题求解期末考试参考程序.docx_第10页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《漓江学堂程序设计与问题求解期末考试参考程序.docx》由会员分享,可在线阅读,更多相关《漓江学堂程序设计与问题求解期末考试参考程序.docx(27页珍藏版)》请在第壹文秘上搜索。

1、A级难度试题:(最高难度:A档-只需完成一题即可,随机挑选,满分100分)1.编程实现单链表的创建、查询、插入、删除等操作,每次操作以后都要输出单链表,要求在创建单链表的节点时,以输入-1表示结束,所有操作都要求函数实现。#includetypedefstructnode(intdata;structnode*next;NODE;概念结点数据类型constintLEN=SiZeof(NoDE);普通建议用const常量,而不要用define概念符号常量voidPrint(NODE*h)输出链表的内容(NODE*q;q=h-next;while(q!=NULL)/i:=O;while(idata

2、)(Printf(本结点地址x;数据:%d,下一个结点地址%xnRq-data,q-next);q=q-next;voidInsert(intx,NODE*h)将数据X插入表头为h的链表中NODE*p=(NODE*)malloc(LEN);p-data=x;p-next=h-next;h-next=p;Print(h);NODE*Create(intn)创建有n个结点的链表,注意最后生成的结点的数据是与输入顺序相反的(intX;NODE*q;NODE*p=(NODE*)malloc(LEN);p-next=0;p-data=n;链表表头寄存链表中有多少个结点Primf(请输入整数若输入-1则表

3、示创建结束:。;while(l)(scanf(%dz8ix);if(x=-l)break;Insert(x,p);插入新的结点Print(p);returnp;NODE*Find(intlNODE*h)在表头为h的链表中查找x是不是存在(NODE*p;p=h-next;while(p!=NULL)(if(p-data=x)return1;p=p-next;)return0;)voidDel(intxzNODE*h)删除值为x的结点(NODE*p/pre;pre=h;p=h-next;while(p!=NULL&p-data!=x)pre=p;p=p-next;if(p=NULL)PrintfC

4、删除不成功Ielsepre-next=p-next;free(p);)2、编程创建有序单链表,要求从键盘随机输入若干整数,将它们依照从小到大的Jl砺链接起来,输入以-1表示结束,输入时的数不能是有序的,创建和输出链表的操作都要求函数实现。voidSortedInsertOntx,NODE*h)将数据有序插入,形成有序的链表(NODE*pre,*p;NODE*q=(NODE*)malloc(LEN);q-data=x;pre=h;p=h-next;while(p!=NULL&p-datanext;)pre-next=q;q-next=p;)NODE*Create()(int;NODE*head=

5、(NODE*)malloc(LEN);head-next=0;head-data=0;doscanf(%d);if(!=-l)Sortedlnsert(x,head);whilex!=-l);returnhead;)voidmain()(NODEhead=CreateO;Print();/print函数用上面一题的即可,数据结构概念也是)名、性别、身高、地址等信息存入到该文件,然后将学生依照身高从高到低的顺序进行排序,并将排序以后的结果换行后保留到文件原始信息的后面。typedefstructstudentcharstno20rname20zsexzaddress50;/ffiF表示女,M表示

6、男floatheight;STU;STUs10;用于保留学生的数据voidsort(STUsfintn)对有n个学生的数据进行排序,具有通用性()voidInput(STUs,intn)输入n个学生的信息,同时保留到数组和文件中(inti;FILE*fp=fopen(studem.txtTw);/以写的;丁开if(fp=NULL)(printf(cantopenfile!);exit(l);/includestdlib.h就可以利用exit函数)for(i=0;in;i+)(scanf(%s%s%s%f%czstui.stnozstui.name,stui.addresszstui.heigh

7、t,8istui.sex);fprintf(fpz,%s%s%s%f%cnstui.stno,stui.name,stui.address,stui.height,stui.sex);)fclose(fp);)voidOutput(STUsJntn)(inti;FILE*fp=f。PenCStUdenttxta);以追加形式打开文件if(fp=NULL)(printf(wcantopenfile!);exit(l);/includestdlib.h就可以利用exit函数)for(i=0;in;i+)(fprintf(fpz%s%s%s%f%cn,stui.stnozstui.name,stui

8、.address,stui.height,stui.sex);)fclose(fp);)voidmain()(Input(s,10);sort(sz10);Output(s,10);名、性别、号码、城市等)信息存入到文件中,别离提供3种查询方式:通过姓名查,通过城市查在这个城市的所有老友,通过号码查人,这3种查询都要求用函数实现。(注意输入数据的时候至少保证有2个以上老友在同一个城市的情况发生2次)本题的关键是要能查出在同一城市的多个老友,所以查询时,必然要挨个数据去比较,而不是查到就结束,数据输入和保留参考上题即可5、假设一个班上有48个同窗,让系统随机地产生48个同窗的姓名、性别、年龄、身

9、高等信息。输出48个同窗的原始信息,每行8个,分6行输出。然后将数据从头按照性别和身高排序,女生从低到高排在前面,男生从低到高排在后面,然后再将排序以后的结果输出他们的信息,女生在前,男生砺。【特殊要求:(1)必需是全数排序完了以后再进行输出,不能是女生排完后输出女生的,男生排完后输出男生的;(2)排序通过函数挪用实现;(3)输出通过函数挪用实现;(4)要求随机产生的姓名在3个至8个字符之间长度的随机的26个英文字符组成,年龄在18-20之间,身高在160-190公分之间。(5)随机函数的备忘利用示例:#indude*include*includevoidmain()inti;srand(un

10、signed)time(NULL);格当前时间设成通机函数的种子,每次产生的数都不一样/*输出10个醺机收/for(i=0;i10;i+)printf(%dn,rand);可能的运行结果:6929802621987B级难度试题(:B档一需完成系统随机S诞出来的2道题,满分90分)1、将一个正整数分解质因数。(例如:输入90,打印出90=2*3*3*5。)用自概念函数实现。每一个合数都可以写成几个质数相乘的形式。其中每一个质数都是这个合数的因数,叫做这个合数的分解质因数#includeinta20;intfjzys(intk)inti=2,j=0;for(;i=k;i+)当因数i=k时,实现继续

11、寻觅质因数for(;k%i=0;j+)当k整除当前因数,实现该循环,每次循环下标j自加1k=i;使k=kiaj=i;存入因数returnj;voidmain()intm,b,j;Printf(请输入一个整数nk=);scanf(%d,&m);j=fjzys(m);for(b=0;b(j-l);b+)printf(%d,ab);printf(*);)printf(%dn,aj-l);输出最后一个质因数)2、若是恰好等于它的因子之和,这例就称为“完数。例如6=1+2+3.编程输出IOoOO之内的所有完数。用自概念函数实现。#includevoidmain()(intm,i,s;printf(100

12、00之内的完数有:n);for(m=l;m=10000;m+)(s=0;初始化因子之和s为0for(i=l;ivm;i+)寻觅在1到m之间,有多少m的因子if(m%i=0)/尾是m能整除i,贝h为m的因子s=s+i;将因子累加if(s=m)printf(n%dtls);)3、编程实现:任意给定一什进制的整数,将其转换成二进制,按位将其寄存到数组中,然后输出,要求数制转换通过自概念函数来实现。#includeintchange(intx,inta)(intn=-l;while(!=0)(n+;an=x%2;=2;)returnn;)voidmain()(intx,a20,i,n;PrintfC请

13、输入一个十进制数:n);scanf(,%d,);n=change(x,a);Printf(转化为二进制数以后结果为:n)for(i=n;i=0;i-)printf(%ldzai);printf(n);4、从键盘输入某班10个学生的成绩和学号,然后从键盘任意输入一个学生的学号,查找出他的成(要求用结构体类型来表示绩并输出,若未找到,给出相应提示。要求通过自概念函数实现查找功能。学生的信息-学号和成绩)#include#includestructStudent(charnumber20;intscore;);intlength(char*a)(inti=0;while(ai!=0)(i+;)returni;)intequal2(char*a,char*b)intlength(char*a);intIena,Ienbzi;Iena=length(a);Ienb=length(b);if(Iena!=lenb)returnO;for(i=0;ai!=0;i+)(if(ai!=bi)returnO;)return1;)voidmain()(structStudentstu20;intequal2(char*a,char*b);inti;for(i=0;i10;+

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 服装配饰

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!