C语言编程学习:谭浩强版第三版课后习题详解

需积分: 10 2 下载量 129 浏览量 更新于2024-11-03 收藏 65KB TXT 举报
"C语言程序设计_第三版_谭浩强主编_课后习题答案_完整版" 在《C语言程序设计》第三版中,由谭浩强主编的这本书是学习C语言的经典教材,配套的课后习题答案对学习者巩固理论知识和提升编程技能大有裨益。以下是对部分习题的解析: 1.5 题目要求打印星号图案,这涉及到字符输出和控制字符的使用。 ```c void printStars() { printf("\n"); printf("VeryGood!\n"); printf("\n"); } ``` 此题主要考察了printf函数的使用,包括输出字符串和换行。 1.6 题目要求找出三个整数中的最大值,这里运用了条件语句(if)进行比较。 ```c int main() { int a, b, c, max; printf("请输入三个整数:"); scanf("%d %d %d", &a, &b, &c); max = a; if (max < b) max = b; if (max < c) max = c; printf("最大值是:%d\n", max); } ``` 本题旨在掌握变量、输入输出及条件判断的综合运用。 3.6 题目要求输出特定格式的字符串,涉及字符常量、转义字符和格式化输出。 ```c int main() { char c1 = 'a', c2 = 'b', c3 = 'c', c4 = '\101', c5 = '\116'; printf("a%cb%c\tc%c\tabc\n", c1, c2, c3); printf("\t\b%c%c", c4, c5); } ``` 这里考察了字符变量的赋值,转义字符的使用,以及格式化输出字符串的技巧。 3.7 题目要求通过字符的ASCII码值计算新的字符串,这里涉及到了ASCII码的加法运算。 ```c #include<stdio.h> int main() { char c1 = 'C', c2 = 'h', c3 = 'i', c4 = 'n', c5 = 'a'; c1 += 4; c2 += 4; c3 += 4; c4 += 4; c5 += 4; printf("%c%c%c%c%c\n", c1, c2, c3, c4, c5); } ``` 本题主要测试了字符变量的算术运算和ASCII码的理解。 3.9 题目涉及了浮点数与整数的混合运算,以及取模运算的应用。 1. 当`x=2.5, a=7, y=4.7`时,表达式`1x+a%3*(int)(x+y)%2/4`的结果为1,主要考察了浮点数转换为整数以及取模运算的规则。 2. 当`a=2, b=3, x=3.5, y=2.5`时,表达式`(float)(a+b)/2+(int)x%(int)y`的结果为3.5,这里测试了浮点数除法、整数取模和类型转换的结合。 3.10 题目关于自增自减运算符的用法。 ```c int main() { int i = 8, j = 10, m, n; m = ++i; // i先加1再赋值给m,此时m=9, i=9 n = j++; // j先赋值给n再加1,此时n=10, j=11 printf("%d %d %d %d", i, j, m, n); } ``` 输出为`9 11 9 10`,考察了自增自减运算符的顺序规则。 3.12 题目是关于赋值运算符的组合使用。 1. `a += a` 相当于 `a = a + a`,所以`a`变为24。 2. `a -= 2` 后`a`变为12。 3. `a *= 2 + 3` 之后`a`变为60。 4. `a /= a + a` 由于`a`此时为60,`a + a`为120,所以`a`变为0.5。 5. `a %= (n %= 2)` 首先`n %= 2`将`n`变为1,然后`a %= 1`,`a`保持不变,仍为0.5。 6. `a += a -= a *= a` 先进行`a *= a`,`a`变为30,接着`a -= a`,`a`变为0,最后`a += a`,`a`仍为0。 所以最终结果分别为: 1. 24 2. 10 3. 60 4. 0.5 以上是部分C语言程序设计第三版的课后习题解答,这些题目涵盖了C语言的基础知识,如变量、数据类型、运算符、流程控制和输入输出等。通过解决这些问题,学习者可以深入理解C语言的基本概念和编程技巧。