程序设计基础(杨有安版)习题答案

更新时间:2023-11-28 14:02:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1章 C语言概述

【习题1-1】简述C语言的特点。

答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。

【习题1-2】简述上机调试运行C程序的操作步骤。

答:上机运行C语言程序的操作步骤为:启动Visual C++ 6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。

【习题1-3】上机运行本章的3个例题。

答:略。

【习题1-4】请从以下的4个选项中选择一个正确答案。

(1)A (2)A (3)C (4)B

【习题1-5】参照本章例题,编写一个C语言程序,输出以下信息:

**************

Nice to meet you! **************

编写程序如下: void main() {

#include

printf(\

printf(\ printf(\}

第2章 基本数据类型和运算符

【习题2-1】上机编辑并调试本章所有例题。 答:略。

【习题2-2】下面哪些是合法的常量?

⑴20 0.5 012 13e5.1 E-5 8e4 5. 0x6a ⑵'mn' \

答:⑴合法的常量有:20 0.5 012 8e4 5. 0x6a ⑵合法的常量有: \

【习题2-3】下面的变量名中哪些是合法的? A&b abc123 abc% AbC a_b_c int _abc 123abc a\\b?c

a bc a*bc 'a'bc

答:合法的变量名有:abc123 AbC a_b_c _abc

【习题2-4】指出下面的变量定义哪些是正确的,哪些是不正确的,为什么? ⑴Int i,j;

⑵float a,b;

⑶int a,b;float a,b; ⑷float a,int b; ⑸char 'a';

答:⑴错误,因为关键字Int应该全为小写字母

⑵正确

⑶错,因为同一变量在程序的同一处不应该声明为不同的数据类型 ⑷错,因为不同类型的变量要分别声明,其间应使用分号,而不是逗号 ⑸错,'a'表示字符常量,不能用作变量名

【习题2-5】把下列数学式子写成C语言表达式。 (1)3.26ex+(a+b)4

31(2)2x?(3)gm1m2r2a?b3sin(x)

(4)2?r+?r2+cos(45°) (5)loanrate(1?rate)(1?rate)monthmonth?1

对应的C语言表达式分别为:

(1)3.26*exp(x)+1.0/3*pow(a+b,4) (2)2*sqrt(x)+(a+b)/(3*sin(x))

(3)g*m1*m2/(r*r)

(4)2*3.14*r+3.14*r*r+cos(3.14/180*45)

(5)loan*rate*pow(1+ rate, month)/(pow(1+rate, month)-1)

【习题2-6】C语言中为什么要引入转义字符?

答:在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如a、b、$等。但另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键,或者当按键以后不能显示键面上的字符,为了解决这一问题,在C语言中引入了转义字符。

【习题2-7】逻辑表达式的值是什么?只能用1和0才能表示真值和假值吗? 答:逻辑表达式的值是一个逻辑量“真”或者“假”,不是只有用1表示真值,用0表示假值,在判断一个量为真假时,常以0表示假,以非0表示真。

【习题2-8】对于表达式(1+2)*(y=3),可以肯定(1+2)先计算,而(y=3)后计算吗? 答:不能。

【习题2-9】 “&&”和“‖”严格地执行运算符优先级的规则吗?它的规则是什么? 答:逻辑运算符不按照规定的优先级计算。在逻辑表达式的求值过程中,如果从“&&”或“‖”左边的运算对象部分已经能够确定整个逻辑表达式的值,则不再求右边运算对象的值,这样做提高了运算速度。具体地说:若“&&”的左运算对象值为0,则不再对右运算对象求值,因整个式子的结果必定为0。若“‖”的左运算对象值为非0,则不再对右运算对象求值,因整个式子的结果必定为1。以上所说的这种运算的规则是C对逻辑运算的特殊处理规则。它严格地执行从左到右运算的规则,不受运算符优先级所影响。

【习题2-10】字符常量和字符串常量有什么区别? 答:字符常量和字符串常量的区别:

① 从形式上看,字符常量使用单引号,而字符串常量使用双引号。

② 从内部存储来看,编译程序在每个字符串的尾部自动加上了一个空字符NULL(即‘\\0’)作为字符串的结束标志,而字符常量则不存在这种情况。

【习题2-11】将下面语句组进行简写。 ⑴int i; int j;

⑵x=0; y=0;

⑶x=x+y; ⑷int x,y;

x=y-(y/10)*10;

⑸int x; x=x+1; ⑹y=x; --x;

对应的简写语句分别为: (1)int a,b; (2)x=y=0; (3)x+=y; (4)int x,y; x=y; (5)int x;

x++; 或 x+=1; 或 ++x; (6)y=x--;

【习题2-12】写出下面程序运行后的结果。 ⑴ 程序运行结果:

2,3

⑵ 程序运行结果:

y=5.000000

⑶ 程序运行结果:

ch1=65,ch2=97 B,b

⑷ 程序运行结果:

0,48

⑸ 程序运行结果:

0 2 2 1

⑹ 程序运行结果:

a,A,32,32

⑺ 程序运行结果:

0 1,6 0,15,15

⑻ 程序运行结果:

2,2,1 1,2,1 0,2,2 -1,2,2

⑼ 程序运行结果:

3 2 4

⑽ 程序运行结果:

3 2 3,3 4 3,4,4 0 1

第3章 顺序和选择结构程序设计

【习题3-1】请从以下的4个选项中选择1个正确答案。 1. 结构化程序设计的三种基本结构是( )。

A. 函数结构、判断结构、选择结构 B.平行结构、嵌套结构、函数结构 C. 顺序结构、选择结构、循环结构 D.判断结构、嵌套结构、循环结构 【正确答案】 C

2. putchar( )函数可以向终端输出一个( )。 A. 整型变量表达式值 B. 实型变量值 C. 字符串

D. 字符或字符型变量值

【正确答案】 D

3. 若已定义 double y; 拟从键盘输入一个值赋给变量y,则正确的函数调用是( )。 A. scanf(“%d”, &y); B. scanf(“%7.2f”, &y); C. scanf(“%lf”, &y); D. scanf(“%ld”, &y); 【正确答案】 C

4. 若有以下定义: float x; int a, b; 则正确的switch 语句是( )。 A. switch(x) B. switch(x) { case 1.0:printf(\ { case 1,2:printf(\ case 2: printf(\ case 3:printf(\ }

C. switch(a+b)

} D. switch(a-b);

{ case 1:printf(\

{ case 1: printf(\

case 2: printf(\

} } 【正确答案】 C

5. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与( )组成配对关系。

A. 缩排位置相同的if B. 在其之前未配对的if

C. 在其之前尚未配对的最近的if D. 同一行上的if 【正确答案】 B

【习题3-2】if语句有那3种形式,请分别画出每种形式的执行流程图。 【参考答案】

(1)顺序结构 (2)选择结构

本文来源:https://www.bwwdw.com/article/f21t.html

Top