全国大学生信息技术应用水平大赛C语言复赛试题及答案1Word文档格式.docx

上传人:b****6 文档编号:21737980 上传时间:2023-02-01 格式:DOCX 页数:20 大小:24.26KB
下载 相关 举报
全国大学生信息技术应用水平大赛C语言复赛试题及答案1Word文档格式.docx_第1页
第1页 / 共20页
全国大学生信息技术应用水平大赛C语言复赛试题及答案1Word文档格式.docx_第2页
第2页 / 共20页
全国大学生信息技术应用水平大赛C语言复赛试题及答案1Word文档格式.docx_第3页
第3页 / 共20页
全国大学生信息技术应用水平大赛C语言复赛试题及答案1Word文档格式.docx_第4页
第4页 / 共20页
全国大学生信息技术应用水平大赛C语言复赛试题及答案1Word文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

全国大学生信息技术应用水平大赛C语言复赛试题及答案1Word文档格式.docx

《全国大学生信息技术应用水平大赛C语言复赛试题及答案1Word文档格式.docx》由会员分享,可在线阅读,更多相关《全国大学生信息技术应用水平大赛C语言复赛试题及答案1Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

全国大学生信息技术应用水平大赛C语言复赛试题及答案1Word文档格式.docx

min2=a[n1+1];

n2=n1+1;

