c语言程序设计第五版习题答案
c语言程序设计第五版谭浩强习题答案第三章课后答案

c语⾔程序设计第五版谭浩强习题答案第三章课后答案第三章最简单的C程序设计 ----顺序程序设计1、假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。
计算公式为$p = (1+r)^n$ ,其中r为年增长率,n为年数,p为与现在相⽐的倍数。
题⽬解析:此题的关键主要是利⽤数学库math中pow函数进⾏计算,若不熟悉可以查阅帮助⽂档,查看pow函数的⽤法。
代码⽰例:#include<stdio.h>#include <math.h>int main(){Cfloat p, r, n;r = 0.07;n = 10;p = pow(1 + r, n);printf("p=%f\n", p);return 0;}运⾏结果:2、存款利息的计算。
有1000元,想存5年,可按以下5种办法存:(1)⼀次存5年期(2)先存2年期,到期后将本息再存3年期(3)先存3年期,到期后将本息再存2年期(4)存1年期,到期后将本息再存1年期,连续存5次(5)存活期存款,活期利息每⼀季度结算⼀次2017年银⾏存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为2.75%;5年期定期存款利息为3%;活期存款利息为0.35%(活期存款每⼀-季度结算⼀-次利息)如果r为年利率,n为存款年数,则计算本息的公式如下:1年期本息和: P= 1000* (1+r);n年期本息和: P= 1000* (1+n* r);存n次1年期的本息和: $P=1000* (1+r)^n$;活期存款本息和: P= 1000 *(1+$\frac{r}{4}$)$^{4n}$;说明: 1000*(1+$\frac{r}{4}$)是⼀个季度的本息和。
题⽬解析:理解题意很关键,其次就是利⽤数学库math中pow函数进⾏幂次⽅计算代码⽰例:#include<stdio.h>#include <math.h>int main(){float r5, r3, r2, r1, r0, p, p1, p2, p3, p4, p5;p = 1000;r5 = 0.0585;r3 = 0.054;r2 = 0.0468;r1 = 0.0414;r0 = 0.0072;p1 = p*((1 + r5) * 5); // ⼀次存5年期p2 = p*(1 + 2 * r2)*(1 + 3 * r3); // 先存2年期,到期后将本息再存3年期p3 = p*(1 + 3 * r3)*(1 + 2 * r2); // 先存3年期,到期后将本息再存2年期p4 = p*pow(1 + r1, 5); // 存1年期,到期后将本息存再存1年期,连续存5次p5 = p*pow(1 + r0 / 4, 4 * 5); // 存活期存款。
c语言程序设计第五版习题答案

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。
C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。
如if…else语句、while语句、dowhile语句、switch语句、for语句。
(5)允许直接访问物理地址。
C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么它由哪几部分组成【解答】函数是构成C语言程序的基本单位。
一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果1.输入下面程序并运行。
main(){inta1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。
main(){inta1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=200三.编程题1.参照本章例题,编写一个C程序,用于显示如下信息:*************************IloveCprograms!*************************【分析与提示】①要有文件包含语句#include<stdio.h>。
C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。
这些函数的说明都包括在stdio.h文件中。
②main是主函数的名称。
c语言程序设计第五版习题答案解析

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。
C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。
如if…else语句、while语句、do while语句、switch 语句、for语句。
(5)允许直接访问物理地址。
C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。
一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果1.输入下面程序并运行。
main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。
main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。
#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。
c语言程序设计第五版习题答案解析

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。
C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。
如if…else语句、while语句、do while语句、switch 语句、for语句。
(5)允许直接访问物理地址。
C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。
一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果1.输入下面程序并运行。
main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。
main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。
#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。
c语言程序设计第五版习题答案

c语言程序设计第五版习题答案1. 基础语法练习1.1 写一个程序,要求用户输入两个整数,然后计算并输出这两个整数的和。
```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);int sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```1.2 写一个程序,要求用户输入一个字符,然后判断该字符是否为数字字符('0'-'9')。
```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:");scanf(" %c", &ch); // 注意空格if (ch >= '0' && ch <= '9') {printf("该字符是一个数字字符。
\n");} else {printf("该字符不是一个数字字符。
\n");}return 0;}```2. 控制流程练习2.1 写一个程序,找出1~100之间所有能被7整除的数,并输出它们的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 7 == 0) {printf("%d ", i);sum += i;}}printf("\n这些数的和为:%d\n", sum); return 0;}```2.2 写一个程序,打印如下图案:```***************``````c#include <stdio.h>int main() {for (int i = 1; i <= 5; i++) {for (int j = 1; j <= i; j++) {printf("*");}printf("\n");}return 0;}```3. 数组和字符串练习3.1 写一个程序,输出一个5x5的矩阵,矩阵元素由用户输入。
c语言程序设计第五版习题答案解析

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2(3(4语句、for(5作。
(6231{2{inta1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。
#include<stdio.h>main(){printf("******\n");printf("*****\n");printf("****\n");printf("***\n");printf("**\n");printf("*\n");}【解答】运行结果为:****************1{}第2章数据类型及其运算一.简答题1.C语言中的数据类型主要有哪几类?【解答】短整型(shortint)整型整型(int)长整型(longint)基本类型字符型(char)单精度(float)实型(浮点型)双精度(double)枚举类型(enum)数组类型构造类型结构体类型(struct)共用体类型(union)指针类型空类型(void)2.字符常量与字符串常量有什么区别?【解答】字符常量用单括号括起,字符串常量用双括号括起;字符常量存储时占1个字节,字符串常量存储时除了n个字符外,还有系统加上的字符串终止符\0,所以字符串常量存储时占n+1个字节。
3.C语言中的常量包括哪几类?各自是如何构成的?C语言中的,4量的指针所以,512308926(1(4(7(1(2错误。
C语言中表示类型名的关键字必须小写。
改正为:inta,b;floatx,y;(3)a,b:char;错误。
C语言中变量定义格式为:类型名变量名;改正为:chara,b;(4)charif;错误。
标准C语言程序设计第五版课后练习题答案

课后练习题答案Chapter 11.1×√×√√×√××√1.2b c1.3ad1.4semicolon printf math.h \nChapter 22.1 ×√××√√×√××√×2.2 typedef 255 external constChapter 33.1 ×√××√√×××√√√3.2 integer modula 6 logical sizeof paratheses typeconversion precedence3.3 F F T F F F3.4 F T T T F3.5 (b) (c)3.6 0 -2 7 10.25 false 3 3 13.10 0 1 1 1 13.11d}1003.121101113.13 13.14 2003.15 x<=y3.16 TRUE3.192143.20-4040Chapter 44.1 ×√√√√√××√√√×4.2 %hd %x ctype.h %l %*d [^] blank 6 - %e4.4 (a) scanf(“%d %c %d”, &a, &b, &c); (b)scanf(“%d %f %s”, &a, &b, &c);(c) scanf(“%d-%d-%d”, &a, &b, &c); (d) scanf(“%d %s %d”, &a, &b, &c);4.5 (a)10x1.230000 (b)1234x 1.23 (c)1234 456.000000 (d) “123.40 ”(e) 1020 1222(乱码)4.7 (a)1988 x (b)乱码(c)120 乱码(d)乱码 x4.8 (a)1275 -235.740000(b) 1275-235.740000(c) 0 0.000000(d) 1275xxxx-235.74(e)Cambridge(f)1275 Cambridge4.10 1988 无无Chapter 55.1 √×√××××××√5.2 && switch break if-else x=y5.4 (a)x = 2; y = 0; (b) x = 1; y = 0;5.5 (a) if (grade <= 59)if (grade >= 50)second = second + 1;(b) if (number > 100) printf(“out of range”);else if (number < 0) printf(“out of range”);else sum = sum + number;(c)if (T > 200) printf(“admitted”);else if (M > 60){if (M > 60) printf(“admitted”);}else printf(“not admitted”);5.6 F T F T5.8 (a) x > 10 (b) (x != 10)||(y ! = 5) || (z >= 0)(c) (x + y != z) || (z > 5) (d) (x > 5) || (y != 10) || (z >= 5)5.9 (a) x = 5; y = 10; z = 1 (b) x = 5; y = 10; z = 1(c) x = 5; y = 0; z =0 (d) 无变化5.10 (a) x= 0; y = 2; z = 0; (b) x = 1; y = 2; z = 0;5.12 85.13 Delhi Bangalore END5.1424485.15 0 0 25.16 255.17 Number is negative5.18 ABC5.19 105.20 无输出Chapter 66.1 √√√××√×√√×6.2 n continue infinite indefinite-repetition-loop counter-variable 6.9 (a) 43210 (b)4321 (c)55555…55555(d)10 86.11 (a)无数次 x = 10; x = 5; x = 10; x = 5; x = 10;…(b)5次 m = 3, m = 5, m = 7, m = 9, m = 11(c)无数次, i 恒为0(d)4次 m = 11 n = 9; m = 12 n = 11; m = 13, n = 13; m = 14, n = 15;6.13(a)for (n = 1; n <= 32; n = n * 2) printf("%d ", n);(b)for (n = 1; n <= 243; n = n * 3) printf("%d ", n);(c)for (n = -4; n <= 4; n = n + 2) printf("%d ", n);(d)sum = 0;for (i = 2; i <= 16; i = sum){sum = sum + i;n = n - i;printf("%d %d %d \n", i, sum, n);}6.16 100 90 80 70 60 50 40 30 20 10 06.17 m = 20时陷入死循环,程序无输出6.18 16.19 16.20 死循环,延长时间用Chapter 77.1 √×√××√√√√××√7.2 index/subscript run-time dynamic multi-dimensional sorting7.14 157.15 HLOWRDChapter 88.1 ×√√√×√××√×××√×√8.2 %[ a-z,A-Z] strcpy 3 stdlib gets strlen strstr strcmp s1-s2 puts8.6 (a) The sky is the limit.(b) The sky is(c) T(d) The sky is the limit(e)8410410132115107121321051153211610410132108105109105116(f)输出1 2 3 4 5 6 7 8 9…21这些ASCII码对应的字符,无显示符号(g)%(h)U8.7 (d)8.8 78.9 (a)he(b)heorshe(c)5 78.11 puneChapter 99.1 √×××√×××√√√×××√×√√××9.2 actual-parameter local-variable int data-type variable-name scope recursive static type auto9.8 abceg9.9 abcdeg9.12 (a) 5 (b) 4 (c)3 (d)09.13 (a) 5 4 4 0 (b) 5.0 4.0 3.0 0.679.14 题目错,设z = 5;结果为:200 10009.15 1009.16 x = 3; y = 0Chapter 1010.1 ×√√√√×√√×√√√××√10.2 typedef union tag_name pointer memberChapter 1111.1 √×√√√√×√××11.2 address * * 0 null。
c语言程序设计第五版课后答案谭浩强第六章习题答案

c语⾔程序设计第五版课后答案谭浩强第六章习题答案第六章:利⽤数组处理批量数据1. ⽤筛选法求100之内的素数【答案解析】素数:约数为1和该数本⾝的数字称为素数,即质数筛选法:⼜称为筛法。
先把N个⾃然数按次序排列起来。
1不是质数,也不是合数,要划去。
第⼆个数2是质数留下来,⽽把2后⾯所有能被2整除的数都划去。
2后⾯第⼀个没划去的数是3,把3留下,再把3后⾯所有能被3整除的数都划去。
3后⾯第⼀个没划去的数是5,把5留下,再把5后⾯所有能被5整除的数都划去。
这样⼀直做下去,就会把不超过N 的全部合数都筛掉,留下的就是不超过N的全部质数。
因为希腊⼈是把数写在涂腊的板上,每要划去⼀个数,就在上⾯记以⼩点,寻求质数的⼯作完毕后,这许多⼩点就像⼀个筛⼦,所以就把埃拉托斯特尼的⽅法叫做“埃拉托斯特尼筛”,简称“筛法”。
(另⼀种解释是当时的数写在纸草上,每要划去⼀个数,就把这个数挖去,寻求质数的⼯作完毕后,这许多⼩洞就像⼀个筛⼦。
)【代码实现】//⽤筛选法求100以内的素数#include<stdio.h>int main(){int i, j, k = 0;// 将数组汇总每个元素设置为:1~100int a[100];for (i = 0; i < 100; i++)a[i] = i+1;// 因为1不是素数,把a[0]⽤0标记// 最后⼀个位置数字是100,100不是素数,因此循环可以少循环⼀次a[0] = 0;for (i = 0; i < 99; i++){// ⽤a[i]位置的数字去模i位置之后的所有数据// 如果能够整除则⼀定不是素数,该位置数据⽤0填充for (j = i + 1; j < 100; j++){if (a[i] != 0 && a[j] != 0){//把不是素数的都赋值为0if (a[j] % a[i] == 0)a[j] = 0;}}}printf(" 筛选法求出100以内的素数为:\n");for (i = 0; i < 100; i++){//数组中不为0的数即为素数if (a[i] != 0)printf("%3d", a[i]);}printf("\n");return 0;}【运⾏结果】2. ⽤选择法对10个整数排序【答案解析】选择排序原理:总共两个循环,外循环控制选择的趟数,内循环控制具体选择的⽅式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。
【解答】(1)语言简洁、紧凑,使用方便、灵活。
(2)数据类型丰富,表达能力强。
(3)运算符多样。
C语言中的运算符包含的范围非常广泛。
(4)具有结构化的控制语句。
如if…else语句、while语句、do while语句、switch 语句、for语句。
(5)允许直接访问物理地址。
C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。
(6)所生成的目标代码质量高,可移植性好。
2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。
一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。
3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。
二.运行程序写结果1.输入下面程序并运行。
main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。
main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=200三.编程题1.参照本章例题,编写一个C程序,用于显示如下信息:*************************I love C programs!*************************【分析与提示】①要有文件包含语句#include <stdio.h>。
C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。
这些函数的说明都包括在stdio.h文件中。
②main是主函数的名称。
用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。
③注意显示的信息有三行,所以要用到换行符“\n”。
参考代码:#include <stdio.h>main(){printf("************************\n");printf(" I love C programs! \n");printf("************************\n");}第2章数据类型及其运算一.简答题1.C语言中的数据类型主要有哪几类?【解答】短整型(short int )整型整型(int)长整型(long int )基本类型字符型 (char)单精度(float)实型(浮点型)双精度(double)枚举类型(enum)数组类型构造类型结构体类型 (struct)共用体类型(union)指针类型空类型(void)2.字符常量与字符串常量有什么区别?【解答】字符常量用单括号括起,字符串常量用双括号括起;字符常量存储时占1个字节,字符串常量存储时除了n个字符外,还有系统加上的字符串终止符\0,所以字符串常量存储时占n+1个字节。
3.C语言中的常量包括哪几类?各自是如何构成的?【解答】C语言中的常量是一些其值预先定的量,并且在程序执行过程中其值不再发生变化。
常量的分类遵循基本数据类型分类原则,C语言编译系统自动将其存放在于类型相应的内存单元中。
其类别包含整形常量、浮点常量、字符常量、字符串常量和枚举常量。
整形常量又分为十进制整形常量、八进制整形常量、十六进制整形常量。
浮点常量分成十进制形式和指数形式。
C语言中的,字符常量是用单括号括起来的一个字符或是字符序列,而字符串常量是用一对双括号括起来的零个或者多个字符组成的序列。
4.简述指针、变量的指针、变量的值、指针变量与指针变量的值的含义是什么?【解答】C语言中将地址又称为“指针”。
一个变量所分配的内存空间首字节地址,称为该变量的指针(地址),变量的值就被放入所分配的地址单元中。
地址一旦被分配,就不会再改变,所以,指针是一个常量。
既然是常量就可以把它赋给一个变量。
用来存放指针的变量,被称为指针变量。
一个指针变量的值是变量的地址,一个指针变量可以被赋予不同的指针值。
5.下面哪些是不合法的常量?说明不合法的理由。
123,3.,0892,’M’,’\n’,0xabc,0.618E-6,”Morning”,3.8e-3.14【解答】非法常量有:0892——含有非八进制数字8和93.8e-3.14——非法指数形式浮点常量:规定e后面的指数必须为整数。
6.下面对变量定义的语句哪些不正确?为什么?请改正。
(1)char c1,int a2; (2)INT a,b; FLOAT x,y;(3)a,b:char;(4)char if; (5)int a,b (6)Int a:b:c;(7)int a,x; float x,y;【解答】(1)char c1,int a2;错误。
定义不同类型的变量时,应用分号彼此分开。
改正为:char c1; int a2;(2)INT a,b; FLOAT x,y;错误。
C语言中表示类型名的关键字必须小写。
改正为:int a,b; float x,y;(3)a,b:char;错误。
C语言中变量定义格式为:类型名变量名;改正为:char a,b;(4)char if;错误。
变量名不能与C语言的关键字重名。
改正为:char f1;(5)int a,b错误。
变量定义以语句形式出现,应以分号结尾。
改正为:int a,b;(6)Int a:b:c;错误。
类型名不能有大写字母,相同类型名之间用逗号分隔。
改正为:int a,b,c;(7)int a,x; float x,y;错误。
在同一程序位置上,同一变量名不能重复定义充当两个不同的变量。
改正为:int a,x; float x1,y;7.下述字符串常量的长度是多少?在内存中存储时各自占用的单元数又是多少?(1)“Hello!” (2)“ABC\n\\TH\064\?” (3)“\xAB*\765+123=?”【解答】(1)“Hello!” 字符串长度为6,占用内存字节数为7。
(2)“ABC\n\\TH\064\?” 字符串长度为9,占用内存字节数为10。
因为其中\n \\ \064\?各自只占一个字符的位置。
(3)“\xAB*\765+123=?” 该字符串不是合法的,因为\765表示的值太大,超出合法的ASCII字符集的范围。
二.运行程序写结果1.以下程序的执行结果是____。
main(){int i,j;i=15;p rintf(“%d,%d”, i++,i--);}【解答】14,152.以下程序的执行结果是。
main(){int a=20,b=10,c,*p1,*p2;p1=&a;p2=&b;c=(-*p1)/(*p2)+6;printf("a=%d,b=%d\n",a,b);printf("*p1=%d,*p2=%d\n",*p1,*p2);printf("c=%d\n",c);}【分析与提示】p1 aP2 b`【解答】a=20,b=10*p1=20,*p2=10c=43.以下程序的执行结果是。
#include <stdio.h>main()char a=’G’,b=’o’,c=’o’,d=’d’;a=a+32;b=b-6;c=c+3;d=d+8;printf("%c%c%c%c\n",a,b,c,d);}【分析与提示】从ASCII代码表可以看出,字符“G”、“o”、“o”、“d”的ASCII代码值为71、111、101,因此,’G’+32、’o’-6、’o’+3、’d’+8的值分别是103、105、114、108,它们所对应的字符分别是“g”、“i”、“r”、“l”。
常用结论:(1)在C语言中,字符数据可以按其ASCII代码值参加整数运算。
由于英文字母在ASCII代码表中是按顺序排列的,所以在计算’o’+3代表的字母时,可从字符’o’其顺序向后取3个字母,该字母是“r”。
(2)从ASCII代码表可以看出“小写字母”-“对应大写字母”的结果是32,因此可推算出如下等式:大写字母的ASCII值+32=对应小写字母的ASCII值;小写字母的ASCII 值-32=对应大写字母的ASCII值。
【解答】girl4.以下程序的执行结果是。
#include <stdio.h>main(){int x;x=-3+4*5-6;printf("x1=%d\n",x);x=3+4%5-6;printf("x2=%d\n",x);x=-3*4%-6;printf("x3=%d\n",x);}【分析与提示】x1=11(4*5是20,-3+20是17,17-6等于11)x2=1(4%5等于4,3+4等于7,7-6等于1)x3=0(-3*4等于-12,-12%-6等于0)【解答】x1=11x2=1x3=05.以下程序的执行结果是。
#include <stdio.h>main(){printf("%d\n",NULL);printf("%d,%c\n",49,49);printf("%d,%c,%o\n",48+10,48+10,48+10);【分析与提示】0(NULL的ASCII码值是0)49,1(数字1的ASCII码值是49)58,:,72(48+10等于58,正好是“:”的ASCII码值,八进制表示是72)【解答】049,158,:,72三、改错题1.请修改下列程序,使其能够通过编译。
#include <stdio.h>Void Main(){int a=6;b=8;int c;c=a*b;printf(‘%d’,c);}【答案】错误的地方有3处:(1)第2行关键字应该小写;(2)定义b时前面应该用逗号;(3)打印语句的格式应该用双引号括起来。
正确的程序如下:#include <stdio.h>void main(){int a=6,b=8;int c;c=a*b;printf("%d",c);}2.请修改下列程序,使其能够正确运行。
#include <stdio.h>void main();{float f=7.12;char c=”c”;printf(“%d\n”,int(f%3));printf(“%c”,c);}【答案】错误的地方有3处:(1)第2行main();不应该有分号;(2)定义char c=”c”;时,字符常量应该用单引号;(3)打印语句printf(“%d\n”,int(f%3));的格式有错,应该在f前的int用括号括起来,因为实型数据不能执行取余运算。