【C语言】学习笔记 第4章 表达式 编程题 浅浅的花香味﹌ 2024-03-23 16:56 73阅读 0赞 ### 【C语言】学习笔记 ### #### 文章目录 #### * * 【C语言】学习笔记 * * 第4章 表达式 * * 编程题 #### 第4章 表达式 #### ![在这里插入图片描述][afbd54e574184818b4f6d6e781b04f48.png_pic_center] C 语言的一个特点就是它更多地强调表达式而不是语句。表达式是表示如何计算值的公式。 运算符是构建表达式的基本工具,C 语言拥有异常丰富的运算符。 ##### 编程题 ##### 【1】编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。程序会话应类似下面 这样: Enter a two-digit number: 28 The reversal is: 82 用`%d` 读入两位数,然后分解成两个数字。提示:如果 n 是整数,那么 n % 10 是个位数,而 n / 10 则是移除个位数后剩下的数。 #include<stdio.h> int main(void) { int number; printf("Enter a two-digit number: "); scanf("%d", &number); printf("The reversal is: %d%d", number % 10, number / 10); return 0; } ![在这里插入图片描述][87b81c36c2d04907815a173740f1864a.png_pic_center] 【2】扩展1题中的程序,使其可以处理 3 位数。 #include<stdio.h> int main(void) { int number; printf("Enter a three-digit number: "); scanf("%d", &number); printf("The reversal is: %d%d%d", number % 10, (number / 10) % 10, number / 100); return 0; } ![在这里插入图片描述][bfe29dda68504ab380d1e78e84290165.png_pic_center] 【3】重新编写编程题2中的程序,使新程序不需要利用算术分割就可以显示出3位数的逆序。 #include<stdio.h> int main(void) { int digit_1, digit_2, digit_3; printf("Enter a three-digit number: "); scanf("%1d%1d%1d", &digit_1, &digit_2, &digit_3); printf("The reversal is: %d%d%d", digit_3, digit_2, digit_1); return 0; } ![在这里插入图片描述][fbbefd6df19c4a18b596f0ff594bf00f.png_pic_center] 【4】编写一个程序,读入用户输入的整数并按八进制(基数为 8)显示出来: Enter a number between 0 and 32767: 1953 In octal, your number is: 03641 输出应为 5 位数,即便不需要这么多数位也要如此。提示:要把一个数转换成八进制,首先将其除 以 8,所得的余数是八进制数的最后一位(本例中为 1);然后把原始的数除以 8,对除法结果重复上 述过程,得到倒数第二位。 #include<stdio.h> int main(void) { int number, r1, r2, r3, r4, r5; printf("Enter a number between 0 and 32767: "); scanf("%d", &number); r5 = number % 8; number = number / 8; r4 = number % 8; number = number / 8; r3 = number % 8; number = number / 8; r2 = number % 8; number = number / 8; r1 = number % 8; number = number / 8; printf("In octal, your number is: %d%d%d%d%d", r1, r2, r3, r4, r5); return 0; } ![在这里插入图片描述][1a3de94aef774f9092fcf59e87cfe7d5.png_pic_center] 【5】重写 4.1 节的 upc.c 程序,使用户可以一次输入 11 位数字,而不用先输入 1 位,再输入 5 位,最后再 输入 5 位。 Enter the first 11 digits of a UPC: 01380015173 Check digit: 5 #include<stdio.h> int main(void) { int d, i1, i2, i3, i4, i5, j1, j2, j3, j4, j5, first_sum, second_sum, total; printf("Enter the first 11 digits of a UPC: "); scanf("%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d", &d, &i1, &i2, &i3, &i4, &i5, &j1, &j2, &j3, &j4, &j5); first_sum = d + i2 + i4 + j1 + j3 + j5; second_sum = i1 + i3 + i5 + j2 + j4; total = 3 * first_sum + second_sum; printf("Check digit: %d\n", 9 - ((total - 1) % 10)); return 0; } ![在这里插入图片描述][59449cd17b0449c4b3c03476c5d6a3fb.png_pic_center] 【6】欧洲国家及地区不使用北美的 12 位通用产品代码(UPC),而使用 13 位的欧洲商品编码(European Article Number, EAN)。跟 UPC 一样,每个 EAN 码的最后也有一个校验位。计算校验位的方法也类 似:首先把第 2位、第 4位、第 6位、第 8位、第 10位和第 12位数字相加;然后把第 1位、第 3位、 第 5 位、第 7 位、第 9 位和第 11位数字相加;接着把第一次加法的结果乘以 3,再和第二次加法的结 果相加;随后,再把上述结果减去 1;相减后的结果除以 10 取余数;最后用 9 减去上一步骤中得到 的余数。 以 Güllüoglu 牌土耳其软糖(开心果和椰子口味)为例,其 EAN 码为 8691484260008。第一个和为 6+1+8+2+0+0=17,第二个和为 8+9+4+4+6+0=31。第一个和乘以 3 再加上第二个和得到 82,减 1 得 到 81。这个结果除以 10 的余数是 1,再用 9 减去余数得到 8,与原始编码的最后一位一致。请修改 4.1 节的 upc.c 程序以计算 EAN 的校验位。用户把 EAN 的前 12 位当作一个数输入: Enter the first 12 digits of an EAN: 869148426000 Check digit: 8 #include<stdio.h> int main(void) { int i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, first_sum, second_sum, total; printf("Enter the first 12 digits of an EAN: "); scanf("%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d%1d", &i1, &i2, &i3, &i4, &i5, &i6, &i7, &i8, &i9, &i10, &i11, &i12); first_sum = i2 + i4 + i6 + i8 + i10 + i12; second_sum = i1 + i3 + i5 + i7 + i9 + i11; total = 3 * first_sum + second_sum; printf("Check digit: %d\n", 9 - ((total - 1) % 10)); return 0; } ![在这里插入图片描述][84d2f5522c724f93bd4c62c36411fb82.png_pic_center] [afbd54e574184818b4f6d6e781b04f48.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/c99e73d147d8499ca3dee31c778e057c.png [87b81c36c2d04907815a173740f1864a.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/d663e36295aa407d84af2c92331d413b.png [bfe29dda68504ab380d1e78e84290165.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/8e8a3dd376ae49e78d3a8524d09a8392.png [fbbefd6df19c4a18b596f0ff594bf00f.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/cc1ac6e14fe748baa995181956643468.png [1a3de94aef774f9092fcf59e87cfe7d5.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/a7320d0140bf47ec897af5528f5fa7a7.png [59449cd17b0449c4b3c03476c5d6a3fb.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/d0a968b5099746fbae6d463c5c26a8f1.png [84d2f5522c724f93bd4c62c36411fb82.png_pic_center]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/f39ec3b26aa147f1b31a50c43d1bcefd.png
相关 【C语言】学习笔记 第4章 表达式 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第4章 表达式 编程题 第4章 表达式 ![在 浅浅的花香味﹌/ 2024年03月23日 16:56/ 0 赞/ 74 阅读
相关 【C语言】学习笔记 第4章 表达式 4.5 表达式语句 【C语言】学习笔记 文章目录 【C语言】学习笔记 第4章 表达式 4.5 表达式语句 第4章 表达式 素颜马尾好姑娘i/ 2024年03月23日 16:56/ 0 赞/ 90 阅读
相关 【C语言】学习笔记 第4章 表达式 4.4 表达式求值 【C语言】学习笔记 文章目录 【C语言】学习笔记 第4章 表达式 4.4 表达式求值 ﹏ヽ暗。殇╰゛Y/ 2024年03月23日 16:56/ 0 赞/ 49 阅读
相关 【C语言】学习笔记 第4章 表达式 4.2 赋值运算符 【C语言】学习笔记 文章目录 【C语言】学习笔记 第4章 表达式 4.2 赋值运算符 r囧r小猫/ 2024年03月23日 16:55/ 0 赞/ 84 阅读
相关 【C语言】学习笔记 第4章 表达式 4.1 算术运算符 【C语言】学习笔记 文章目录 【C语言】学习笔记 第4章 表达式 4.1 算术运算符 £神魔★判官ぃ/ 2024年03月23日 16:55/ 0 赞/ 58 阅读
相关 【C语言】学习笔记 第11章 指针 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第11章 指针 编程题 第11章 指针 ![在 古城微笑少年丶/ 2024年03月22日 10:46/ 0 赞/ 13 阅读
相关 【C语言】学习笔记 第9章 函数 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第9章 函数 编程题 第9章 函数 ![在这里 今天药忘吃喽~/ 2024年03月22日 10:19/ 0 赞/ 25 阅读
相关 【C语言】学习笔记 第8章 数组 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第8章 数组 编程题 第8章 数组 ![在这里 左手的ㄟ右手/ 2024年03月22日 09:45/ 0 赞/ 57 阅读
相关 【C语言】学习笔记 第6章 循环 编程题 【C语言】学习笔记 文章目录 【C语言】学习笔记 第6章 循环 编程题 第6章 循环 ![在这里 左手的ㄟ右手/ 2024年03月22日 08:44/ 0 赞/ 72 阅读
相关 《C++primer学习笔记》——第4章 表达式 此章知识点不多,都是较为基础的或是C语言中学过的,便不多赘述 一、基础\[P120\] 1. 概念 C++定义了一元运算符(如\,&)、二元运算符(如==),除此 布满荆棘的人生/ 2022年10月25日 14:15/ 0 赞/ 198 阅读
还没有评论,来说两句吧...