全国大学生信息技术应用水平大赛C语言复赛试题及答案1.docx
- 文档编号:28577487
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:25
- 大小:24.20KB
全国大学生信息技术应用水平大赛C语言复赛试题及答案1.docx
《全国大学生信息技术应用水平大赛C语言复赛试题及答案1.docx》由会员分享,可在线阅读,更多相关《全国大学生信息技术应用水平大赛C语言复赛试题及答案1.docx(25页珍藏版)》请在冰豆网上搜索。
全国大学生信息技术应用水平大赛C语言复赛试题及答案1
第六届全国信息技术应用水平大赛复赛试题
请仔细阅读并严格遵守以下要求:
请创建以“准考证号_用户名”命名的文件夹(形式如:
433034683_xxxx),将考试结果严格按试题上的要求进行命名并直接保存在该文件夹下。
注意:
文件夹的保存路径请听从监考老师的安排。
请不要在该文件夹下创建任何子文件夹,所有考试结果直接保存即可。
答卷完毕后,请将该文件夹用Winrar压缩工具打包,再通过《复赛考试结果上传系统》将压缩包上传到指定服务器,并在原机器上保留备份。
注意:
压缩打包时,请务必选中文件夹(如前面创建的“433034683_xxxx”文件夹)进行压缩,而不是选中文件夹下的考试结果进行压缩。
请务必按照试卷要求提交指定的文件,不得包含非题目要求的过程文件和临时文件,不得包含本试题文件和试题素材。
注意:
凡违反上述规定的考生,其成绩一律按零分处理。
题目命名要求:
请将编写好的源程序以题号命名,例如第1题的源程序保存为“1.C”。
重要提示:
由于时间有限,请考生首先保证编写的程序在Wintc环境下可以编译通过并执行,在此基础上完成考题要求的全部功能,以免因编译不通过影响考生的考试。
--------------------------------------------------------------------------------------------
1.编程解决如下问题(50分)。
有一个数学等式:
AB*CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。
2.编程解决如下问题(50分)。
请在整数n=742683613984中删除8个数字,使得余下的数字按原次序组成的新数最小。
要求如下:
(1)整数n和删除数字的个数“8”在源程序中完成赋值,程序直接输出运行结果;
(2)程序结果输出先后被删除的数字(之间以逗号分隔)和删除后所得的最小数。
(提示:
整数n可以以字符数组的方式定义、赋值和处理)
#include"stdio.h"
#defineN12
voidmain()
{
inti,n1,n2,n3,n4,min1,min2,min3,min4,a[12]={7,4,2,6,8,3,6,1,3,9,8,4};
min1=a[0];
n1=0;
for(i=0;i if(min1>a[i+1]){ min1=a[i+1]; n1=i+1;}} min2=a[n1+1]; n2=n1+1; for(i=n1+1;i if(min2>a[i+1]){ min2=a[i+1]; n2=i+1;}} min3=a[n2+1]; n3=n2+1; for(i=n2+1;i if(min3>a[i+1]){ min3=a[i+1]; n3=i+1;}} min4=a[n3+1]; n4=n3+1; for(i=n3+1;i if(min4>a[i+1]){ min4=a[i+1]; n4=i+1;}} for(i=0;i if(i! =n1&&i! =n2&&i! =n3&&i! =n4) printf("%d",a[i]);} printf("\n"); printf("%d%d%d%d",min1,min2,min3,min4); getch(); } 3.附加题: 编程解决如下问题(50分)。 (1)已知平面上三个点: (7,1)、(4,6)、(5,8),判断这三点组成的三角形是何种三角形(锐角,直角,钝角)(10分); #include"stdio.h" #include"math.h" voidmain() { intx[3]={7,4,5},y[3]={1,6,8},i,k; doubleA=0,q=0,s[3],max,w=1,cos; s[0]=sqrt((x[0]-x[1])*(x[0]-x[1])+(y[0]-y[1])*(y[0]-y[1])); s[1]=sqrt((x[1]-x[2])*(x[1]-x[2])+(y[1]-y[2])*(y[1]-y[2])); s[2]=sqrt((x[0]-x[2])*(x[0]-x[2])+(y[0]-y[2])*(y[0]-y[2])); if(s[0]<=s[1]){ max=s[1]; k=1;} else{ max=s[0]; k=0;} if(max<=s[2]){ max=s[2]; k=2;} for(i=0;i<3;i++) if(i! =k){ A=A+s[i]*s[i]; q=q+s[i]; w=2*w*s[i];} cos=(A-max*max)/w; if(q<=max){ printf("错误! ");getch();} if(cos==0){ printf("直角! ");getch();} else if(cos>0){ printf("锐角! ");getch();} else{ printf("钝角! ");getch();} } (2)对 (1)问中的三角形,给出它的外接圆半径(20分); #include #include voidmain() { inta[3][2]={{7,1},{4,6},{5,8}}; floatl[3],r,m,n; l[0]=sqrt(pow((a[0][0]-a[1][0]),2)+pow((a[0][1]-a[1][1]),2)); l[1]=sqrt(pow((a[1][0]-a[2][0]),2)+pow((a[1][1]-a[2][1]),2)); l[2]=sqrt(pow((a[0][0]-a[2][0]),2)+pow((a[0][1]-a[2][1]),2)); m=pow((pow(l[0],2)-pow(l[1],2)-pow(l[2],2))/(2*l[1]*l[2]),2); n=sqrt(1-m); r=l[0]/(2*n); printf("%f\n",r); getch(); } (3)已知平面上6个点的坐标为: (7,1)、(4,6)、(5,8)、(6,2)、(3,9)、(2,7),试求覆盖这6个点的覆盖圆最小半径(20分)。 (要求: 点坐标数据在程序初始化中赋值完成,程序运行后直接输出结果,不进行数据输入;点坐标数据和题目要求完全一致,否则导致的结果不正确视为程序编写错误。 ) 第六届全国信息技术应用水平大赛复赛试题C语言程序设计(B卷) 1.编程解决如下问题(50分)。 有一个数学等式: ABCD*E=DCBA,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。 2.编程解决如下问题(50分)。 请在整数n=92081346718538中删除10个数字,使得余下的数字按原次序组成的新数最大。 要求如下: (1)整数n和删除数字的个数“10”在源程序中完成赋值,程序直接输出运行结果; (2)程序结果输出先后被删除的数字(之间以逗号分隔)和删除后所得的最大数。 #include"stdio.h" #defineN14 voidmain() { inti,n1,n2,n3,n4,max1,max2,max3,max4,a[14]={9,2,0,8,1,3,4,6,7,1,8,5,3,8}; max1=a[0]; n1=0; for(i=0;i if(max1 max1=a[i+1]; n1=i+1;}} max2=a[n1+1]; n2=n1+1; for(i=n1+1;i if(max2 max2=a[i+1]; n2=i+1;}} max3=a[n2+1]; n3=n2+1; for(i=n2+1;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国大学生 信息技术 应用 水平 大赛 语言 复赛 试题 答案