第十四届信息学奥赛联赛普及组C语言初赛试题
NOIP2020提高组初赛(C语言)试题及答案

NOIP2020提高组初赛(C语言)试题及答案NOIP2020提高组初赛(C语言)试题及答案第十四届(NOIP2020)信息学奥赛联赛提高组C语言初赛试题●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●● 一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案)。
1. 在以下各项中,(C )不是操作系统软件。
A. SolarisB. LinuxC. SybaseD. Windows Vista E. Symbian 2.微型计算机中,控制器的基本功能是(A )。
A. 控制机器各个部件协调B. 实现算术运算和逻辑运算C. 存储各种控制信息D.获取外部信息E. 存放程序和数据 3. 设字符串S=”Olympic”,S的非空子串的数目是(B)。
A. 29B. 28C. 16D. 17E. 7 4.完全二叉树共有2*N-1个结点,则它的叶节点数是(C )。
A. N-1B. 2*NC. ND. 2N-1E. N/2 5.将数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换(B )次。
A. 4B. 5C. 6D. 7E. 8 6.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,c,f,e,a,则栈S的容量至少应该是(D )。
A. 6B. 5C. 4D. 3E. 2 7. 与十进制数28.5625相等的四进制数是()。
A. 123.21B. 131.22C. 130.22D. 130.21E. 130.20 8.递归过程或函数调用时,处理参数和返回地址,通常使用一种称为(E)的数据结构。
A. 队列B. 多维数组C. 线性表D. 链表E. 栈9. TCP/IP是一组构成互联网基础的网络协议,字面上包括两组协议:传输控制协议(TCP)和网际协议(IP)。
TCP/IP 协议把Internet网络系统描述成具有四个层次功能的网络模型,其中提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能的是(B)。
最新NOIP提高组初赛试题-C++含答案资料

第十四届全国青少年信息学奥林匹克联赛初赛试题(提高组 C++ 语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案)。
1. 在以下各项中,()不是操作系统软件。
A. SolarisB. LinuxC. SybaseD. Windows VistaE. Symbian2.微型计算机中,控制器的基本功能是()。
A. 控制机器各个部件协调工作B. 实现算术运算和逻辑运算C.存储各种控制信息D. 获取外部信息E. 存放程序和数据3. 设字符串S=”Olympic”,S的非空子串的数目是()。
A. 29B. 28C. 16D. 17E. 74.完全二叉树共有2*N-1个结点,则它的叶节点数是()。
A. N-1B. 2*NC. ND. 2N-1E. N/25.将数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换()次。
A. 4B. 5C. 6D. 7E. 86.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,c,f,e,a,则栈S的容量至少应该是()。
A. 6B. 5C. 4D. 3E. 27. 与十进制数28.5625相等的四进制数是()。
A. 123.21B. 131.22C. 130.22D. 130.21E. 130.208.递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
A. 队列B. 多维数组C. 线性表D. 链表E. 栈9. TCP/IP是一组构成互联网基础的网络协议,字面上包括两组协议:传输控制协议(TCP)和网际协议(IP)。
TCP/IP 协议把Internet网络系统描述成具有四个层次功能的网络模型,其中提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能的是()。
noip-初赛模拟试题1(c语言含答案)演示教学

