C Primer Plus 第6版 第4章 编程练习

简介: C Primer Plus 第6版 第4章 编程练习

1.提示用户输入名和姓,然后以名,姓的格式打印。

#include<stdio.h>
int main(void)
{
  char ming[20], xing[20];
  printf("输入名");
  scanf_s("%s",ming,20);
  printf("输入姓");
  scanf_s("%s", xing,20);
  printf("%s,%s", ming, xing);
 
  getchar(); getchar();
  return 0;
}

注:如果是在vs2017中编译,要用scanf_s替代scanf,或者在程序最前面加:

#define _CRT_SECURE_NO_DEPRECATE

 

2.提示用户输入名和姓,然后:

a.打印名和姓包括双引号

b.在宽度为20的字段右段打印名和姓包括双引号

c.在宽度为20的字段左段打印名和姓包括双引号

d. 在比姓名宽度+3的字段中打印名和姓

 

#include<stdio.h>
#include<string.h>
int main(void)
{
  char ming[20], xing[20];
  int len_ming, len_xing;
  printf("输入名");
  scanf_s("%s",ming,20);
  printf("输入姓");
  scanf_s("%s", xing,20);
  len_ming = strlen(ming);
  len_xing = strlen(xing);
  printf("\"%s,%s\"\n", ming, xing);
  printf("\"%20s,%20s\"\n", ming, xing);
  printf("\"%-20s,%-20s\"\n", ming, xing);
 
  printf("\"%*s,%*s\"\n",len_ming+3, ming, len_xing+3,xing);
  getchar(); getchar();
  return 0;
}
 
 

3.读取1个浮点数,分别以小数、指数打印

#include<stdio.h>
int main(void)
{
  float n;
  printf("输入一个浮点数:");
  scanf_s("%f", &n);
  printf("小数形式:%.1f 指数形式:%.1e\n", n,n);
  printf("小数形式:%.3f 指数形式:%.3E\n", n, n);
 
  getchar(); getchar();
  return 0;
}
 
 

4.提示用户输入身高(厘米)和姓名,然后按照格式显示。格式:

dabney, you are 6.208 feet tall.

#include<stdio.h>
int main(void)
{
  float tall;
  char name[50];
  printf("输入你的身高(cm):");
  scanf_s("%f", &tall);
  printf("输入你的姓名:");
  scanf_s("%s", &name, 50);
  printf("%s, 你身高%.1f厘米", name, tall);
 
  getchar(); getchar();
  return 0;
}
 
 

5.用户输入下载速度(MB/S),文件大小(MB)计算下载时间

#include<stdio.h>
int main(void)
{
  float download_speed;
  float file_v;
  float download_time;
  printf("请输入下载速度(MB/s):");
  scanf_s("%f", &download_speed);
  printf("请输入文件大小(MB):");
  scanf_s("%f", &file_v);
  download_time = file_v / download_speed;
  printf("下载速度为%.2f MB/S, %.2fMB的文件将在%.2f秒后下载完成", download_speed, \
    file_v, download_time);
 
  getchar(); getchar();
  return 0;
}
 
 

6.提示用户输入名和姓,然后一行打印名和姓,下一行打印名和姓的字母数,数字和相应的名和姓的结尾对齐。

#include<stdio.h>
#include<string.h>
int main(void)
{
  char name[40], surname[40];
  int len_name,len_surname;
  printf("请输入名:");
  scanf_s("%s",name,40);
  printf("请输入姓:");
  scanf_s("%s", surname, 40);
  len_name = strlen(name);
  len_surname = strlen(surname);
  printf("%s %s\n", name, surname);
  printf("%*d %*d", len_name, len_name, len_surname, len_surname);
  getchar(); getchar();
  return 0;
}
 
 

7.将一个double 和float 变量设置为1.0/3.0 ,然后显示小数点后6,12,16位。

包含头文件float.h,打印FLT_DIG和DBL_DIG;

#include<stdio.h>
#include<float.h>
int main(void)
{
  double d = 1.0 / 3.0;
  float f = 1.0 / 3.0;
  printf("Float:%.6f %.12f %.16f\n", f, f, f);
  printf("Double %.6f %.12f %.16f\n", d, d, d);
 
  printf("float:%d\ndouble:%d\n", FLT_DIG, DBL_DIG);
  getchar(); getchar();
  return 0;
}
 
 

8.提示用户输入旅行的里程 和消耗的汽油量,然后计算每 加仑 汽油 行驶的路程(英里) 精度为小数点后1位。

1加仑约3.785升,1英里约 1.609 千米 把英里/加仑 转换成 升/百公里 显示结果(1位小数)

 

#include<stdio.h>
int main(void)
{
  const float gallonToL = 3.785;
  const float mileToKm = 1.609;
  float miles, gallon;
  printf("请输入里程(英里)和耗油量(加仑)");
  scanf_s("%f %f", &miles, &gallon);
  printf("每加仑行驶%.1f英里\n", miles / gallon);
  printf("相当于%.f升/100公里", 100* gallon*gallonToL / miles * mileToKm);
  getchar(); getchar();
  return 0;
}
 
 
相关文章
|
数据可视化
Signac R|如何合并多个 Seurat 对象 (2)
Signac R|如何合并多个 Seurat 对象 (2)
322 11
Signac R|如何合并多个 Seurat 对象 (2)
|
数据采集 API 网络安全
Python Requests代理使用入门指南
《Python Requests 代理使用入门指南》将带你深入了解如何使用Python Requests库来配置HTTP代理,并灵活处理各种权限和服务器响应问题。从代理服务器的基础知识,到代理认证与授权设置,本指南为初学者提供了全面的教学内容。
Python Requests代理使用入门指南
|
关系型数据库 MySQL Java
【Azure 应用服务】App Service 无法连接到Azure MySQL服务,报错:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
【Azure 应用服务】App Service 无法连接到Azure MySQL服务,报错:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
373 0
|
开发框架 JavaScript 前端开发
django快速实现个人博客(附源码)
Django作为一款成熟的Python Web开发框架提供了丰富的内置功能,如ORM(对象关系映射)、Admin管理界面、URL分发、模板系统、表单处理等,使得开发者能够快速搭建Web应用,大幅提高了开发效率。下面介绍如何快速的通过django模板系统快速实现个人博客。
307 0
|
缓存 JavaScript 前端开发
前端面试100道手写题(6)—— 虚拟滚动
虚拟滚动在前端中是一个很常见的解决方案,由于浏览器对于内存的限制,当页面需要展示大量 DOM 节点(如:列表数据超过 10 万)的时候,如果完整渲染整个 DOM 树,当页面数据需要更新重新渲染的时候就会出现滚动卡顿,这个时候就需要虚拟滚动去模拟浏览器原生滚动事件,从而避免这个卡顿情况。
291 0
|
容器
css3 flex弹性布局详解
css3 flex弹性布局详解
274 0
|
数据可视化
scRNA分析|单细胞文献Fig1中的分组umap图和细胞比例柱形图
scRNA分析|单细胞文献Fig1中的分组umap图和细胞比例柱形图
665 0
|
测试技术
Fiddler 使用fiddler无法抓取苹果手机https请求问题解决方案
Fiddler 使用fiddler无法抓取苹果手机https请求问题解决方案
519 0
|
缓存 安全 调度
StringBuilder和StringBuffer的区别
StringBuilder和StringBuffer的区别
|
JavaScript 前端开发
Vue模板语法集(上)
Vue模板语法集(上)
110 0