文档库 最新最全的文档下载
当前位置:文档库 › C语言教材后习题及答案

C语言教材后习题及答案

第一章

1.什么是程序?什么是程序设计语言?

2.C语言有什么特点?

3.什么是算法?算法的描述有哪些基本方法?

第一章主要关注两个概念:一是程序的三种结构(顺序、分支或叫选择、循环) ;二是函数,主函数main()

第二章

1.指出下列哪些是C语言合法的用户识别符。

void a3_b3 For 2a defi ne _123 _abc DO

2.指出下列哪些是C语言合法的常量。

"3'4 " " 0x1g 33 " a" E20 '\18' \0xa' 1.E-5 3.F '\0' .12 '\a'

"3'4 ""双引号内表示字符串,但要在一个串内含有单引号、双引号要用转义字符正确的是:’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 + 1/2a)的C语言表达式

1.0/(2*a+1/(2*a)) 5.⑴#include int main()

{

double x=1,y;

y=x+3/2;

prin tf("y=%f\n",y);

return 0;

}结果是:2.000000,注意3/2=1

#i nclude

int main()

{

float x=2.9,y=3.2, z;

int a=8;

z=x+a%3*(i nt)(x+y)/2;

prin tf("z=%f\n",z);

return 0;

}

结果是:8.900000,注意(int)(x+y) =6。

#i nclude

int main()

