当前位置:文档之家› 程序设计基础——基于C语言(第2版) 课后习题参考答案汇总

程序设计基础——基于C语言(第2版) 课后习题参考答案汇总

程序设计基础——基于C语言(第2版)  课后习题参考答案汇总
程序设计基础——基于C语言(第2版)  课后习题参考答案汇总

习题1参考答案

1.1解释以下术语

(1)计算机软件:计算机软件是一系列按照特定结构组织的程序、数据(Data)和文档(Document)的集合。

(2)计算机程序:用计算机语言所编写的一系列指令的集合。

(3)数据:数据是程序加工和处理的对象。

(4)算法:算法是一组有穷的规则,它们规定了为解决某一特定问题而采取的一系列运算步骤。

(5)数据结构:数据结构是存在一种或多种特定关系的数据元素的集合,其外在表现为数据的组织形式。

(6)数据类型:数据类型是一个值的集合和定义在这个值集上的操作的总称。

(7)程序设计:程序设计是给出解决特定问题程序的方法和过程,是软件构造活动中的重要组成部分。

1.2 简答题

(1)简述内存的组织结构形式?

计算机系统把内存看作是由若干个连续的存储单元(Storage Location)组成的,每个存储单元的大小为一个字节(Byte)。为了能唯一标志每个存储单元,在计算机系统中给每个存储单元指定一个唯一的编号,该编号被称为存储单元的地址(Address),计算机在读写内存时就是按照存储单元的地址进行的。

(2)为什么计算机系统是一个通用的计算系统?

在计算机硬件相对固定不变的前提下,计算机的通用性主要表现在通过运行不同的程序来完成不同的计算任务。

(3)简述结构化程序设计的基本思想?

在程序设计过程中,如果仅仅使用顺序、选择和循环这三种基本控制结构,并且使每个代码块只有一个入口和一个出口,则这样的程序设计方法被称为结构化程序设计(Structured Programming)。

(4)简述计算机语言的发展史?

程序设计语言经历了从机器语言、汇编语言、高级语言到超高级语言的发展历程。(5)简述利用计算机进行问题求解的过程?

1、理解问题特征

2、设想解决方案

3、优化解决方案

4、描述解决方案

5、执行并分析解决方案

(6)简述各个程序质量要素的含义?

1、正确性(Correctness):正确性是指一个计算机程序的正确程度,即程序在预定的

运行环境下能正确完成预期功能的程度。

2、鲁棒性(Robustness):鲁棒性也称为健壮性,是指在硬件发生故障、输入数据无效或操作错误等意外情况下,程序能做出响应的程度。

3、效率(Efficiency):效率是指为了完成预定的功能,系统需要的计算资源(主要包括计算时间和存储空间)的多少。

4、易用性(Usability):易用性又称为可用性,是指在完成预定功能时人机交互的难易程度。易用性高的程序容易被程序用户理解和掌握,使用户操作简单方便。

5、可理解性(Understandability):可理解性是指理解程序的难易程度。可理解性高的程序才容易测试和维护。如果程序难以读懂,就会给测试和维护带来巨大的困难。

6、可测试性(Testability):可测试性是一个计算机程序能够被测试的容易程度。为了提高程序的可靠性,必须通过测试尽可能多得发现并改正程序中的错误。程序的可测试性直接影响测试的质量和效率。

7、可维护性(Maintainability):诊断和改正程序错误以及功能扩充和性能提高的容易程度。程序设计是一个迭代过程,要开发出高质量的程序需要对程序进行多次修改和完善。程序的可维护性决定了上述工作的质量和效率。

8、可重用性(Reusability):可重用性是指在其它应用中该程序可以被再次使用的容易程度。如果我们在开发新程序时,能够直接或稍加修改就能利用原有的程序,则会大大提高新程序开发的质量和效率。因此,提高程序的可重用性是提高程序设计质量和效率的根本途径。

1.3计算题

(1)计算-1的8位原码、反码、补码和Excess_127码。

分别为:10000001B、11111110B、11111111B、01111110B

(2)计算机内存中相邻四个字节的值为10111110000000000000000000000000,试问该值表示的实数、有符号数和无符号数各为多少?

分别是:实数0.125、有符号数-1107296256(负数在计算机中用补码表示)无符号数3187671040

(3)字符‘A'、‘a'、‘1'的ASCII值是多少,给出将大写字母的ASCII转换成对应小写字母ASCII值得计算公式。

‘A’:41H ‘a’:61H ‘1’:31H

大写转化为小写:大写字母的ASCII值+20H=小写字母的ASCII值

1.4为下列问题求解设计算法,并分别用程序流程图、N—S盒图和PAD图加以描述。

(1)有两个调料盒S1和S2,分别盛有糖和盐,要求将它们互换(即S1盒原来盛糖,现在改盛盐;S2同理)。

算法思想:这是一个两个变量交换值的问题,可以设置一个临时变量,首先把S1的值放入临时变量中,然后将S2的值放入S1中,最后将临时变量的值放入S1中即可。

程序流程图:

N-S盒图:

PAD图:

(2)依次输入6个整数,要求输出其中最小的数。

算法思想:定义一个临时变量用来存放最小的数,首先输入第一个数赋值于临时变量,然后循环输入其余的整数,比较输入的整数和临时变量的大小,如果大于临时变量则继续输入,反之,则给临时变量赋值为次此数。最后临时变量中存放的数输入的数中的最小数,输入临时变量即可。

程序流程图:

N-S盒图:PAD图:

(3)输入3个整数,按从大到小的顺序输出。

算法思想:输入三个数a、b、c,首先比较a和b,如果a>b,则比较c和a,如果c>a 则输出c、a、b;如果cb,输出a、c、b,否则输出a、b、c;对于a

程序流程图:

N-S盒图:

PAD图:

(4)求1*2*3* (10)

算法思想:定义一个变量用来存放最后的值,赋初值为1,做十次循环,每次循环在原来变量的基础上乘循环变量值(即1-10),最后输出这个变量即可。

程序流程图:

F

N-S

盒图:

PAD 图:

(5)输入两个整数,求其最大公约数。

算法思想:选取两个数中较小的数作为起始值,让这两个数分别除以这个值,如果可以整除,则这个数就是最后结果,如果不能整除则将起始值减一之后再用原来的两个数对其做除法运算,知道整除为止,得到的起始值的最后值就是结果。

程序流程图:

N-S盒图:PAD图:

1.5算法思考题

(1)钞票换硬币:把一元钞票换成一分、二分、五分硬币(每种至少一枚),有哪些种换法?

分析:1元相当于100分,设5分、2分、1分的硬币数分别为X、Y、Z,求换法就是在寻找这样一种组合,使得5*X+2*Y+Z =100,所以每当找到1种组合时,将个数记录下来,就可知换法有多少种,算法描述如下:

Count = 0; //用于记录个数,初始为0

for(X=1;X<=20;X++)

for(Y=1;Y<=50;Y++)

for(Z=1;Z<=100;Z++)

{

if(5*X + 2*Y + Z == 100) //可实现交换

Count ++;

}

输出Count

(2)百钱买百鸡:一只公鸡值5元,一只母鸡值3元,3只小鸡值1元,现用一百元要买一百只鸡,问有什么方案?

分析:由题意可知,假设公鸡、母鸡、小鸡分别有X、Y、Z只,那么X、Y、Z满足:X+Y+Z=100,而且要满足钱数限定:5*X+3*Y+1/3*Z = 100,由于3只小鸡1元钱,所以小鸡的个数必须是3的整数倍,即:Z是3的整数倍。可通过限制条件,筛选出满足条件的X,Y,Z。当然X、Y、Z还满足以下条件:5*X <= 100;3*Y <= 100;Z <= 100。以下是算法描述:

for(X=0;X<=100;X++)

for(Y=0;Y<=100;Y++)

for(Z=0;Z<=100;Z++)

{

if(5*X<=100 and 3*Y<=100 and z%3==0)

{

if(X+Y+Z==100 and 5*X+3*Y+Z/3 == 100)

{

输出X、Y、Z;

}

}

}

(3)斐波那契兔子的问题:某人有一对兔子饲养在围墙中,如果它们每个月生一对兔子,且新生的兔子在第二个月后也是每个月生一对兔子,问一年后围墙中共有多少对兔子。

分析:第一个月是最初的一对兔子生下一对兔子,围墙内共有两对兔子。第二个月仍是最初的一对兔子生下一对兔子,共有3对兔子。到第三个月除最初的兔子新生一对兔子外,第一个月生的兔子也开始生兔子,因此共有5对兔子。继续推下去,第12个月时最终共有对377对兔子。由分析知,每个月的兔子都是上个月的兔子与新增兔子之和,而上个月新生的兔子到下个月才会生兔子,所以新增的兔子都是上两月的兔子生的。设每个月的兔子数为F(n),则可列出下列式子:

F(0) = F(1) = 1

F(n) = F(n-1) + F(n-2)

显然可用递归的方法解出此题,算法流程图如下:

习题2参考答案

(1)请简要描述C语言的发展历史。

