栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

《C语言程序设计》第4版 何钦铭、颜晖主编 课后习题答案 第10章 习题10

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《C语言程序设计》第4版 何钦铭、颜晖主编 课后习题答案 第10章 习题10

P261~264

一、选择题

1~4 A C B B         5 ABC         6 D

 二、填空题

1、5

2、720

3、g=4

      g=3

      k=6

4、文件包含,宏定义,条件编译

5、7,-13

三、程序设计题

第一题

#include//习题10.1 
#include
int perfect(int n)
{
	int i,count=0,x1,x2,x3;
	double x;
	for(i=101;i<=n;i++)//double sqrt(999)=31.6
	{
		x=sqrt(i);
		if(x==(int)x){//强制转换类型,如果不需要转换就相等,说明是完全平方数 
			x1=i%10;
			x2=i/10%10;
			x3=i/100;
			if((x1==x2)||(x2==x3)||(x1==x3)){
				count++;
				printf("%dn",i);
			}
		}
	}
	return count;
}
int main(void)
{
	int n;
	printf("Enter n(101~999):");
	scanf("%d",&n);
	printf("在101~%d之间存在两位数字相同且是完全平方数的有%d个。",n,perfect(n));

	return 0;
}

 第二题

#include//习题10.2 
double fact(int n)
{
	double result=1;
	if(n==1){
		result=1;
	}else{
		result=n*fact(n-1);
	}
	return result;
}
int main(void)
{
	int n,i;
	double sum=0;
	printf("Enter n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum+=fact(i);
	}
	printf("1!到%d!的和为;%.lf",n,sum);
	
	return 0;
} 

第三题

#include//习题10.3 
#include
double pow_x(double x,int n)
{
	double result;
	if(n==0){
		result=1;
	}else{
		result=x*pow_x(x,n-1); 
	}
	return result;
}
int main(void)
{
	int n,i;
	double x;
	printf("请输入实数x和正整数n:");
	scanf("%lf%d",&x,&n);
	printf("pow(%.lf,%d)=%.2lf",x,n,pow_x(x,n));
	
	return 0;
}

第四题

#include//习题10.4 
#include
double f(double x,int n)
{
	double result;
	if(n==1){
		result=x;
	}else {
		result=-x*f(x,n-1); 
	}
	
	return result;
}
int main(void)
{
	int n,i;
	double x,sum;
	printf("请输入实数x和正整数n:");
	scanf("%lf%d",&x,&n);
	for(i=1;i<=n;i++)
	{
		sum+=f(x,i);
	}
	printf("%.2lf",sum);
	
	return 0;
}

第五题

#include//习题10.5 
double ack(double m,double n)
{
	if(m==0){
		return n+1;
	}else if(n==0&&m>0){
		return ack(m-1,1);
	}else if(n>0&&m>0){
		return ack(m-1,ack(m,n-1));
	}
}
int main(void)
{
	double m,n;
	int i;
	printf("Enter m,n:");
	scanf("%lf%lf",&m,&n);
	printf("Ackermenn=%lf",ack(m,n));
	
	return 0;
}

第六题

#include//习题10.6 
int Fab(int n)
{
	if(n==0){
		return 0;
	}else if(n==1){
		return 1;
	}else {
		return Fab(n-2)+Fab(n-1);
	}
}
int main(void)
{
	int n;
	printf("Enter n:");
	scanf("%d",&n);
	printf("f(%d)=%d",n,Fab(n));
	
	return 0;
}

第七题

#include//习题10.7 
void  dectobin(int n)
{
	if(n==0){
	//	printf("十进制0对应的二进制为:%d",0);//0对应的二进制没有输出 
	}else {
		dectobin(n/2);
		printf("%d",n%2); 
	}
}
int main(void)
{
	int n;
	printf("Enter n:");
	scanf("%d",&n);
	dectobin(n);

	return 0;
}

第八题

#include//习题10.8 
void reverse(int n)
{
	if(n<=9){
		printf("%d",n);
	}else {
		printf("%d",n%10);
		reverse(n/10);
	}
}
int main(void)
{
	int n;
	printf("Enter n:");
	scanf("%d",&n);
	reverse(n);
	
	return 0;
}

第九题(待完善)

包含主函数的,命名为prime_count.c

#include
#include"prime.c"
int main(void)
{
	int n,a[10],count1=0,i,x;
	printf("Enter n(n<10):");
	scanf("%d",&n);
	printf("Enter %d numbers:",n);
	for(i=0;i 

判断素数的,命名为prime.c,两个放在同一个文件夹中

void  prime(int n)//是素数返回1
{
	int i,j,count=0;
	if(n<=1){
		puts("%d不是素数!",n);
	}else if(n==2){
		count++;
		puts("%d是素数!",n);
	}else {
		for(i=2;i=n/2){
			count++;
			puts("%d是素数!",n);
		}else puts("%d不是素数!",n);
	}
	puts("共有%d个素数",count);
	
}

第十题

定义s计算三角形面积

#include//习题10.10 定义计算s 
#include
#define S(a,b,c) (a+b+c)/2.0
int main(void)
{
	double a,b,c,s,Area;
	printf("Enter a,b,c:");
	scanf("%lf%lf%lf",&a,&b,&c); 
	s=S(a,b,c);
	Area=sqrt(s*(s-a)*(s-b)*(s-c));
	printf("三角形的面积为:%lf",Area);
	
	return 0;
}

 定义area计算三角形面积

#include//习题10.10 定义计算area
#include 
#define area(s,a,b,c)  sqrt(s*(s-a)*(s-b)*(s-c))
int main(void)
{
	double a,b,c,s,Area;
	printf("Enter a,b,c:");
	scanf("%lf%lf%lf",&a,&b,&c); 
	s=(a+b+c)/2;
    Area=area(s,a,b,c);
	printf("三角形的面积为:%lf",Area);
	
	return 0;
}

第十一题

#include//习题10.11 
int count=0;
void select(int a[],int option,int value);
void input(int a[]);
void output(int a[]);
void insert(int a[],int value);
void remove(int a[],int value);
void modify(int a[],int value);
void query(int a[],int value);

int main(void)
{
	int option,value,a[100];
	
	input(a);
	printf("[1]插入n");
	printf("[2]删除n");
	printf("[3]修改n");
	printf("[4]查找n");
	printf("[other option]结束n");
	while(1){
		printf("请输入你选择的函数编号:");
		scanf("%d",&option);
		if(option<1||option>4 ){
			break;
		} 
		printf("请输入参数:");
		scanf("%d",&value);
		select(a,option,value);
		printf("n"); 
	}
	printf("Thanks!");
	return 0;
} 

void select(int a[],int option,int value)//调用对应编号的函数 
{
	switch(option){
		case 1:insert(a,value);break;
		case 2:remove(a,value);break;
		case 3:modify(a,value);break;
		case 4:query(a,value);break;
	}
}

void input(int a[])//输入 
{
	printf("请输入数组元素数量:");
	scanf("%d",&count);
	printf("请输入一个有序数组:");
	for(int i=0;i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/951532.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号