C语言程序设计(第三版)

目录

11页

第三题

57页

第一题

第二题

第三题

第四题

第五题

第六题

第七题

95页

第一题

第二题

第三题

第四题

第五题

第六题

第七题

122页

第一题

第二题

第三题

第四题

第五题

第六题

第七题

第八题

第九题

第十题

第十一题

第十二题

第十三题

第十四题

第十五题

第十六题

第十七题

第十八题

第十九题

二十题

二十一题

二十二题

166 页

第一题

第二题

第三题

第四题

第五题

第六题

第七题

第八题


11页

第三题

(1)

#include<stdio.h>
int main()
{
	int a_mxy,b,c;
	printf("请输入要交换的两个数的值:\n");
	scanf("%d %d",&a_mxy,&b);
	c=a_mxy;
	a_mxy=b;
	b=c;
	printf("交换后的值为%d %d\n",a_mxy,b);
	return 0;
}

(2)

#include<stdio.h>
int main()
{
	double s_mxy=0;
	int i=0;
	while(++i<=100)
	{
		s_mxy+=1.0/i;
	}
	printf("运算结果:%lf\n",s_mxy);
	return 0;
}

57页

第一题

#include<stdio.h>
int main()
{
	double l1_mxy,l2,h;
	printf("请输入梯形上底,下底,高:\n");
	scanf("%lf %lf %lf",&l1_mxy,&l2,&h);
	printf("梯形的面积为:%lf\n",(l1_mxy+l2)*h/2);
	return 0;
}

第二题

#include<stdio.h>
int main()
{
	double lenth_mxy,width,x;
	printf("请输入矩形草坪的长和宽,以及修剪草坪的速度x:\n");
	scanf("%lf %lf %lf",&lenth_mxy,&width,&x);
	printf("修剪草坪所需时间为:%lf\n",lenth_mxy*width/x);
	return 0;
}

第三题

#define PI 3.14
#include<stdio.h>
int main()
{
	double r_mxy,h;
	printf("请输入圆柱的半径和高:\n",&r_mxy,&h);
	scanf("%lf %lf",&r_mxy,&h);
	printf("圆柱的体积是:%lf,圆柱的表面积是:%lf\n",PI*r_mxy*r_mxy*h,2*PI*r_mxy*(h+r_mxy));
	return 0;
}

第四题

#include<stdio.h>
#include<math.h>
int main()
{
	double x1_mxy,y1,x2,y2;
	printf("请输入两点坐标:\n");
	scanf("%lf %lf %lf %lf",&x1_mxy,&y1,&x2,&y2);
	printf("两点距离为:%lf\n",sqrt((x1_mxy-x2)*(x1_mxy-x2)+(y1-y2)*(y1-y2)));
	return 0;
}

第五题

#include<stdio.h>
int main()
{
	float B_mxy,S,P,T;
	printf("请输入基本工资,本月基本营业额,营业额提成的比例:\n");
	scanf("%f %f %f",&B_mxy,&S,&P);
	T=B_mxy+S*P;
	printf("实发工资为:%f\n",T);
	return 0;
}

第六题

#include<stdio.h>
int main()
{
	int n_mxy,sum=0;
	printf("请输入数字:\n");
	scanf("%d",&n_mxy);
	while(n_mxy)
	{
		sum+=n_mxy%10;
		n_mxy/=10;
	}
	printf("数位数字之和是:%d\n",sum);
	return 0;
}

第七题

#include<stdio.h>
int main()
{
	double A1_mxy,B1,C1,A2,B2,C2,x,y;
	printf("请输入系数常量:\n");
	scanf("%lf %lf %lf %lf %lf %lf",&A1_mxy,&B1,&C1,&A2,&B2,&C2);
	x=(C1*B2-C2*B1)/(A1_mxy*B2-A2*B1);
	y=(C1*A2-C2*A1_mxy)/(B1*A2-B2*A1_mxy);
	printf("解x=%lf,y=%lf\n",x,y);
	return 0;
}

95页

第一题