答:C语言是一种目前世界上普遍流行、使用广泛的高级程序设计语言,它是在B语言的基础上发展起来的,1972—1973年间,贝尔实验室设计出了C语言。1983年,美国国家标准化协会制定了C语言的标准,称为ANSI C。

(2)略。

(3)C语言的主要特点是什么?

答:C语言的主要特点如下。

①C程序是由函数组成的。

②函数由函数头和函数体组成。

③C程序总是从main函数开始执行。

④每个语句和数据声明的最后必须有一个“;”。

⑤C语言没有自己的输入/输出语句,它的输入/输出由库函数printf和scanf完成。

⑥可以添加注释。

⑦C语言程序中的变量必须先声明后使用。

(4)如何使用Visual C++ 6.0开发控制台程序?

使用VC6开发控制台程序的方法如下:

答:①在Miscrosoft Visual C++ 6.0环境下,首先建立一个空的工程。

②而后建立一个C源程序文件,并在该文件中输入源代码。

③使用Bulid命令或者快捷键F7,进行编译连接。

④如果没有错误,选择Execute命令或者快捷键Ctrl+F5,进行执行。

习题3参考答案:

3.1 选择题

1.B

2.D

3.D

4.A

5.A

6.A

7.C

8.C

9.C 10.B

3.2 写出下列程序的输出结果

1.200 310 c8

2.a=100,b=200

3.97,141,61,a

4.

5.aabb c abc

4,3

6.6,6,6,7

3.3 编程题

1.

#include

void main()

{

int a=500;

printf("%d,%o,%x\n",a,a,a);

}

输出结果:500,764,1f4

2.

#include

void main()

{

float x;

scanf("%f",&x);

printf("a=%.3f,a=%.3e\n",x,x);

}

输入:66

输出结果:a=66.000,a=6.60000e+001

3.

#include

void main()

{

char ch1='a',ch2=ch1;

printf("%c,%d,%o,%x\n",ch1,ch1,ch1,ch1);

printf("%c,%d,%o,%x\n",ch2,ch2,ch2,ch2);

}

输出结果:A,65,101,41

a,97,141,61

4.

#include

void main()

{

float x,y,z,s,v;

scanf("%f%f%f",&x,&y,&z);

s=2*(x*y+x*z+y*z);

v=x*y*z;

printf("Area=%.lf,Volume=%.lf\n",s,v);

}

输入:3 4 5

输出结果:Area=94 ,Volume=60

5.

#define PI 3.14

#include

#include

void main()

{

float r,s,l;

scanf("%f",&r);

s=(float)PI*r*r;

l=2*(float)PI*r;

printf("r=%4.1f,s=%4.1f,l=%4.1f\n",r,s,l);

}

输入:3

输出结果:r= 3.0,s=28.3 ,l=18.8

6.

#include

#include

void main()

{

float x1,y1,x2,y2,x3,y3,a,b,c,p,s;

scanf("%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3);

a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));

c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf("Area=%f\n",s);

}

输入:5 6 3 8 0 23

输出结果:Area=12.000013

习题4参考答案

4.1选择题。

(1)D (2)A (3)A (4)C (5)C (6)B (7)B (8)B (9)C (10)A 4.2填空题。

(1)261 (2)16 (3)0 (4)2,1

4.3编程题。

(1)

#include

void main()

{

float c,f;

printf("输入华氏温度:\n");

scanf("%f",&f);

c=(f-32)*5/9;

printf("摄氏温度为:%5.2f\n",c);

}

(2)

#include

#include

void main()

{

char s1[10],s2[10],s[20];

printf("please enter two string\n");

gets(s1);

gets(s2);

strcat(s1,s2);

printf("%s\n",s1);

printf("%d\n",strlen(s1));

}

(3)

#include

#include

void main()

{

double x,y;

printf("please enter two data:\n");

scanf("%lf%lf",&x,&y);

printf("%lf raised to %lf is %lf\n",x,y,pow(x,y)); }

习题5参考答案

1.填空题

(1) n=4 (2) 2*i-1 (3) 7 (4) ######

2.#include

void main()

{

long m,n,a,b,s;

printf("\nPlease input value of M :");

scanf("%ld",&m);

printf("\nPlease input value of N :");

scanf("%ld",&n);

a=(m>n)?m:n;

b=(m>n)?n:m;

while (a%b!=0)

{

s=a%b;

a=b;

b=s;

}

printf("\nGong yue shu:%ld\n",s);

printf("\nGong Bei shu:%ld\n",(m*n)/s);

}

3.#include

void main()

