这是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;
}
若有改进之处,欢迎指正!