c语言程序设计第五版习题答案
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语言程序设计第五版课后题答案

c语言程序设计第五版课后题答案由于版权问题,我不能提供特定书籍的课后题答案。
但是,我可以提供一些通用的C语言编程技巧和解题思路,这可能对你解决课后习题有所帮助。
1. 理解题目要求:首先,仔细阅读题目,理解题目要求你做什么。
确定是要求编写一个程序,还是解决一个算法问题。
2. 分析问题:将问题分解成更小的部分。
例如,如果你需要编写一个程序来排序一组数字,你可以先考虑如何读取输入,然后是如何实现排序算法。
3. 选择合适的数据结构:根据问题的性质选择合适的数据结构,例如数组、链表、栈、队列等。
4. 设计算法:设计解决问题的算法。
这可能包括选择适当的排序算法、搜索算法或其他算法。
5. 编写伪代码:在编写实际的C语言代码之前,先编写伪代码可以帮助你组织思路,确保逻辑正确。
6. 编写代码:根据伪代码,开始编写C语言代码。
注意良好的编程习惯,如使用适当的变量名、添加注释等。
7. 测试代码:编写完代码后,进行测试以确保代码按预期工作。
测试不同的输入情况,包括边界条件。
8. 调试:如果代码没有按预期工作,使用调试工具或打印语句来找出问题所在,并进行修正。
9. 优化:在确保代码正确运行后,考虑是否可以优化代码,提高效率或减少资源消耗。
10. 复习和总结:完成题目后,回顾解题过程,总结学到的知识点和技巧。
如果你有具体的C语言编程问题或需要帮助理解某个概念,可以提供更多的信息,我会尽力提供帮助。
例如,如果你需要帮助理解指针的概念,或者如何实现递归函数,我可以提供更具体的指导和示例。
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=200三.编程题1.参照本章例题,编写一个C程序,用于显示如下信息:*************************I love C programs!*************************【分析与提示】①要有文件包含语句#include <stdio.h>。
C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。
这些函数的说明都包括在stdio.h文件中。
②main是主函数的名称。
最新最全标准C语言程序设计第五版课后基础练习题复习答案完整版.doc

课后练习题答案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赠送以下资料5以内的加减法口算练习题姓名得分2+2= 3+2= 0+2= 0+1= 3-1= 2+1= 2+3= 1+4= 1-0= 2+2= 0-0= 3+2= 3-1= 2-1= 2+2= 4-3= 3+2= 2+2= 5-4= 3-1= 0+4= 4+1= 1+0= 0+0= 5-2= 3+2= 4-3= 2+2= 1+2= 5-2= 1+2= 2-0= 1+2= 4+1= 2+2= 2-0= 1-1= 2+2= 2-0= 1-0= 3+0= 4-2= 2-0= 3-0= 0+1= 4-1= 4+1= 3-1= 4-3= 2-0= 3-1= 1+3= 2-0= 1-0= 3+0= 1+2= 5-4= 1-1= 2+0= 3-1= 2-0= 0+1= 1+4= 2+3= 2-1= 3-1= 0+0= 2+2= 2-0= 3-1= 1+0= 1+2= 2+2= 1+3= 5-4= 0+2= 2+3= 1-0=5-2= 3-3= 1+2= 2-1= 3-3= 3-0= 4-4= 5-4= 2+2= 3-2= 3-0= 3+1= 2+1= 3-3= 4-4= 2-0= 4-0= 3-2= 3-0= 4-3= 5-2= 5+0=家长签名。
C程序设计(第五版)-第4章选择结构程序设计课后习题答案

C程序设计(第五版)-第4章选择结构程序设计课后习题答案1. 什么是算术运算?什么是关系运算?什么是逻辑运算?【答案解析】算熟运算:算术运算即“四则运算”,是加法、减法、乘法、除法、乘⽅、开⽅等⼏种运算的统称。
其中加减为⼀级运算,乘除为⼆级运算,乘⽅、开⽅为三级运算。
在⼀道算式中,如果有多级运算存在,则应先进⾏⾼级运算,再进⾏低⼀级的运算。
C语⾔中的算熟运算符包括:+、-、*、/、++、--、%等种类。
如果只存在同级运算;则从左⾄右的顺序进⾏;如果算式中有括号,则应先算括号⾥边,再按上述规则进⾏计算。
⽰例:$ (1 + 1)^{2} * 4+5 * 3$解析:1. 先进⾏括号内运算1+1,然后进⾏乘⽅运算得到结果4.2. 接下来与4相乘,得到结果163. 因为乘法优先级⼤于加法,因此先进⾏5*3,得到结果154. 最终相加得到结果31结果:31关系运算:关系的基本运算有两类:⼀类是传统的集合运算(并、差、交等),另⼀类是专门的关系运算(选择、投影、连接、除法、外连接等),⽽在C语⾔中,关系运算通常被认为是⽐较运算,将两个数值进⾏⽐较,判断⽐较结果是否符合给定的条件。
常见的关系运算符包括:<、<=、>、>=、==、!=等种类。
其中,前4种关系运算符(<、<=、>、>= )的优先级别相同,后2种(==、!=)也相同。
⽽前4种⾼于后2种。
例如, >优先于==。
⽽>与<优先级相同。
并且,关系运算符的优先级低于算术运算符,关系运算符的优先级⾼于赋值运算符(=)。
逻辑运算:在逻辑代数中,有与、或、⾮三种基本逻辑运算。
表⽰逻辑运算的⽅法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。
⽽在C语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。
常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。
c程序语言第五版习题答案