{

int a,b,c,d,e;

printf("Please input an integer:\n");

scanf("%d",&a);

if (a/1000==0)

{

printf("input error!\n");

return;

}

b=a/1000;

e=a%10;

c=a%1000/100;

d=a%100/10;

if (b==e && c==d)

printf("YES.\n");

else

printf("NO.\n");

}

4.#include

void main()

{

int c;

int Num1,Num2,Num3,Num4;

Num1=Num2=Num3=Num4=0;

do

{

c=getchar();

if ((c>='a' && c<='z') || (c>='A' && c<='Z'))

Num1++;

else if (c>='0' && c<='9')

Num2++;

else if (c==' ')

Num3++;

else

Num4++;

}while(c!='\n');

printf("英文字母有%d个,数字有%d个,空格有%d个,其它字符有%d个。\n",Num1,Num2,Num3,Num4);

}

5.#include

#include

void main()

{

float a,b,c,disc,x1,x2,realpart,imagepart;

printf("Input a,b and c:");

scanf("%f,%f,%f",&a,&b,&c);

printf("The equation");

disc=b*b-4*a*c;

if (fabs(disc)<=1e-7)

printf("has two equal roots:%4.2f.\n",-b/(2*a));

else

if (disc>1e-7)

{

x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

printf("has distince real roots:%4.2f and %4.2f.\n",x1,x2);

}

else

{

realpart=-b/(2*a);

imagepart=sqrt(-disc)/(2*a);

printf("has complext roots:");

printf("%4.2f+%4.2fi",realpart,imagepart);

printf(" and %4.2f-%4.2fi\n",realpart,imagepart);

}

}

6. #include

void main()

{

int i,j;

for (i=1;i<=5;i++)

{

for (j=1;j<=i;j++)

printf("*");

printf("\n");

}

for (i=5;i>=1;i--)

{

for (j=i;j>=1;j--)

printf("*");

printf("\n");

}

}

7.#include

#define EPS 1e-7

void main()

{

int n;

double x,an,sum;

printf("input x:");

scanf("%lf",&x);

x=x*3.1415926/180;

sum=0;

an=x;

n=1;

do

{

sum+=an;

n=n*(n+1)*(n+2);

an*=(-x*x)/n;

printf("an=%f\n",an);

}while(fabs(an)>=EPS);

printf("sin(%.4lf)=%.4lf\n",x,sum); }

8.#include

void main()

{

unsigned int n;

char c;

n=0;

printf("input a binary integer:");

while((c=getchar())!='\n')

{

switch (c)

{

case '0':

n=n*2+0;

break;

case '1':

n=n*2+1;

break;

}

}

printf("the decimal is %d.\n",n); }

9.#include

void main()

{

int i,j;

for (i=1;i<10;i++)

printf("\t%d",i);

printf("\n");

for (i=1;i<10;i++)

{

printf("%d",i);

for (j=1;j<=i;j++)

printf("\t%d",i*j);

printf("\n");

}

}

10.#include

void main()

{

int n,m,z,x,y;

printf("input n:");

scanf("%d",&n);

m=n;

z=x=y=1;

while (n>1)

{

z=x+y;

x=y;

y=z;

n--;

}

printf("Fibonacci(%d)=%d.\n",m,z); }

11.#include

#include

void main()

{

int i,j;

int flag;

for (i=1;i<=100;i++)

{

flag=1;

for (j=2;j<=sqrt(i);j++)

if (i%j==0)

{

flag=0;

break;

}

if (flag==1)

printf("%d\t",i);

}

}

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

《C语言程序设计》课后习题答案

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.1什么是算法16 2.2简单的算法举例17 2.3算法的特性21 2.4怎样表示一个算法22 2.4.1用自然语言表示算法22 2.4.2用流程图表示算法22 2.4.3三种基本结构和改进的流程图26 2.4.4用N S流程图表示算法28 2.4.5用伪代码表示算法31 2.4.6用计算机语言表示算法32 2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67

C语言第二章习题带答案

