




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、 编程题(9道题,每道20分,共180分)1、 编写一个完整的程序,使之能完成以下功能:从键盘中输入若干个整数,用链表储存这些输入的数,并要求存储的顺序与输入的顺序相反。#include<stdio.h>#include<stdlib.h>typedef struct LNodeint data;struct LNode *next;LNode,*LinkList;int main()LinkList L;LNode *s;int x,n;L = (LinkList )malloc(sizeof(LNode);L->next = NULL;scanf(&quo
2、t;%d",&n);while(n-)scanf("%d",&x);s = (struct LNode *)malloc(sizeof(struct LNode);s->data = x;s->next = L->next;L->next = s;while(L->next)printf("%d ",L->next->data);L = L->next;printf("n");return 0;2、 编写一个函数,把整数序列分成两个部分,使得左边部分都不大于右边
3、部分,不需要排序。 ( 考察的是快速排序的部分)#include<stdio.h>int partion(int arr,int n);int main()int a20,n,i;scanf("%d",&n);for(i = 0;i < n;i +)scanf("%d",&ai);partion(a,n); printf("调整后序列为:n");for(i = 0;i < n;i +)printf("%d ",ai);printf("n");/printf
4、("%dn",partion(a,n);return 0;int partion(int arr,int n)int i = 0,j = n-1;int pivot = arr0;while(i < j)while(i < j && arrj > pivot) j-;arri = arrj;while(i < j && arri < pivot) i+;arrj = arri;arri = pivot;printf("首选数字现在是第%d个,是%dnn",i+1,arri);return i;
5、3、 有两个整数数组A和B,它们分别有m、n个整数。并且都是按非递减序列,现将B数组插入A数组中,使得A数组中各元素不大于B数组中各元素,且还是非递减序列。#include<stdio.h>void insert(int A,int B,int m, int n);int main()int a30,b30;int i,m,n;scanf("%d %d",&m,&n);for(i = 0;i < m;i +)scanf("%d",&ai);for(i = 0;i < n;i +)scanf("%d
6、",&bi);insert(a,b,m,n);return 0;void insert(int a,int b,int m, int n)int i,j,k = m-1;int temp = am - 1;for(j=0;bj<ak;j+,k+)for(i=k;ai>bj;i-)ai+1=ai;ai+1=bj;for(i = 0;i<k+1;i +)printf("%d ",ai);printf("n");for(j = 0;j<n;j+)if(bj>temp)printf("%d ",
7、bj);printf("n");4、 两个递增有序整数数列链表La和Lb,将他们合并后,变成一个新的链表,要求该链表递减排序。(结点node由整型data和节点指针next构成)#include<stdio.h>#include<stdlib.h>typedef struct LNodeint data;struct LNode *next;LNode,*LinkList;LinkList CreateList();LinkList MergeList(LinkList La,LinkList Lb);int main()LinkList La;Li
8、nkList Lb;La = (LinkList)malloc(sizeof(LNode);Lb = (LinkList)malloc(sizeof(LNode);La = CreateList();Lb = CreateList();LinkList L = MergeList(La,Lb);while(L->next) printf("%d ",L->next->data); L = L->next; return 0;LinkList CreateList()/创建链表,头插法LinkList L;LNode *s;int n; L = (Li
9、nkList)malloc(sizeof(LNode);L->next = NULL;while(scanf("%d",&n)!=EOF)s = (struct LNode *)malloc(sizeof(struct LNode);s->data = n;s->next = L->next;L->next = s;return L;LinkList MergeList(LinkList La,LinkList Lb)/头插法LNode *r,*pa = La->next,*pb = Lb->next;La->next
10、 = NULL;while(pa && pb)if(pa->data <= pb->data)r = pa->next;pa->next = La->next;La->next = pa;pa = r;elser = pb->next;pb->next = La->next;La->next = pb;pb = r;if(pa)pb = pa;while(pb)r = pb->next;pb->next = La->next;La->next = pb;pb = r;free(Lb);re
11、turn La; 5、编写一个函数,删除链表中的最小值。(结点node由整型data和节点指针next构成)#include<stdio.h>#include<stdlib.h>typedef struct LNodeint data;struct LNode *next;LNode,*LinkList;LinkList CreateList();LinkList DeleteMin(LinkList L);int main()LinkList L,Head;L = (LinkList)malloc(sizeof(LNode);L = CreateList();Head
12、 = DeleteMin(L);while(Head->next) printf("%d ",Head->next->data); Head = Head->next; return 0;LinkList CreateList()LinkList L;LNode *s;int n; L = (LinkList)malloc(sizeof(LNode);L->next = NULL;while(scanf("%d",&n)!=EOF)s = (struct LNode *)malloc(sizeof(struct LN
13、ode);s->data = n;s->next = L->next;L->next = s;return L;LinkList DeleteMin(LinkList L)LNode *pre = L,*p = pre->next;LNode *minpre = pre,*minp = p;while(p)if(p->data < minp->data)minp = p;minpre = pre;pre = p;p = p->next;minpre->next = minp->next;free(minp);return L;6
14、、 编写函数判断小括号是否匹配。#include<stdio.h>#include<string.h>int main()char a30,b30;int i,j = 0,flag = 0;scanf("%s",a);int n = strlen(a);if(a0 = ')' && n%2 != 0)printf("NO!n");elsefor(i = 0;i < n;i +)if(ai = '(')bj+ = ai;if(ai = ')')j-;if(j=0
15、&& i = n-1)flag = 1;if(flag = 1)printf("YES!n");elseprintf("NO!n");return 0;7、 对多个字符串进行字典排序#include<stdio.h>#include<string.h>void Sort(char *arr,int n);int main()char *str100,p100100;int i,n;scanf("%d",&n);for(i = 0;i < n;i +)scanf("%s&q
16、uot;,pi);stri = pi;Sort(str,n);for(i = 0;i < n;i +)puts(stri);return 0;void Sort(char *arr,int n)int i,j;char *temp;for(i = 1;i < n;i +)for(j = 0;j < n-i;j +)if(strcmp(arrj,arrj+1)>0)temp=arrj;arrj=arrj+1;arrj+1=temp;8、 编写一个函数,使之能完成以下功能:利用递归方法找出一个数组中的最大值和最小值,要求递归调用函数的格式如下:MinMaxValue(arr
17、,n,&max,&min),其中arr是给定的数组,n是数组的个数,max、min分别是最大值和最小值。#include<stdio.h>void MinMaxValue(int arr,int n,int *max,int *min);int main()int a100,n,i;int Max,Min;scanf("%d",&n);for(i=0;i<n;i+)scanf("%d",&ai);MinMaxValue(a,n,&Max,&Min);printf("Max = %
18、dn",Max);printf("Min = %dn",Min);return 0;void MinMaxValue(int arr,int n,int *max,int *min)if(n=1)*max = arr0;*min = arr0;elseint Max = arr0;int Min = arr0;MinMaxValue(arr+1,n-1,max,min);if(*max<Max) *max = Max;if(*min>Min) *min = Min;9、 有两字符数组s和t,求t在s中出现第一次的开始位置,如果没有则输出“No”,有则输
19、出开始位置。法一#include<stdio.h>#include<string.h>int start(char s,char t);int main()char a80,b80;scanf("%s",a);scanf("%s",b);int k = start(a,b);if(k = -1)printf("No!n");elseprintf("%dn",k+1);return 0;int start(char s,char t)int m = strlen(s),i;char *p,*q
20、;for(i = 0;i < m;i +)p = s + i;q = t;while(*p && *q && *p = *q)*p +;*q +;if(*p - *q = *p)return i;return -1;法二:#include<stdio.h>#include<string.h>int start(char s,char t);int main()char a80,b80;scanf("%s",a);scanf("%s",b);int k = start(a,b);if(k = -
21、1)printf("No!n");elseprintf("%dn",k+1);return 0;int start(char s,char t)/*int m = strlen(s),n = strlen(t),i,j=0,k;for(i = 0;i < m;i +) k = 0;k = k+i;while(k<m && j<n) if(sk = tj) k+;j+; else j = 0; continue; if(j = n-1) return i; break; */int m = strlen(s);int n = strlen(t);int i=0,j=0;while(i<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江师范大学《西方哲学》2023-2024学年第二学期期末试卷
- 吉林动画学院《基于数值模拟的工程优化》2023-2024学年第二学期期末试卷
- Ketotifen-d3-HC-20-511-d-sub-3-sub-生命科学试剂-MCE
- 工业余热回收利用技术推广
- 工业品智能配送系统的设计与实施
- 工业互联网在工程项目中的应用前景
- 工业4.0智能制造技术与实践
- 工业4.0时代的智能注塑技术
- 山岳景区开发及环境保护措施研究
- 少数民族传统文化的保护与可持续发展研究
- 抗日战争与中国的文化自觉
- QB∕T 1744-2013 电热毯、电热垫及类似柔性发热器具用非织造针刺毯
- 中国人民大学强基计划文科试卷
- 生物-云南省昆明市2023-2024学年高二下学期期末质量检测试题和答案
- 2024年东南亚家用跑步机市场深度研究及预测报告
- 幼儿园小班语言课件:《池塘夏夜》
- DLT 265-2012 变压器有载分接开关现场试验导则
- 虹吸式雨水排水系统施工方案
- 北京草场改造规划方案
- 水利施工安全培训课件
- 老物业接管方案
评论
0/150
提交评论