《c语言教材习题答案(陈刚 主编)》由会员分享,可在线阅读,更多相关《c语言教材习题答案(陈刚 主编)(29页珍藏版)》请在金锄头文库上搜索。
1、1教材习题答案习题1一填空题1C 程序是由(函数 )构成的,一个 C 程序中至少包含( main 函数 ) 。因此,( 函数 ) 是 C 程序的基本单位。2C 程序注释是由(/* ) 和( */ ) 所界定的文字信息组成的。3函数体一般包括(声明部分 ) 和(执行部分 ) 。二判断题1一个 C 程序的执行总是从该程序的 main 函数开始,在 main 函数最后结束。 (正确)2main 函数必须写在一个 C 程序的最前面。 (错误)3一个 C 程序可以包含若干的函数。 (正确)4C 程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。 (正确)
2、5C 程序的注释只能是一行。 (错误)6C 程序的注释不能是中文文字信息。 (错误)8可以使用 Turbo C 来编译和连接一个 C 程序。 (正确)9可以使用 Turbo C 来运行一个 C 程序。 (正确)10可以使用 Turbo C 来实时调试(即动态调试)一个 C 程序。 (正确)三、在 c+ 6.0中输入如下的程序,编译、连接通过后显示结果 (1) #include “stdio.h”void main()printf(“ * ”)printf(“ * ”);printf(“ * ”);printf(“* ”); 答案:* * * (2)已知底和高,计算三角形的面积。#include
3、 “stdio.h” void main() int bottom,high,area; /*bottom 表示底,high 表示高,area 表示面积*/2bottom=4;high=6;area=bottom*high/2;printf(“the area is %dn”,area);答案:the area is 12四、算法设计:请试着分别用自然语言或、程序流程图和 NS 图描述如下算法。1. 设计一个程序在屏幕上显示如下的文字HELLO WELCOME YOU2. 打印出所有的“水仙花数”,所谓“ 水仙花数”是指一个三位数,其个位数字立方和等于该数本身。例如:153是一个“水仙花数”,
4、因为153=1的三次方5的三次方3的三次方。3. 对输入的某学生成绩,如果学习成绩=90分的同学用 A 表示,60-89分之间的用 B 表示,60分以下的用 C 表示。4. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=123.编程找出1000以内的所有完数。5. 一只猴子摘了 N 个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的一半又多吃了一个,到第十天的时候发现还有一个,问共有多少个桃子。答案:1#include “stdio.h”main() printf(“HELLO WELCOME YOU”);2水仙花数产生在100到999之间,利用穷举法,对此范围之内的所有数一
5、个个进行测试,关键是要对每一个三位数分离出它的三个数字。具体的算法是:n%10,得到个位, (n/10)%10,得到百位数字,n/100,得到个位数字。再利用水仙花数的含义来判断该数是否满足条件。#include “stdio.h”main()int n,i,j,k;for(n=100;n=90) printf(An);else if(grade=60 else printf(Cn);4先考虑一个整数 m,如何判断它是否为完数。从数学知识可知:一个数 m 除该数本身外的所有因子都在1m/2之间。算法中要取得因子之和,只要在 1m/2 之间找到所有的整数 m 的数,将其累加起来即可。如果累加起来
6、与 m 本身相等,则表示 m 是一个完数,可以将 m 输出。#include stdio.hmain()int m,i,s;for(m=2;m12 ? x+10 : x-12;printf(“%dn”,y);A) 4 B) 3 C) 2 D) 1若希望当 A 的值为奇数时,表达式的值为 “真”,A 的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是 C 。A) A%2=1 B) !(A%2=0) C) !(A%2) D) A%2设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)&(n=cd)后 n 的值为 B 。A) 1 B) 2 C) 3 D) 4以下
7、程序的运行结果是 B 。main() int a,b,d=241;a=d/100%9;b=(-1)printf(“%d,%d”,a,b);A) 6,1 B) 2,1 C) 6,0 D) 2,0已知 int x=10,y=20,z=30;以下语句执行后 x,y,z 的值是 B 。if(xy) z=x; x=y; y=z;A) x=10, y=20, z=30 B) x=20, y=30, z=30C) x=20, y=30, z=10 D) x=20, y=30, z=20以下程序的运行结果是 C 。main() int m=5;if(m+5) printf(“%dn”,m);else;prin
8、tf(“%dn”,m-);A) 4 B) 5 C) 6 D) 7判断 char 型变量 ch 是否为大写字母的正确表达式是 C 。A) A=A)&(ch=A)&(ch= ch)逻辑运算符两侧运算对象的数据类型 D 。7A) 只能是 0和1 B) 只能是0或非0正数C) 只能是整型或字符型数据 D) 可以是任何类型的数据sizeof(float)是 B 。A) 一个双精度型表达式 B) 一个整型表达式C) 一种函数表达式 D) 一个不合法的表达式设 x、y、z 和 k 都是 int 型变量,则执行表达式:x=(y=4,z=16,k=32)后,x 的值为 CA) 4 B) 16 C) 32 D)
9、52设有如下的变量定义:int i=8, k, a, b;unsigned long w=5;double x=1, 42, y=5.2;则以下符合 C 语言语法的表达式是 AA) a+=a-=(b=4)*(a=3) B) x%(-3);C) a=a*3=2 D) y=float(i)假定有以下变量定义: int k=7,x=12;则能使值为3的表达式是 DA) x%=(k%=5) B) x%=(k-k%5) C) x%=k-k%5 D) (x%=k)-(k%=5)设 x 和 y 均为 int 型变量,则以下语句:x+=y,y=x-y;x-=y;的功能是 DA) 把 x 和 y 按从大到小排列
10、 B) 把 x 和 y 按从小到大排列C) 无确定结果 D) 交换 x 和 y 中的值以下程序的输出结果是 Dmain() int a=12,b=12;printf(%d,%dn,- -a,+ +b);A) 10 10 B) 12 12 C) 11 10 D) 11 13在 C 语言提供的合法的关键字是 DA) swicth B) cher C) Case D) default若已定义 x 和 y 为 double 类型,则表达式:x=1,y=x+3/2的值是 CA)1 B)2 C)2.0 D)2.5C 语言提供的合法的数据类型关键字是 BA) Double B) short C) integ
11、er D) Char8在 C 语言中,合法的长整型常数是 AA) 0L B) 4962710 C) 0.054838743 D) 2.1869e10二、填空题scanf 函数的格式化字符串中,格式说明与输出项的个数必须相同。如果格式说明的个数小于输出项的个数,则多余的输出项_忽略_。如果格式说明的个数多于输出项的个数,则多余多余的格式将输出_。以下程序的运行结果是_52.00_。#include void main()int i=5,j=9;float x=2.3,y=45.;printf(“%8.2fn”,i%(int)(x+y)*j/2/3+y);若有定义:char c=010 ;则变量
12、c 中包含的字符个数为_1个_。若 x 和 n 均是 int 型变量,且 x 和 n 的初值均为5,则计算表达式 x+=n+后 x 的值为_10_,n 的值为_6_。若 a 是 int 型变量,则计算下面表达式 A=25/3%3后 a 的值为 _2_。若 x 和 a 均是 int 型变量,则计算表达式 x=(a=4,6*2)后的 x 值为_12_,计算表达式x=a=4,6*2后的 x 值为_4_。若 a 是 int 型变量,则表达式(a=4*5,a*2),a+6 的值为_26_。若 s 是 int 型变量,且 s6,则表达式 s%2+(s+1)%2的值为_1_。在 VC+中,一个 int 型数
13、据在内存中占4个字节,则 int 型数据的取值范围为_-21474836482147483647_。若有以下定义 int m=5,y=2;,则计算表达式 y+=y-=m*=y 后的 y 值是_-16_。设有定义语句:int i=3; float f=456.789; 则表达式1.2+i+A+f 值的数据类型是_double_。三、思考以下问题1 几种基本数据类型各占几个字节?2 标识符分哪几类,各有什么用途?3 为什么要定义符号常量?4 变量名定义有什么规则?5 C 语言有哪些几类运算符号,又有哪几类表达式?9习题31、选择题能正确表示 a 和 b 同时为正或同时为负的逻辑表达式是 DA) (a=0 | b=0) & (a=0 & b=0) & (a0 & a+b0 以下条件表达式中能完全等价于条件表达式 x 的是( B )。A) (x=0) B) (x!=0)C) (x=1) D) (x!=1) 设 ch 是 char 型变量 ,值为A,则表达式 ch=(ch=A & chb)&(n=cd) 后 n 的值为 B A