1.C语言中的简单数据类型包括( B )。 A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的short类型的常数是( A )。 A.32768 B.0 C.037 D.0Xaf 3.下列常数中不能作为C的常量的是( D )。 A.0x45 B.2.5e-2 C.3e2 D.0582 4.short类型的数据长度为2个字节,则unsigned short类型数据的取值范围是( B )。 A.0至255 B.0~65535 C.-32768~32767 D.-256~255 5.下面4个选项中,均是合法转义字符的选项是( A )。 A.'\'','\\','\n' B.'\','\017','\' C.'\018','\f','xab' D.'\\0,'101','x1f 6.在C语言中,数字029是一个( D )。 A.八进制数B.十六进制数 C.十进制数D.非法数 7.下列可以正确表示字符型常数的是( B )。 A."a" B.'\t' C."\n" D.297 8.以下( C )是错误的转义字符。 A.'\\' B.'\'' C.'\81' D.'\0' 9.C语言中short类型的变量a的值为-8,则a在内存中的存储形式是( A )。 A.1111 1111 1111 1000 B.100000000000 1000 C.000000000000 1000 D.1111 1111 1111 0111 10.将字符g赋给字符变量c,正确的表达式是( C )。 A.c="g" B.c=101 C.c='\147' D.c='0147' 11.字符串"\\\22a,0\n"的长度是( C )。 A.8 B.7 C.6 D.5 12.为求出s=10!的值,则变量s的类型应当为( C )。 A.short B.unsigned short C.long D.以上三种类型均可13.已知:unsigned short x=65535;,则执行以下语句输出是( D )。 printf("%d\n", x); A.65535 B.1 C.无定值D.-1 14.下面4个选项中,均是合法整型常量的选项是( A )。 A.160,-0xffff,011 B.-0xcdf,01a,0xe C.-01,986,012,0668 D.-0x48a,2e5,0x 15.下面4个选项中,均是不合法的整型常量的选项是( D )。 A.--0f1,-0xffff,0011 B.-0Xcdf,01a,0xe C.-018,999,5e2 D.-0x48eg,-068,03f 16.下面4个选项中,均是合法浮点数的选项是( B )。 A.+1e+1,5e-9.4,03e2 B.-.60,12e-4,-8e5 C.123e,1.2e-.4,+2e-1 D.-e3,.8e-4,5.e-0

C语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

c语言第二章习题

第二章练习题 一、填空题 1、在C语言中的实型变量分为两种类型,它们是float型和()型。 2、若有定义:char c='\010';则变量c中包含的字符个数为() 3、已知字母a的ASCII码为十进制数97,且设ch为整型变量,则表达式ch='a'+'8'-'3'的值为() 4、在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为()个;一个int型数据在内存中所占的字节数为()个。 5、在C语言中,表示逻辑“假”值用数字()表示。 6、C语言中的标识符只能由字母、数字和()三种字符组成。 7、表达式8/4*(int)(2.5)/(int)(1.25*(3.7+2.3))的值为() 8、整型常量即整常数。可用三种形式表示:十进制整数、八进制整数以()开头、十六进制整数以()开关(注:请用小写字母) 9、请将75写成C语言八进制和十六进制表示(),()。 10、若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是() 11、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为()。 12、若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为(),b值为(),c值为()。 13、若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为() 14、若a是int型变量,则计算表达式a=25/3%3 后a的值为() 15、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为(),n的值为() 16、若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为() a+(int)(b/3*(int)(a+c)/2)%4 17、若有以下定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为()(float)(a+b)/2+(int)x%(int)y 18、若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为() (x+y)%2+(int)a/(int)b 19、所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为() 20、若有定义:int e=1,f=4,g=2;float m=11.29,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt(n*1.2/g+m)后k的值是() 21、若x为int型变量,则执行以下语句后x的值是()

C语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章 1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。程序中要求与用户进行如下方式的交互。 #include #include int main(void) {float mile_1,mile_2,miles,consume,payment; printf("MILEAGE REIMBURSEMENT CALCULATOR\n"); printf("Enter begainning odometer reading>\n"); scanf("%f",&mile_1); printf("Enter endding odometer reading>\n"); scanf("%f",&mile_2); printf("Enter consume per mile>\n"); scanf("%f",&consume); miles=mile_2-mile_1; payment=miles*consume; printf("You traveled%f miles.At%f per mile,your reimbursement is%f",miles,consume,payment); system("pause"); return(0); } 2.编写一个程序,用于辅助设计水力发电大坝。提示用户输入大坝高度,以及水流量。如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。 #include #include int main(void) {double density,weight,gravitational_acceleration, efficiency,height,water_flow_rate,work,electricity_power; printf("Please type in the density of water>"); scanf("%lf",&density); printf("Please type in the gravitational_acceleration>"); scanf("%lf",&gravitational_acceleration); printf("Please type in the height of the water>"); scanf("%lf",&height); printf("Please type in the efficiency of the transformation\nfrom water to electricity>"); scanf("%lf",&efficiency); printf("Please type in the water_flow_rate>"); scanf("%lf",&water_flow_rate); weight=density*water_flow_rate; work=weight*height*gravitational_acceleration; electricity_power=work*efficiency/1000000; printf("The electric energy production is%fW",electricity_power); system("pause"); return0; }

最新c语言课后习题答案汇总