{

int a=65,b=-20;

char ch='A';

float x=12.345678f;

prin tf("abc\n\101\t\x41\\101\n");

prin tf("a=%d,%c,%o,%x\n",a,a,a,a);

prin tf("b=%d,%o,%x,%u\n",b,b,b,b);

prin tf("ch=%d,%c\n",ch,ch);

prin tf("x=%f,%.2f,%10.2f,%-10.f\n",x,x,x,x); return 0;

此题包含的内容较多,都是细节,希望对照教材仔细分析结果6程序设计。

(1)输出如下的图形。

*****

此题答案参考实验指导书。这题在这章出现,主要是练习printf(),

(2)已知铁的比重是7.86,计算并输出直径为100毫米的铁球重量

#i nclude

#defi ne PI 3.1415926

void mai n()

{ double w,r=100.0/20,p=7.86;

w=p*4.0*PI*r*r*r/3.0;

prin tf("%.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): #i nclude

int main()

{

int x=2,y;

if(x) y=x;

else y=3*x-1;

prin tf("y=%d\n",y); return 0;

}

运行结果是:y=2

#i nclude

int main()

{

int a=2,b=2,c=3;

if (a==b)

if(b==c) prin tf("a==b==c\n");

else prin tf("a!=b\n");

return 0;

}

运行结果是:a!=b

#i nclude

int main()

{

int x=1,y=0,a=0,b=0;

switch(x)

{

case 1:

switch(y)

{

case 0: a++; break;

case 1: b++; break;

}

case 2: a++; b++; break; case 3: a++; b++;

}

prin tf("a=%d,b=%d\n ",a,b);

return 0;

}

运行结果是:a=2,b=1

#i nclude

int main()

{ int n=5;

while( n>2)

{ n--;

prin tf("%d\n", n); }

return 0; }

运行结果是:4

3

2

(5):

#i nclude

int main()

{

int a,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=20) break;

if (b%3==1)

{

b+=3;

con ti nue;

}

b_=5;

}

prin tf("%d\n",a);

return 0;

}

运行结果是:8

7.程序设计

(1)从键盘输入一个字符。若该字符是小写,输出相应的大写字母;若该字符是大写字母, 输出对应的小写字母;若是其他字符,则原样输出。

#i nclude

int mai n()

{ char s;

sca nf("%c", &s);

if (s>='A'&&s <='Z')

s=s + 32;

else if (s>='a'&&s<='z')

s=s-32;

prin tf("%c\ n" , s);

return 0;

}

(2)从键盘输入3个整数,输出其中的最大值。

#i nclude

void mai n()

{ int a,b,c;

int m;

prin tf("Please in put a b c\n ”);

sca nf("%d,%d,%d", &a,&b,&c);

m=a>b?a:b;

m=m>c?m:c;

prin tf("Max is %d\n",m);

}

本题解法比较多。注意此题的逻辑关系。

(3)从键盘输入一个整数,输出分段函数 f (x)的值。

1-x A2 ( x<2)

f( x) = 1+2x-xA2 ( 2<=x<10)

1-x+xA2 (x>=10)

#i nclude

int main()

{

float x,y;

scan f("%f", &x);

if(X<2)

y=1_x*x;

else if(x<10)

y=1+2*x-x*x;

else

y=1_x+x*x;

prin tf("a=%f\n ”,y);

return 0;

}

此类题,注意数轴方向。从一边为起点。

(4 )从键盘上输入一个整数,求其中每个数位的数字之和。

#in clude

int mai n(){

int sum=O,a;

sca nf("%d",&a);

if(a<10)

sum=a;

else

{

do{

sum=sum+a%10;

a=a/10;

}while(a>0);

}

prin tf("%d\n",sum);

return 0;

}

此题答案只考虑输入的是正整数,如果输入的是小于0的整数,加个判读,用绝对值函数处理下即可。

(5)将100元换成1元,5元,10元的零钱有多少种换法?

#in clude

int mai n()

{int x,y, z,i=0;

for(x=0;x<=10;x++)

for(y=0;y<=20;y++)

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

{if(x*10+5*y+z==100)

{pri ntf("%5d,%5d,%5d\n",x,y,z);

i++;}}

prin tf("There are %d ways.\n",i);

return 0;

}

(6 )计算方程X A2+Y A2=1989的所有整数解。

#in clude

#in clude

void mai n()

{in t v,i,j;

v=(i nt)sqrt(1989);

for (i=0; i<=v; i++)

for (j=O;j<=v;j++)

{ if(i*i+j*j==1989)

{ pri ntf("%5d,%5d\n",i*i,j*j);}

}

}

(7)输出所有的3位水仙花数。3位水仙花数是指一个整数的每个数位上的数字的3次方

之和等于它本身,例如:1A3+5A3+3A3=153.

#in clude

void mai n()

{

int a,b,c,d;

for(a=100;a<=999;a++)

{b=a/100;

c=a%10;

d=(a/10)%10;

if(b*b*b+c*c*c+d*d*d==a) pri ntf("%5d\n",a);

}

}

(8)在印度有一个古老的传说:舍罕王打算奖赏国际象棋的发明人一一宰相西萨班达依

尔。国王问他想要什么,他对国王说:“陛下,请你在这张棋盘的第1个小格里,赏给我一

粒麦子,在第二个格子里给2粒,第三格给4粒,以后每一小格都比前一小格加一一倍。陛

下啊,把这样摆满棋盘上所有64个小方格的麦粒,都赏赐给你的仆人吧!”。请帮国王计算

一下,放完整个棋盘要多少颗小麦。

#in clude

void mai n()

{ int i;

double n,s;

i=1; n=1.0; s=1.0;

for(i=2;i<=64;i++)

{n=n *2;s=s+n;

prin tf("%lf\n", n);}

prin tf("s=%lf\n",s);

getch();

}

(9)验证哥德巴赫猜想:任何充分大( >=4)的偶数都可以用2个素数之和表示,将4~100

所有偶数分别用两个素数之和的形式输出。(例如:4=2+2,100=3+97)

#in clude

#in clude

int ss(int n) /*检查n是否为素数,如果是则返回1否则返回0*/

{ int i;

for (i=2; i<=(i nt)sqrt (n); i++)

if (n %i==0) return 0;

return 1;}

int main( void)

{ int i,j,k=0; /*k用来控制打印换行*/

for (i=4;i<=100; i+=2)

for(j=2; j

{ if (ss(j)&&ss(i-j))

{ prin tf("%d=%d+%d ",i,j,i-j);

k++;

if (k%5==0) putchar('\n');

break; }

}

return 0;}

注意判断素数的3种方法。n-1,n/2,(int)sqrt(n)

(10)一球从100米高度自由落下,每次漏地后反跳回原高度的一半,求在第10次落地时,

共经过多少米?第10次反弹多高?

#in clude

int mai n()

{ float sn=100.0,hn=sn/ 2;

int n;

for(n=2; *=10; n++)

{ sn=sn+2*hn; /*第n次落地时共经过的米数*/

hn=hn/2; } /*第n次反跳高度*/

prin tf("the total of road is %f\n ",s n);

prin tf("the tenth is %f meter\ n",h n);

return 0;}

第4章

1.程序填空

(1) 请在横线上填空,使程序输出数组S中最大元素的下标

#i nclude

int main()

{

int k,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=0;p<6;p++)

if(s[p]>s[k]) k=p;

prin tf("%d\n",k);

return 0;

}

注意:红色部分为原题填空部分,下同。

(2)请在横线

上填空,使程序输出以下形式的图标。

I 2 3 4

6 7 8

II12

16

#i nclude

int main()

{

int

num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;

for(i=0;i<4;i++)

for (j=i;j<4;j++ ) printf("%-5d",num[i][j]);

prin tf("\n");

}

return 0;

}

2.阅读下列程序,写出程序运行结果

(1)#inelude int main()

{

int i,k,a[10],p[3];

k=5;

for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2; prin tf("%d\n",k);

return 0;

}

运行结果:21

⑵ #i nclude

int main()

{

in t p[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2)

去掉一个最

输出每个选手最 k=k+p[i];

i++;

}

prin tf("%d\n",k);

return 0;

}

运行结果:24

⑶ #i nclude

int main()

{

int i;

int a[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++)

prin tf("%d ",a[2-i][i]);

return 0;

}

运行结果:7 5 3

3.程序设计。

(1)

从键盘输入10个成绩,输出最高分和最低分。 (2) 在一次评奖中有10个评委对5个参赛选手打分,选手的最终得分为: 高分、一个最低分后剩余8个分数的平均值。从键盘输入每个选手的得分,

终得分。

(3)

从键盘输入5门课程6个同学的成绩,。输出每门课程的最高分。 (4) 从键盘上输入一个 4x5的矩阵,输出矩阵个周边元素的和。 例如输入以下矩阵, 输

出:32。

1 0

2 0 3

0 4 8 9 1

70 9 7 0

80 4 5 1

第五章

1、程序填空。

(1)请在横线上填空,使fun ()函数实现Hi)2的功能

int fun (int a,int b)

{

int mul;

mul=(a+b)*(a+b);

retur n mul;

}

注意:红色部分就是原来需要填空的地方,下同

(2)请在横线上填空,使fun ()函数返回参数s所表示的数组中各元素的和,其中参数len表示数组s的长度。

double fun( double s[ ],i nt n)

{

int i;

double y=0;

for( i=0;ivn;i++)

y+=s[i];

return y;

}

2、阅读下列程序,写出程序运行结果。#i nclude

#define LEN 10

void reverse© nt a[ ],i nt n)

{

int i,t;

for(i=0;i< n;i++)

{

t=a[i]; a[i]=a [n-1-i];a[ n-1-i]=t;

}

return ;

}

int main()

{ int b[LEN]={1,2,3,4,5,6,7,8,9,10},i,s=0; reverse(b,8);

for(i=6;i<10;i++) s+=b[i]; prin tf("s=%d\n",s);

return 0;

}

运行结果:s=34

(2)#i nclude

int d=1;

void fun (int p)

{

int d=5;

d+=p++;

prin tf("%d",d); return; }

