文档库 最新最全的文档下载
当前位置:文档库 › C语言期末考试编程题

C语言期末考试编程题

C语言期末考试编程题
C语言期末考试编程题

1.打印出所有的“水仙花数”,并按照一行5个的格式输出。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3。

#include

void main()

{

int a,b,c,s,i=0;

for(s=100;s<1000;s++)

{

c=s%10;

b=s/10%10;

a=s/100;

if(s==a*a*a+b*b*b+c*c*c)

{

printf("%d\t",s); ++i;

if(i%5==0)

printf("\n"); }

}

}

2.求1+2!+3!+...+20!的和

#include

void main()

{

double fact=1.0,sum=0.0;

int i,j;

for(i=1;i<=20;i++)

{

for(j=1;j<=i;j++)

fact*=j;

sum+=fact;

fact=1;

}

printf("%.0f\n",sum);

}

3.输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

#include

#include

void main()

{

long num;

int a,b,c,d;

printf("Please input the number:");

scanf("%d",&num);

if(num<=9999||num>=100000) {

printf("%The number is error!\n");

exit(0);

}

a=num/10000;

b=num/1000%10;

c=num/10%10;

d=num%10;

if(a==d&&b==c)

printf("\nYes,the %ld is palindrome!\n",num);

else

printf("\nNo,the %ld is not palindrome!\n",num);

}

4. 求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并并按照一行5个的格式输出。

#include

void main()

{

int num,i=0;

for(num=1;num<=1000;num++)

if(((num%7||num%11)==1)&&((num% 7&&num%11)==0))

{

printf("%d\t",num); ++i;

if(i%5==0)

printf("\n");

}

}

5.编程列出200以内所有的素数,按照一行10个的格式输出,并求出所

有素数的平均值,

#include

#include

void main()

{

int i,j,k=0,sum=0,avg=0;

for(i=2;i<200;i++)

{

for(j=2;j<=sqrt(i);j++) if(i%j==0)

break;

if(j>sqrt(i))

{

printf("%d\t",i); ++k;

sum+=i;

if(k%10==0)

printf("\n");

}

}

avg=sum/k;

printf("\nThe average is %d\n",avg);

}

6、编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1+1/3+1/5...+1/n

#include

void main()

{

void odd(int n);

void even(int n);

int n;

printf("Please input the number:");

scanf("%d",&n);

if(n%2)

odd(n);

else

even(n);

}

void odd(int n)

{

float sum=0.0;

float j;

int i;

for(i=1;i<=n;i+=2) {

j=1.0/i;

sum+=j;

}

printf("%f\n",sum); }

void even(int n)

{

float sum=0.0;

int i;

float j;

if(n==0)

printf("%f\n",sum);

else

{

for(i=2;i<=n;i+=2)

{

j=1.0/i;

sum+=j;

}

printf("%f\n",sum);

}

}

7、已知abc+cba=1333,其中a,b,c 均为一位数,编程求出满足条件的a,b,c所有

组合。

#include

void main()

{

int a,b,c;

for(a=1;a<=9;a++)

for(b=0;b<=9;b++)

for(c=1;c<=9;c++)

if((100*a+10*b+c+100*c+10*b+a)= =1333)

printf("a=%d,b=%d,c=%d\n",a,b,c );

}

8、用户输入12个0-100之间的整

数,统计出小于60,60到79,80到100三个范围的整数各有多少个?

#include

#include

void main()

{

int i,j,k,n,num;

i=j=k=0;

printf("Please input the 12 numbers with 0~100:");

for(n=1;n<=12;n++)

{

scanf("%d",&num);

if(!(num>=0&&num<=100)) exit(0);

if(num<60) ++i;

else if(num<80) ++j;

else ++k;

}

printf("\nThere are %d numbers less than 60,%d numbers between 60 and 79,%d numbers between 80 and 100.\n",i,j,k); }

9、求这样一个三位数并输出该数字,该三位数等于其每位数字的阶乘之和。

即:abc = a! + b! + c!

#include

void main()

int a,b,c,num;

int s(int);

for(num=100;num<1000;num++) {

a=num/100;

b=num/10%10;

c=num%10;

if(num==s(a)+s(b)+s(c)) {

printf("The number is %d\n",num);

break;

}

}

s(int n)

{

int i,sum=1;

for(i=1;i<=n;i++)

sum*=i;

return sum;

}

10、猜数游戏:由用户随机输入一个1位正整数数让人来猜,只能猜5次,如果人猜对了,则在屏幕上显示“You are so clever”,否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止或者5次都猜不对给出提示“Game Over”。

#include

#include

void main()

{

int num,i,n;

printf("Please input the number with 0~9 for guessing:"); scanf("%d",&num);

system("cls");

if(num<0||num>9) exit(0); for(i=1;i<=5;i++)

{

printf("\nPlease input the number you guess:");

scanf("%d",&n);

if(num==n)

{

printf("\nYou are so clever!\n");

break;

}

else if(n

{

printf("\nThe number you input is little,go on please!You have %d times left!\n",5-i);

continue;

}

else

{

printf("\nThe number you input is large,go on please!You have %d times left!\n",5-i);

continue;

}

}

if(i>5) printf("Game Over!\n");

}

11、设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。

#include

void main()

{

int n,k,a,b,c,d;

for(n=1000;n<=9999;n++)

{

a=n/1000;

b=n/100%10;

c=n/10%10;

d=n%10;

k=1000*d+100*c+10*b+a; if(k==9*n)

printf("N=%d\n",n); }

}

12、100匹马驮100担货,大马一匹

相关文档