全国“IT&AT”教育工程技能大赛试题
C语言
1. 输入一个五位整数,将它反向输出。例如输入12345,输出应为54321。(15分)
仅供参考:
方法一: 递归
#include
void invert(long m);
void main()
{
long n;
printf("Enter n: ");
scanf("%ld", &n);
invert(n);
printf("\n");
}
void invert(long m)
{ printf("%ld", m%10);
m = m/10;
if (m>0)
invert(m);
}
方法二: 数组 指针
#include
void main()
{
char p[10];
char *q;
int i=0;
scanf("%s",p);
q=p;
while(*(q++))i++;
q--;
while(i-->=0)
printf("%c",*(q--));
}
2.用两种循环结构分别编程计算1+2+3…+100的值。运行结果为“1+2+…+100=5050”(15分)
仅供参考:
(1) for循环
#include
void main()
{
int sum=0;
for(int i=1;i<=100;i++)
sum+=i;
printf("%d\n",sum);
}
(2) Whilie 循环
#include
void main()
{
int sum=0;
int i=1;
while(i<=100)
{
sum+=i;
i++;
}
printf("%d\n",sum);
}
3.从终端读入20个数据到数组中,统计其中正数的个数,并计算它们之和。(15分)
仅供参考:
#include
void main()
{
double A[20];
int i=0,n=0;
double sum=0.0;
for(i=0;i<20;i++)
scanf("%lf",&A[i]);
i=0;
while(i<20)
{
if(A[i]>0)
{
n++;
sum+=A[i];
}
i++;
}
printf("%d,%lf\n",n,sum);
}
4.利用指针实现将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各单元的值。(20分)
仅供参考:
#include
void main()
{
int A[5],B[5];
int *pa=A;
int *pb=B;
for(int i=0;i<5;i++)
{
scanf("%d",&A[i]);
*(pb+4-i)=*(pa+i);
}
for(i=0;i<5;i++)
printf("%d",*(pb+i));
printf("\n");
}
仅供参考:
#include
void main()
{
int count=0;
int x5,x2,x1;
unsigned int x;
for(x5=1;x5<=7;x5++)
{
for(x2=1;x2<=20;x2++)
{
for(x1=1;x1<=22;x1++)
{
for(x=1;x<=20;x++)
{
if((x5*50+x2*20+x1*10+x*5==500)&&(x5+x2+x1+x==30))
{
printf("%d\t%d\t%d\t%d\n",x5,x2,x1,x);
}
}
}
}
}
}
6. 求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。例如若n为1000时,函数值应为:s=153.909064。(30分)
仅供参考:
#include
#include
void main()
{
int i,n;
double s,sum=0;
printf("please input a number for n:\n");
scanf("%d",&n);
printf("The number is n=%d\n",n);
for(i=1;i
注:最后的 “最后结果s输出到文件out.dat中” 这一项 未完成 以后补充
你可能感兴趣的:(ITAT,ITAT,C语言,第一届)