#include<stdio.h>
int main()
{
	double x_mxy,y;
	printf("请输入x的值\n");
	scanf("%lf",&x_mxy);
	if(x_mxy<0)
		y=2*x_mxy-1;
	else if(x_mxy<10)
		y=2*x_mxy+10;
	else if(x_mxy<100)
		y=2*x_mxy+100;
	else
		y=x_mxy*x_mxy;
	printf("y=%lf\n",y);
	return 0;
}

第二题

#include<stdio.h>
int Judge(int n)
{
	if(n%6&&n%9&&n%14)
		return 0;
	else
		return 1;
}
int main()
{
	int n_mxy;
	printf("请输入数字:\n");
	scanf("%d",&n_mxy);
	if(Judge(n_mxy))
		printf("%d能被6、9、14整除\n",n_mxy);
	else
		printf("%d不能被6、9、14整除\n",n_mxy);
    return 0;
}

第三题

#include<stdio.h>
int Judge(int n)
{
	if(n==n%100)
		return 1;
	else
		return 0;
}
int main()
{
	int m_mxy;
	printf("请输入数字:\n");
	scanf("%d",&m_mxy);
	if(Judge(m_mxy))
		printf("%d是守形数\n",m_mxy);
	else
		printf("%d不是守形数\n",m_mxy);
	return 0;
}

第四题

#inclue<stdio.h>
int main()
{
	int dB_mxy;
	printf("请输入分贝的值:\n");
	scanf("%d",&dB_mxy);
	if(dB_mxy<=50)
		printf("安静\n");
	else if(dB_mxy<=70)
		printf("吵闹,有损神经\n");
	else if(dB_mxy<=90)
		printf("很吵,神经细胞受到破坏\n");
	else if(dB_mxy<=100)
		printf("吵闹加剧,听力受损\n");
	else if(dB_mxy<=120)
		printf("难以忍受,带一分钟即暂时致聋\n");
	else
		printf("极度聋或全聋\n");
	return 0;
}

第五题

#include<stdio.h>
int getprice(int a,int b)
{
	int tnum,sump=0;
	if(a&&b)
	{
		if(a>b)
		{
			tnum=b;
			if(tnum<50)
				sump+=tnum*90+(a-tnum)*60;
			else
				sump+=tnum*80+(a-tnum)*60;
		}
		else
		{
			tnum=a;
			if(tnum<50)
				sump+=tnum*90+(b-tnum)*45;
			else
				sump+=tnum*80+(b-tnum)*45;
		}
	}
	else
	{
		if(a)
			sump=a*60;
		else
			sump=b*60;
	}
	return sump;
}
int main()
{
	int a_mxy,b;
	printf("请输入购买的上衣数与下衣数:\n");
	scanf("%d %d",&a_mxy,&b);
	printf("收款总额是%d\n",getprice(a_mxy,b));
	return 0;
}

第六题

#include<stdio.h>
#include<math.h>
double getY(double a,double b)
{
	double Y;
	if(a>0)
	{
		if(b>0)
			Y=cos(a)+cos(b);
	    else
			Y=sin(a)+sin(b);
	}
	else
	{
		if(b>0)
			Y=cos(a)+sin(b);
		else
			Y=sin(a)+cos(b);
	}
	return Y;
}
int main()
{
	double a_mxy,b,Y;
	printf("请输入a,b的值\n");
	scanf("%lf %lf",&a_mxy,&b);
	Y=getY(a_mxy,b);
	printf("Y的值为%lf\n",Y);
	return 0;
}

第七题

#include<stdio.h>
int main()
{
	double p_mxy,w,s,d,f;
	printf("请输入基本运费,货物重量,距离:\n");
	scanf("%lf %lf %lf",&p_mxy,&w,&s);
	if(s<250)
		d=0;
	else if(s<500)
		d=0.02;
	else if(s<1000)
		d=0.05;
	else if(s<2000)
		d=0.08;
	else if(s<3000)
		d=0.1;
	else
		d=0.15;
	f=p_mxy*w*s*(1-d);
	printf("总运费是%lf\n",f);
	return 0;
}

122页

第一题

#include<stdio.h>
int main()
{
	int x=1,sum=0;
	for(x=1;x<=20;x++)
		sum+=2*x*x+3*x+1;
	printf("结果为%d\n",sum);
	return 0;
}

第二题