int main()

{

int a=3;

fun( a);

d+=a++;

prin tf("%d\n",d);

return 0;

}

运行结果:84

(3)#i nclude

void fun (i nt x,i nt y,i nt z) {

z二x*x+y*y;

return ;

}

int main()

{

int a=31;

fun (5,2,a);

prin tf("%d",a);

return 0;

}

运行结果:31

(4)#in elude

#define MAX(x,y) (x)>(y)?(x):(y)

int main()

{

int a=5,b=2,c=3,d=3,t;

t=MAX(a+b,e+d)*10;

prin tf("%d\n",t);

return 0;

运行结果:7

3、程序设计。

(1)编写函数sum,计算m到n的累加和(m小于n),在主函数中

调用sum ()函数,计算并输出的值。

(2)编写函数item,计算1到n的累加和的倒数,在主函数中调用

11 1 1

item ()函数,计算并输出+ + +山+ 的值。

1 1+

2 1-F2+

3 III 1+2+3+-+11

(3)一个正整数如果等于它的因子(包括1,但不包括自身)之和,则称为“完数”(例如6是一个“完数”,6=1+2+3)。编写函数fun,计算n的因子之和(不包括n),在主函数中调用fun ()函数,输出

1000以内的所有完数。

(4)已知数列的递归关系如下,编写函数fun,计算数列的第n项,

在主函数中调用fun ()函数,输出该数列的前20项。

flO (n = 1) f(n)=l/(n -1) + 2 (n>2)

第六章

1•程序填空。

(1 )请在横线上填空,使程序完成计算数组a中元素的平均值并输出。

float average(i nt *pa,i nt n)

int i,avg;

avg=O;

for(i=0;i< n;i++)

avg+=pa[i];

return (float)avg/n;

}

int main()

{

int a[5]={2,4,6,8,10};

float mean;

mean= average(a,5);

prin tf("mea n=%.2f\n",mea n);

}

注意:红色部分即为原题填空部分,下同。

2.请在横线上填空,使函数实现计算指针p所指向的字符串的长度。

int myStrle n( char *p) {

in t le n=0;

for(;*p!='\0' ;p++)

len++;

return len;

}

阅读下列程序,写出程序运行结果。

(1)#i nclude

int mai n()

{

int a=1,b=3,c=5;

int *p 仁&a,*p2=&b,*p=&c;

*p=(*p1)*(*p2);

prin tf("%d\n",c);

return 0;

}

运行结果:3

(2)#in clude

int mai n()

{

int a[3][3],*p,i;

p=& a[0][0];

for(i=0;i<9;i++)

p[i]=i+1;

prin tf("%d\n",a[1][2]);

return 0;

}

运行结果:6

(3)#in clude

int mai n()

{

int a[ ]={2,4,6,8,10},y=1,i,*p;

p=& a[1];

for(i=0;i<3;i++) y+=*(p+1);

prin tf("%d\n",y);

return 0;

}

运行结果:19

(4)

#in clude

#in clude

int mai n()

{

char p1[]="abcd",p2[]="efgh",str[50]="ABCDEFG"; strcat(str,p1);

strcat(str,p2);

prin tf("%c\ n",str);

return 0;

运行结果:ABCDEFGabcdefgh

#in clude

int mai n()

{

char str[]="1a2b3c";

int i;

for(i=0;str[i]!='\0';i++)

if(str[i]<'0'||str[i]>'9') pri ntf("%c",str[i]); prin tf("\n");

return 0; }

运行结果:abc

3.程序设计

(1)编写函数Mystrcmp(char*str1,char*str2),该函数的功能是比较字符串strl和str2,如果相同返回0,否则返回两个字符串中第1个不相同的ASCI码值之差作为函数值返回,

要求不采用库函数strcmp()实现。

(2)编函数fun(int*a,int n,int*odd,int*even),函数的功能是分别求出形参a所指向的数组中所有奇数、偶数之和,并分别保存在Odd、even所指向的变量中形参n表示形参

a所指向的数组的长度。

(3)从键盘输入英文的星期几,输出对应的中文星期几。

(4)从键盘输入一个字符串,然后将字符串按照如下规则重新排列:字母排在前面,数字排在后面,并不改变原来字母之间以及数字之间的字符顺序。例如输入字符串

“a12bcd45”,则排列后的字符串为"abcd1234”.

(5)从键盘输入一个字符串,按照相反的顺序输出。

(6)从键盘输入一个英文句子,统计其中单词的个数(单词之间使用空格隔开,除子母和空格外不会出现其他符号)。

C语言基础知识课后习题答案

C语言基础知识课后习题答案 说明: 1、原先的少部分题目有错,请用红色的部分替换掉; 2、如果红色部分有文字“删除该行”,就直接删除该行; 第一章C语言的基础知识 第一节对C语言的初步认识 习题 1. 下列叙述中错误的是B A)任何一个C程序都必须有且仅有一个main函数,C语言总是从main函数开始执行。B)C语言中的变量,可以先使用后定义。 C)所有的C语言语句最后都必须有一个分号 D)C程序书写格式自由,语句可以从任一列开始书写,一行内可以写多个语句。 第二节熟悉Visual C++ 习题 1. C语言源程序名的后缀是 B A).exe B).c C).obj D).cp 2. 下列叙述中错误的是D A)计算机不能直接执行用C语言编写的源程序 B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D)后缀为.obj和.exe的二进制文件都可以直接运行 3. 用C语言编写的代码程序B A)可立即执行B)是一个源程序 C)经过编译即可执行D)经过编译解释才能执行 第三节标识符 习题 1. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是B

A)大写字母B)连接符C)数字字符D)下划线 2. 以下选项中不合法的标识符是 C A)print B)FOR C)&a D)_00 3. 以下叙述中错误的是A A)用户所定义的标识符允许使用关键字 B)用户所定义的标识符应尽量做到“见名知意” C)用户所定义的标识符必须以字母或下划线开头 D)用户定义的标识符中,大、小写字母代表不同标识 4. 可在C程序中用作用户标识符的一组标识符是A A)and B)Date C)Hi D)case _2007 y-m-d Dr.T om Bigl 5. 以下不合法的用户标识符是C A)j2_KEY B)Double C)4d D)_8_ 6. 以下不能定义为用户标识符的是D A)Main B)_0 C)_int D)sizeof 7. 下列选项中,不能用作标识符的是D A)_1234_ B)_1_2 C)int_2_ D)2_int_ 8. 以下4组用户定义标识符中,全部合法的一组是A A)_main B)If C)txt D)int enclude -max REAL k_2 sin turbo 3COM _001 第四节数制转换 习题 1.十进制整数360的八进制为__________,十六进制为_____________。550 168 第五节整数和实数 习题 1.以下选项中正确的整型常量是 C

c语言程序设计课后习题及答案

c语言程序设计课后习题及答案 C语言程序设计是计算机科学与技术专业的一门基础课程,通过学习该课程,我们可以掌握C语言的基本语法和编程技巧,培养我们的编程思维和解决问题的能力。在课程学习过程中,老师会布置一些课后习题,以巩固我们的知识和提高我们的编程水平。下面我将分享一些C语言程序设计课后习题及其答案,希望对大家有所帮助。 1. 习题一:编写一个程序,输入一个整数,判断该数是否为素数。 ```c #include int main() { int num, i, flag = 0; printf("请输入一个整数:"); scanf("%d", &num); for (i = 2; i <= num / 2; i++) { if (num % i == 0) { flag = 1; break; } }

if (flag == 0) printf("%d是素数。\n", num); else printf("%d不是素数。\n", num); return 0; } ``` 2. 习题二:编写一个程序,输入一个正整数n,计算并输出1到n之间所有偶数的和。 ```c #include int main() { int n, i, sum = 0; printf("请输入一个正整数:"); scanf("%d", &n); for (i = 2; i <= n; i += 2) { sum += i; }

printf("1到%d之间所有偶数的和为:%d\n", n, sum); return 0; } ``` 3. 习题三:编写一个程序,输入一个正整数n,计算并输出n的阶乘。```c #include int main() { int n, i; long long factorial = 1; printf("请输入一个正整数:"); scanf("%d", &n); for (i = 1; i <= n; i++) { factorial *= i; } printf("%d的阶乘为:%lld\n", n, factorial); return 0;

《C语言程序设计》 课后习题答案 高等教育出版社

《C语言程序设计》课后习题答案高等教育 出版社 《C语言程序设计》课后习题答案 高等教育出版社 第一章:C语言概述 1. C语言的特点 C语言是一种以处理底层任务和系统编程为目标的高级编程语言。 其特点包括语法简洁、执行效率高、可移植性强等。 第二章:C语言基本数据类型 1. C语言中的基本数据类型 C语言中的基本数据类型包括整型、字符型、浮点型等。整型可以 进一步细分为有符号整型和无符号整型。 第三章:C语言运算符 1. C语言中的运算符 C语言中常见的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符等。这些运算符用于执行各种数学和逻辑操作。 第四章:C语言控制语句 1. C语言中的条件语句

C语言提供了if语句和switch语句来实现条件判断。if语句用于执行基于布尔表达式的条件分支,而switch语句用于根据不同的值执行不同的代码块。 第五章:C语言函数 1. C语言中的函数定义和调用 函数是C语言中的基本模块,用于封装可重用的代码。函数定义包括函数返回类型、函数名、参数列表和函数体等部分。 第六章:C语言数组 1. C语言中的数组定义和使用 数组是一组相同类型的数据元素的集合。C语言中可以使用数组来存储和操作大量数据。 第七章:C语言指针 1. C语言中的指针概念 指针是一种变量,它存储了内存地址。通过指针,可以直接访问和修改对应内存地址中的数据。 第八章:C语言字符串 1. C语言中的字符串操作 字符串是由一系列字符组成的数据类型。C语言通过字符数组来表示和操作字符串。

第九章:C语言结构体 1. C语言中的结构体定义和使用 结构体是一种自定义的复合数据类型,它可以包含多个不同类型的成员变量。 第十章:C语言文件操作 1. C语言中的文件读写操作 文件操作是一种重要的数据输入和输出方式。C语言提供了一系列函数来实现文件的读写操作。 总结: 通过解答以上习题,我们可以更好地掌握C语言的各个方面,提升我们的编程能力和解决问题的能力。希望本文对读者有所帮助。

《C语言程序设计教程》(第三版)课后习题参考答案

C语言程序设计课后习题参考答案 习题一 一、单项选择题 1、C 2、B 3、B 4、C 5、D 6、A 7、C 8、A 二、填空题 1、判断条件 2、面向过程编程 3、结构化 4、程序 5、面向对象方法 6、基本功能操作、控制结构 7、有穷性 8、直到型循环结构 9、算法 10、可读性 11、模块化 12、对问题的分解和模块的划分 习题二 一、单项选择题 1、B 2、D 3、C 4、B 5、A 6、A 7、B 8、C 二、填空题 1、主 2、C编译系统 3、结构化 4、程序 5、面向对象方法 6、.OBJ 7、库函数 8、直到型循环结构 习题三 一、单项选择题 1、D 2、B 3、A 4、C 5、A 6、D 7、B 8、D 9、B 10、C 11、A 12、D 13、C 14、B 15、C 16、A 17、B 18、C 19、C 20、D 21、A 22、D 23、D 24、D、A 25、D 26、A 二、填空题 1、补码 2、10^-138~10^138、15~16

3、实 4、单目运算符、自右向左 5、函数调用 6、65,89 习题四 一、单项选择题 1、D 2、C 3、D 4、A 5、D 6、B 7、A 8、C 9、B 10、B 二、填空题 1、两, ; 2、5.169000 3、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车 4、a=98,b=765.000000,c=4321.000000 5、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车 6、0,0,3 7、3 8、scanf(“%lf %lf %lf”,&a,&b,&c); 9、13 13.000000 13.000000 10、c=b-a;a=b+c; 习题五 一、单项选择题 1、B 2、D 3、C 4、B 5、B 6、D 7、A 8、B 9、D 二、填空题 1、1 、0 2、k!=0 3、if(x>4||x<-4)printf(“%d”,x); else printf(“error!”); 4、if(((x>=1&&x<=10)||(x>=200&&x<=210))&&(x%2!=0)) Printf(“%d”,x); 5、1 6、1 7、10! Right! 8、a=0 9、2,1 10、0

教材每章后选择题参考答案

习题1: 一、选择题 1. C语言中的标识符只能由字母,数字和下划线组成且第一个字符( A )。 A. 必须为字母或下划线 B. 必须为下划线 C. 必须为字母 D. 可以是字母、数字或下划线中的任一个 2. C语言中,编程人员可以使用的合法标识符是( D )。 A. if B. 6e8 C. char D. print E. a+b 3. C语言程序中可以对程序进行注释,注释部分必须用符号( C )括起来。 A. { 和 } B. [ 和 ] C. /* 和 */ D. */ 和 /* 4. C语言程序编译时,程序中的注释部分是(D)。 A. 参加编译,并会出现在目标程序中 B. 参加编译,但不会出现在目标程序中 C. 不参加编译,但会出现在目标程序中 D. 不参加编译,也不会出现在目标程序中 5. 以下叙述正确的是( c )。 A. 在C程序中,main()函数必须位于程序的最前面 B. C程序的每行中只能写一条语句 C. C语言本身没有输入输出语句 D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 6. C程序要正确地运行,必须要有( C )函数。 A. printf()函数 B. 定义的函数 C. main()函数 D.不需要函数 7. 以下叙述正确的是(D )。 A. 编写C程序,只需编译、连接没有错误,就能运行得到正确的结果 B. C程序的语法错误包括编译错误和逻辑错误 C. C程序有逻辑错,则不可能连接生成EXE文件 D. C程序的运行时错误也是由程序的逻辑错误产生的,引起程序的运行中断习题2:

1. 执行代码: int k; k=8567; printf("|%-06d|\n",k); 后显示(C)。 A.无法显示B.|008567| C.|8567 | D.|-08567| 2. 用小数或指数形式输入实数时,在scanf函数中格式说明字符为(c)。 A.d B.c C.f D.r 3.可以输入字符型数据至字符变量c的语句是(d)。 A.putchar(c); B.getchar(c); C.getchar(); D.scanf("%c",&c); 4. 若x是int类型变量,y是float类型变量,则为了将数据55和5 5.5分别赋给x和y,则执行语句:scanf(“%d, %f”,&x,&y); 时,正确的键盘输入是(a )。 A. 55,55.5↙ B. x=55, y=55.5↙ C. 55↙55.5↙ D. x=55↙y=55.5↙ 5. printf格式控制与输出项的个数必须相同。格式说明的个数小于输出项的个数,多余的输出项将(a)。 A.不予输出B.输出空格C.正常输出D.输出不定值或0 6. scanf函数的格式说明的类型与输入的类型应一一匹配。如果类型不匹配,系统(b)。 A.不予接收 B.并不给出出错信息,但不可能得出正确信息数据 C.能接受正确输入 D.给出出错信息,不予接收输入 7.(d)是正确的描述 A.输入项可以是一个实型常量,如scanf("%f",4.8); B.只有格式控制,没有输入项也能输入,如scanf("a=%d,b=%d"); C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%5.3f",&f); D.当输入数据时,必须指明变量的地址,如scanf("%f",&f);

C语言教材后习题及答案

第一章 1.什么是程序?什么是程序设计语言? 2.C语言有什么特点? 3.什么是算法?算法的描述有哪些基本方法? 第一章主要关注两个概念:一是程序的三种结构(顺序、分支或叫选择、循环) ;二是函数,主函数main() 第二章 1.指出下列哪些是C语言合法的用户识别符。 void a3_b3 For 2a defi ne _123 _abc DO 2.指出下列哪些是C语言合法的常量。 "3'4 " " 0x1g 33 " a" E20 '\18' \0xa' 1.E-5 3.F '\0' .12 '\a' "3'4 ""双引号内表示字符串,但要在一个串内含有单引号、双引号要用转义字符正确的是:’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 + 1/2a)的C语言表达式 1.0/(2*a+1/(2*a)) 5.⑴#include int main() { double x=1,y;

y=x+3/2; prin tf("y=%f\n",y); return 0; }结果是:2.000000,注意3/2=1 ⑵ #i nclude int main() { float x=2.9,y=3.2, z; int a=8; z=x+a%3*(i nt)(x+y)/2; prin tf("z=%f\n",z); return 0; } 结果是:8.900000,注意(int)(x+y) =6。 ⑶ #i nclude int main() { int a=65,b=-20; char ch='A'; float x=12.345678f; prin tf("abc\n\101\t\x41\\101\n"); prin tf("a=%d,%c,%o,%x\n",a,a,a,a); prin tf("b=%d,%o,%x,%u\n",b,b,b,b); prin tf("ch=%d,%c\n",ch,ch); prin tf("x=%f,%.2f,%10.2f,%-10.f\n",x,x,x,x); return 0; 此题包含的内容较多,都是细节,希望对照教材仔细分析结果6程序设计。 (1)输出如下的图形。 *****

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

高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案 ――武汉大学出版社 习题1参考答案 一、选择题 1. A 2. D 二、填空题 1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8 3. 关键字 4. 编辑、编译、链接和运行 三、简答题 1.答: (1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。 (2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。(3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。 (4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。 (5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。 (7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。 2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 3.答: (1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。

C语言课后习题及答案讲解

第一章 一、选择题 1.C/C++规定,在一个源程序中,main()函数的位置()。C A.必须在最开始 B.必须在最后 C.可以任意 D.必须在系统调用的库函数的后面 2.以下()是C/C++合法的标识符。A A.char2 B.@x C.int D.7Bw 3.下面的程序,对于输入:2 9 15,输出的结果是()。B #include"iostream.h" void main() {int a; float b; cout<<"input a,b:"<>a>>b; cout<<"a+b="<

C语言程序设计 第三版 部分习题 (谭浩强 著) 清华大学出版社 课后答案

【习题1】 一、简答题(在课本中寻找答案,略) 1.1 C程序的基本结构包括哪些内容? 1.2 如何定义标识符? 1.3 输入格式、输出格式的组成包括哪些内容? 1.4 C语言函数分为哪两类? 1.5 计算表达式的值应该考虑哪些方面? 1.6 上机调试程序的步骤如何? 二、判断并改错 1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 错误:main函数可以放在程序的任何位置。并不限定在程序的开头。 1.8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。 1.9 编辑与编译不是一回事。 错误:不是一回事。编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。 1.10 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。 正确 1.11 注释内容太多会影响程序的执行效率。 错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。 1.12 所有的数学公式可以直接出现在源程序中。 错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。 三、编程题 1.13 在屏幕上输出自己名字的拼音。 提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。 1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。 提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f 1.15 输入两个整数,输出其中最大者。 提示:模仿例1.3 1.16 输入三个整数,输出其中最小者。 提示: min(min(a,b),c); 【习题2】 一、简答题(在课本中寻找答案,略) 2.1 常量与变量的区别? 2.2 C语言中的标识符的定义规则? 2.3 变量为什么要“先定义,后使用”? 2.4 字符常量'a'与字符串常量"a"有何区别? 2.5 大小写字母转换的规则是什么? 2.6 变量的具有哪三种属性? 二、单项选择题 2.7 C语言中,int型数据在内存中的存储形式是(D)。

c语言程序设计(第3版)的习题答案

c语言程序设计(第3版)的习题答案c语言程序设计(第3版)的习题答案 本文为《c语言程序设计(第3版)》中的习题答案汇总,旨在帮助读者更好地理解和掌握该教材。以下是各章节习题的详细解答:第1章:计算机概述 习题1: 答案:计算机是一种能够接受输入数据、对其进行逻辑和算术运算,并产生输出结果的电子设备。 习题2: 答案:计算机主要由中央处理器(CPU)、主存储器、输入设备和输 出设备四个主要部分组成。 ...... 第2章:c语言概述 习题1: 答案:C语言是一种通用的高级编程语言,由贝尔实验室的Dennis Ritchie于1972年开发。 习题2: 答案:C语言的特点包括高效性、可移植性、灵活性和丰富的操作 符与控制语句。

...... 第3章:数据类型、运算符和表达式 习题1: 答案:C语言中的基本数据类型包括int、float、double、char等。 习题2: 答案:C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。 ...... 第4章:程序控制结构 习题1: 答案:C语言中的程序控制结构主要包括顺序结构、选择结构和循环结构。 习题2: 答案:顺序结构是指程序按照语句的顺序依次执行,没有分支和循环。 ...... 第5章:函数 习题1:

答案:C语言中的函数由函数头和函数体组成。 习题2: 答案:函数的定义包括函数名、返回类型、参数列表和函数体。...... 第6章:数组和字符串 习题1: 答案:数组是一组相同类型的数据元素的集合。 习题2: 答案:C语言中的字符串是以空字符'\0'结尾的字符数组。...... 第7章:指针 习题1: 答案:指针是用来存储另一个变量的地址的变量。 习题2: 答案:指针变量可以通过取地址运算符(&)获取普通变量的地址。...... 第8章:结构和共用体 习题1:

c语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案 1. 基本概念和语法 1.1 变量和数据类型 题目: 请将下列C语言的变量定义语句补充完整,并给出每个变量的数据类型和初始化值。 代码: ```c #include int main() { int a; float b; char c; double d; int x = 5; float y = 3.14; char z = 'A'; printf("a的数据类型:%s,a的初始值:%d\n", typeof(a), a);

