c语言程序设计网上作业源代码参考
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;//证毕直接跳出循环