c语言课后习题答案

第二章习题 2.什么叫做结构化算法?为什么要提倡结构化算法? 答:结构化算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本的结构范围内。一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变。 跟结构化算法比较起来,非结构化算法有以下缺点: 流程不受限制的随意转来转去,使流程图豪无规律使人在阅读的时候难以理解算法的逻辑.难以阅读,也难以修改,从而使算法的可靠性和可维护性难以保证。 4. 第三章习题 1.#include #include void main() { unsigned int n;

float p,p1,r=0.09; scanf("%u",&n); p=pow(1+r,n); p1=(p-1)*100; printf("%5.2f%%\n",p1); } 运行结果:输入,回车,见结果: 2.#include #include int main() { int bj=1000; float r1,r2,r3,r5,r0,lx1,lx2,lx3,lx4,lx5; r1=0.0414; r2=0.0468; r3=0.0540; r5=0.0585; r0=0.0072; lx1=bj*r5; lx2=bj*(1+r2)*r3; lx3=bj*(1+r3)*r2; lx4=bj*pow(1+r1,5); lx5=bj*r0*5; printf("lx1=%f lx2=%f lx3=%f lx4=%f lx=5%f\n",lx1,lx2,lx3,lx4,lx5); return 0; } 运行结果: 3.#include #include int main() { long d,p; d=300000; p=6000; double m,r=0.01; m=log(p/(p-d*r))/log(1+r); printf("%4.2f",m); return 0;

c语言与程序设计-第2章课后习题参考答案