printf("b的数据类型:%s,b的初始值:%f\n", typeof(b), b); printf("c的数据类型:%s,c的初始值:%c\n", typeof(c), c); printf("d的数据类型:%s,d的初始值:%lf\n", typeof(d), d); printf("x的数据类型:%s,x的初始值:%d\n", typeof(x), x); printf("y的数据类型:%s,y的初始值:%f\n", typeof(y), y); printf("z的数据类型:%s,z的初始值:%c\n", typeof(z), z); return 0; } ``` 答案: a的数据类型:int,a的初始值:随机值 b的数据类型:float,b的初始值:随机值 c的数据类型:char,c的初始值:'\0' d的数据类型:double,d的初始值:随机值 x的数据类型:int,x的初始值:5 y的数据类型:float,y的初始值:3.140000 z的数据类型:char,z的初始值:A 1.2 运算符和表达式

《C语言程序设计》课后习题答案(第四版)

《C语言程序设计》课后习题答案(第四版) C语言程序设计课后习题答案(第四版) 1. 基础知识概述 C语言程序设计是一门广泛应用于软件开发领域的编程语言。它以其简洁、高效以及可移植性而备受推崇。本文将为读者提供《C语言程序设计》(第四版)课后习题的详细解答,帮助读者加深对C语言的理解。 2. 第一章习题答案 2.1 习题1 题目:编写一个C语言程序,输出"Hello, World!"。 解答: ```c #include int main() { printf("Hello, World!"); return 0; } ``` 2.2 习题2

