这是2012年至2014年的,考试科目代码分别为566、563,563,之后就改成现在的F0803.

2012年

/*1、从键盘输入一行字符(可以包含空格),分别统计其中大写字母、小写字母、
数字、空格以及其它字符的个数。*/
#include<stdio.h>
int main()
{
   
	int i;
	int big=0;
	int small=0;
	int num=0;
	int space=0;
	int other=0;
	char str[100];
	gets(str);
	for (i=0;str[i]!='\0';i++)
	{
   
		if (str[i]<='Z'&&str[i]>='A')
		{
   
			big++;
		}
		else if (str[i]<='z'&&str[i]>='a')
		{
   
			small++;
		}
		else if (str[i]<='9'&&str[i]>='0')
		{
   
			num++;
		}
		else if (str[i]==' ')
		{
   
			space++;
		}
		else
		{
   
			other++;
		}
	}
	printf("大写字母:%d\n",big);
	printf("小写字母:%d\n",small);
	printf("数字:%d\n",num);
	printf("空格:%d\n",space);
	printf("其它:%d\n",other);
	return 0;
}
/*2、从键盘输入一个4×4的二维数组,打印数组的上三角形,要求按格式打印
(即输出第i行和第i+1行之间要有换行。
如假如:a[4][4]={
   1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
输出:
1	2	3	4
5	6	7
9	10
13
*/
#include<stdio.h>
int main()
{
   
	int i,j;
	int a[4][4]={
   1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
	for(i=0;i<4;i++)
	{
   
		for(j=0;j<4-i;j++)
		{
   
			printf("%-4d",a[i][j]);
		}
		printf("\n");
	}
	return 0;
}
/*3、设计一个程序求,从键盘输入的若干个整数,求输入的正整数之和,输入数字
0,则终止输入*/
#include<stdio.h>
int main()
{
   
	int x,sum=0;
	printf("请输入正整数,输入0时终止输入:\n");
	do{
   
		scanf("%d",&x);
		sum += x;
	}while(x!=0);
	printf("%d\n",sum);
	return 0;
}

2013年

/*1、有一个数列,它的第一项为0,第二项为1,以后每一项都是它的前两项之和,
试产生出此数列的前20项,并按每行5个数据显示出来。*/
#include<stdio.h>
int main()
{
   
	int i;
	int j=0;
	int k=1;
	int temp;
	for (i=1;i<=20;i++)
	{
   
		printf("%-5d",j);
		temp = j;
		j = k;
		k = k+temp;
		if (i%5==0)
		{
   
			printf("\n");
		}
	}
	return 0;
}
/* 
方法二,递归
#include <stdio.h>
int f(int n);
int main()
{
   
	int i;
	for (i=1;i<=20;i++)
	{
   
		printf("%-5d",f(i));
		if (i%5==0)
		{
   
			printf("\n");
		}
	}
    return 0;
}
//递归函数
int f(int n)
{
   	
    int sub;
 	if (n==1)
	{
   
        sub=0;
 	}else if (n==2)
    {
   
        sub=1;
  	}
    else
    {
   
        sub=f(n-1)+f(n-2);
    }
    return sub;
}
*/
/*2、编写函数fun,它的功能是:输出一个1000以内能被3整除且个位数为6的所有
整数,返回这些数的个数。*/
#include<stdio.h>
int fun();
int main()
{
   
	int x;
	x = fun();
	printf("1000以内能被3整除且个位数为6的个数为:%d\n",x);
}
int fun()
{
   
	int i;
	int count=0;
	for (i=1;i<=1000;i++)
	{
   
		if (i%10==6)
		{
   
			if (i%3==0)
			{
   
				printf("%-4d",i);
				count++;
			}
		}
	}
	return count;
}

2014年

/*1、输入任意个正整数,如输入负数则结束输入,求其中能被3整除但不能被7整除
的个数。*/
#include<stdio.h>
int main()
{
   
	int x;
	int count=0;
	printf("请输入任意个正整数:\n");
	scanf("%d",&x);
	while(x>=0)
	{
   
		if (x%3==0&&x%7!=0)
		{
   
			count++;
		}
		scanf("%d",&x);
	}
	printf("满足条件的个数为:%d",count);
}

/*2、a是一个 2*4 的整型数组,且各元素均已赋值,函数max_value 可求出其中
的最大元素值 max,并将此值返回主调函数。今有函数调用语句 max=max_value(a)
;请编写 max_value 函数。
max_value(int arr[][4]){
   	}	*/
#include<stdio.h>
int max_value(int arr[][4]);
int main()
{
   
	int a[][4]={
   1,3,5,7,2,4,8,6,};
	int max;
	max = max_value(a);
	printf("最大值为:%d\n",max);
	return 0;
}
int max_value(int arr[][4])
{
   
	int i,j,max;
	max = arr[0][0];
	for (i=0;i<=1;i++)
	{
   
		for (j=0;j<=3;j++)
		{
   
			if (arr[i][j]>max)
			{
   
				max = arr[i][j];
			}
		}
	}
	return max;
}
/*3、一个数如果刚好与它所有的真因子之和相等,则称该数为一个“完数”,
如:6=1+2+3,则6就是一个完数。求出200到500之间所有的完数之和。*/
#include<stdio.h>
int main()
{
   
	int i,j;
	int count,sum = 0;
	for (i=200;i<=500;i++)
	{
   
		count = 0;
		for (j=1;j<=i/2;j++)
		{
   
			if (i%j==0)
			{
   
				count += j;
			}
		}
		if (i==count)
		{
   
			sum += i;
		}
	}
	printf("所有完数之和:%d",sum);
	return 0;
}
/*4、编写自定义函数 prime(int x),判断x是否为素数。利用此函数编写程序
找出3~5000中的所有素数,并输出素数的个数。*/
#include<stdio.h>
int prime(int x);
int main()
{
   
	int x,j,flag;
	int count=0;
	printf("请输入一个数x:\n");
	scanf("%d",&x);
	flag=prime(x);
	if (flag==1)
	{
   
		printf("该数是素数\n");
	}
	else
	{
   
		printf("该数不是素数\n");
	}
	for (j=3;j<=5000;j++)
	{
   
		if(prime(j)==1)
		{
   
			count++;
		}
	}
	printf("3~5000所有素数个数为:\n%d",count);
	return 0;
}
int prime(int x)
{
   
	int i;
	for (i=2;i<x;i++)
	{
   
		if (x%i==0)
		{
   
			break;
		}
	}
	return i==x;
}

若有改进之处,欢迎指正!