C语言程序设计(第3版)第3章补充习题及答案
- 格式:doc
- 大小:53.00 KB
- 文档页数:6


1.5请参照本章例题编写一个C程序输出以下信息
**************************
Very Good!
************************** 解
mian()
{printf(“**************************”);
printf(“\n”);
printf(“Very Good!\n”);
printf(“\n”);
printf(“**************************”);
}
1.6 编写一个程序输入a、b、c三个值输出其中最大值。 解
mian()
{int a,b,c,max;
printf(“请输入三个数a,b,c:\n”);
scanf(“%d,%d,%d”,&a,&b,&c);
max=a;
if(max
max=b;
if(max
max=c;
printf(“最大数为“%d”,max);
}
第三章
3.6写出以下程序运行的结果。
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”,c4,c5);
}
解
aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc
AㄩN
3.7 要将"China"译成密码译码规律是用原来字母后面的第4个字母代替原来的字母例 如字母"A"后面第4个字母是"E""E"代替"A"。因此"China"应译为"Glmre"。请编一程 序用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’ 经过运算使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’并输出。
第2章 C语言编写程序
【练习2-1】输出短句(Programming in C is fun!):在屏幕上显示一个短句“Programming in C is fun!”。试编写相应程序。
解答:
#include
int main(void)
{
printf("Programming in C is fun!\n");
return 0;
}
【练习2-2】 下列语句的运行结果是什么?与例 2-2 的运行结果有何不同?为什么?
printf("Programming is fun. And Programming in C is even more fun!\n");
解答:
运行结果:Programming is fun. And Programming in C is even more fun!
例 2-2 的运行结果分 2 行显示。原因在于,例 2-2 中在每条输出语句的结尾都采用了‘\n’换行。
【练习2-3】输出倒三角图案:在屏幕上显示如下倒三角图案。试编写相应程序。
* * * *
* * *
* *
*
解答:
#include
int main(void)
{
printf("* * * *\n * * * \n * * \n * \n");
return 0;
}
【练习2-4】 温度转换:求华氏温度 150°F 对应的摄氏温度(计算公式同例 2-3)。试编写相应程序。
解答:
#include
int main(void)
{
double celsius,fahr;
printf("Enter fahr:\n");
scanf("%lf",&fahr);
celsius=5.0*(fahr-32)/9; printf("celsius=%.2lf\n",celsius);
return 0;
}
【练习2-5】算 术 表 达 式 5*(fahr-32)/9 能 改 写 成
练习3
1. 在C语言中,引用数组元素时,其允许的数组元素下标的数据类型是( C )。
A、实型常量 B、字符型常量 C、整型常量或整型表达式 D、任何类型的表达式
解析:C语言中数组元素下标所引用的是整型常量或整型表达式,答案选C;
2. 以下对一维整型数组a的正确说明形式是( D )。
A、int arry(10) ;
B、int n=10;
int arry[n];
C、int n;
scanf("%d",&n);
int arry[n]; D、#define N 10
int a[N];解析:本题主要考察数组定义语法要求,数组定义时下标不能使用变量,只能使用常量,数组定义时下标使用中括号表示,故答案选D;
3. 若有定义:int a[10],则对数组a元素的正确引用形式是( D )。
A、a[10] B、a[4.5] C、a(0) D、a[10-10]
解析:本题考察数组元素的引用语法,使用中括号表示下标,数组元素使用整数或整型变量表示,且下标数值表示范围在0至9,故答案选择D;
4. 以下不能对一维数组a进行正确初始化的语句是( D )。
A、int a[5]={1,2,3,4,5}; B、int a[5]={1,2,3} ;
C、int a[] = {1,2,3,4,5} ; D、int a[5]={1,2,3,4,5,6} ;
解析:一维数组的初始化时,数值的个数不能超过所定义的数组元素的个数;对于选项 D定义的元素个数是5个,但是初始化赋值的个数为6个,故不能正确为数组元素赋值,本题答案选择D;
5. 以下对二维数组a的正确说明形式是( C )。
A、int a[5][ ]; B、float a[][3]; C、long a[5][3]; D、float a(3)(5);
习题2答案
1.答案:以下合法常量已做标注,非法常量未做标注
65535(合法) 3.5U 66L(合法) 1.24e-2(合法)
6e1.2 '@'(合法) 'abc' "abc"(合法)
"?"(合法) 892.(合法) .123(合法) -0xAB (合法)
2.答案:以下合法的已做标注,不合法的未做标注
Max(合法) _301(合法) 4_5 M-1
Char(合法) int my name M.D.Jhon
3.答案:
x: 00000000 00000000 00000000 00001100
y: 00000000 00000000 00000000 01001101
z: 11111111 11111111 11111111 10001100
4.答案:运行结果:3.5 结果表达式类型:double 型
5.答案:运行结果:2.5 结果表达式类型:double 型
6.答案:
表达式序号 a的值 n的值 表达式的值
(1) 16 5 16
(2) 6 5 6
(3) 40 5 40
(4) 0 5 0
(5) 0 1 0
(6) 0 5
0
(7) 15 5 60
(8) 3 18 18
(9) 3 3 18
(10) 1 5 1
7.答案:00010101
8.答案:11111111 11111111 11111111 11111001
9.答案:00000000 00000000 00000000 11111001
10.答案:
表达式序号 (1) (2) (3) (4) (5) (6) (7) (8)
表达式运算结果 0 1 1 0 1 1 0 1 11.答案:
结果a和b的值分别是8和5。题目中的三个连续运算a=a+b; b=a-b; a=a-b;,效果是交换变量a和b的值,因此a和b的初值无论是什么,结论还是a和b的值进行了交换。
12.答案: