ITAT 第一届 C语言程序设计 参考答案(个人答案 仅供参考)

全国“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");
}


5. 要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,要求换成30张小钞票,每种面值的至少一张,编程输出所有可能的换法,程序应适当考虑减少重复次数。(25分)


仅供参考:

#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语言,第一届)