个人技术分享

目录

一、知识点查漏补缺

二、课后编程练习

题目1

题目2

题目3

题目4

题目5

题目6

题目7

题目8

题目9


一、知识点查漏补缺

【1】C90标准新增了一元运算符+,它不会改变运算对象的值或符号,只能如下使用:dozen = +12;

【2】在计算浮点数和整数之间的运算时,编译器会把两个运算对象转换成相同的类型。这就是自动类型提升。

【3】char、short类型数据在运算时,都会自动类型提升为int类型。其他的类型会提升至级别更高的类型。

【4】C99规定使用趋零截断(直接丢弃小数部分)。

【5】负数求模如何进行?答:看第一个运算对象的符号。若第一个运算对象是负数,则结果为负数;否则,结果为正数。例如:11%-2=1. -11%2=-1. -11%-2=-1.

【6】++运算符和--运算符有很高的优先级,只有圆括号的优先级比它们高。

【7】序列点是指程序执行的点。

【8】当作为函数参数传递时,char和short被转换成int,float被转换成double。


二、课后编程练习

题目1

【1】代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define	MIN_PER_HOUR	60

int main()  
{
	while (1) {
		int input = 0;
		printf("请输入分钟数:");
		scanf("%d", &input);
		if (input <= 0)
			break;
		printf("时间:%d小时 %d分钟\n", input / MIN_PER_HOUR, input % MIN_PER_HOUR);
	}
		
	return 0;
}

【2】结果:

题目2

【1】代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()  
{
	//用户输入整数
	int num = 0;
	printf("请输入一个整数:");
	scanf("%d", &num);
	//打印从该数到比其大10的所有整数
	for (int i = num; i <= num + 10; ++i) {
		printf("%d ", i);
	}
	return 0;
}

【2】结果:

题目3

【1】代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define DAY_PER_WEEK	7

int main()  
{
	while (1) {
		//用户输入天数
		int day = 0;
		printf("请输入天数:");
		scanf("%d", &day);
		//输入判定,非正值则退出循环
		if (day <= 0)
			break;
		//将天数转换为周数和天数
		int week = day / DAY_PER_WEEK;
		int restDay = day % DAY_PER_WEEK;
		printf("%d days are %d weeks, %d days.\n", day, week, restDay);
	}
		
	return 0;
}

【2】结果:

 题目4

【1】代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define CM_TO_FEET		1 / 30.48
#define FEET_TO_INCH	12

void convertHeight(double height) {
	double feet = height * CM_TO_FEET;
	double inch = (feet - (int)feet) * FEET_TO_INCH;
	printf("%.1lf cm = %d feet, %.1lf inches\n", height, (int)feet, inch);
}

int main()  
{
	//用户输入身高
	double height;
	printf("Enter a height in centimeters: ");
	scanf("%lf", &height);
	//厘米转换为英尺+英寸
	convertHeight(height);
	//循环读取用户输入
	while (1) {
		printf("Enter a height in centimeters (<=0 to quit): ");
		scanf("%lf", &height);
		if (height <= 0)
			break;
		//厘米转换为英尺+英寸
		convertHeight(height);
	}
	printf("bye\n");
	return 0;
}

【2】结果:

题目5

【1】代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()  
{
	//用户输入天数
	int day;
	printf("请输入天数:");
	scanf("%d", &day);
	//计算day天里赚了多少钱
	int sum = 0;
	for (int i = 1; i <= day; i++) {
		sum += i;
	}
	printf("sum = %d\n", sum);
	return 0;
}

【2】结果:

题目6

【1】代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()  
{
	//用户输入天数
	int day;
	printf("请输入天数:");
	scanf("%d", &day);
	//计算day天里赚了多少钱
	int sum = 0;
	for (int i = 1; i <= day; i++) {
		sum += i * i;
	}
	printf("sum = %d\n", sum);
	return 0;
}

【2】结果:

题目7

【1】代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void printCube(double input) {
	printf("%lf 的立方为: %lf\n", input, input * input * input);
}

int main()  
{
	//用户输入数据
	double input;
	printf("请输入double类型数据:");
	scanf("%lf", &input);
	//打印立方值
	printCube(input);
	return 0;
}

【2】结果:

题目8

【1】代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()  
{
	//打印提示信息
	printf("This program computes moduli.\n");
	int first, second;
	printf("Enter an interger to serve as the second operand: ");
	scanf("%d", &second);
	printf("Now enter the first operand: ");
	scanf("%d", &first);
	//显示取模结果
	printf("%d %% %d is %d\n", first, second, first % second);
	//循环读取
	while (1) {
		printf("Enter next number for first operand (<= 0 to quit): ");
		scanf("%d", &first);
		if (first <= 0)
			break;
		printf("%d %% %d is %d\n", first, second, first % second);
	}
	printf("Done\n");
	return 0;
}

【2】结果:

 题目9

【1】代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void Temperatures(double Ftempe) {
	const double Celsius = 5.0 / 9.0 * (Ftempe - 32.0);
	const double Kelvin = Celsius + 273.16;
	printf("华氏温度: %.2lf, 摄氏温度: %.2lf, 开式温度: %.2lf\n", Ftempe, Celsius, Kelvin);
}

int main()  
{
	while (1) {
		//用户输入华氏温度
		double FTemperature;
		printf("请输入一个华氏温度 (q或其他非数字退出):");
		if (scanf("%lf", &FTemperature) != 1) {
			break;
		}
		//计算摄氏温度和开式温度
		Temperatures(FTemperature);
	}
	printf("Bye\n");
	return 0;
}

【2】结果: