第一届全国信息技术应用水平大赛

第一届全国信息技术应用水平大赛

第一届全国信息水平的题,真雷人!

编译环境:gnu,windows7

全国“IT&AT”教育工程技能大赛试题
C语言

姓名:___acm.cplusplus.me___     准考证号:__answer by: ACM解题报告______        

题号

总分

得分

注意:在指定的保存路径下创建以准考证号和姓名共同命名的文件夹,并将试题答案存放在以题号命名的子文件夹中。

 

  1. 输入一个五位整数,将它反向输出。例如输入12345,输出应为54321。(15分)
  2. 用两种循环结构分别编程计算1+2+3…+100的值。
    运行结果为“1+2+…+100=5050”(15分)
  3. 从终端读入20个数据到数组中,统计其中正数的个数,并计算它们之和。(15分)
  4. 利用指针实现将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各单元的值。(20分)
  5. 要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,要求换成30张小钞票,每种面值的至少一张,编程输出所有可能的换法,程序应适当考虑减少重复次数。(25分)
  6. 求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。例如若n为1000时,函数值应为:s=153.909064。(30分)

第一题:
[cpp]
#include “stdio.h”
int main()
{
char a[5];int i;
scanf(“%s”,a);
for(i=4;i>=0;i–)
printf(“%c”,a[i]);
return 0;
}
[/cpp]

第二题:
一:
[cpp]
#include “stdio.h”
int main()
{
int i,s=0;
for(i=1;i<=100;i++)
{
s+=i;
if(i==100)printf(“=”);
else printf(“%d+”,i);
}
printf(“%d”,s);
}
[/cpp]
二:
[cpp]
#include “stdio.h”
int main()
{
int i=1,s=0;
while(i<=100)
{
s+=i;
if(i==100)printf(“=”);
else printf(“%d+”,i);
i++;
}
printf(“%d”,s);
}
[/cpp]
第三题:
[cpp]
#include “stdio.h”
#include “math.h”
int main()
{
int i,n=0;
float a[20],sum=0.0;
for(i=0;i<20;i++)
scanf(“%f”,&a[i]);
for(i=0;i=0)
{
sum=sum+a[i];
n++;
}
printf(“%dt%f”,n,sum);
return 0;
}

[/cpp]
第四题:
[cpp]
#include “stdio.h”
int main()
{
int b[5],a[5],*p=a,i=5;
while(i–) scanf(“%d”,p++);
i++;
for(;i for(i=0;i<5;i++)
printf(“%d”,b[i]);
return 0;
}
[/cpp]
第五题:
[cpp]
#include “stdio.h”
int main()
{
int a,b,c,d;
for(a=1;a<10;a++)
for(b=1;b<25;b++)
for(c=1;c<50;c++)
for(d=1;d<100;d++)
{
if(a+b+c+d==30&&a*50+b*20+c*10+d*5==500)
printf(“%d %d %d %dn”,a,b,c,d);
}
return 0;
}
[/cpp]
第六题:
[cpp]
#include “stdio.h”
#include “math.h”
float hanshu(int n)
{
int s=0,i;
for(i=21;i<=n;i++)
if(i%21==0) s+=i;
return sqrt(s);
}
int main()
{
freopen(“out.dat”,”w”,stdout);
int n;
scanf(“%d”,&n);
printf(“%lfn”,hanshu(n));
return 0;
}
[/cpp]