作业
1> 将printf的练习,自己理解着敲一遍
#include<stdio.h>int main(int argc, const char *argv[]) {printf("520\n"); //无格式控制printf("num = %d\n", 520); //普通字符+格式控制printf("%hhd\n", 'A'); //输出有符号的char类型的数据整数模式printf("%hhu\n", 'A'); //输出无符号char类型的数据的整数模式printf("%hd\n", 100); //输出有符号的short类型数据printf("%hu\n", 12345); //输出无符号的short类型数据long int value = 1314;printf("%ld\n", value); //输出有符号的long类型的数据printf("%lu\n", value); //输出无符号的long类型的数据printf("%d\n", 510); //输出有符号的int类型的数据printf("%u\n", 520); //输出无符号的int类型的数据long long int key = 520;printf("%lld\n", key); //输出有符号长长整形的数据printf("%llu\n", key); //输出无符号的长长整形的数据size_t num = 520;printf("%zd\n", num); //输出有符号的size_t类型的数据printf("%zu\n", num); //输出无符号的size_t类型的数据printf("******************************\n");printf("%#o\n", 100); //144 输出八进制数据printf("%#x\n", 1008); //3f0 输出十六进制数据printf("%X\n", 1008); //3F0 //输出十六进制数据printf("%e\n", 1234.56); //以科学计数法的形式输出双精度数据printf("%E\n", 1234.56); //以科学计数法的形式输出双精度数据printf("%f\n", 3.14); //3.140000printf("%F\n", 3.14); //3.140000printf("%.1F\n", 3.14); //3.140000printf("%010.1F\n", 3.14); //3.140000printf("%-10.1F\n", 3.14); //3.140000printf("%g\n", 3.145); //3.145 不会默认保留小数printf("%c\n", 97); //aprintf("%s\n", "hello world"); //hello worldprintf("%p\n", &num); //输出num的内存地址printf("%%\n"); //输出一个普通的%字符printf("****************************\n");int res = printf("hello world\n");printf("res = %d\n", res); //12return 0; }
2> 将数值运算再重新做一遍,以一字节为例
65 + 30
78 + 87
-90 - 30
-30 + 50
#include <stdio.h>void printBinary(char num) {for (int i = 7; i >= 0; i--) {printf("%d", (num >> i) & 1);}printf("\n"); }int main() {char a, b;printf("请输入第一个 char 类型的值:");scanf("%hhd", &a);printf("请输入第二个 char 类型的值:");scanf("%hhd", &b);// 输出原始的二进制形式printf("a 的二进制形式: ");printBinary(a);printf("b 的二进制形式: ");printBinary(b);// 计算 a + bchar c = a + b;printf("a + b 的二进制形式: ");printBinary(c);// 输出 %hhd 结果printf("a + b 的 %hhd 输出结果: %hhd\n", c, c);return 0; }
3> 思维导图