#include<stdio.h>
int main()
{
	int n,i=1;
	double sum=0;
	printf("请输入n的值(n<=1600):\n");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		sum+=(double)(4*i*i)/(2*i-1)*(2*i+1);
	printf("结果是:%lf\n",sum);
	return 0;
}

第三题

#include<stdio.h>
double getmoney(double t,double r,int n)
{
	while(n--)
	{
		t=t*(1+r);
	}
	return t;
}
int main()
{
	double t,r;
	int n;
	printf("请输入本金,利率,存款年数:\n");
	scanf("%lf %lf %d",&t,&r,&n);
	printf("本息是:%lf\n",getmoney(t,r,n));
	return 0;
}

第四题

#include<stdio.h>
int Isyear(int n)
{
	if(n%4==0&&n%100||n%400==0)
		return 1;
	else
		return 0;
}
int main()
{
	int i=1;
	for(i=1;i<=10000;i++)
	{
		if(Isyear(i))
			printf("%-5d",i);
	}
	return 0;
}

第五题

#include<stdio.h>
int main()
{
	int i=1,n=20,s=2;
	double sum=0;
	while(n--)
	{
		sum+=(double)s/i;
		s+=i;
		i=s-i;
	}
	printf("结果是:%lf\n",sum);
	return 0;
}

第六题

#include<stdio.h>
int main()
{
	int i=1;
	double sum=0,ret=1;
	while(ret>1.0E-6)
	{
		ret=1.0/(i*i+1);
		sum+=ret;
		i++;
	}
	printf("结果是:%lf\n",sum);
	return 0;
}

第七题

#include<stdio.h>
int main()
{
	int i=1;
	double sum=0,ret=1;
	while(ret>1.0E-6)
	{
		ret=1.0/i;
		sum+=ret;
		i+=i+1;
	}
	printf("结果是:%lf\n",sum);
	return 0;
}

第八题

#include<stdio.h>
int main()
{
	int count=0;
	double n=14,r=0.008;
	while(n<26)
	{
		n=n*(1+r);
		count++;
	}		
	printf("需要%d年达到26亿\n",count);
	return 0;
}

第九题

#include<stdio.h>
int main()
{
	double temp=1,ret=1,sum=1,i=1;
	while(temp>1.0E-5)
	{
		temp=1.0/ret;
		sum+=temp;
		i++;
		ret*=i;
	}
	printf("结果是:%lf\n",sum);
	return 0;
}

第十题

#include<stdio.h>
int main()
{
	int n=1,sum=0,ret=1;
	while(n++<=20)
	{
		sum+=ret;
		ret*=n;
	}
	printf("结果是:%d\n",sum);
	return 0;
}

第十一题

#include<stdio.h>
#include<math.h>
int wfnum(int n)
{
	int sum=0,ret=n;
	while(ret)
	{
		sum+=(int)pow(ret%10,3.0);
		ret/=10;
	}
	if(sum==n)
		return 1;
	else
		return 0;
}
int main()
{
	int i=100;
	for(i=100;i<1000;i++)
	{
		if(wfnum(i))
			printf("%d ",i);
	}
	return 0;
}

第十二题

#include<stdio.h>
int Istnum(long long n)//这里可改用字符串来求任意位的手形数
{
	int i = 0;
	while (n / pow(10, i) >= 10)
	{
		i++;
	}
	if (n == pow(n%pow(10, i)), 2)
		return 1;
	else
		return 0;
}
int main()
{
	long long n;
	printf("请输入数字:\n");
	scanf("%lld", &n);
	if (Istnum(n))
		printf("%lld是守形数\n",n);
	else
		printf("%lld不是守形数\n");
	return 0;
}

第十三题

#include<stdio.h>
long long Snum(long long a, int n)
{
	long long sum = 0,ret = a;
	while (n--)
	{
		sum += a;
		a = a * 10 + ret;
	}
	return sum;
}
int main()
{
	long long a;
	int n;
	printf("请输入a和n\n");
	scanf("%lld %d", &a, &n);
	printf("结果是%lld\n", Snum(a, n));
	return 0;
}

第十四题

