第五届大赛C语言程序设计预赛
- 格式:doc
- 大小:85.00 KB
- 文档页数:15
“正保教育杯”第五届全国ITA T教育工程就业技能大赛C语言程序设计-- 预赛一、单项选择题【共60题,每小题1分,共60分。
下列每题给出的多个选项中,只有一项是最符合试题要求的。
请选择相应的正确答案。
】1.下列程序的输出结果是()。
struct st{ int x;int *y;}*p;int dt[4]={10,20,30,40};struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};main(){ p=aa;printf(“%d ”,++(*p->y));printf(“%d ”,(++p)->x);printf(“%d ”,++p->x);A)20 20 10 B)21 60 50 C)11 60 61 D)31 70 602.程序中对fun函数有如下说明:int *fun();下面说法正确的是()。
A)fun函数是整型函数B)fun函数的返回值是整型数据C)fun函数的返回值是指向整型数据的指针类型D)指针fun指向一个函数,该函数返回整型数据3.执行以下程序段后的输出结果是()。
int x = 3;int m, n;n = (++x)+ (++x);m = (x--)+ (x--);printf("%d %d\n", m, n);A)10 6 B)9 9 C)10 10 D)10 84.假设所有变量均为整型,则执行运算x=(a=2,b=5,b++,a+b)后, x的值是()。
A)7B)8C)6 D)25.下列描述中不正确的是()。
A)字符型数组中可能存放字符串B)可以对字符型数组进行整体输入、输出C)可以对整型数组进行整体输入、输出D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值6.有以下程序:main(){ int x=1,y=2;printf(“%d\n”,x,y);}该程序运行后的输出结果是()。
2022年第五届蓝桥杯大赛软件类C-CC组全国总决赛真题1.结果填空(满分10分)标题:国王的遗产某国是个小国。
国王K有6个儿子。
在临终前,K国王立下遗嘱:国王的一批牛作为遗产要分给他的6个儿子。
其中,大儿子分1/4,二儿子1/5,三儿子1/6,....直到小儿子分1/9。
牛是活的,不能把一头牛切开分。
最后还剩下11头牛,分给管家。
请计算国王这批遗产中一共有多少头牛。
这是一个整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字)2.结果填空(满分35分)标题:神奇6位数有一个6位的正整数,它有个很神奇的性质:分别用23456去乘它,得到的仍然是6位数,并且乘积中所包含的数字与这个6位数完全一样!只不过是它们的顺序重新排列了而已。
请计算出这个6位数。
这是一个整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字)3.代码填空(满分25分)标题:日期差下面的程序计算了两个日期的差值,两个日期都使用公元纪年法。
第1/7页请分析程序逻辑,并推断划线部分缺失的代码。
intdiff(inty1,intm1,intd1,inty2,intm2,intd2){inta=to_day(y1, m1,d1);intb=to_day(y2,m2,d2);returnb-a;}intmain(){intn=diff(1864,12,31,1865,1,1);printf(\return0;}注意:通过浏览器提交答案。
只填写缺少的内容,不要填写任何多余的内容(例如:说明性文字或已有符号)。
4.程序设计(满分50分)标题:拼接平方数小明发现49很有趣,首先,它是个平方数。
它可以拆分为4和9,拆分出来的部分也是平方数。
169也有这个性质,我们权且称它们为:拼接平方数。
第2/7页100可拆分100,这有点勉强,我们规定,000000等都不算平方数。
小明想:还有哪些数字是这样的呢?你的任务出现了:找到某个区间的所有拼接平方数。
湘教通[2009]478号
关于公布湖南省第五届大学生
计算机程序设计竞赛结果的通知
各普通高等学校:
按照《关于加强大学生学科竞赛活动组织管理的通知》(湘教通[2009]47号)安排,湖南省第五届大学生计算机程序设计竞赛于2009年10月17日在中南林业科技大学成功举办,本次比赛共评选出团体总分奖8个;优秀组织奖4个(其中本科组3个、专科组1个);单项奖49个(其中本科组一等奖4个,二等奖15个,三等奖28个;专科组二等奖2个,具体名单见附表)。
希望获奖同学和指导教师戒骄戒躁,努力取得更好成绩。
希望各高等学校以竞赛为平台,进一步深化计算机教学改革,全面提高人才培养质量。
附件:1、湖南省第五届大学生计算机程序设计竞赛团体奖获奖名单
2、湖南省第五届大学生计算机程序设计竞赛单项奖获奖名单
二OO九年十月二十九日
湖南省第五届大学生
计算机程序设计竞赛团体奖获奖名单
一、团体总分奖
1、本科组
第一名:国防科技大学
第二名:湖南大学
第三名:中南大学
第四名:中南林业科技大学
第五名:湖南商学院
第六名:湖南师范大学
第七名:湖南理工学院
第八名:长沙学院
二、优秀组织奖
1、本科组
中南林业科技大学
长沙理工大学
长沙学院
2、专科组
湖南科技职业学院
湖南省第五届大学生
计算机程序设计竞赛单项奖获奖名单1、本科组
(1)一等奖:4个
(2)二等奖:15个
(3)三等奖:28个
2、专科组
(1)二等奖:2个。
第五届全国ITAT教育工程就业技能大赛预赛试题C语言程序设计一、单选题(共计60题)(1)在下述程序中,if (i>j)语句共执行的次数是()。
Cmain(){ int i=0,j=14,k=2,s=0;for(;;){ i+= k ;if(i>j){ printf(“%d”,s);break ;}s+=i ;}}A、6B、9C、7D、12(2)若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式应是()。
CA、"ab+"打开文件进行读/写/追加B、"rb+打开文件进行读/写"C、"wb+"新建文件进行读/写D、"ab"打开文件进行追加(3)下列程序的输出结果是()。
C对于数组,如果是static类型的,则如果没有全部赋值则系统全部赋值为0;如果是普通的数组,如果没有赋值就暂时没有值。
还有,对于二位数组,如果元素全部写出,可以省略行长度。
代表第几个元素,因为struct student 类型的数组是三个数代表一个元素,所以2+6%4=4选cstruct student { int a, b, c; };main(){ struct student stu[2]={{2,3,4},{5,6,7}}; int t;t=stu[0].a+stu[1].b%stu[0].c;printf("%d \n",t); }A、0B、1C、4D、5(4)对于浮点型变量f,能实现对f中的值在小数点后第四位进行四舍五入的表达式是()。
CA、f=(f*1000+0.5)/1000.0B、f=(f*1000+0.5)/1000C、f=(int )(f*1000+0.5)/1000.0//0.0072 0.0070.0072*1000=7.2 7.2+5=7.7 7.7/1000=0.0077达不到预期的效果,所以要取整7/1000=0.007实现了对于小数点后第四位四舍五入的效果D、f=(f/1000+0.5)*1000(5)现已定义整型变量int i=1; 执行循环语句“while(i++<5);”后,i的值为()。
第五届全国ITAT教育工程就业技能大赛复赛试题C语言程序设计(A卷)请考生仔细阅读并严格遵守题目中关于文件保存和命名的要求。
请务必按照试卷要求为文件命名。
考生答题完毕后,首先创建以“准考证号”命名的文件夹(形式如:433034683),并将考试结果严格按题目上的命名要求进行命名并直接保存在该文件夹下。
注意:考生不得在该文件夹下创建任何子文件夹,所有考试结果均直接保存在该文件夹根目录下。
然后选中整个文件夹,用Winrar压缩工具打包后存放在本考场指定的考试结果存放地址,经监考老师确认上传无误后方可离开考场。
注意:在提交答案时,请务必选中上述存放作品的文件夹(如前面创建的433034683文件夹,而不是文件夹下的全部文件)进行压缩,在完成答案提交后,请确保上述压缩包仍保存在本地计算机中。
请务必按照试卷要求提交指定的文件,不得包含非题目要求的过程文件和临时文件,不得包含本试题文件和试题素材。
注意:凡违反上述规定的考生,其成绩一律按零分处理。
题目命名要求:请将编写好的源程序以题号命名,例如第1题的源程序保存为“1.C” )。
重要提示:由于时间有限,请考生首先保证编写的程序在Wintc环境下可以编译通过并执行,并在此基础上完成考题要求的全部功能,以免因编译不通过影响考生的考试成绩。
1、编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤。
a12 b8 c512 0 0* * * (“*”表示当前状态下每个容器的盛水量)......6 6 0#include "stdio.h"#include "conio.h"move(int *ai,int *aj,int aiContainer,int ajContainer){ //将将油从一个容器导倒入另外一个容器if(aiContainer>ajContainer){if(*ai+*aj>ajContainer)//将油倒入容器小的那一个中{*ai=*ai-(ajContainer-*aj);*aj=*aj+ajContainer-*aj;}else{*aj=*ai+*aj; //否则将油倒入容器大的那个中*ai=*ai-*ai;}}else{*aj=*ai+*aj;*ai=0;}}main(){int a[3]={12,0,0},i,m=0;int container[3]={12,8,5};printf("%-8s%-8s%-8s\n","a12","b8","c5");while(a[0]!=6){for(i=0;i<3;i++)//循环三次,分别从a->b,b->c,c->a{move(&a[i],&a[(i+1)%3],container[i],container[(i+1)%3]); m++;printf("%-8d%-8d%-8d\n",a[0],a[1],a[2]);if(a[0]==6 && a[1]==6){printf("The total number is %d to reach success!",m); getch();exit();}}move(&a[1],&a[2],container[1],container[2]);//b->cprintf("%-8d%-8d%-8d\n",a[0],a[1],a[2]);m++;if(a[0]==6 && a[1]==6){printf("The total number is %d to reach success!",m);break;}}getch();}2、编程实现:有二维数组a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},将数组a的每一行元素均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),按行输出新数组。
“指院杯”第五届程序设计大赛题目(2011年6月12日)注意事项:1、考试时间为上午9:30-11:30,下午12:30-15:30。
2、考试编程环境为VC6.0。
3、考试结束后将所有的源代码、程序、相关文档打包,文件名为参赛编号,并上传到指定服务器。
确认后方可离开。
1、0的个数源程序名zero.c(zero.cpp)输入文件名 zero_in.txt输出文件名 zero_out.txt问题描述编写程序,计算n! (n<=100000)的尾部0的个数。
输入文件(zero_in.txt)包含一个整数n。
输出文件(zero_out.txt)输出n!尾部0的个数。
样例输入(exp_in.txt)26输出(exp_out.txt)62、洗牌加密法源程序名poker.c(poker.cpp)输入文件名 poker _in.txt输出文件名 poker_out.txt问题描述有一种根据扑克牌的洗牌原理设计的简单加密方法。
加密过程如下,将输入字符串,前后等分成两部分。
如果有奇数个字符,则后半部分多一个字符。
然后将前后两部分交叉,即从后半部分字符串取第一个字符,然后从前半部分取第一个字符,直到所有字符都取完。
这个过程重复n次。
例如:对于输入字符串(注:此处"号不是输入内容):“shaken not stirred”分成两半分别为“shaken no”“t stirred”交叉后得到:“ts hsatkiernr endo”再次处理后得到:“etrsn rh seantdkoi“现在要求根据密文和处理次数(相当于密钥)计算出明文。
输入文件(poker_in.txt)输入文件包含两行:前一行为密文内容,以.号结尾(.号不是密文内容),密文内容中不包含.号,后一行为密钥,即加密时重复的次数。
输出文件(poker_out.txt)输出数据仅有一行,即对密文,输出一行明文(以.结尾)。
样例输入(poker_in.txt)etrsn rh seantdkoi.2输出(poker_out.txt)shaken not stirred.3、猜数字源程序名guess.c(hand.cpp)输入文件名 guess_in.txt输出文件名 guess_out.txt问题描述猜数字是一个非常流行的电脑游戏,电脑选择四个不重复的数字,你要根据电脑的提示尽快猜出这个数字。
附件1第五届全国青少年创意编程与智能设计大赛参赛办法(Scratch创意编程比赛)一、参赛对象Scratch创意编程比赛设小学I组(1-3年级)、小学II组(4-6年级)和初中组。
全国各地小学、初中在校学生均以个人名义报名参加。
二、参赛形式创意编程比赛分初评、复评和终评三个阶段,均以线上形式开展。
每人限报1项作品,每项作品限1名指导教师。
2019年6月10日-8月10日,登录“第五届全国青少年创意编程与智能设计学习平台”(网址:点击进入)报名参赛。
三、作品类型1.科学探索类:现实模拟、数学研究、科学实验等等各学科的趣味性展示与探究。
2.实用工具类:有实用价值、能解决学习生活中的实际问题的程序工具。
3.互动艺术类:引入绘画、录音、摄影等多媒体手段,用新媒体互动手法实现音乐、美术方面的创意展示。
4.互动游戏类:各种竞技类、探险类、角色扮演类、球类、棋牌类游戏等等。
四、作品要求1.作品原创作品必须为作者原创,无版权争议。
若发现涉嫌抄袭或侵犯他人著作权的行为,一律取消评奖资格。
如涉及作品原创问题的版权纠纷,由申报者承担责任。
2.创新创造作品主题鲜明,创意独特,表达形式新颖,构思巧妙,充分发挥想象力。
3.构思设计作品构思完整,内容主题清晰,有始有终;创意来源于学习与生活,积极健康,反映青少年的年龄心智特点和玩乐思维。
4.用户体验观看或操作流程简易,无复杂、多余步骤;人机交互顺畅,用户体验良好。
5.艺术审美界面美观、布局合理,给人以审美愉悦和审美享受;角色造型生动丰富,动画动效协调自然,音乐音效使用恰到好处;运用的素材有实际意义,充分表现主题。
6.程序技术合理正确地使用编程技术,程序运行稳定、流畅、高效,无明显错误;程序结构划分合理,代码编写规范,清晰易读;通过多元、合理的算法解决复杂的计算问题,实现程序的丰富效果。
7.参赛作品的著作权归作者所有,使用权由作者与主办单位共享,主办单位有权出版、展示、宣传参赛作品。
电子科大第五届程序设计竞赛决赛题目浅析刘歆决赛题目和初赛不同,我以提点为主。
各位同学不必强求看懂每一个题的分析、把每个题做出。
有些题是要你的内力到了一定程度以后才能真正理解的。
看书、做题、提高自己的实力才是关键。
等你的实力提升以后,再来看这些题,你会发现很多题都是可以迎刃而解的。
题目可以在/toj/contest/contest68.html看,你也可以在天大的OJ上提交。
A A Simple Problem(Author:郭志彪) 难度:***满足f(a,k)=0等价于a具有N的全部素因子。
因为平方可使素因子数增多并最后>=N的相应素因子数,而平方本身不会产生新的素因子。
求模可以最后来做,因为(a mod N) * b mod N = a * b mod N。
设N的全部素因子乘积(每个只取一次)为P,那么a一定是P的倍数。
答案是N / P + 1。
B Bus(Author:文成明) 难度:**动态规划f[k, 0] = max(f[k + 1, 0], f[k + 2, 1]) + Akf[k, 1] = max(f[k + 1, 1], f[k + 2, 0]) + Bkf[k, 0](或f[k, 1])分别表示第k天开始,这一天选择A(或B)的最大值。
最后取max(f[0, 0], f[0, 1])。
C The Queen’ New Necklaces(Author:朱泓丞) 难度:****用到Burnside定理。
Burnside定理说的是,不同的项链数等于置换群中每个置换的不动点(在置换下不变的方案)个数的和。
这里置换就是一种排列,把一种着色方案映射到另一种,这两种方案是相同的。
置换群可以简单理解为这些置换的集合(不过置换的连接产生的新置换也要包含在这个集合中)。
根据题意,旋转产生的方案是相同的,用置换来表达,就是所有的排列(ai ai+1 …a1…ai-1)。
一共有n个这样的置换,n是题目中所有颜色数的总和。
2014年蓝桥杯(第5届)预赛本科B组真题解析啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。
小明买了若干啤酒和饮料,一共花了82.3元。
我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。
注意:答案是一个整数。
请通过浏览器提交答案。
不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。
(1)答案。
11(2)编程思路。
把啤酒、饮料的单价和总共花的钱都乘上10,转换为整数。
然后用循环对啤酒的罐数b(1≤b<823/23)和饮料的罐数c(1≤c<823/19)进行穷举,找出满足要求的啤酒罐数b。
(3)源程序。
#include <stdio.h>int main(){int b,c;for (b=1;b<35;b++)for (c=1;c<45;c++){if((823==b*23+c*19) &&(b<c))printf("%d\n",b);}return 0;}(4)用单重循环完成穷举。
实际上,也可以只对啤酒的罐数进行穷举。
#include <stdio.h>int main(){int b,cSum;for (b=1;b<35;b++){cSum=823-23*b;if (cSum%19==0 && cSum/19>b)printf("%d\n",b);}return 0;}切面条一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。
不要填写任何多余的内容。
(1)答案。
1025(2)编程思路。
由题目可知,对折0次切一刀得到2根,对折1次切一刀得到3根,对折2次切一刀得到5根。
第五届全国ITAT教育工程就业技能大赛复赛试题C语言程序设计(A卷)请考生仔细阅读并严格遵守题目中关于文件保存和命名的要求。
请务必按照试卷要求为文件命名。
考生答题完毕后,首先创建以“准考证号”命名的文件夹(形式如:433034683),并将考试结果严格按题目上的命名要求进行命名并直接保存在该文件夹下。
注意:考生不得在该文件夹下创建任何子文件夹,所有考试结果均直接保存在该文件夹根目录下。
然后选中整个文件夹,用Winrar压缩工具打包后存放在本考场指定的考试结果存放地址,经监考老师确认上传无误后方可离开考场。
注意:在提交答案时,请务必选中上述存放作品的文件夹(如前面创建的433034683文件夹,而不是文件夹下的全部文件)进行压缩,在完成答案提交后,请确保上述压缩包仍保存在本地计算机中。
请务必按照试卷要求提交指定的文件,不得包含非题目要求的过程文件和临时文件,不得包含本试题文件和试题素材。
注意:凡违反上述规定的考生,其成绩一律按零分处理。
题目命名要求:请将编写好的源程序以题号命名,例如第1题的源程序保存为“1.C” )。
重要提示:由于时间有限,请考生首先保证编写的程序在Wintc环境下可以编译通过并执行,并在此基础上完成考题要求的全部功能,以免因编译不通过影响考生的考试成绩。
1、编程解决如下数学问题:有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?要求以如下格式打印出分水步骤。
(20分)a12 b8 c512 0 0* * * (“*”表示当前状态下每个容器的盛水量)......0 6 62、编程实现:有二维数组a[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},将数组a的每一行元素均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),按行输出新数组。
(20分)3、编程:设x取值为区间[1,20]的整数,求函数f(x)=x-sin(x)- cos(x)的最大值,要求使用自定义函数实现f(x)功能。
第五届省赛1.一个串的子串是指该串的一个连续的局部。
如果不要求连续,则可称为它的子序列。
比如对串: "abcdefg" 而言,"ab","abd","bdef" 等都是它的子序列。
特别地,一个串本身,以及空串也是它的子序列。
对两个串而言,可以有许多的共同的子序列,我们关心的是:它们所共同拥有的长度最大的子序列是多长。
以下代码实现了这个问题的求解。
请填写划线部分缺失的代码。
注意:只填写划线部分缺少的内容,不要填写任何多余的符号或注释、说明等。
例如,不要填写已经给出的小括号。
inline max(int a, int b){return a>b?a:b;}int f(char* x, char* y){if(strlen(x)==0) return 0;if(strlen(y)==0) return 0;if(*x == *y) return f(x+1, y+1) + 1;return max( ______________________ );//处理字符串}int main(){printf("%d\n", f("ac","abcd")); //2printf("%d\n", f("acebbcde1133","xya33bc11de")); //5return 0;}f(x+1,y),f(x,y+1)2.历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:pai = 4*(1-1/3+1/5-1/7 ....)参见【图1.png】这个公式简单而优美,但美中不足,它收敛的太慢了。
如果我们四舍五入保留它的两位小数,那么:累积了1项和是:4.00累积了2项和是:2.67累积了3项和是:3.47。
UESTC-第五届ACM趣味程序设计竞赛第四场(正式赛)--不完全解题报告⽐赛链接:A. ---UESTC 1913简单博弈,先假设在警察先⾛的情况下分析,⼩偷先⾛的结果在其基础上取反⾯即可。
我是这样做的,随便假设⼩偷在⼀个点,在这个点的四周都是必败态(警察抓不到),然后⼀步可以到达必败态的点都是必胜态,⼀次推向远处,容易发现规律:当abs(xp-xt)%2==abs(yp-yt)%2时都是必败态,否则是必败态,这是结果已经得出。
两个特殊情况: 1.开始时两⼈在同⼀点,算YES。
2.格⼦为n*1或1*m形式,必然可以抓到,算YES。
代码:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <string>#include <vector>#include <map>#include <set>#include <time.h>#include <queue>#include <cctype>#include <numeric>#include <cstdlib>#include <iomanip>#include <sstream>#define mod 1000000007#define INT 2147483647#define pi acos(-1.0)#define eps 1e-3#define lll __int64#define ll long longusing namespace std;#define N 200005int main(){int t,i;int n,m;int xp,yp,xt,yt;int flag;char ss[10];scanf("%d",&t);while(t--){flag = 1;scanf("%d%d",&n,&m);scanf("%d%d%d%d",&xp,&yp,&xt,&yt);scanf("%s",ss);if((n == 1 || m == 1)||(xp == xt && yp == yt)){cout<<"YES\n";continue;}int ka = abs(yp-yt);int kb = abs(xp-xt);if(ka%2 == kb%2){flag = 0;}if(ss[0] == 'p'){if(flag)cout<<"YES"<<endl;elsecout<<"NO"<<endl;}else{if(flag)cout<<"NO"<<endl;elsecout<<"YES"<<endl;}}return0;}View CodeB. ---UESTC 1916我的思路如下:从第⼀个字符串(后⽂称a)中第⼀个字符扫起,遇见⼀个字母(如'A'),如果没有标记,则标记为第⼆个字符串(后⽂称b)的该位字母,然后在循环⾥⾯扫⼀遍a,如果有等于这个字母的,⽽b对应的不相等,或者,不等于这个字母⽽b对应的⼜相等了,则tag = 0,说明不是,否则就是。
2014年预赛C/C++本科A组考生须知:●考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。
●考试时间为4小时。
时间截止后,提交答案无效。
●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。
●选手可浏览自己已经提交的答案。
被浏览的答案允许拷贝。
●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
●选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。
●选手必须通过浏览器方式提交自己的答案。
选手在其它位置的作答或其它方式提交的答案无效。
●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。
结果填空题:要求选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把结果填空的答案直接通过网页提交即可,不要书写多余的内容。
代码填空题:要求选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不超过一条语句(即中间不能出现分号)。
把代码填空的答案(仅填空处的答案,不包括题面已存在的代码或符号)直接通过网页提交即可,不要书写多余的内容。
使用ANSI C/ANSI C++ 标准,不要依赖操作系统或编译器提供的特殊函数。
程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库。
注意: main函数结束必须返回0注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。
桂林电子科技大学第五届程序设计大赛 (初赛)高级组1、【问题描述】K国受到某国的安全威胁,现要在国内建立军事指挥部;现给你K国不同城市的地图,图中给出城市之间的公路距离和部队人数,要你找出在哪个城市建立军事指挥部才能使所有部队到军事指挥部所走的路程之和最少。
【输入】第一行为二个由空格隔开的数N和M,N表示城市的个数,而M表示道路的条数。
接下来的N行分别表示各个城市的部队人数。
再接下来的M行表示道路的情况,每行包含三个由空格隔开的数i,j和d,前两个数i和j表示相邻城市的编号,而d表示从城市i到城市j的公路距离。
【输出】一个数表示学校应该建造的城市编号。
【输入样例】6 812050734567971 2 91 3 102 3 72 4 5【输出样例】2、【问题描述】假设银行整存整取存款不同期限的月息利率分别为:0.63% 期限=1年0.66% 期限=2年0.69% 期限=3年0.75% 期限=5年0.84% 期限=8年利息=本金*月息利率*12*存款年限。
现在某人手中有2000元钱,请通过计算选择一种存钱方案,使得钱存入银行N年后得到的利息最多(假定银行对超过存款期限的那一部分时间不付利息)。
【输入】输入一个整型数N,表示钱存入银行的年数【输出】输出最佳存钱方案下,N年后所取得的本金和利息的总和,其中结果保留至小数点后2位【输入样例】20【输出样例】8841.013、【问题描述】张三大学学的是机械专业,毕业后他用有限的资金开了一家摩托车零件加工厂,专门为摩托车制造商制造零件。
由于资金有限,他只能先购买一台加工机器。
现在他却遇到了麻烦,多家摩托车制造商需要他加工一些不同零件(由于厂家和零件不同,所以给的加工费也不同),而且不同厂家对于不同零件的加工时间要求不同(有些加工时间要求甚至是冲突的,但开始和结束时间相同不算冲突)。
张三希望能把所有的零件都加工完,以得到更多的加工费,但当一些零件的加工时间要求有冲突时,在某个时间内他只能选择某种零件加工(因为他只有一台机器),为了赚得尽量多的加工费,张三不知如何进行取舍。
第五届全国ITAT教育工程就业技能大赛预赛试题C语言程序设计一、单选题(共计60题)(1)在下述程序中,if (i>j)语句共执行的次数是()。
Cmain(){ int i=0,j=14,k=2,s=0;for(;;){ i+= k ;if(i>j){ printf(“%d”,s);break ;}s+=i ;}}A、6B、9C、7D、12(2)若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式应是()。
CA、"ab+"B、"rb+"C、"wb+"D、"ab"(3)下列程序的输出结果是()。
Cstruct student{ int a, b, c; };main(){ struct student stu[2]={{2,3,4},{5,6,7}}; int t;t=stu[0].a+stu[1].b%stu[0].c;printf("%d \n",t); }A、0B、1C、4D、5(4)对于浮点型变量f,能实现对f中的值在小数点后第四位进行四舍五入的表达式是()。
CA、f=(f*1000+0.5)/1000.0B、f=(f*1000+0.5)/1000C、f=(int)(f*1000+0.5)/1000.0D、f=(f/1000+0.5)*1000(5)现已定义整型变量int i=1; 执行循环语句“while(i++<5);”后,i的值为()。
CA、1B、5C、6D、以上三个答案均不正确(6)下列程序的输出结果是()。
Cstruct LH{ int n;struct LH *m;}p[4];main(){ int i;for(i=0;i<2;i++){p[i].n=i;p[i].m=&p[i+1];}p[i].m=p;printf(“%d,%d\n”,(p[1].m)->n,p[2].m->n);}A、0,1B、0,2C、0,0D、程序出错(7)下列程序的运行结果是()。
B#include "stdio.h"int f(int a){ switch (a){ case 0:return 0;case 1:case 2:return 1;}return(f(a-2)+f(a-3));}main(){ int b;b=f(9);printf(“%d\n”,b);}A、10B、7C、8D、9(8)以下程序的输出结果是()。
Aint f(int b[],int m,int n){int i,s=1;for(i=m;i<n;i++){b[i]=b[i-1]+b[i+1];s+=b[i]; }return s; }main(){int x,a[]={1,2,3,4,5,6,7,8,9,10};x=f(a,3,5);printf("%d\n",x); }A、23B、26C、42D、35(9)以下程序运行后,输出结果是()。
Cmain(){ char ch[3][4]={"123","456","78"},*p[3];int i;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A、123456780B、123 456 780C、12345678D、147(10)桌上有白球和黑球共5个,a、b、c、d、e分别表示这5个球的颜色,取值为0、1分别代表白球、黑球。
则以下能表示a是黑球,其余至少有两个白球的表达式是()。
CA、!a&&(b+c+d+e)==2B、a&&(b+c+d+e)>2C、a&&(b+c+d+e)<=2D、!a&&(b+c+d+e)==3(11)下列程序的输出结果是()。
B#include "stdio.h"int f(int n){ static int k, s;n--;for(k=n; k>0; k--)s += k;return s;}void main(){ int k;k=f(2);printf("(%d, %d)", k, f(k));}A、(3, 3)B、(1, 1)C、(3, 6)D、(6, 12)(12)若有定义:int a,b;char x,y;并有以下输入数据:12 13 AaBb(回车)则能给a赋整数12,给b赋整数13,给x赋字符a,给y赋字符b的正确程序段是()。
D A、scanf(“%d”,&a);scanf(“%d”,&b);x=getchar();y=getchar();B、scanf(“%d%d %c %c”, &a, &b,&x,&y);C、scanf(“%d %d %c %c”, &a,&b,&x,&x,&y,&y);D、scanf(“%d %d %c%c%c%c”,&a,&b,&x,&x,&y,&y);(13)以下对结构体成员的运算结果是()。
D#include <stdio.h>main(){struct st{int x;int y;}cnum[2]={1,3,2,7};printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);}A、0B、1C、3D、6(14)函数f定义如下,执行语句“m=f(5);”后,m的值应为()。
Bint f(int k){ if(k==0||k==1)return 1;else return f(k-1)+f(k-2);}A、3B、8C、5D、13(15)若有以下定义:char s[10]={’a’,’b’,’c’,’0’, ’2’,’\x32’,’\0’,’\123’};执行语句printf(“%d”,strlen(s));的结果是()。
BA、3B、6C、8D、9(16)若i为整型变量,则以下循环执行的次数是()。
Cfor(i=0;i<=5;i++)printf("%d",i++);A、5次B、2次C、3次D、6次(17)执行以下程序段后的输出结果是()。
Cint x = 3;int m, n;n = (++x)+ (++x);m = (x--)+ (x--);printf("%d %d\n", m, n);A、10 6B、9 9C、10 10D、10 8(18)设有定义:int a[2][2]={1,2,3,4},(*p)[2];,则在语句p=a;p++;后,**p的值为()。
BA、2B、3C、4D、以上都不对(19)以下关于循环的程序的输出结果是()。
C#include "stdio.h"void main(){int k=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d %d",k,n);}A、1 1B、2 2C、3 3D、4 4(20)下列关于字符串操作的输出结果是()。
D#include "stdio.h"#include "string.h"void main(){char p1[20]="abcd",p2[20]="ABCD";char str[50]="xyz";strcpy(str+2,strcat(p1+2,p2+1));printf("%s\n",str);}A、xyabcABB、abcABzC、AbabczD、xycdBCD(21)下列选项中属于正确的switch语句的是()。
CA、swicth(’a’)B、switch(1.0){ case ‘a’:printf(“A\n”); { case 1.0 :printf(“A\n”);case ‘b’:printf(“B\n”); } case 2.0 :printf(“B\n”);} C、switch((int)(x+2.5))D、switch(“a”);{ case 1 :printf(“A\n”); { case “a”:printf(“A\n”);case 1+2 :printf(“B\n”);} case “b”:printf(“B\n”);} (22)以下程序的运行结果为()。
A#include "stdio.h"void main(){int y=2,a=1;while(y--!=-1){do{a*=y;a++;}while(y--);}printf("%d,%d\n",a,y);}A、1,-2B、2,1C、1,0D、2,-1(23)C语言的输入与输出操作是由()完成的。
CA、输入语句B、输出语句C、输入与输出函数D、输入与输出语句(24)若有以下程序段……int a[ ]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]=a[j];j--;}a[j+1]=t;}……则该程序段的功能是()。
BA、对数组a进行插入排序(升序)B、对数组a进行插入排序(降序)C、对数组a进行选择排序(升序)D、对数组a进行选择排序(降序)(25)执行下列程序中的输出语句后,x的值是()。
Amain(){int x ;printf(“%d\n”,(x=4*5,x*2,x+20));}A、20B、40C、60D、80(26)下列程序段的输出结果是()。
Bint c[ ]={1, 7, 12};int *k=c+1;printf("%d",*k++);A、2B、7C、8D、12(27)下列程序的运行结果是()。
Dmain(){int a=4,y;y=fn(a,++a);printf(“%d”,y);}int fn(x,c){int b;if(x<c)b=1;else if(x==c)b=0;else b=-1 ;return(b);}A、4B、-1C、1D、0(28)有如下程序:int x=-20; printf("%d\n",~x);,其输出结果将是()。