for(i=n1+1;

N-3;

if(min2>

min2=a[i+1];

n2=i+1;

min3=a[n2+1];

n3=n2+1;

for(i=n2+1;

N-2;

if(min3>

min3=a[i+1];

n3=i+1;

min4=a[n3+1];

n4=n3+1;

for(i=n3+1;

N-1;

if(min4>

min4=a[i+1];

n4=i+1;

N;

if(i!

=n1&

&

i!

=n2&

=n3&

=n4)

printf("

%d"

a[i]);

}

printf("

\n"

);

%d%d%d%d"

min1,min2,min3,min4);

getch();

3.附加题:

编程解决如下问题(50分)。

(1)已知平面上三个点:

(7,1)、(4,6)、(5,8),判断这三点组成的三角形是何种三角形(锐角,直角,钝角)(10分);

math.h"

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;

3;

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){

错误!

"

getch();

if(cos==0){

直角!

else

if(cos>

0){

printf("

锐角!

else{

钝角!

(2)对

(1)问中的三角形,给出它的外接圆半径(20分);

#include<

stdio.h>

#include<

math.h>

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);

%f\n"

r);

(3)已知平面上6个点的坐标为:

(7,1)、(4,6)、(5,8)、(6,2)、(3,9)、(2,7),试求覆盖这6个点的覆盖圆最小半径(20分)。

(要求:

点坐标数据在程序初始化中赋值完成,程序运行后直接输出结果,不进行数据输入;

点坐标数据和题目要求完全一致,否则导致的结果不正确视为程序编写错误。

第六届全国信息技术应用水平大赛复赛试题C语言程序设计(B卷)

ABCD*E=DCBA,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。

请在整数n=92081346718538中删除10个数字,使得余下的数字按原次序组成的新数最大。

要求如下:

(1)整数n和删除数字的个数“10”在源程序中完成赋值,程序直接输出运行结果;

(2)程序结果输出先后被删除的数字(之间以逗号分隔)和删除后所得的最大数。

#defineN14

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];

if(max1<

max1=a[i+1];

max2=a[n1+1];

if(max2<

max2=a[i+1];

max3=a[n2+1];

if(max3<

max3=a[i+1];

max4=a[n3+1];

if(max4<

max4=a[i+1];

max1,max2,max3,max4);

 

在小于10的素数中有3、5、7组成的等差数列,在小于30的素数中有11、17、23、29组成的等差数列。

试找出区间[100,1000]内的素数构成的最大等差数列(即等差数列包含的素数个数最多)并打印输出。

第六届全国信息技术应用水平大赛决赛试题C语言程序设计

1.求某正整数插入乘号后乘积的最大值。

(50分)

(1)描述:

编程实现在一个9位数的正整数n中插入4个乘号,使分得的5个整数的乘积最大;

(2)输入:

正整数n;

(3)输出:

被分得的5个整数、得到的最大乘积值。

例如:

Pleaseinputn:

734019862(回车)

屏幕输出:

73*401*9*8*62=130674672

#definen9

inti,k,x,j,s1,s2,s3,s4,x1,x2,x3,x4;

intm1[3],m2[3],m3[3],m4[3],a[n];

longn=734019862,k=100000000;

9;

a[i]=n/k;

n=n-k*a[i];

k=k/10;

if(a[0]>

a[4]&

a[5]!

=0){

for(i=0,x=0;

=4;

i++,x++)

m1[x]=a[i];

for(i=5,j=0;

i++,j++)

m3[j]=a[i];

=3;

for(i=4,j=0;

if(x!

=4)

if(m1[0]>

m1[x/2]&

m1[x/2]!

=0)

for(i=0,x1=0;

=x/2;

i++,x1++)

m1[x1]=m1[i];

for(i=x/2+1,x2=0;

5;

i++,x2++)

m2[x2]=a[i];

for(i=x/2-1,x1=0;

m1[x1]=a[i];

for(i=x/2,x2=0;

if(m3[0]>

m3[j/2]&

m3[j/2+1]!

for(i=0,x3=0;

j/2;

i++,x3++)

m3[x3]=m3[i];

for(i=j/2,x4=0;

j;

i++,x4++)

m4[x4]=a[i];

for(i=j/2-1,x3=0;

=j/2;

m3[x3]=a[i];

=x1;

s1=s1*10+m1[i];

=x2;

s2=s2*10+m2[i];

=x3;

s3=s3*10+m3[i];

=x4;

s4=s4*10+m4[i];

%d*%d*%d*%d*%d%=ld%"

s1,s2,s3,s4,s1*s2*s3*s4);

2.求西瓜均分问题。

(70分)

描述:

地面上有12个西瓜,它们的重量(单位为“两”,为计算方便已全部转化为整数,如98即为9斤8两)如下:

98,93,57,64,50,82,18,34,69,56,16,61

(1)设计程序:

实现对以上12个瓜“二堆均分”(每堆6个,两堆重量相等),要求打印输出均分的各种可能方案;

inti,j,k,l,m,n,a[12]={98,93,57,64,50,82,18,34,69,56,16,61};

longs;

12;

for(j=i+1;

j<

j++)

for(k=j+1;

k<

k++)

for(l=k+1;

l<

l++)

for(m=l+1;

m<

m++)

for(n=m+1;

n<

n++)

{

s=a[i]+a[j]+a[k]+a[l]+a[m]+a[n];

if(s==349)

printf("

%d%d%d%d%d%d\n"

a[i],a[j],a[k],a[l],a[m],a[n]);

}

(a)输入:

数据输入由程序完成,执行程序后不需要任何数据输入;

(b)输出:

程序执行后输出以下格式,X分别代表一个西瓜重量的数字,如下:

No1:

XXXXXX,XXXXXX

No2:

……

注:

均分的两堆如果只有摆放顺序不一样,算一种输出结果。

(30分)

(2)设计程序,实现对以上12个西瓜,拟实现“三堆均分”(每堆4个,三堆重量相等)。

考虑到上述西瓜总重量不能为3所整除,这里另有几个西瓜,重量分别为:

70,71,72,73,74,75可供挑选,从12个西瓜中替换掉其中一个,是否可以实现“三堆均分”?

如果可以,设计程序实现,要求打印输出均分的各种可能方案;

输出结果为以下格式,X分别代表一个西瓜重量的数字,A、B、C、D、E分别代表替换原来西瓜的新重量数字70、71、72、73、74、75,如下:

No1(AreplacesX):

XXXX,XXXX,XXXX

No2(BreplacesX):

……注:

均分的三堆如果只有摆放顺序不一样,算一种输出结果。

(40分)

第四届全国ITAT教育工程就业技能大赛复赛试题C语言程序设计(A卷)

1、编写一个程序,让它有以下功能:

从键盘上输入一个五位数,对此整数中的五个数值进行从大到小排序,形成一个新的五位数,输出这个整数。

(15分)

inti,j,a[5],b[5],y=0;

longx,k=10000;

请输入一个五位数:

scanf("

%ld"

&

x);

a[i]=x/k;

x=x-a[i]*k;

if(x>

10)

k=k/10;

a[++i]=x%10;

}

for(j=9;

j>

=0;

j--){

for(i=0;

if(j==a[i])

{

b[y++]=j;

}}

printf("

b[i]);

2、输入年、月、日,输出该日期是该年的第几天。

(25分)

inti,tian,x,y,z,yue=0,a[13];

a[0]=0;

a[1]=a[3]=a[5]=a[7]=a[8]=a[10]=a[12]=31;

a[4]=a[6]=a[9]=a[11]=30;

请输入年,月,日:

%d,%d,%d"

x,&

y,&

z);

if(x%400==0||x%4==0&

x%100!

a[2]=29;

else

a[2]=28;

y;

yue=yue+a[i];

tian=yue+z;

%d年%d月%d日是该年的第%d天!

x,y,z,tian);

3、利用数组实现数据的存储。

将学生的学号和成绩存储在数组中,利用循环计算出数组中存储学生的平均成绩,找出高于平均分的学生信息并输出。

(20分)

4、输入五个国家的名字,按字母顺序(即按ASCII码从小到大的顺序)排列输出。

5、用指针实现:

任意输入20个数,将它们按照从大到小的顺序输出。

附加题

6、编写一个简单的通讯录管理系统。

通讯录包括:

姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入、显示、查找,通讯录保存到一个文件中。

可能用到以下库函数:

malloc(),功能:

分配size字节的存储区,

用法:

(类型*)malloc(size*sizeof(你要定义的类型));

包含于<

stdlib.h>

库中

feof(),功能:

检测文件是否结束

intfeof(fp)

FILE*fp;

库中。

第四届全国ITAT教育工程就业技能大赛复赛试题C语言程序设计(B卷)

1、编程完成数据加密。

数据是五位的整数,加密规则为:

每位数字都加上6,然后用和除以8的余数代替该数字,再将第一位和第五位交换,第二位和第四位交换。

inti,t,a[5];

longn,k=10000;

n);

{

n=n-a[i]*k;

if(n>

a[++i]=n%10;

a[i]=(a[i]+6)%8;

t=a[0];

a[0]=a[4];

a[4]=t;

t=a[1];

a[1]=a[3];

a[3]=t;

2、请猜数字,该数字由系统随即产生。

要求:

用户最多有10次猜测的机会,如果在10次内猜对数字,则程序显示祝贺信息,如果连续10次都没有猜中数字,则游戏自动退出。

randomize();

用系统的时间作为随机种子;

包含于stdlib.h库中

random(100):

随机产生0-99之间的一个随机数;

toupper():

将字符c转换为大写英文字母,包含于ctype.h库中)

3、有一个3×

4的矩阵,要求编写程序找出每一行中最大值并与第一列交换。

inti,j,k,x,y,t,max,a[3][4]={39,25,52,44,31,43,15,23,66,44,22,11};

for(j=0;

4;

j++){

if(max<

=a[i][j]){

max=a[i][j];

x=i;

y=j;

}

a[x][y]=a[i][0];

t=a[i][0];

a[i][0]=max;

max=t;

for(k=0;

%4d"

a[i][k]);

4、输入五个字符串,要求按照字母顺序(即按ASCII码从小到大的顺序)输出这五个字符串。

把一个整数插入到由小到大排列的数列中,插入后仍然保持由小到大的顺序。

姓名、通讯地址、邮编、联系电话,现编写一个通讯录管理系统,可以对通讯录进行输入、显示、查找等,通讯录保存到一个文件中。

第五届全国ITAT教育工程就业技能大赛复赛试题C语言程序设计(A卷)

1、编程解决如下数学问题:

有12升水,怎样利用一个8升和一个5升的容器将水分为两个6升?

要求以如下格式打印出分水步骤。

a12b8c5

1200

***(“*”表示当前状态下每个容器的盛水量)

......

066

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],...),按行输出新数组。

inti,j;

floata[3][3]={{5.4,3.2,8},{6,4,3.3},{7,3,1.3}},b[3][3];

b[i][j]=a[i][j]/a[i][i];

{

for(j=0;

%10f"

b[i][j]);

3、编程:

设x取值为区间[1,20]的整数,求函数f(x)=x-sin(x)-co

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

当前位置:首页 > 工作范文 > 演讲主持

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1