#include<stdio.h>
int Comnum(int n)
{
	int sum = 0, i = 0;
	while (sum != n)
	{
		sum += ++i;
		if (sum > n)
			return 0;
	}
	return 1;
}
int main()
{
	int i = 1;
	for (i = 1; i <= 1000; i++)
	{
		if (Comnum(i))
			printf("%d ", i);
	}
	return 0;
}

第十五题

#include<stdio.h>
int main()
{
	int grade = 0, c_1 = 0, c_2 = 0, c_3 = 0, c_4 = 0, c_5=0, n = 20;
	printf("请输入20个成绩\n");
	while (scanf("%d", &grade) && n--)
	{
		if (grade >= 90)
			c_1++;
		else if (grade >= 80)
			c_2++;
		else if (grade >= 70)
			c_3++;
		else if (grade >= 60)
			c_4++;
		else
			c_5++;
	}
	printf("90分以上的人数为:%d,80~89的为:%d,70~79的为:%d,60~69的为:%d,小于60分的为:%d\n", c_1, c_2, c_3, c_4, c_5);
	return 0;
}

第十六题

#include<stdio.h>
int main()
{
	int count = 0, grade;
	double sum = 0;
	printf("请输入成绩\n");
	while (scanf("%d", &grade) && grade != -99)
	{
		count++;
		sum += grade;
	}
	printf("学生的平均成绩是:%lf\n",sum/count);
	return 0;
}

第十七题

#include<stdio.h>
int Dtnum(int m, int n)
{
	int i = 1, sum = 0;
	for (i = 1; i <= n; i++)
	{
		if (m%i == 0 && n%i == 0)
			sum += i;
	}
	return sum;
}
int main()
{
	int m, n;
	printf("请输入两个数:\n");
	scanf("%d %d", &m, &n);
	printf("公约数之和为:%d\n", Dtnum(m, n));
	return 0;
}

第十八题

#include<stdio.h>
int main()
{
	int boy, girl, child;
	for (boy = 0; boy < 10; boy++)
	{
		for (girl = 0; girl < 13; girl++)
		{
			for (child = 0; child < 37; child++)
			{
				if (4 * boy + 3 * girl+child ==36&& boy + girl + child == 36)
					printf("需要男%d人,女%d人,小儿%d人.\n", boy, girl, child);
			}
		}
	}
}

第十九题

#include<stdio.h>
int main()
{
	int x, y, z;
	for (x = 1; x <= 600; x++)
	{
		for (y = x + 1; y <= 800; y++)
		{
			for (z = y + 1; z <= 1000; z++)
			{
				if (x*x + y * y == z * z)
					printf("一组勾股数:%d %d %d\n", x, y, z);
			}
		}
	}
}

二十题

#include<stdio.h>
#include<math.h>
double calu(double n)
{
	double sum=1;
	while(n)
	{
		sum*=n;
		n--;
	}
	return sum;
}
double f(double n,double x)
{
	return pow(-1.0,n-1)*pow(x,2*n-1)/calu(2*n-1);
}
double Mysin(double x)
{
	double sum=0,ret=x;
	double i=1;
	while(fabs(ret)>1.0E-5)
	{
		ret=f(i,x);
		sum+=ret;
		i++;
	}
	return sum;
}
int main()
{
	double x;
	printf("请输入x的值:\n");
	scanf("%lf",&x);
	printf("Mysin(%lf)=%lf\n",x,Mysin(x));
	return 0;
}

二十一题

#include<stdio.h>
int  Fibonacci(int n)
{
	if(n==1||n==2)
		return 1;
	else
		return Fibonacci(n-1)+Fibonacci(n-2);
}
int main()
{
	int n;
	printf("请输入n的值:\n");
	scanf("%d",&n);
	printf("斐波那契数列第%d项是:%d\n",n,Fibonacci(n));
	return 0;
}

二十二题

#include<stdio.h>
double p(int n,int x)
{
	if(n==0)
		return 1;
	else if(n==1)
		return x;
	else
		return (2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x)/n;
}
int main()
{
	int n,x;
	printf("请输入n,x的值\n");
	scanf("%d %d",&n,&x);
	printf("结果是:%lf\n",p(n,x));
	return 0;
}

166 页

第一题