题目:编写一个C语言程序,接收用户输入的两个整数,并输出它们的和。 解答: ```c #include int main() { int num1, num2, sum; printf("请输入两个整数:"); scanf("%d %d", &num1, &num2); sum = num1 + num2; printf("它们的和是:%d", sum); return 0; } ``` 3. 第二章习题答案 3.1 习题1 题目:编写一个C语言程序,接收用户输入的一个整数,并判断它是否为偶数。 解答:

```c #include int main() { int num; printf("请输入一个整数:"); scanf("%d", &num); if (num % 2 == 0) { printf("这个数是偶数"); } else { printf("这个数不是偶数"); } return 0; } ``` 3.2 习题2 题目:编写一个C语言程序,接收用户输入的一个字符,并判断它是否为字母。 解答: ```c

C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案 为了适应标题所需的字数限制,我将按照适当的格式和排版要求来回答C语言程序设计(第二版)习题的参考答案。以下是部分习题的解答示例: 1. 基本概念与语法 1.1 变量和数据类型 C语言中的变量用于存储不同类型的数据。常见的数据类型包括整型、浮点型、字符型等。例如,声明一个整型变量x并赋值为10的方法如下: ```c int x = 10; ``` 1.2 操作符和表达式 C语言提供了丰富的操作符和表达式,用于进行数值计算和逻辑判断。例如,使用逻辑与(&&)操作符可以判断两个条件同时成立的情况,示例如下: ```c if (x > 0 && x < 100) { // 满足条件的代码

``` 2. 流程控制 2.1 分支结构 流程控制中的分支结构用于根据条件来执行不同的代码块。常见的 分支结构有if语句和switch语句。例如,使用if语句判断一个数的正 负情况: ```c if (x > 0) { printf("x是正数\n"); } else if (x < 0) { printf("x是负数\n"); } else { printf("x是零\n"); } ``` 2.2 循环结构 循环结构用于多次执行相同的代码块。常见的循环结构有for循环、while循环和do-while循环。例如,使用for循环输出1到10的数字:

for (int i = 1; i <= 10; i++) { printf("%d ", i); } printf("\n"); ``` 3. 函数和数组 3.1 函数的定义和调用 函数是一段完成特定功能的代码块,可以多次调用。函数的定义包括函数名、参数列表和返回值类型。例如,定义一个用于计算两个整数相加的函数: ```c int add(int a, int b) { return a + b; } // 调用add函数 int result = add(3, 5); printf("3 + 5 = %d\n", result); ```

c语言第四版课后习题答案

c语言第四版课后习题答案 C语言第四版课后习题答案 在学习C语言第四版课程后,许多学生都会遇到各种各样的问题和疑惑。为了帮助大家更好地掌握C语言的知识,我们整理了一些课后习题的答案,希望能够对大家有所帮助。 1. 什么是C语言? C语言是一种通用的高级程序设计语言,它广泛应用于系统软件、应用软件、驱动程序、网络通信等领域。C语言具有高效、灵活、可移植等特点,是程序员必备的基本技能之一。 2. C语言的基本语法有哪些? C语言的基本语法包括数据类型、变量、运算符、控制语句、函数等。学习C 语言首先要掌握这些基本语法,才能够编写出正确的程序。 3. 如何定义一个变量? 在C语言中,可以使用关键字“int”、“float”、“char”等来定义不同类型的变量。例如: int a; // 定义一个整型变量a float b; // 定义一个浮点型变量b char c; // 定义一个字符型变量c 4. 如何进行条件判断? 在C语言中,可以使用“if”、“else”、“switch”等关键字来进行条件判断。例如:if (a > b) { printf("a大于b");

} else { printf("a小于等于b"); } 5. 如何定义一个函数? 在C语言中,可以使用关键字“void”、“int”、“float”等来定义不同类型的函数。例如: int max(int a, int b) { if (a > b) { return a; } else { return b; } } 通过学习C语言第四版课程,我们可以更好地理解和掌握C语言的知识,提高自己的编程能力。希望大家能够通过不断练习和实践,掌握C语言的基本原理和技巧,成为一名优秀的程序员。

