/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:判断一个整数w的各位数字平方之和能否被5整除,
可以被5整除则返回1,否则返回0。
------------------------------------------------*/
#include <stdio.h>
#include"conio.h"
void wwjt();
int fun(int w)
{
/**********Program**********/
/********** End **********/
}
main()
{
int m;
printf("Enter m: ");
scanf("%d", &m);
printf("\nThe result is %d\n", fun(m));
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int c ;
int t;
int o;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Read FILE Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Write FILE Error");
} for(c=1;c<=5;c++)
{
fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%d\n",o);
}
fclose(IN);
fclose(OUT);
}
【程序改错】
--------------------------------------------------------
功能:企业发放的奖金根据利润提成。利润(i)低于或等于10万元
时,奖金可提10%;利润高于10万元,低于20万元时,低于
10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;
20万到40万之间时,高于20万元的部分,可提成5%;40万
到60万之间时高于40万元的部分,可提成3%;60万到100万
之间时,高于60万元的部分,可提成1.5%,高于100万元时,
超过100万元的部分按1%提成,从键盘输入当月利润i,求
应发放奖金总数?
------------------------------------------------------*/
#include <stdio.h>
main()
{
long int i;
double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
/**********FOUND**********/
scanf("%ld"&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
/**********FOUND**********/
if(i>100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
/**********FOUND**********/
printf("bonus=%d",bonus)
}
【程序填空】
---------------------------------------------------------
功能:计算某日是当年的第几天。
-------------------------------------------------------*/
#include <stdio.h>
struct
{
int year;
int month;
int day;
}data; /* 定义一个结构并声明对象为data */
void main()
{
int days;
printf("请输入日期(年,月,日):");
scanf("%d, %d, %d", &data.year, &data.month, &data.day);
switch(data.month)
{
case 1:days = data.day;
break;
/***********SPACE***********/
case 2:days = data.day+【?】;
break;
case 3:days = data.day+59;
break;
case 4:days = data.day+90;
break;
/***********SPACE***********/
case 5:days = data.day+【?】;
break;
case 6:days = data.day+151;
break;
case 7:days = data.day+181;
break;
case 8:days = data.day+212;
break;
case 9:days = data.day+243;
break;
case 10:days = data.day+273;
break;
case 11:days = data.day+304;
break;
case 12:days = data.day+334;
break;
}
/***********SPACE***********/
if(data.year%4==0&&data.year%100!=0【?】data.year%400==0)
if(data.month>=3)
/***********SPACE***********/
days =【?】;
printf("%d月%d日是%d年的第%d天.\n", data.month, data.day, data.year, days);
}
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:求出以下分数序列的前n项之和。和值通过函数值返回main
函数。
2/1+3/2+5/3+8/5+13/8+21/13 ……
例如:若n = 5,则应输出:8.391667。
------------------------------------------------------*/
#include <conio.h>
#include <stdio.h>
/**********FOUND**********/
fun ( int n )
{
int a, b, c, k; double s;
s = 0.0; a = 2; b = 1;
for ( k = 1; k <= n; k++ )
{
/**********FOUND**********/
s = (double)a / b;
c = a;
a = a + b;
b = c;
}
/**********FOUND**********/
return c;
}
main( )
{
int n = 5;
printf( "\nThe value of function is: %lf\n", fun ( n ) );
}
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:给出一个正整数,找到一组连续的数,使之累加和等于给
定的正整数。输出存在多少组这样连续的数,及每组的左
右边界。
例如:15=1+2+3+4+5
15=4+5+6
15=7+8
所以结果有3组值分别是1->5, 4->6, 7->8
-------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
long left, right;
long sum;
long GiVEN;
int count = 0;
char line[100];
printf("\nConsecutive sum to a fixed given number");
printf("\n=======================================\n");
printf("\nYour number (> 0) please ---> ");
gets(line);
GiVEN = atol(line);
for (sum = 0, right = 1; sum < GiVEN; sum += right, right++)
;
for (left = 1, right--; left <= GiVEN/2; )
if (sum > GiVEN)
{
sum -= left;
/***********SPACE***********/
【?】;
}
else
{
if (sum == GiVEN)
{
printf("\n%ld = sum from %ld to %ld",
GiVEN, left, right);
/***********SPACE***********/
【?】;
}
/***********SPACE***********/
【?】;
sum += right;
}
if (count > 0)
printf("\n\nThere are %d solutions in total.", count);
else
printf("\n\nSorry, there is NO solution at all.");
}
---------------------------------------------------------
题目:函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,
素数的个数作为函数值返回。
-------------------------------------------------------*/
#include <stdio.h>
int fun(int n)
{
int i,j, count=0;
printf("\nThe prime number between 3 to %d\n", n);
for (i=3; i<=n; i++)
{
/***********SPACE***********/
for (【?】; j<i; j++)
/***********SPACE***********/
if (【?】 == 0)
break;
/***********SPACE***********/
if (【?】>=i)
{
count++;
printf( count%15? "%5d":"\n%5d",i);
}
}
return count;
}
main()
{
int n=20, r;
r = fun(n);
printf("\nThe number of prime is : %d\n", r);
}
【程序改错】
---------------------------------------------------------
题目:下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构
成一个新数放在t中。高位仍在高位,低位仍在低位。
例如:当s中的数为87653142时,t中的数:8642。
-------------------------------------------------------*/
#include <stdio.h>
void fun (long s, long *t)
{
int d;
long sl=1;
*t = 0;
while ( s > 0)
{
d = s%10;
/***********FOUND***********/
if (d%2=0)
{
*t=d* sl+ *t;
sl *= 10;
}
/***********FOUND***********/
s \= 10;
}
}
main()
{
long s, t;
printf("\nPlease enter s:");
scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld\n", t);
}
【程序填空】
---------------------------------------------------------
功能:用冒泡法对数组a 进行由小到大的排序。
-------------------------------------------------------*/
#include <stdio.h>
void fun(int a[],int n)
{
int i,j,t;
/***********SPACE***********/
for (j=0; 【?】;j++)
/***********SPACE***********/
for (i=0; 【?】;i++)
/***********SPACE***********/
if(【?】)
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
main()
{
int i,a[10]={3,7,5,1,2,8,6,4,10,9};
/***********SPACE***********/
【?】;
for(i=0;i<10;i++)
printf("%3d",a[i]);
}
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:从键盘上输入两个复数的实部与虚部,求出并输出它们的
和、差、积、商。
-------------------------------------------------------*/
#include<stdio.h>
void main()
{
float a,b,c,d,e,f;
printf("输入第一个复数的实部与虚部:");
scanf("%f, %f",&a,&b);
printf("输入第二个复数的实部与虚部:");
scanf("%f, %f",&c,&d);
/***********SPACE***********/
【?】;
f=b+d;
printf("相加后复数:实部:%f,虚部:%f\n",e,f);
e=a*c-b*d;
/***********SPACE***********/
【?】;
printf("相乘后复数:实部:%f,虚部:%f\n",e,f);
e=(a*c+b*d)/(c*c+d*d);
/***********SPACE***********/
【?】;
printf("相除后复数:实部:%f,虚部:%f\n",e,f);
}