c程序语言第五版习题答案C程序语言第五版习题答案在学习编程语言的过程中,练习和理解习题是非常重要的一部分。
对于C程序语言第五版的学习者来说,习题的解答不仅可以帮助巩固所学的知识,还能够提升编程能力。
在本文中,我将为大家提供C程序语言第五版习题的一些答案和解析,希望能够对学习者有所帮助。
1. 习题1-1题目:编写一个程序,在屏幕上输出"Hello, World!"。
解答:```c#include <stdio.h>int main(){printf("Hello, World!\n");return 0;}```解析:这是一个非常简单的程序,使用了C语言中的标准输入输出库函数`printf`来输出字符串"Hello, World!"。
`\n`表示换行符。
2. 习题2-1题目:编写一个程序,计算并输出华氏温度转换为摄氏温度的结果。
解答:```c#include <stdio.h>int main(){float fahrenheit, celsius;printf("请输入华氏温度:");scanf("%f", &fahrenheit);celsius = (fahrenheit - 32) * 5 / 9;printf("摄氏温度为:%.2f\n", celsius);return 0;}```解析:这个程序通过用户输入的华氏温度,使用公式`(华氏温度 - 32) * 5 / 9`来计算摄氏温度,并输出结果。
3. 习题3-2题目:编写一个程序,输入一个浮点数,输出该浮点数的立方值。
解答:```c#include <stdio.h>int main(){float num, cube;printf("请输入一个浮点数:");scanf("%f", &num);cube = num * num * num;printf("立方值为:%.2f\n", cube);return 0;}```解析:这个程序通过用户输入的浮点数,使用乘法运算符`*`计算该浮点数的立方值,并输出结果。
c primer第五版习题答案