#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
	char a[100];
	printf("请输入字符串\n");
	gets(a);
	int bc = 0, sc = 0, digit = 0, len = strlen(a), i;
	for (i = 0; i < len; i++)
	{
		if (isupper(a[i]))
			bc++;
		if (islower(a[i]))
			sc++;
		if (isdigit(a[i]))
			digit++;
	}
	printf("大写字母%d个,小写字母%d个,数字%d个\n", bc, sc, digit);
	return 0;
}

第二题

#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
	char str1[100], str2[100];
	printf("请输入字符串\n");
	gets(str2);
	int i, j = 0;
	for (i = 0; i < strlen(str2); i++)
	{
		if (islower(str2[i]))
			str1[j++] = str2[i];
	}
	str1[j] = '\0';
	printf("%s\n", str1);
}

第三题

#include<stdio.h>
#include<string.h>
int _upr_len(char str[])
{
	int count = 0, i;
	for (i = 0; i < strlen(str); i++)
	{
		if (str[i] >= 'A'&&str[i] <= 'Z')
			count++;
	}
}
int main()
{
	char a[100];
	printf("请输入字符串\n");
	gets(s);
	printf("大写字母个数是:%d\n", _upr_len(a));
	return 0;
}

第四题

#include<stdio.h>
#include<string.h>
#include<ctype.h>
void fun(char*s)
{
	int i;
	for (i = 0; i < strlen(s); i++)
	{
		if(isupper(s[i]))
			s[i]=tolower(s[i]);
		else if (islower(s[i]))
			s[i]=toupper(s[i]);
	}
}
int main()
{
	char a[100];
	printf("请输入字符串\n");
	gets(a);
	fun(a);
	printf("转换后的字符串\n");
	printf("%s",a);
	return 0;
}

第五题

#include<stdio.h>
#include<string.h>
void str_inv(char*s)
{
	int i = 0, len = strlen(s);
	while (i < len/2)
	{
		char ret = s[i];
		s[i] = s[len - i-1];
		s[len - i-1] = ret;
		i++;
	}
}
int main()
{

	char a[100];
	printf("请输入字符串\n");
	gets(a);
	str_inv(a);
	printf("逆序后的字符串\n");
	printf("%s", a);
	return 0;
}

第六题

#include<stdio.h>
#include<string.h>
int str_cmp(char s1[], char s2[])
{
	while (*s1++==*s2++&&*s1!='\0'&&*s2!='\0')
	{
		;
	}
	return *s1 - *s2;
}
int main()
{
	int s1[100], s2[100];
	printf("请输入字符串s1\n");
	gets(s1);
	printf("请输入字符串s2\n");
	gets(s2);
	if (!str_cmp(s1, s2))
		printf("两字符串相等\n");
	else
		printf("两字符串不相等\n");
	return 0;
}

第七题


#include<stdio.h>
#include<string.h>
void replace(char s[], char c1, char c2)
{
	int i;
	for (i = 0; i < strlen(s); i++)
	{
		if (s[i] == c1)
			s[i] = c2;
	}
}
int main()
{
	char s[100], c1, c2;
	printf("请输入字符串\n");
	gets(s);
	printf("请输入被替换字符\n");
	scanf("%c", &c1);
	printf("请输入替换字符\n");
	getchar();
	scanf("%c", &c2);
	replace(s, c1, c2);
	printf("替换后的字符串\n");
	printf("%s", s);
	return 0;
}

第八题

#include<stdio.h>
#include<string.h>
#include<ctype.h>
void str_encrypt(char str[])
{
	int i;
	for (i =0; i < strlen(str); i++)
	{
		if (isupper(str[i]))
		{
			if (isalpha(str[i] + 4))
				str[i] += 4;
			else
				str[i] = 'D' - 'Z' + str[i];
		}
		else if (islower(str[i]))
		{
			if(isalpha(str[i] + 4))
				str[i] += 4;
			else
				str[i] = 'd' - 'z' + str[i];
		}
	}
}
int main()
{
	char s[100];
	printf("请输入字符串\n");
	gets(s);
	str_encrypt(s);
	printf("加密后的字符串\n");
	printf("%s", s);
	return 0;
}

  • 12
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

...404 Not Found

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值