C语言程序设计教程(第二版)课后习题答案
第一章 C语言程序设计概述
-习题答案1
算法的描述有哪些基本方法?
答 1、自然语言
2、专用工具
2 C语言程序的基本结构是怎样的?举一个例子说明。
答
1、C语言程序由函数构成;
2、“/*”与“*/”之间的内容构成C语言程序的注释部分;
3、用预处理命令#include、#define可以包含有关文件或预定义信息;
4、大小写字母在C语言中是有区别的;
5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。
3 C语言有什么特点?
答 1、具有结构语言的特点,程序之间很容易实现段的共享;
2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;
3、运算符丰富,包含的范围很广;
4、数据类型丰富;
5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;
6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;
7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。
4
★指出合法与不合法的标识符命名。
答
AB12--√ leed_3-- a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--× XYZ43K2--√ AVE#XY--× _762--√ #_DT5--× C.D--×
5
说明下列Turbo C热键的功能。
答
F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序) Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。
6
说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。
①main()
{printf("********************\n");
printf(" welcome you \n");
printf(" very good \n);
printf("********************\n");
}
②main()
{ int a,b,c,t;
printf("please input three numbers;");
scanf("%d,%d,%d",&a,&b,&c); /*教材S是错误的*/
t=max(max(a,b),c);
printf("max number is:%d\n",t);
}
int max(int x, int y)
{ int z;
if(x>y)z=x;
else z=y;
return(z);
}
答
运行结果:
********************
welcome you
very good
********************
运行结果:
please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/
max number is:4
7
一个C程序是由若干个函数构成的,其中有且只能有一个___函数。
答
main()
8
在Turbo C环境下进行程序调试时,可以使用Run下拉菜单的___命令或按___键转到用户屏幕查看程序运行结果。
答
1、User screen
2、Alt+F5
9
★C语言对标识符与关键字有些什么规定?
答
1、标识符用来表示函数、类型及变量的名称,它是由字母、下划线和数字组成,但必须用字母或下划线开头。
2、关键字是一种语言中规定具有特定含义的标识符,其不能作为变量或函数名来使用,用户只能根据系统的规定使用它们。
10
C源程序输入后是如何进行保存的?
答
是以C为扩展名保存的纯文本文件。
第二章 C语言程序的基本数据类型与表达式
-习题答案
1
★指出下列常数中哪些是符合C语法规定的。
答
'\'--× '101'--× "\"--× e3--× 019--√ 0x1e--√
"ab\n"--√ 1.e5--× (2+3)e(4-2)--× 5.2e2.5--×
2
请出下列程序中的错误,改正后写出程序运行结果。
①void main()
{int x,y=z=5,aver;
x=7
AVER=(x+y+z)/3
printf("AVER=%d\n",aver);
}
②void main()
{ char c1='a';c2='b';c3='c';
int a=3.5,b='A'
printf("a=%db=\'\"end\n",a,b);
printf("a%cb%c\bc%c\tabc\n",c1,c2,c3);
}
答
main()
{int x,y=5,z=5,aver;
x=7;
aver=(x+y+z)/3;
printf("AVER=%d\n",aver);
}
运行结果:AVER=5
②main()
{ char c1='a', c2='b', c3='c';
int a=3,b='A';
printf("a=%d,b=\'%c\'\"end\"\n",a,b);
printf("a%cb%c\bc%c\tabc\n",c1,c2,c3);
}
运行结果:a=3,b='A'"end"
aabcc abc
3
写出下列赋值的结果,表格中写了数值的是要将它赋给其他类型的变量,将所有的空格填上赋值后的数据(实数保留到小数点后两位)。
int
99
-1
char
'h'
unsigned int
66
float
55.78
long int
68
答
int
99
104
66
55
68
-1
char
'c'
'h'
'B'
'7'
'D'
unsigned int
99
104
66
55
68
65535
汇编语言大小写字母转换
float
99.00
104.00
66.00
55.78
68.00
-1.00
long int
99
104
66
55
68
-1
4
★写出程序运行结果。
①void main()
{int i,j;
i=8,j=10;
printf("%d,%d,%d,%d\n",i,j,++i,j++);
}
②main()
{ int a=1,b=2,c=30;;
printf("%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c));
}
注意:a=b=c,a=b==c之间应为逗号,教材有误
答
运行结果:
9,11,9,10
运行结果:
30,1,0,0
③void main()
{int a=10,b=20,c=30,d;
d=++a<=10||b-->=20||c++;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
答
运行结果:
11,19,30,1
5
★写出下面表达式的值(设a=10,b=4,c=5,d=1,x=2.5,y=3.5)。
⑴a%=(b%=3)
⑵n++,a+=a-=a*=a
⑶(float)(a+c)/2+(int)x%(int)y
⑷a*=b+c
⑸++a-c+b++
⑹++a-c+++b
⑺a<b?x:'A'
⑻b++==c
⑼a+b,18+(b=4)*3,(a/b,a%b)
⑽x+a%3*(int)(x+y)%2/4+sizeof(int)
⑾a<b?a:c<d?c:d
⑿b++==c
⒀a*=b=c=2
⒁a=b==c
答
⑴0 ⑵0 ⑶9.500000 ⑷90 ⑸10 ⑹10 ⑺'A' ⑻2 ⑼4.5 ⑽1 ⑾0 ⑿20 ⒀0
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论