c语言程序设计网上作业源代码参考

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

25、个人所得税(实验题)

假设工资税金按以下方法计算: x≤1000元,不收取税金;1000< x≤2000,收取5%的税金: 2000< x ≤ 3000,收取10%的税金;3000< x ≤ 4000,收取15%的税金;4000< x≤5000,收取20%的税金;x>5000,收取25%的税金。编写一个程序,输入工资金额,输出应收取税金额度,要求分别用if语句或switch语句来实现。

输入:有多组输入,每组输入为一个double类型的工资,当其为0时,程序结束运行,输出:每行输入应一行输出,输出应缴税金, double型。

代码:#include

int main(void)

{

double salary,tax1,tax2;

int a;

while(scanf("%lf",&salary)&&salary!=0)

{

a=(int)salary/1000;

if(a==0) tax1=0;

else if(a==1) tax1=(salary-1000)*0.05;

else if(a==2) tax1=(salary-2000)*0.10+50;

else if(a==3) tax1=(salary-3000)*0.15+150;

else if(a==4) tax1=(salary-4000)*0.20+300;

else tax1=(salary-5000)*0.25+500;

switch(a)

{

case 0:

tax2=0;

break;

case 1:

tax2=(salary-1000)*0.05;

break;

case 2:

tax2=(salary-2000)*0.10+50;

break;

case 3:

tax2=(salary-3000)*0.15+150;

break;

case 4:

tax2=(salary-4000)*0.20+300;

break;

default:

tax2=(salary-5000)*0.25+500;

}

printf("%.6lf\n",tax1);

}

return 0;

}

26、正整数逆转(实验题)

编写一个程序,将用户输入的任意正整数逆转。

输入:有多组输入,每组包含一个正整数m,当其为0时程序结束运行。

输出:每行输入对应一行输出。

代码:

#include

void main()

{

int n, a[10], i, j;

while(scanf("%d", &n)&&n!=0)//scanf()成功读取并且n不为0

{

j=0;//注意把0赋值给j要在循环内

while(n>0)

{

a[j++] = n%10;

n /= 10;

}

for(i=0; i

printf("%d", a[i]);

printf("\n");

}

}

27、杨辉三角(实验题)

打印杨辉三角输入:有多组输入,每组对应于一行,每行输入一个正整数n,当n为0时程序结束运行输出:对于每一个正整数n(1<=n<=12),输出其相应的杨辉三角,两个杨辉三角用空行隔开

代码:

#include

int C(int i,int j);//组合数函数

int main(void)

{

int i,j,n,space;

while(scanf("%d",&n)&&n!=0)

{

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

{

for(space=1;space<=2*n-2-2*i;space++)//打印空格,找到空格和n,i的关系putchar(' ');

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

{

if(j==0)//每行第一个数字没有宽度

printf("%d",C(i,j));

else

printf("%4d",C(i,j));//从第二个开始宽度为4

}

printf("\n");

}

printf("\n");

}

return 0;

}

int C(int i,int j)

{

int s;

if(j==0) s=1;

else s=C(i,j-1)*(i-j+1)/j;

return s;

}

28、求方程近似根(实验题,选做题)

题目:(实验2.3,选做题) ,

输入:无

输出:方程的根, double类型

代码:

#include

double f1(double x);//f1(x)=f(x)

double f2(double x);//f2(x)=f'(x)

int main(void)

{

double a=0,b,e=1e-6;

do

{

b=a-f1(a)/f2(a);

b=b-a;

a=a+b;

b=a-b;//交换a与b的值

}while((a-b)>0?(a-b):(b-a)/*|a-b|*/>e);

printf("%lf\n",a);

return 0;

}

double f1(double x)

{

return 3*x*x*x-4*x*x-5*x+13;

}

double f2(double x)

{

return 9*x*x-8*x-5;

}

29、歌德巴赫猜想(实验题)

歌德巴赫猜想:任一个大于等于6的偶数都可以表示为两个素数之和。编写程序,证明对于在正整数begin和end之间的偶数这一猜想成立。

输入:每行为一组输入,每行有两个100以内的正整数,分别为begin和end(begin>6, end ≥begin),当begin为0时程序结束运行。

输出:每组输入对应一组输出,每组输出格式参考样例输出,对于每个偶数,只需输出其第一个成立的式子(即被加数最小的情况);

每两组输出用空行隔开,

代码:

#include

int isPrime(int n);//素数判断函数原型声明

int main(void)

{

int a,b,i;

while(scanf("%d%d",&a,&b)&&a>=6&&a<=b&&a!=0)

{

for(a=!(a%2)?a:a+1;a<=b;a+=2)//a不是偶数a初始值+1

{

for(i=2;i<=a/2;i++)

{

if(isPrime(i)&&isPrime(a-i)==1)//两个数都为素数

{

printf("%d=%d+%d\n",a,i,a-i);

break;//证毕直接跳出循环

相关文档
最新文档