2.1 下列哪些是词法记号? 关键字(是) 注释 空白符 八进制常量(是) 三字符序列 字符串常量(是) 括号(是) 2.2 C编译器可将下列每一个源字符串分解为哪些记号?(不必考虑记号组合是否合法) (1)x+++y x, ++, +, y (2)-0xabL -, 0xabL (3) 2.89E+12L 2.89E+12L (4)"String+\"FOO\"" " String+ \"FOO\"" (5)x**2 x, *, *, 2 (6)"X??/" "X??/" (7)a?b a, ?, b (8)x--+=y x, --, +=, y (9)intx=+10 intx, =, +, 10 (10)"String""FOO" "String", "FOO" (这道题当时改的时候有几个小题改得有错误,注意!) 2.3 下列哪些不是标识符,为什么? 标识符由字母、数字和下划线组成,但首字符必须是字母或下划线。 4th 不是,以数字开头; sizeof 不是(标准C的关键字) _limit 是 _is2 是 xYshould 是 x*y 不是,* 非法 o_no_o_no 是 temp-2 不是,- 非法 isn't 不是,' 非法 enum 不是(标准C的关键字。注:关键字也称为保留字,是被系统赋予特定含义并有专门用途的标识符。关键字不能作为普通标识符,但可以作为宏名。所有预处理均发生在识别这些关键字之前。) 2.4 在下列表示中,哪些是合法常数,哪些是非法常数?对于合法常数,指出其类型;对于非法常数,说明其错误原因。 2L 合法,long长整型 ''' 不合法,单引号组中的单引号前需要转义字符

C语言程序设计学习指导(第2版) 1-6

第一章概述 一、选择 1.C 2.B 3.C 4.D 5.D 6.A 7.B 8.C 9.A 10.B 11.C 12.D 13.B 14.B 第二章数据类型 一、选择 1.D 2.A 3.C 4.D 5.A 6.B 7.A 8.B 9.A 10.D 11.B 12.C 13.C 14.D 15.C 16.B 17.D 18.A 19.C 20.B 21.B 22.D 23.A 24.B 25.B 26.B 27.C 第三章运算符和表达式 一、选择 1.A 2.D 3.D 4.D 5.D 6.A 7.C 8.C 9.B 10.B 11.C 12.C 13.A 14.A 15.A 16.A 17.B 18.C 19.C 20.D 21.A 22.A 23.C 24.C 25.A 26.B 27.D 28.A 29.B 30.C 31.D 32.D 33.D 34.B 35.A 36.A 37.B 38.C 39.D 40.B 41.B 42.C 43.B 第四章输入和输出 一、选择 1.C 2.D 3.C 4.C 5.C 6.B 7.B 8.C 9.D 10.D 11.D 12.D 13.B 14.A 15.B 16.B 二、编程 1.double fun(double m) { float n; n=(5.0/9.0)*(m-32); return n; } 2. char fun(char c) {c=c+32; return c;} 3.double fun(int m) { double y=0; y=sin(m)*10; return(y); } 4.float fun ( float h ) {return (long)( h * 100 + 0.5 )/ 100.0;}

C语言课后习题答案(完整版)-第四版-_谭浩强

C语言课后习题答案-第四版- 谭浩强(1-7) 第一章 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } #include #include int main()

{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和 return 0; } #include #include int main() {double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=0.0585; r3=0.054; r2=0.0468; r1=0.0414; r0=0.0072; p1=p*((1+r5)*5); // 一次存5年期 p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期 p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期 p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次 p5=p*pow(1+r0/4,4*5); // 存活期存款。活期利息每一季度结算一次printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和

C语言第二章习题

1.以下叙述中错误的是( )。 A) 使用三种基本结构构成的程序只能解决简单问题 B) 结构化程序由顺序、分支、循环三种基本结构组成 C) C语言是一种结构化程序设计语言 D) 结构化程序设计提倡模块化的设计方法 2.以下可以将任意一个两位整数n的个位数与十位数对换的表达式为() A) (n-n/10*10)*10+n/10 B) n-n/10*10+n/10 C) n/10+(n-n/10) D) (n-n/10)*10+(n/10) 3.以下叙述中错误的是 A) 算法正确的程序可以有零个输入 B) 算法正确的程序最终一定会结束 C) 算法正确的程序可以有零个输出 D) 算法正确的程序对于相同的输入一定有相同的结果 4.若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y ++)中的条件表达式(x-y) 等价的是( )。 A) (x-y<0||x-y>0) B) (x-y<0) C) (x-y>0) D) (x-y==0) 5.有以下程序

—#include main() { int a; a = (int)1.99*3; printf("%d\n", a); } 程序的运行结果是() A) 3 B) 5 C) 6 D) 结果不确定 6.请选出合法的C语言赋值语句:() A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b) 7.假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表 示代数式 1/abc 的表达式是:() A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1.0/a/b/c 8.请选出以下语句的输出结果:() printf("%d\n",strlen("\t\"\065\xff\n"));//srelen()为求字符串长度的函数,返回字节数。

C语言课后作业答案

3-5-1正确 大写字母转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') { if(ch>='A'&&ch<='Z')ch=ch+32; else ch=ch-32; } else ch=ch; printf("%c\n",ch); } 3-5-2大写转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); ch=ch; { if(ch>='A'&&ch<='Z')ch=ch+32; else ch=ch-32; } printf("%c\n",ch); } 3-5-3大写转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); if(ch>='a'&&ch<='z') ch=ch-32; else if(ch>='A'&&ch<='Z') ch=ch+32; else ch=ch; printf("%c\n",ch); } 3-6-1正确分段函数

#include void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x<=1) y=x; else { if(1 void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x>=10) y=3*x-8; else if(x>1) y=2*x+1; else y=x; printf("x=%d,y=%d\n",x,y); } 3 -6 -3正确 #include void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x<=1) y=x; else if(1=10) y=3*x-8; printf("x=%d,y=%d\n",x,y); } 计算器正确 #include void main() {

C语言预习及课后习题(参考答案1-5)

第一章C语言概述 课前预习题 1.函数 2.main()函数3.单行注释、块注释、A 参考分析:C语言总是从main函数开始,main函数结束。但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。 2.C 参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。因此,如果注释中存在错误,系统是不可能发现的。另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。 3.D 参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。 4. C 5.B 参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。尽管有时习惯上称main函数为主程序,显然,严格地讲还是B更为符合C语言的规则。 6.C 7.B 8.C 9.C 10.C 11.绘制NS算法流程图。 (1)输入10个数,求其中的最大值。 (2)输入3个数,将它们升序排列输出。 (3)输入2个数,求它们的最大公约数。(4)输入一元二次方程的系数a、b、c,判断其根。

第二章数据类型、运算符与表达式 课前预习题 1.变量在内存中所占的字节数、变量的表数范围、变量允许参与的运算2.1、4、8 3.float、double 4.八进制、十进制、十六进制5.1 6.26 7.12、4 8.6、4、2 9.-60 10.2 11.10、6 12.13.14.4 15.1 16.0 17.9 18.字符、数字、下划线19.'f' 20.21.int型22.m/10%10*100+m/100*10+m%10 课后习题 1.A 分析:在不同的计算机系统中,不同的C语言系统中,其各种数据类型所占据的存储空间是不同的,但是有一个总的原则,即:char<=short<=int<=long<= float<=double,只有A符合16位PC机中的具体环境。 2.C 参考分析:逗号表达式的计算结果是最后一个表达式的值。k=23是括号内最后一个表达式,因此x变量的值来自k变量的值。 3.B 参考分析:逗号表达式的计算结果是最后一个表达式的值。b++在所在表达式参与运算时的值是5,该表达式计算完成后,b进行自增运算,故a+b的值为2+6=8。 4.A 参考分析:是关键字的有:char、case、while。 5.B 参考分析:不是关键字的:include、scanf、type 6.C 参考分析:合法的有:A、P_0、la0、_A、_123、temp、INT。 7.C 参考分析:教材中只是强调首字符必须为字母,我们应当知道,在语言系统中,下划线和字母具有同等的“法律效力”。 8.A 参考分析:不合法的B2,C2,C3,D2。解释:A2:-0xffff十六进制数本身已经包含了符号位,一般不前面加符号位,但加上符号位也不错误;C3:0668在有些C系统中,八进制数中允许出现8,但是通常不允许使用8;D3:0x显然后面缺少数值,但在TC中是允许的。 9.D 参考分析:不合法的A1,B3,C1,C3,D。解释:A1:--0f1十六进制数没有0x,显然不合法,这里需要讨论的是常

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言课后答案

习题一 一、简答题 1.顺序结构、选择(分支)结构和循环结构。 2. (1)

(2)

3.编辑、编译、连接和运行 二、填空题 1. Ctrl+F9;Alt+F5;F2。 2. main(主) 3. main(主) 4. 任意 5. /* */ 不 6. ; 7.。 程序: include studio.h main{} /* this program prints the number of weeks in a year. /* ( int s s:=52; print(There are s weeks in a year"); 正确的为: #include main() /* this program prints the number of weeks in a year. */ { int s; s=52; printf("There are s weeks in a year"); }

习题二 一、选择题 1、C 2、B,D,F,G 3、C 4、A 5、C 6、B 二、填空题 1、声明;使用。 2、整型、浮点型(实型)、字符型。 3、hat_1,cat1,all, Dollar, piece_f, SIN, _ , FALSE. 4、'A'(字符),005(整型),3e0(整型),'\\'(字符),'\05'(字符), 1.2e+5(整型),0xf12(整型)。 5、(1)6+(4+5)*(4+5)/(2+3) (2)sin(a+b)*ain(a+b)/ (4*2)/(3*2)+2 三、读程题 1.若x为float型,其原值为5,a=2,b=4.7。写出下列表达式运算后x的值。 (1)x=(int)(b-a)%3*a/4-a (2)x=(x=b+1)+(int)(b)%10/2.0 (3)x+=x (4)x-=x (5)x*=x+x (6)x/=x+x (7)x+=x-=x*=x (8)x%=x (9)x=3*4,5*6 答案:(1)-1,(2)7.7,(3)10,(4)0,(5)50,(6)0.5,(7)0,(8)非法,(9)12。 2.写出下面程序的运行结果。 #include void main() { int a=2; printf("abcdefghijk\n"); printf("lmnop/n"); printf("I am a /n beginner of C !"); printf("I am a \n beginner of C !"); printf("%d + %d = %d",a,a,a); } 答案: abcdefghijk

C语言第二章习题

1. 以下叙述中错误的是 ( )。 2.以下可以将任意一个两位整数 n 的个位数与十位数对换的表达式为( 3. 以下叙述中错误的是 4.若有定义int x , y ;并已正确给变量赋值,则以下选项中与表达式 (X — y)(x ++ ) : (y + +)中的条件表达式 (x —y) 等价的是 ( 5. 有以下程序 A) 使用三种基本结构构成的程序只能解决简单问题 B) 结构化程序由顺序、分支、循环三种基本结构组成 C) C 语言是一种结构化程序设计语言 D) 结构化程序设计提倡模块化的设计方法 A) (n-n/10*10)*10+n/10 B) n-n/10*10+n/10 C) n/10+(n-n/10) D) (n-n/10)*10+(n/10) A) 算法正确的程序可以有零个输入 B) 算法正确的程序最终一定会结束 C) 算法正确的程序可以有零个输出 D) 算法正确的程序对于相同的输入一定有相同的结果 A) (x - y<0||x - y>0) B) (x -y<0) C) (x -y>0) D) (x —y = = 0) )。

8. 请选出以下语句的输出结果: ( ) 6. 请选出合法的 C 语言赋值语句:( A) a=b=58 示代数式 1/abc 的表达式是: ( A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) a/b/c #include <> main() { int a; a = (int)*3; printf("%d\n", a); 程序的运行结果是( A) B) C) D) 结果不确定 B) i++; C) a=58,b=58 D) k=int(a+b) 7. 假设在程序中 a,b,c 均被定义成整型 ,并且已赋大于 1的值,则下列能正确表

《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

相关主题
文本预览
相关文档 最新文档