c primer第五版习题答案C Primer第五版习题答案C Primer第五版是一本经典的C语言教材,被广泛用于计算机科学和软件工程领域。
本文将为读者提供一些C Primer第五版习题的答案,以帮助读者更好地理解和掌握C语言的基础知识。
第一章:入门1.1 C语言的起源和发展答案:C语言由贝尔实验室的Dennis Ritchie于20世纪70年代初开发。
它是一种通用的高级编程语言,被广泛应用于系统软件开发和嵌入式系统等领域。
C 语言的设计目标是提供高效的编程方式,同时保持可移植性和可扩展性。
1.2 第一个C程序答案:第一个C程序通常是一个打印"Hello, World!"的程序。
以下是一个简单的示例:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```1.3 编译和运行C程序答案:要编译和运行C程序,可以使用命令行工具或集成开发环境(IDE)。
在命令行中,可以使用gcc编译器将C源代码编译为可执行文件。
例如,要编译名为`hello.c`的程序,可以使用以下命令:```gcc hello.c -o hello```然后,可以使用以下命令运行该程序:```./hello```第二章:变量和基本类型2.1 基本数据类型答案:C语言提供了几种基本数据类型,包括整型、浮点型、字符型和布尔型。
整型可以分为有符号和无符号两种,它们的范围取决于编译器和平台。
浮点型用于表示带有小数部分的数值。
字符型用于表示单个字符。
布尔型用于表示真值(true或false)。
2.2 变量答案:在C语言中,变量用于存储和操作数据。
变量必须先声明后使用,声明包括变量的类型和名称。
例如,以下是一个声明整型变量的示例:```cint age;```变量还可以被赋值为特定的值,例如:```cage = 20;```2.3 常量答案:常量是指在程序执行期间其值不会改变的量。
01062_C程序设计(第五版)课后答案

06
结构体、联合体与枚举类型
2024/1/27
28
结构体定义及使用
结构体类型的定义
使用`struct`关键字定义结构体类型,指定结构 体名称及包含的成员变量。
结构体变量的访问
使用`.`运算符访问结构体变量的成员,可以读取 或修改成员的值。
ABCD
2024/1/27
结构体变量的定义与初始化
定义结构体变量并为其成员变量赋值,可以通过 直接赋值或使用初始化列表进行初始化。
函数与模块化设计
在C语言中,函数是实现模块化设计的基本单位。通过将程序 划分为若干个独立的函数,可以实现代码的模块化和重用。 同时,合理的函数划分可以提高程序的可读性和可维护性。
22
05
指针与动态内存管理
2024/1/27
23
指针概念及操作
指针定义
指针是一种特殊类型的变量,它存储的是另一个变量的内存地址, 而不是实际的值。
函数类型
函数的类型指的是函数返回值的类型。在定义函数时,需要指定函数的类型, 以便编译器能够正确处理函数的返回值。
2024/1/27
21
模块化设计思想
2024/1/27
模块化设计
将大型程序划分为若干个独立的、可重用的模块,每个模块 实现一个特定的功能。模块化设计可以提高程序的可维护性 、可重用性和可扩展性。
10
04
switch语句根据表达式 的值选择不同的case执 行,适用于多个固定值 的判断。
循环结构
重复执行某段代码,直到 满足某个条件为止。
常见的循环结构有for循 环、while循环和dowhile循环。
2024/1/27
for循环适用于已知循环 次数的情况,可以方便地 控制循环的起始和结束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言程序设计第五版习题答案Prepared on 24 November 2020习题解析与答案第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<>。
C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。
这些函数的说明都包括在文件中。
②main是主函数的名称。
用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。
③注意显示的信息有三行,所以要用到换行符“\n”。
参考代码:#include<>main(){printf("************************\n");printf("IloveCprograms!\n");printf("************************\n");}第2章数据类型及其运算一.简答题1.C语言中的数据类型主要有哪几类【解答】短整型(shortint)整型整型(int)长整型(longint)基本类型字符型(char)(float)实型(浮点型)双精度(double)枚举类型(enum)数组类型构造类型结构体类型(struct)共用体类型(union)指针类型空类型(void)2.字符常量与字符串常量有什么区别【解答】字符常量用单括号括起,字符串常量用双括号括起;字符常量存储时占1个字节,字符串常量存储时除了n个字符外,还有系统加上的字符串终止符\0,所以字符串常量存储时占n+1个字节。
3.C语言中的常量包括哪几类各自是如何构成的【解答】C语言中的常量是一些其值预先定的量,并且在程序执行过程中其值不再发生变化。
常量的分类遵循基本数据类型分类原则,C语言编译系统自动将其存放在于类型相应的内存单元中。
其类别包含整形常量、浮点常量、字符常量、字符串常量和枚举常量。
整形常量又分为十进制整形常量、八进制整形常量、十六进制整形常量。
浮点常量分成十进制形式和指数形式。
C语言中的,字符常量是用单括号括起来的一个字符或是字符序列,而字符串常量是用一对双括号括起来的零个或者多个字符组成的序列。
4.简述指针、变量的指针、变量的值、指针变量与指针变量的值的含义是什么【解答】C语言中将地址又称为“指针”。
一个变量所分配的内存空间首字节地址,称为该变量的指针(地址),变量的值就被放入所分配的地址单元中。
地址一旦被分配,就不会再改变,所以,指针是一个常量。
既然是常量就可以把它赋给一个变量。
用来存放指针的变量,被称为指针变量。
一个指针变量的值是变量的地址,一个指针变量可以被赋予不同的指针值。
5.下面哪些是不合法的常量说明不合法的理由。
123,,0892,’M’,’\n’,0xabc,,”Morning”,【解答】非法常量有:0892——含有非八进制数字8和9——非法指数形式浮点常量:规定e后面的指数必须为整数。
6.下面对变量定义的语句哪些不正确为什么请改正。
(1)charc1,inta2;(2)INTa,b;FLOATx,y;(3)a,b:char;(4)charif;(5)inta,b(6)Inta:b:c;(7)inta,x;floatx,y;【解答】(1)charc1,inta2;错误。
定义不同类型的变量时,应用分号彼此分开。
改正为:charc1;inta2;(2)INTa,b;FLOATx,y;错误。
C语言中表示类型名的关键字必须小写。
改正为:inta,b;floatx,y;(3)a,b:char;错误。
C语言中变量定义格式为:类型名变量名;改正为:chara,b;(4)charif;错误。
变量名不能与C语言的关键字重名。
改正为:charf1;(5)inta,b错误。
变量定义以语句形式出现,应以分号结尾。
改正为:inta,b;(6)Inta:b:c;错误。
类型名不能有大写字母,相同类型名之间用逗号分隔。
改正为:inta,b,c;(7)inta,x;floatx,y;错误。
在同一程序位置上,同一变量名不能重复定义充当两个不同的变量。
改正为:inta,x;floatx1,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(){inti,j;i=15;p rintf(“%d,%d”,i++,i--);}【解答】14,152.以下程序的执行结果是。
main(){inta=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);}【分析与提示】p1aP2b`【解答】c=43.以下程序的执行结果是。
#include<>main(){chara=’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<>main(){intx;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<>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<>VoidMain(){inta=6;b=8;intc;c=a*b;printf(‘%d’,c);}【答案】错误的地方有3处:(1)第2行关键字应该小写;(2)定义b时前面应该用逗号;(3)打印语句的格式应该用双引号括起来。
正确的程序如下:#include<>voidmain(){inta=6,b=8;intc;c=a*b;printf("%d",c);}2.请修改下列程序,使其能够正确运行。
#include<>voidmain();{floatf=;charc=”c”;printf(“%d\n”,int(f%3));printf(“%c”,c);}【答案】错误的地方有3处:(1)第2行main();不应该有分号;(2)定义charc=”c”;时,字符常量应该用单引号;(3)打印语句printf(“%d\n”,int(f%3));的格式有错,应该在f前的int用括号括起来,因为实型数据不能执行取余运算。