当前位置: 首页 > news >正文

C Primer Plus 第6版 编程练习——第9章(上)

本章编程题共有11题,分上下两篇

1.设计一个函数min(x,y),返回两个double类型值的较小值。在一个简单的驱动程序中测试该函数。

double min(double x, double y)
{return x < y ? x : y;
}
int main()
{printf("The min of 3.14, 2.71 is %.2f\n", min(3.14, 2.71));
}



2.设计一个函数chline(ch,i,j),打印指定的字符j行i列。在一个简单的驱动程序中测试该函数。

void chline(char ch, int i, int j)
{for (int k = 0; k < j; k++){for (int l = 0; l < i; l++){printf("%c", ch);}printf("\n");}
}
int main()
{chline('*', 6, 5);return 0;
}



3.编写一个函数,接受3个参数:一个字符和两个整数。字符参数是待打印的字符,第1个整数指定一行中打印字符的次数,第2个整数指定打印指定字符的行数。编写一个调用该函数的程序。

void chline(char ch, int num1, int num2)
{for (int i = 0; i < num2; i++){for (int j = 0; j < num1; j++){printf("%c", ch);}printf("\n");}
}
int main()
{chline('*', 5, 6);
}



4.两数的调和平均数这样计算:先得到两数的倒数,然后计算两个倒数的平均值,最后取计算结果的到数。编写一个函数,接受两个double类型的参数,返回这两个参数的调和平均数。

static double harmonicMean(double a, double b)
{double a_inv = 1.0 / a;double b_inv = 1.0 / b;double mean = (a_inv + b_inv) / 2.0;return 1.0 / mean;
}
int main()
{double a = 5.0;double b = 3.0;double result = harmonicMean(a, b);printf("The harmonic of %.2f, %.2f is %.2f\n", a, b, result);return 0;
}



5.编写并测试一个函数larger_of(),该函数把两个double类型变量的值替换为较大的值。例如,larger of(x, y)会把x和y中较大的值重新赋给两个变量。

void larger_of(double *a, double *b)
{if (*a > *b)*b = *a;else*a = *b;
}
int main()
{double a, b;printf("Enter two numbers: ");while (scanf_s("%lf %lf", &a, &b) == 2){larger_of(&a, &b);printf("The larger number is %.2f %.2f\n", a, b);}return 0;
}



6.编写并测试一个函数,该函数以3个double变量的地址作为参数,把最小值放入第1个变量,中间值放入第2个变量,最大值放入第3个变量。

void asc(double *a, double *b, double *c)
{ if (*a > *b){double temp = *a;*a = *b;*b = temp;}if (*b > *c){double temp = *b;*b = *c;*c = temp;}if (*a > *b){double temp = *a;*a = *b;*b = temp;}
}
int main()
{system("chcp 65001");double a, b, c;printf("请输入三个数:");scanf_s("%lf%lf%lf", &a, &b, &c);asc(&a, &b, &c);printf("排序后的数:%lf %lf %lf", a, b, c);
}

http://www.dtcms.com/a/273430.html

相关文章:

  • Umi-OCR 的 Docker(win制作镜像,Linux(Ubuntu Server 22.04)离线部署)
  • 微软语音合成标记语言SSML文档结构和事件(详细文档和实例)
  • 企业级配置:Azure 邮件与 Cloudflare 域名解析的安全验证落地详解
  • Unity Demo——3D平台跳跃游戏笔记
  • 一个与运行 Qwen3 大语言模型的 vLLM 服务进行通信的客户端程序
  • 利用BeautifulSoup解析大众点评区域店铺网页
  • WHQL认证失败怎么办?企业如何高效申请
  • 云、实时、时序数据库混合应用:医疗数据管理的革新与展望(上)
  • https——TCP+TLS
  • ChatGPT无法登陆?分步排查指南与解决方案
  • S7-1200 与 S7-300 CPS7-400 CP UDP 通信 Step7 项目编程
  • MS1826+MS9332 4K@30Hz HD4×2视频分割器
  • .net服务器Kestrel配置Nginx作为反向代理
  • 如何准确查看服务器网络的利用率?
  • 如何查看自己本地的公网IP地址?内网环境网络如何开通服务器公网ip提供互联网访问?
  • UDP服务器的优缺点都包含哪些?
  • Spring Boot主从服务器详解教程
  • 性能狂飙 Gooxi 8卡5090服务器重新定义高密度算力
  • 中国银联豪掷1亿采购海光C86架构服务器
  • 没有管理员权限,在服务器安装使用 Jupyter + R 内核
  • JVM 内存结构
  • QTextCodec的功能及其在Qt5及Qt6中的演变
  • RLHF(人类反馈的强化学习)
  • Java JDK 下载指南
  • ThinkBook 14s IWL(20RM)OEM系统镜像原厂Win10系统
  • Zero-Shot(零样本学习),One-Shot(单样本学习),Few-Shot(少样本学习)概述
  • CVE-2023-41990/CVE-2023-32434/CVE-2023-38606/CVE-2023-32435
  • Spring事务管理深度解析:原理、实践与陷阱
  • 开发需要写单元测试吗?
  • 关键字前跟空格或首字母, 关键字后跟空格或标点符号; 标点符号后面不是必须跟空格;