C语言教材后习题及答案
第一章
1.什么是程序?什么是程序设计语言?
2.C语言有什么特点?
3.什么是算法?算法的描述有哪些基本方法?
第一章主要关注两个概念:一是程序的三种结构(顺序、分支或叫选择、循环);二是函数,主函数main()
第二章
1.指出下列哪些是C语言合法的用户识别符。
void a3_b3 For 2a define _123 _abc DO
2.指出下列哪些是C语言合法的常量。
"3'4"" 0x1g 33 "a" E20 '\18' \0' 1.E-5 3.F '\0' .12 '\a'
"3'4"""3\’4\""
0x是十六进制的表示形式之一,但十六进制里没有g这个数值
\0xa' 带一个单引号、0开头,无意义.这里要注意\ddd,1-3位八进制数,\xhh,1-2位十进制数,他们都表示对应的ASCII值
E20,E表示指数形式,但两边必须都有数字。
将此题全部弄懂,所有关于常量的分基本跑不掉了。
3.指出下列定义变量语句中的错误。
int a;b=5;
doubel h; //double
int x,float y; //中间要用分号
float f(x); //非法符号
定义变量要注意,数据类型的关键字,还有就是变量名称必须是合法标识符。
4.写出能表示数学式子1(2a+12a)的C语言表达式。
5.⑴#include
int main()
{
double x=1,y;
y=x+3/2;
printf("y=%f\n",y);
return 0;
}结果是:2.000000,注意3/2=1
(2)
#include
int main()
{
float x=2.9,y=3.2,z;
int a=8;
z=x+a%3*(int)(x+y)/2;
printf("z=%f\n",z);
return 0;
}
结果是:8.900000,注意(int)(x+y)=6。
(3)
#include
int main()
{
int a=65,b=-20;
char ch='A';
float x=12.345678f;
printf("abc\n\101\t\x41\\101\n");
printf("a=%d,%c,%o,%x\n",a,a,a,a);
printf("b=%d,%o,%x,%u\n",b,b,b,b);
printf("ch=%d,%c\n",ch,ch);
printf("x=%f,%.2f,%10.2f,%-10.f\n",x,x,x,x);
return 0;
}
此题包含的内容较多,都是细节,希望对照教材仔细分析结果。
6程序设计。
(1)输出如下的图形。
*
***
*****
***
*
此题答案参考实验指导书。这题在这章出现,主要是练习printf(),
(2)已知铁的比重是7.86,计算并输出直径为100毫米的铁球重量
#include
#define PI 3.1415926
void main()
{ double w,r=100.0/20,p=7.86;
w=p*4.0*PI*r*r*r/3.0;
printf("%.2f\n",w);
}
第三章
1.写出表示变量x的值在[0,100]范围内的逻辑表达式。x>=0 && x<=100
2.写出表示整型变量x的值能被5或7整除的逻辑表达式。x%5==0||x%7==0
3.已知变量a、b、c的值分别是3、2、1,逻辑表达式a>b>c的值是多少?0
4.已知变量x,y的值分别为5,9,逻辑表达式x&&y-9)*6-!x的值是多少? 0
5.已知变量m,n的值都为1,逻辑表达式m--&&n++执行后,m,n的值是多少? m=0,n=2,逻辑表达式的值是真。
6(1): #include
int main( )
{
int x=2,y;
if(x) y=x;
else y=3*x-1;
printf("y=%d\n",y);
return 0;
}
运行结果是:y=2
(2)
#include
int main( )
{
i