c语言习题及参考答案

第1章C语言概述 (一)选择题 1.一个C程序的执行是从 A 。答案A A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.以下叙述不正确的是 D 。 A) 一个C源程序必须包含一个main函数 B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面 3.以下叙述正确的是 C 。 A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 B) 在C程序中,main函数必须位于程序的最前面 C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句 4.一个C语言程序是由 B 。 A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成 5. C语言程序编译时,程序中的注释部分______D______. A) 参加编译,并会出现在目标程序中 B) 参加编译,但不会出现在目标程序中 C) 不参加编译,但会出现在目标程序中 D) 不参加编译,也不会出现在目标程序中 (二)填空题 1、C语句结束符为____;_____________. 2、C语句注释符号为:_/* */______________. 3、一个C程序总是从____main函数______________开始执行的。 第3章数据类型、运算符与表达式 (一)选择题 1. 若x、i、j、k都是int型变量,则计算下面表达式后,x的值为( C )。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 2.下列四组选项中,均不是C语言关键字的选项是( A )。 A) define IF type B) getc char printf C) include case scanf D) while go pow 3. 下列四组选项中,均是不合法的用户标识符的选项是( B )。 A) W P_0 do B) b-a goto int C) float la0 _A D) -123 abc TEMP 4. 下列四组选项中,均是合法转义字符的选项是( A )。 A) ‘\”’ ‘\\’ ‘\n’ B) ‘\’ ‘\017’ ‘\”’ C) ‘\018’ ‘\f’ ‘\xab’ D) ‘\\0’ ‘\101’ ‘\xlf’ 5 . 下面正确的字符常量是( D )。 A) “c” B) ‘\\’’ C) a D) ‘K’ 6 .以下叙述不正确的是( D )。 A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,MAX和max是两个不同的变量