NOIP 初赛模拟试题(2小时C语言普及组)姓名成绩一、选择题(共20题,每题1.5分,共计30分。
)1.微型计算机的性能主要取决于()。
A)内存B)主板C)中央处理器D)硬盘E)显示器2.设T是一棵有n个顶点的树,以下说法不正确的是()。
A.T是联通的,无环的。
B.T是联通的,有n-1条边。
C.T是无环的,有n-1条边。
D.以上都不对。
3.能将高级语言程序转换为目标程序的是( ).A)调试程序B) 连接程序C)编辑程序D)编译程序4.若A=45,B=38,C=78则A^ B & C=( )A)38 B)18 C)11 D)455.计算机病毒传染的必要条件之一是( ) 。
A)在内存中运行病毒程序B)对磁盘进行读写操作C)在内存中运行含有病毒的可执行程序D)复制文件E)删除文件6. TCP/IP协议共有( )层协议A)3 B)4 C)5 D)6 E)77.192.168.0.1是属于( ).A)A类地址B)B类地址C)C类地址D)D类地址E)E类地址8.对给定的整数序列(54,73,21,35,67,78,63,24,89)进行从小到大的排序时,采用快速排序的第一趟扫描的结果是( ).A)(24,21,35,54,67, 78,63,73,89)B)(24,35,21,54,67, 78,63,73,89)C)(24,21,35,54,67, 63,73,78,89)D)(21,24,35,54,63, 67,73,78,89)9.一棵n个结点的完全二叉树,则二叉树的高度h为( ).A)n/2 B)log2n C)(log2n)/2 D) [log2n]+1 E)2n-110.下图对该图进行广度优先拓朴排序得到的顶点序列正确的是( ).A)1,2,3,4,5,6B)1,3,2,4,5,6C)1,3,2,4,6,5D)1,2,3,4,6,5,E)1,3,2,4,5,6A)采用二进制表示数据和指令;B)采用”存储程序”工作方式C)计算机硬件有五大部件(运算器、控制器、存储器、输入和输出设备)D)结构化程序设计方法12.下列不属于输入设备的是( ).A)打印机B)扫描仪C)光笔D)鼠标13.算式(1000)10-(101)16 - (11)8的结果是( ).A)(891)10 B)(886)8C)(10111000011)2D)(2DE)1614.下面关于算法的不正确的说法是( )A)算法必须有输出B)算法必须在计算机上用某种语言实现C)算法不一定有输入D)算法必须在有限步执行后能结束E)算法的每一步骤必须有确切的定义15.下列关于十进制数100的正确说法是( ).A)原码为01101100BB)反码为64H C)反码为9BH D)补码为65H16.关于windows系统中的窗口和对话框的说法正确的是( ).A)对话框能移动和改变大小B)窗口不能移动,能改变大小C)对话框只能移动,不能改变大小D)对话框不能移动但能改变大小E)窗口能移动和但不能改变大小17.若A=true,B=false,C=true,D=false,以下逻辑运算表达式真的有()A.(A∧B)∨(C∧D∨¬A)B.((¬A∧B)∨C)∧¬BC.(B∨C∨D)∧D∧¬AD. ¬A∧(D∨¬ C) ∧B18.下列关于排序说法不正确的是( ).A)插入排序、冒泡排序是稳定的B)选择排序的时间复杂性为O(n2)C)选择排序、希尔排序、快速排序、堆排序是不稳定的D)希尔排序、快速排序、堆排序的时间复杂性为O(nlog2n)E)占用内存空间大的是归并排序。
信息学初赛普及组C++练习 NOIP 初赛题目及答案

