C语言程序设计:课后习题答案解析

需积分: 45 0 下载量 10 浏览量 更新于2024-09-26 收藏 65KB TXT 举报
"C程序设计 课后答案 第三版" 在C语言编程中,谭浩强老师的《C程序设计》是一本广泛使用的教材。这个课后答案集可以帮助读者理解和解决书中提出的练习题,加深对C语言概念的理解。以下是部分题目解析: 1.5 题目要求打印星号构成的矩形,这是C语言基础的输出控制练习。程序通过使用printf函数和字符串转义字符完成这一任务。 ```c #include <stdio.h> int main() { printf("**************************\n"); printf("VeryGood!\n"); printf("\n"); printf("**************************\n"); return 0; } ``` 1.6 题目要求输入三个整数并找出其中的最大值。此题涉及到输入输出(scanf和printf)以及条件判断(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 题目涉及字符变量和转义字符。程序输出特定格式的字符串,包括制表符(\t)和退格符(\b)。 ```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\n", c4, c5); return 0; } ``` 3.7 题目要求对字符串进行字符替换操作,实现将"China"转换为"Glmre"。这里涉及到了字符的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); return 0; } ``` 3.9 题目考察了算术运算符的优先级。根据题目给出的表达式计算结果。 1. 当x=2.5, a=7, y=4.7时,表达式1x+a%3*(int)(x+y)%2/4的结果为12.5。 2. 当a=2, b=3, x=3.5, y=2.5时,表达式(float)(a+b)/2+(int)x%(int)y的结果为3.5。 3.10 题目涉及自增自减操作符(++和--)。程序执行后,i、j、m、n的值分别为9、11、9、10。 ```c #include <stdio.h> int main() { int i = 8, j = 10, m, n; m = ++i; // i先加1,然后赋值给m,i=9, m=9 n = j++; // j先加1,然后赋值给n,j=11, n=10 printf("%d, %d, %d, %d", i, j, m, n); 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变为60,a除以120等于0。 5. a%=(n%=2) 等价于 a=a%(n=n%2),n=5%2=1,a=0。 6. a+=a-=a*=a 等价于 a=a*(a-a)+a,a初始为12,执行后a=0。 以上是部分C程序设计的课后习题解答,这些内容涵盖了C语言的基础知识,如输入输出、变量、运算符、控制结构等。通过练习这些题目,读者可以巩固和提升C语言编程技能。