《c语言程序设计》(钱卫国张玉生)书后习题答案

《c语言程序设计》(钱卫国张玉生)书后习题答案 习题一 高级、流程控制、程序设计语言、输入函数、32、main()、编译、C C D B D 习题二 # %d %f 2 a=2 (%d)%1d pow(x,y) 3.0 2.0 C C B A D C A C C 习题三 1或0 char ‘’‘E’ 2 !23 D B B B A C D C D D 3 1 3 习题四 Continue do continue for A C D D A 2 0 1 习题五 Return auto static extern C D B D C A D C C B 16 1.00 习题六 Unsigned 32767 double 8 %1d (第5题第二空空)double float x=6c 2 a=3 1 (12题没办法输,符号不全)(x>=1&&x<="" b="" c="" p=""> A B A D B B B C B D C A A C C A C C C D 习题七 0 连续数组名越界inta【】={9,4…}0 9 a【8】1 a【2】12 DDCCB BAABB 1空 4 6 8 10 str【】=abdef 习题八

取变量的地址0 int 内存地址指针表达式 BCCDA DDBCC 5 4952 2 3 3 习题九 (*b).day b→day 5 2 3、struct date d={2012,6,6}4、575 5、char *data;structure link * next 6、x→link=z ACDDA ADC 习题十 2 16 4 9 yellow 3 CCBCC ABD 习题十一 # 包含文件宏定义条件编译是否小写若是数字字符则转换成数值,否则为-1 3 6 -2 DCBAD DCDAC Area=3.140000 2 The result is =365 第4题空 6 6.7题空

高等教育出版社《C语言程序设计(苏小红)》课后习题答案

2.2 #include main() { float x=2.5,y=2.5,z=2.5; printf("x=%f\n",x); printf("y=%f\n",y); printf("z=%f\n",z); } 3.1(1) #include main() { int a=12,b=3; float x=18.5,y=4.6; printf("%f\n",(float)(a*b)/2); printf("%d\n",(int)x%(int)y); } 3.1(2) #include main() { int x=32,y=81,p,q; p=x++; q=--y; printf("%d %d\n",p,q); printf("%d %d\n",x,y); } 3.2 #include main() { int x,b0,b1,b2,s; printf("Inputx:"); scanf("%d",&x); b2=x/100; b1=(x-b2*100)/10;//或(x%100)/10;或x/10%10; b0=x%10; s=b0*100+b1*10+b2;

printf("s=%d\n",s); } 3.3 #include #include main() { float rate=0.0225; float n,capital,deposit; printf("Input n,capital:"); scanf("%f,%f",&n,&capital); deposit=capital*pow(1+rate,n); printf("deposit=%f\n",deposit); } 3.4 #include #include main() { float a, b, c; double x, y; printf("Input a, b, c:"); scanf("%f %f %f", &a, &b, &c); x=(-b+sqrt(b*b-4*a*c))/(2*a); y=(-b-sqrt(b*b-4*a*c))/(2*a); printf("x=%f,y=%f\n",x,y); } 习题4 4.1(1) #include main() { char c1='a',c2='b',c3='c'; printf("a%cb%cc%c\n",c1,c2,c3); } 4.1(2) #include main() { int a=12,b=15; printf("a=%d%%,b=%d%%\n",a,b); }

C语言程序设计(郑莉)课后习题答案

C语言程序设计(郑莉)课后习题答案

C++语言程序设计(清华大学郑莉)课后习题答案 第一章概述 1-1 简述计算机程序设计语言的发展历程。 解: 迄今为止计算机程序设计语言的发展经历了机器语言、汇编语言、高级语言等阶段,C++语言是一种面向对象的编程语言,也属于高级语言。 1-2 面向对象的编程语言有哪些特点? 解: 面向对象的编程语言与以往各种编程语言有根本的不同,它设计的出发点就是为了能更直接的描述客观世界中存在的事物以及它们之间的关系。面向对象的编程语言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。通过类的继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使得软件风格统一。因此,面向对象的编程语言使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。C++语言是目前应用最广的面向对象的编程语言。 1-3 什么是结构化程序设计方法?这种方法有哪些优点和缺点? 解: 结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个基本模块;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。 虽然结构化程序设计方法具有很多的优点,但它仍是一种面向过程的程序设计方法,它把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。 由于图形用户界面的应用,程序运行由顺序运行演变为事件驱动,使得软件使用起来越来越方便,但开发起来却越来越困难,对这种软件的功能很难用过程来描述和实现,使用面向过程的方法来开发和维护都将非常困难。 1-4 什么是对象?什么是面向对象方法?这种方法有哪些特点? 解: 从一般意义上讲,对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。对象是构成世界的一个独立单位,它具有自己的静态特征和动态特征。面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,由一组属性和一组行为构成。 面向对象的方法将数据及对数据的操作方法放在一起,作为一个相互依存、不可分离的整体--对象。对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口,与外界发生关系,对象与对象之间通过消息进行通讯。这样,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。通过实现继承与多态性,还可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。 面向对象方法所强调的基本原则,就是直接面对客观存在的事物来进行软件开发,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分专业化的方法、规则和技巧中回到客观世界,回到人们通常的思维。 1-5 什么叫做封装? 解: 封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。 1-6 面向对象的软件工程包括哪些主要内容?

相关文档
相关文档 最新文档