城市 1 城市 2 城市 3 城市 4 城市 5 城市 6
城市 1 0
2
3
1
12
15
城市 2 2
0
2
5
3
12
城市 3 3
2
0
3
6
5
城市 4 1
5
3
ห้องสมุดไป่ตู้
0
7
9
城市 5 12
3
6
7
0
2
城市 6 15
12
5
9
2
0
2008-2
三.阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1. #include<iostream> using namespace std; int main() {
void CheckChangeRule()
{
int i;
for (i = 0;i < 26;i ++)
{
if (
①
)
change[i] -= 'A' - 'a';
NOIP2008初赛普及组C++题目及参考答案

第十四届全国青少年信息学奥林匹克联赛初赛试题2008(普及组 C++语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案.)。
1.微型计算机中,控制器的基本功能是()。
,a,则A. 28B. 29C. 16D. 1710.Web2.0是近年来互联网的热门概念之一,其核心思想是互动与分享。
下列网站中,()是典型的Web2.0应用。
A. SinaB. FlickrC. YahooD. Google11.递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
A. 队列B. 多维数组C. 线性表D. 栈12. (2008)10 + (5B)16的结果是()。
精心整理A. (833)16B. (2089)10C. (4163)8D. (100001100011)213. 二叉树T,已知其先根遍历是1 2 4 3 5 7 6(数字为结点的编号,以下同),中根遍历是2 4 1 57 3 6,则该二叉树的后根遍历是()。
A. 4 2 5 7 6 3 1B. 4 2 7 5 6 3 1C. 7 4 2 5 6 3 1D. 4 2 7 6 5 3 114.将数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换()次。
等。
二.问题求解(共2题,每题5分,共计10分)1. 书架上有4本不同的书A、B、C、D。
其中A和B是红皮的,C和D是黑皮的。
把这4本书摆在书架上,满足所有黑皮的书都排在一起的摆法有_____种。
满足 A必须比C靠左,所有红皮的书要摆放在一起,所有黑皮的书要摆放在一起,共有______种摆法。
2.有6个城市,任何两个城市之间都有一条道路连接,6个城市两两之间的距离如下表所示,则城市1精心整理2.#include<iostream>using namespace std;void foo(int a, int b, int c){if(a > b)foo(c, a, b);else精心整理cout<<a<<','<<b<<','<<c<<endl;}int main(){int a, b, c;cin >> a >> b >> c;foo(a, b, c);}int main(){int a[20], i, m;m=10;精心整理for(i=0; i<m; i++){cin>>a[i];}func(a, m);for (i=0; i<m; i++)cout<<a[i]<<" ";solve(first, spos_f + 1, spos_f + (root_m - spos_m), mid, spos_m, root_m - 1); solve(first, spos_f + (root_m - spos_m) + 1, epos_f, mid, root_m + 1, epos_m);cout << first[spos_f];}int main(){精心整理char first[MAX], mid[MAX];int len;cin >> len;cin >> first >> mid;solve(first, 0, len - 1, mid , 0, len - 1);cout << endl;return 0;S,第S中的bfor (i = 0;i < 26;i ++){if ( ① )change[i] -= 'A' - 'a';}}精心整理void ChangeString(){int i;for (i = 0;i <strlen(str);i ++){if ( ② )str[i] = change[str[i] - 'A'] -'a' + 'A';6}中int a[1000001],n,ans = -1;void swap(int &a,int &b){int c;c = a; a = b; b = c;}精心整理int FindKth(int left, int right, int n){int tmp,value,i,j;if (left == right) return left;tmp = rand()% (right - left) + left;swap(a[tmp],a[left]);cin >> n;ans = FindKth(1,m,n);cout << a[ans];return 0;}精心整理参考答案一.选择题ABCCB DCDAB DABBB ABABD二.问题解答1.12 4精心整理2.7三.阅读程序1.232. 2.,3,13. 5 4 10 1 6 22 -59 -6 -11 -64. DBGEFCA四.完善程序1.(1)change[i] >= 'A' && change[i] <= 'Z'(只写change[i] <= 'Z'也对)精心整理。
全国信息学奥赛普及组模拟测试题

长沙市一中集团校初一信息学选拔测试试题说明:1.试卷共8题,100分,总共800分;2.每题10个测试点,每个测试点10分,共100分;3.评分标准:运行程序,对于每个输入测试数据,答案正确,得10分;4.每做完一题,应及时用“t+题号”(例如“t1.cpp”、“t2.cpp”分别表示第一、二题)作文件名存盘。
5.请用文件输入输出:输入文件名为:input.txt 输出文件名为:output.txt输入输出格式,在程序的输入前加上以下语句:freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);第一题遛狗(t1)【问题描述】曾龙和天龙是好朋友,他们经常见面,而且天龙还养了一条可爱的小天狗。
有一天,他们分别从自己家出发去对方的家里,天龙把狗儿也放了出来,狗儿跑得很快,在他们之间来回跑啊跑,跑了好几趟,后来= = 他们相遇了。
求狗儿跑了多长距离。
【输入文件】共一行有四个正整数L,V1,V2,V3。
分别代表两人距离(m)、曾龙速度(m/s),天龙的速度(m/s),狗儿的速度(m/s)【输出文件】输出仅一个数N,表示狗儿跑的距离。
样例:input.txt 20 5 5 10 output.txt 20【数据范围】保证输入输出为整数,且狗儿跑得不比他们慢。
第二题数数(t2)【问题描述】小韬韬正在学习怎么用手指数数。
当他爸爸问“n(1≤ n ≤ 10)是多少”,韬韬的回答就是竖起n个手指头。
为了让问题简单一些,他爸爸告诉他正确的手指表示方式:(1)这个数可以用一只手或两只手表示;(2)如果这个数用两只手表示,大的数会先给出。
比如他爸爸问她“4是多少”,韬韬有3种表示方法:a.一只手竖起出4个手指头;(可以是左手也可是右手,只算一种)b.一只手竖起出3个手指头,另一只手竖起出1个手指头;c.一只手竖起出2个手指头,另一只手竖起出2个手指头;你的任务是,对于他爸爸的提问,确认韬韬有几种正确的回答方法。
NOIP2008第十四届全国青少年信息学奥林匹克联赛初赛试题(含答案)汇总

2008第十四届全国青少年信息学奥林匹克联赛初赛试题(提高组 C 语言二小时完成)●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案)。
1. 在以下各项中,()不是操作系统软件。
Symbian2.微型计算机中,控制器的基本功能是()。
A. 控制机器各个部件协调工作B. 实现算术运算和逻辑运算C. 存储各种控制信息D. 获取外部信息3. 设字符串S=”Olympic”,S的非空子串的数目是()。
A. 29B. 28C. 16D. 17E. 74.完全二叉树共有2*N-1个结点,则它的叶节点数是()。
A. N-1B. 2*NC. ND. 2N-1E. N/25.将数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换()次。
A. 4B. 5C. 6D. 7E. 86.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,c,f,e,a,则栈S的容量至少应该是()。
A. 6B. 5C. 4D. 3E. 27. 与十进制数28.5625相等的四进制数是()。
A. 123.21B. 131.22C. 130.22D. 130.21E. 130.208.递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
A. 队列B. 多维数组C. 线性表D. 链表E. 栈1 A. Solaris B. Linux C. Sybase D. Windows Vista E. E. 存放程序和数据9. TCP/IP是一组构成互联网基础的网络协议,字面上包括两组协议:传输控制协议(TCP)和网际协议(IP)。
TCP/IP 协议把Internet网络系统描述成具有四个层次功能的网络模型,其中提供源节点和目的节点之间的信息传输服务,包括寻址和路由器选择等功能的是()。
NOIP2008第十四届普及组初赛题目C++和答案

