《C语言程序设计》课后习题答案(第四版)谭浩强
第 1 章程序设计和 C 语言 1 1.1 什么是计算机程序 1 1.2 什么是计算机语言 1 1.3C 语言的发展及其特点 3 1.4 最简单的 C 语言程序 5 1.4.1 最简单的 C 语言程序举例 6 1.4.2C 语言程序的结构 10 1.5 运行 C 程序的步骤与方法 12 1.6 程序设计的任务 14 1-5 #include int main ( ) { printf (“**************************\n\n“); printf(“ Very Good!\n\n“); printf (“**************************\n“); return 0; } 1-6#include int main() {int a,b,c,max; printf(“please a,b,c:\n“); scanf(“%d,%d,%d“, max=a; if (maxb)?a:b; /*将 a 和 b 中的大者存入 temp 中*/ max=(tempc)?temp:c; /*将 a 和 b 中的大者与 c 比较,取最大者*/ printf(“三个整数的最大数是%d\n“,max); return 0; } 4-5-2 #include #include #define M 1000 int main() { int i,k; printf(“请输入一个小于%d 的整数 i:“,M); scanf(“%d“, while (iM) {printf(“输入的数不符合要求,请重新输入一个小于%d 的整数 i:“,M); scanf(“%d“, } k=sqrt(i); printf(“%d 的平方根的整数部分是:%d\n“,i,k); return 0; } 4-5 #include #include #define M 1000 int main() { int i,k; printf(“请输入一个小于%d 的整数 i:“,M); scanf(“%d“, if (iM) {printf(“输入的数不符合要求,请重新输入一个小于%d 的整数 i:“,M); scanf(“%d“, } k=sqrt(i); printf(“%d 的平方根的整数部分是:%d\n“,i,k); return 0; } 4-6. #include int main() { int x,y; printf(“输入 x:“); scanf(“%d“, if(x0) y=1; else y=0; printf(“x=%d,y=%d\n“,x,y); return 0; } 4-7-2 #include int main() { int x,y; printf(“please enter x:“); scanf(“%d“, y=0; if(x=0) if(x0) y=1; else y=-1; printf(“x=%d,y=%d\n“,x,y); return 0; } 4-8 #include int main() { float score; char grade; printf(“请输入学生成绩:“); scanf(“%f“, while (score100||score9999) place=5; else if (num999) place=4; else if (num99) place=3; else if (num9) place=2; else place=1; printf(“位数:%d\n“,place); printf(“每位数字为:“); ten_thousand=num/10000; thousand=(int)(num-ten_thousand*10000)/1000; hundred=(int)(num-ten_thousand*10000-thousand*1000)/100; ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); switch(place) {case 5:printf(“%d,%d,%d,%d,%d“,ten_thousand,thousand,hundred,ten,indiv); printf(“\n 反序数字为:“); printf(“%d%d%d%d%d\n“,indiv,ten,hundred,thousand,ten_thousand); break; case 4:printf(“%d,%d,%d,%d“,thousand,hundred,ten,indiv); printf(“\n 反序数字为:“); printf(“%d%d%d%d\n“,indiv,ten,hundred,thousand); break; case 3:printf(“%d,%d,%d“,hundred,ten,indiv); printf(“\n 反序数字为:“); printf(“%d%d%d\n“,indiv,ten,hundred); break; case 2:printf(“%d,%d“,ten,indiv); printf(“\n 反序数字为:“); printf(“%d%d\n“,indiv,ten); break; case 1:printf(“%d“,indiv); printf(“\n 反序数字为:“); printf(“%d\n“,indiv); break; } return 0; } 4-10-1 #include int main() { int i; double bonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+100000*0.05; bon6=bon4+100000*0.03; bon10=bon6+400000*0.015; printf(“请输入利润 i:“); scanf(“%d“, if (i10) branch=10; switch(branch) { case 0:bonus=i*0.1;break; case 1:bonus=bon1+(i-100000)*0.075;break; case 2: case 3: bonus=bon2+(i-200000)*0.05;break; case 4: case 5: bonus=bon4+(i-400000)*0.03;break; case 6: case 7: case 8: case 9: bonus=bon6+(i-600000)*0.015;break; case 10: bonus=bon10+(i-1000000)*0.01; } printf(“奖金是