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

需积分: 45 6 下载量 64 浏览量 更新于2024-11-13 1 收藏 65KB TXT 举报
"C语言课后答案谭浩强第三版课后习题答案完整版" 这篇摘要提供了谭浩强编写的《C语言程序设计》第三版的课后习题答案,内容涵盖了一些基本的C语言编程练习,包括输出特定字符串、找到三个数中的最大值、字符编码的转换以及涉及运算符优先级和类型转换的问题。 1.5 题目要求打印星号组成的菱形图案,展示了如何利用循环和条件语句控制输出格式。 ```c #include <stdio.h> void printPattern() { printf("**************************\n"); printf("VeryGood!\n"); printf("**************************\n"); } int main() { printPattern(); return 0; } ``` 1.6 题目是输入三个整数并找出最大值,使用了if语句比较三个数的大小。 ```c #include <stdio.h> 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); return 0; } ``` 3.6 题目要求打印特定字符序列,演示了字符变量和转义字符的使用。 ```c #include <stdio.h> 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); return 0; } ``` 3.7 题目要求实现字符串的加密,通过给字符增加固定偏移量,并输出结果。 ```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); return 0; } // 输出结果:Glmre ``` 3.9 题目涉及混合类型的算术运算和取模运算,解释了浮点数到整数的转换规则。 1. 当x=2.5, a=7, y=4.7时,表达式1x+a%3*(int)(x+y)%2/4的值为2.5。 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变为9,然后赋值给m n = j++; // j先加1变为11,然后赋值给n,之后j再加1变为12 printf("%d,%d,%d,%d", i, j, m, n); // 输出9,12,9,11 return 0; } ``` 3.12 题目测试了各种复合赋值运算符的效果。 1. a+=a相当于a=a+a,所以a的值为24。 2. a-=2相当于a=a-2,所以a的值为10。 3. a*=2+3相当于a=a*(2+3),所以a的值为60。 4. a/=a+a相当于a=a/(a+a),a初始值为12,所以a的值为0。 5. a%=(n%=2)相当于n=n%2,然后a=a%n,n的值为5,a的值为0。 6. a+=a-=a*a相当于a=a-(a*a),然后a=a+a,所以a的值为0。 以上内容详细解析了C语言课后习题中涉及的各个知识点,包括基本的输入输出、变量操作、逻辑判断、类型转换、字符串处理、运算符优先级和自增自减运算符的用法等。这些知识点构成了C语言学习的基础,对初学者来说非常有帮助。