第十四届全国青少年信息学奥林匹克联赛初赛试题(普及组 C++语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案.)。
1.微型计算机中,控制器的基本功能是()。
A. 控制机器各个部件协调工作B. 实现算术运算和逻辑运算C. 获取外部信息D. 存放程序和数据2. 设A=true,B=false,C=true,D=false,以下逻辑运算表达式值为真的是()。
A. (A∧B)∨(C∧D∨⌝A)B. ((⌝A∧B)∨C)∧⌝DC. (B∨C∨D)∧D∧AD. A∧(D∨⌝C)∧B3. 在下列关于图灵奖的说法中,不正确的是()。
A. 图灵奖是美国计算机协会于1966年设立的,专门奖励那些对计算机事业作出重要贡献的个人B. 图灵奖有“计算机界诺贝尔奖”之称C. 迄今为止,还没有华裔计算机科学家获此殊荣D. 图灵奖的名称取自计算机科学的先驱、英国科学家阿兰·图灵4.计算机在工作过程中,若突然停电,()中的信息不会丢失。
A. ROM和RAMB. CPUC.ROMD. RAM5.完全二叉树共有2*N-1个结点,则它的叶节点数是()。
A. N-1B. NC. 2*ND. 2N-16. 在以下各项中,()不是操作系统软件。
A. SolarisB. LinuxC. Windows VistaD. Sybase7.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,f,e,c,a,则栈S的容量至少应该是()。
A. 6B. 5C. 4D. 38. 与十进制数28.5625相等的四进制数是()。
A. 123.21B. 131.22C. 130.22D. 130.219. 设字符串S=”Olympic”,S的非空子串的数目是()。
A. 28B. 29C. 16D. 1710.Web2.0是近年来互联网的热门概念之一,其核心思想是互动与分享。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十四届信息学奥赛联赛普及组初赛试题(普及组 C语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案.)。
1.微型计算机中,控制器的基本功能是()。
A. 控制机器各个部件协调工作B. 实现算术运算和逻辑运算C. 获取外部信息D. 存放程序和数据2. 设A=true,B=false,C=true,D=false,以下逻辑运算表达式值为真的是()。
A. (A∧B)∨(C∧D∨A)B. (( A∧B)∨C)∧ DC. (B∨C∨D)∧D∧AD. A∧(D∨ C)∧B3. 在下列关于图灵奖的说法中,不正确的是()。
A. 图灵奖是美国计算机协会于1966年设立的,专门奖励那些对计算机事业作出重要贡献的个人B. 图灵奖有“计算机界诺贝尔奖”之称C. 迄今为止,还没有华裔计算机科学家获此殊荣D. 图灵奖的名称取自计算机科学的先驱、英国科学家阿兰·图灵4.计算机在工作过程中,若突然停电,()中的信息不会丢失。
A. ROM和RAMB. CPUC.ROMD. RAM5.完全二叉树共有2*N-1个结点,则它的叶节点数是()。
A. N-1B. NC. 2*ND. 2N-16. 在以下各项中,()不是操作系统软件。
A. SolarisB. LinuxC. Windows VistaD. Sybase7.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,f,e,c,a,则栈S的容量至少应该是()。
A. 6B. 5C. 4D. 38. 与十进制数28.5625相等的四进制数是()。
A. 123.21B. 131.22C. 130.22D. 130.219. 设字符串S=”Olympic”,S的非空子串的数目是()。
A. 28B. 29C. 16D. 1710.Web2.0是近年来互联网的热门概念之一,其核心思想是互动与分享。
下列网站中,()是典型的Web2.0应用。
A. SinaB. FlickrC. YahooD. Google11.递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
12. (2008)10 + (5B)16的结果是()。
A. (833)16B. (2089)10C. (4163)8D. (100001100011)213. 二叉树T,已知其先根遍历是1 2 4 3 5 7 6(数字为结点的编号,以下同),中根遍历是2 4 1 57 3 6,则该二叉树的后根遍历是()。
A. 4 2 5 7 6 3 1B. 4 2 7 5 6 3 1C. 7 4 2 5 6 3 1D. 4 2 7 6 5 3 114.将数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换()次。
A. 4B. 5C. 6D. 715.对有序数组{5, 13, 19, 21, 37, 56, 64, 75, 88,92,100}进行二分查找,成功查找元素19的查找长度(比较次数)是()。
A. 1B. 2C. 3D. 416. 面向对象程序设计(Object-Oriented Programming)是一种程序设计的方法论,它将对象作为程序的基本单元,将数据和程序封装在对象中,以提高软件的重用性、灵活性和扩展性。
下面关于面向对象程序设计的说法中,不正确的是()。
A. 面向对象程序设计通常采用自顶向下设计方法进行设计。
B. 面向对象程序设计方法具有继承性(inheritance)、封装性(encapsulation)、多态性(polymorphism)等几大特点。
C. 支持面向对象特性的语言称为面向对象的编程语言,目前较为流行的有C++、JAVA、C#等。
D. 面向对象的程序设计的雏形来自于Simula语言,后来在SmallTalk语言的完善和标准化的过程中得到更多的扩展和对以前思想的重新注解。
至今,SmallTalk语言仍然被视为面向对象语言的基础。
17. 在32*32点阵的“字库”中,汉字“北”与“京”的字模占用字节数之和是()。
A. 512B. 256C. 384D. 12818. 设T是一棵有n个顶点的树,下列说法不正确的是()。
A. T有n条边B. T是连通的C. T是无环的D. T有n-1条边19. 下列不属于NOIP竞赛推荐使用的语言环境的是()。
A. Dev-C++B. Visual C++C. free pascalD. Lazarus20.在C程序中,表达式200|10的值是()A. 20B. 1C. 220D. 202二.问题求解(共2题,每题5分,共计10分)1. 书架上有4本不同的书A、B、C、D。
其中A和B是红皮的,C和D是黑皮的。
把这4本书摆在书架上,满足所有黑皮的书都排在一起的摆法有_____种。
满足 A必须比C靠左,所有红皮的书要摆放在一foo(c, a, b);elseprintf("%d,%d,%d\n", a, b, c); }int main(){int a, b, c;scanf("%d %d %d", &a, &b, &c);foo(a, b, c);return 0;}输入: 3 1 2输出: __________3.#include <stdio.h>void func(int ary[], int n ){int i=0, j, x;j=n-1;while(i<j){while (i<j&&ary[i]>0) i++;while (i<j&&ary[j]<0) j--;if (i<j){x=ary[i];ary[i++]=ary[j];ary[j--]=x;}}}{int a[20], i, m;m=10;for(i=0; i<m; i++)scanf("%d", &a[i]);func(a, m);for (i=0; i<m; i++)printf( "%d ", a[i] );printf("\n");return 0;}输入:5 4 -6 -11 6 -59 22 -6 1 10输出:____________________________________4. #include<stdio.h>#define MAX 100void solve(char first[], int spos_f, int epos_f, char mid[], int spos_m, int epos_m) {int i, root_m;if(spos_f > epos_f)return;for(i = spos_m; i <= epos_m; i++)if(first[spos_f] == mid[i]){root_m = i;break;}solve(first, spos_f + 1, spos_f + (root_m - spos_m), mid, spos_m, root_m - 1);solve(first, spos_f + (root_m - spos_m) + 1, epos_f, mid, root_m + 1, epos_m);printf("%c", first[spos_f]);}{char first[MAX], mid[MAX];int len;scanf("%d", &len);scanf("%s", first);scanf("%s", mid);solve(first, 0, len - 1, mid , 0, len - 1);printf("\n");return 0;}输入: 7ABDCEGFBDAGECF输出:____________________________________四.完善程序 (前4空,每空2.5分,后6空,每空3分,共28分)1.(字符串替换)给定一个字符串S(S仅包含大小写字母),下面的程序将S中的每个字母用规定的字母替换,并输出S经过替换后的结果。
程序的输入是两个字符串,第一个字符串是给定的字符串S,第二个字符串S’由26个字母组成,它是a-z的任一排列,大小写不定,S’规定了每个字母对应的替换字母:S’中的第一个字母是字母A和a的替换字母,即S中的A用该字母的大写替换,S中的a用该字母的小写替换;S’中的第二个字母是字母B和b的替换字母,即S中的B用该字母的大写替换,S 中的b用该字母的小写替换;……以此类推。
#include <stdio.h>#include <string.h>char change[26], str[5000];void CheckChangeRule(){int i;for (i = 0;i < 26;i ++){if ( ① )change[i] -= 'A' - 'a';void ChangeString(){int i;for (i = 0;i <strlen(str);i ++){if ( ② )str[i] = change[str[i] - 'A'] -'a' + 'A';else③}}int main(){int i;scanf("%s", str);scanf("%s", change);CheckChangeRule();④printf("%s\n", str);return 0;}2. (找第k大的数) 给定一个长度为1,000,000的无序正整数序列, 以及另一个数n (1<=n<=1000000), 然后以类似快速排序的方法找到序列中第n大的数(关于第n大的数:例如序列{1,2,3,4,5,6}中第3大的数是4)。
#include <stdlib.h>#include <stdio.h>int a[1000001],n,ans = -1;void swap(int *a,int *b){int c;int FindKth(int left, int right, int n){int tmp,value,i,j;if (left == right) return left;tmp = rand()% (right - left) + left;swap( &a[tmp], &a[left] );value = ①i = left;j = right;while (i < j){while (i < j && ② ) j --;if (i < j) {a[i] = a[j]; i ++;} else break;while (i < j && ③ ) i ++;if (i < j) {a[j] = a[i]; j - -;} else break;}④if (i < n) return FindKth( ⑤ ); if (i > n) return ⑥return i;}int main(){int i;int m = 1000000;for (i = 1;i <= m;i ++)scanf("%d", &a[i]);scanf("%d", &n);ans = FindKth(1,m,n);printf("%d\n", a[ans]);return 0;。