高级语言程序设计第五版课后答案(c语言程序设计第5版课后答案)

程序设计 659
本篇文章给大家谈谈高级语言程序设计第五版课后答案,以及c语言程序设计第5版课后答案对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、c语言‘c’+1等于多少

本篇文章给大家谈谈高级语言程序设计第五版课后答案,以及c语言程序设计第5版课后答案对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

c语言‘c’+1等于多少

c1=197 c语言

c1=197 c语言,c语言:整型和字符型的范围易错及分析

大大的蓝天

转载

关注

4点赞·1994人阅读

分析下面的程序:

#include

int main()

{

char c1, c2;

c1 = 97;

c2 = 98;

printf("c1=%c,c2=%c\n", c1, c2);

printf("c1=%d,c2=%d\n", c1, c2);

return 0;

}

(1)运行时会输出什么信息?为什么?

解:运行时输出:

c1=a,c2=b

c1=97,c2=98

请按任意键继续. . .

第一行输出是将c1,c2按%c的格式输出,97是a的ASCII码,98是字符b的ASCII码;

第二行输出是将c1,c2按%d的格式输出,所以输出两个十进制整数。

(2)如果将程序第4,5行改为:

c1=197;

c2=198;

运行时会输出什么信息?为什么?

解:程序:

#include

int main()

{

char c1, c2;

c1 = 197;

c2 = 198;

printf("c1=%c,c2=%c\n", c1, c2);

printf("c1=%d,c2=%d\n", c1, c2);

return 0;

}

结果:

c1=?c2=?

c1=-59,c2=-58

请按任意键继续. . .

由于在VS中,字符型数据是作为signed char类型处理的,存字符的有效范围为[0,127]之间,超过此范围的处理方法,不同系统得到结果不同,因而用“%c”格式输出,结果不可预料;

用“%d”格式输出时,输出c1=-59,c2=-58,这是按补码形式输出的,内存字节中第1位为1时,作为负数,59+197=58+198=256。

(3)如果将程序第3行改为:int c1,c2;

运行时会输出什么信息?为什么?

解:程序1:

#include

int main()

{

int c1,c2;

c1 = 97;

c2 = 98;

printf("c1=%c,c2=%c\n",c1,c2);

printf("c1=%d,c2=%d\n", c1, c2);

return 0;

}

结果:

c1=a,c2=b

c1=97,c2=98

请按任意键继续. . .

输出结果和(1)相同

程序2:

#include

int main()

{

int c1,c2;

c1 = 197;

c2 = 198;

printf("c1=%c,c2=%c\n",c1,c2);

printf("c1=%d,c2=%d\n", c1, c2);

return 0;

}

结果:

c1=?c2=?

c1=197,c2=198

请按任意键继续. . .

当c1 = 197;c2 = 198;时,用“%c”输出,仍然是不可预料的字符;用“%d”输出时,得到c1=197,c2=198

,因为它们在int类型的有效范围(-2^31,2^31-1)内,分配4个字节。

c1=197 c语言

喜报!儿子上985,女儿上211,本地妈妈出名了!点醒无数家长

教育专栏

广告

C程序设计谭浩强第五版课后答案 第三章习题答案

2510阅读·0评论·1点赞

2021年1月31日

c语言转义字符表解析,C语言常用转义字符表

910阅读·0评论·1点赞

2021年5月19日

【C语言】字符类型

2884阅读·0评论·1点赞

2017年7月10日

C语言 转义字符和ASCII码对照表

6745阅读·0评论·7点赞

2021年2月1日

c语言 变量 字符表,第3章 变量和数据类型 7、C语言中的字符(char)

171阅读·0评论·0点赞

2021年5月19日

3-分析下面程序

1315阅读·0评论·2点赞

2021年4月9日

快来,在Soul上有秒回消息的人

00:16

Soul

版本 4.57.1

立即下载

广告

隐私

权限

上海任意门科技有限公司

【c语言】—— 类型转换

177阅读·0评论·0点赞

2018年11月21日

c语言197对应什么字母,c语言的问题

1763阅读·0评论·0点赞

2021年5月19日

c语言char197用%d输出变为-59,强制类型转换所导致的数据改变

3566阅读·1评论·17点赞

2021年3月30日

C语言输出ASCII码128~255和有符号char型溢出的问题记录

2004阅读·1评论·6点赞

2020年3月22日

C语言常用字符ASCII代码表,C语言常用转义字符、ASCII、优先级对照表

1145阅读·0评论·0点赞

2021年5月20日

c语言中198对应的字符是什么,c语言中转义字符是什么意思

411阅读·0评论·0点赞

2021年5月20日

c语言中各个符号的含义总结,C语言中的符号总结

1.7W阅读·0评论·4点赞

2021年5月19日

分析下面的程序#include<stdio.h> int main() { char c1,c2; c1=197; c2=198;

1.8W阅读·0评论·3点赞

2021年3月28日

谭浩强C程序设计:第三章习题

431阅读·0评论·0点赞

2022年3月26日

C语言数据类型的存储和转换

1069阅读·0评论·1点赞

2022年3月14日

c语言综合作业答案,C语言作业答案

228阅读·0评论·0点赞

2021年5月18日

C语言程序设计(第四版)谭浩强 课后习题答案 第三章

3270阅读·0评论·6点赞

2020年4月22日

关于C语言输出ASCII码128~255和有符号char型溢出的问题。此处大坑弄明白了后记录下来分享……

6685阅读·3评论·14点赞

2019年3月19日

在C语言中为什么c1出现错误,c语言:用scanf函数输入数据,举例并分析错误原因...

232阅读·0评论·0点赞

2021年5月19日

去首页

看看更多热门内容

急求《java程序设计》第五版或第六版答案 电子工业出版社

大学学习资料免费下载网 有

在 电子/信息/通信/计算机 版块

标题:

Java程序设计 各章课后答案/习题解答

Java语言程序设计 课件大全 (分别配雷学生、陆迟、邵丽萍三个版本教材)

......

下载不用积分(不知道是不是你要的版本)

高级语言程序设计的试题求大神解答

C语言

第二章

一.bai选择题du

1.B 2.C 3.D 4.B 5.B 6.A 7.B 8.A 9.D 10.C C

11.B C 12.B 13.A 14.D B A 15.C

二.填空题

1.3,1

2.2

3.4

4.-264

5.n=1

三.简答题

1.字符zhi常量dao和字符串常量有何区别?

答:字符串常量和字符常量是不同的量。它们之间主要有以下区别:

(1)字符常量由单引号括起来的一个字符,字符串常量由双引号括起来字符序列。

(2)可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有相应的字符串变量,但是可以用一个字符数组来存放一个字符串常量。在数组一章内予以介绍。

(3)字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节中存放字符"\0" (ASCII码为0)。这是字符串结束的标志。

2.简述转义字符的作用并举例加以说明。

使用转义符“\”与一些特殊字符构成转义字符。用以表示非图形字符,如退格、换行等,也可以表示成字符型常量。转义字符主要用来表示那些用一般字符不便于表示的控制字符。例如’\n’就是一个转义字符,用来表示“回车换行”。

3.简述数据类型转换规则并举例加以说明。

数据类型转换遵循如下规则:

a)若参与运算量的类型不同,则先转换成同一类型,然后进行运算。

b)转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。

c)所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。

d)char型和short型参与运算时,必须先转换成int型。

e)在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。

第三章

思考与习题

一、单选题 1.C2.D3.B4.B5.C

6.C7.B8.A9.D10.B

11.D12.C13.A14.D

二、填空题

答案:

1.顺序结构、选择结构、循环结构

2.scanf( )、printf( )

3.1

4.2

5.1

6.1

2

3

7.s=254

8.8

三、简答题

答案:

1.结构化程序设计的基本思想是:任何程序都可以通过顺序结构、选择结构、循环结构表示。复杂程序是经过这三种基本结构反复嵌套使用而构成的。结构化程序的优点是程序模块结构清楚,层次分明,易于读写。

2.关系运算是通过C语言提供的6种关系运算符对两个值的大小等关系进行比较。

逻辑运算既通过三种逻辑运算符对逻辑量进行与、或、非的运算即逻辑运算。

条件运算是通过条件运算符“?:”构造的条件表达式:表达式1 ? 表达式2 :表达式3,根据表达式1的值判断条件表达式的最终计算结果是取表达式2的值还是取表达式3的值。

3.不是,虽然空语句是什么也不执行的语句,但是在程序中空语句可用来构成循环结构中的空循环体。

4.如果某个量的值不为0时,则在逻辑运算中被判别为真;否则,如果其值为0时,被判别为假。

5.条件表达式和条件语句都可以根据给定的条件进入不同的分支执行语句。条件表达式语句简练,如果选择结构比较简单,可以采用条件表达式来实现。而通过条件语句,以及语句的嵌套,可以实现更复杂的选择结构。

四、设计题目

答案:

1.

#include "stdio.h"

void main()

{

int x=0;

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

printf("square(%d)=%d\n",x,x*x);

}

2.

# include "stdio.h"

void main()

{

int x, y, z, max, min;

printf("Please input three integer number:");

scanf("%d %d %d", x, y, z);

min = max = x;

if(x==y y==z)

printf("x = y = z, max=min=%d\n", max);

Els

{

if (ymax)

max = y;

if (zmax)

max = z;

if (ymin)

min = y;

if (zmin)

min = z;

printf("max=%d, min=%d\n", max, min);

}

}

3.

# include "stdio.h"

void main()

{

char c, s[50]="", i=0;

c=getchar();

while(c!='\n')

{

if(c'0'|| c'9')

{

s[i]=c;

i++;

}

c=getchar();

}

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

}

4.

# include "stdio.h"

void main()

void main()

{

int i,j;

for(i=1;i=9;i++)

{

for(j=1;j=ij=9;j++)

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

printf("\n");

}

}

5.

# include "stdio.h"

void main()

{

int x, i=1;

int n=88;

printf("please input a number.\n");

scanf("%d",x);

while(i10)

{

if(x!=n)

{

if(x n)

printf("%dn! Try again!\n", x);

else

printf("%dn! Try again!\n", x);

scanf("%d",x);

i++;

}

else

{

printf("You are right, the number is %d\n",n);

break;

}

printf("You are right, the number is %d\n",n);

break;

}

}

if(i==10)

printf("You have tried 10 times. Game over!\n");

}

6.

#include "stdio.h"

void main()

{

int i=1;

float j ,sum;

sum=1.0;

do

{

j=1.0/(i*(i+1));

sum=sum+j;

i=i+1;

}

while(j=0.001||i=20);

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

}

7.

#include "stdio.h"

void main()

{

int k;

float sum=0;

for(k=1;k=100;k++)

sum=sum+k;

for(k=1;k=50;k++)

sum=sum+k*k;

for(k=1;k=10;k++)

sum=sum+1.0/k;

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

}

8.

#include "stdio.h"

void main()

{

int k;

int m,n,t;

for(k=100;k=999;k++)

{m=k/100;

n=k/10%10;

t=k%10;

if(m*m*m+n*n*n+t*t*t==k)

printf("k=%d\n",k);

}

}

9.

#include "stdio.h"

void main()

{

int k;

int m,n,t;

for(k=1;k=3;k++)

{

m=k*2-1;

n=3-k;

for(t=1;t=n;t++)

printf(" ");

for(t=1;t=m;t++)

printf("*");

printf("\n");

}

}

求C语言程序设计的答案

2分,共60分)下列各题A、B、C、D四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

1.微型计算机的运算器、控制器及内存储器组合在一起,称之为()(本题分值:1分)

D

A.ALU

B.CPU

C.MPU

D.主机

2.下列存储器中,存取速度最快的是()(本题分值:1分)

D

A.软盘

B.硬盘

C.光盘

D.内存

3.系统软件中最重要的是()(本题分值:1分)

A

A.操作系统

B.语言处理程序

C.工具软件

D.数据库管理系统

4、CPU处理的数据基本单位为字,一个字的字长()(本题分值:1分)

D

A.为8个二进制位

B.为16个二进制位

C.为32个二进制位

D.与CPU芯片的型号有关

5.打印当前屏幕内容应使用的控制键是()(本题分值:1分)

D

A.Scroll-Lock

B.Num-Lock

C.PgDn

D.PrtSc(Print Screen)

6.能将高级语言源程序转换成目标程序的是()(本题分值:1分)

C

A.调试程序

B.解释程序

C.编译程序

D.编辑程序

7.二进制数1110111.11转换成十进制数是()(本题分值:1分)

B

A.119.375

B.119.75

C.119.125

D.119.3

8.十六进制数FF.1转换成十进制数是()(本题分值:1分)

A

A.255.0625

B.255.125

C.127.0625

D.127.125

9.中国国家计算机网络设施是()(本题分值:1分)

A

A.NCFC

B.CERNET

C.ISDN

D.Internet

10.控制键^C的功能为()(本题分值:1分)

A

A.终止当前操作

B.系统复位

C.暂停标准输出设备的输出

D.结束命令行

11.COMMAND.COM为命令处理程序,DOS系统启动后,它()(本题分值:1分)

B

A.驻留在外存,需要时装入内存

B.常驻内存,包含所有内部命令

C.不能处理外部命令

D.不能处理后缀为.EXE的可执行文件

12.为了将所有扩展名为.PAS的文件改成扩展名为.P,应使用命令()(本题分值:1分)

C

A.REN *.PAS .?AS

B.REN PAS P

C.REN *.PAS *.P

D.REN *.PAS *.P??

13.设当前盘中文件XY.C的路径为\A\B\XU,当前目录为\A\B。为了查看文件XY.C的内容,应使用命令()(本题分值:1分)

A

A.TYPE XU\XY.C

B.TYPE \XU\XY.C

C.DIR XU\XY.C

D.DIR \A\B\XU\XY.C

14.要将提示符改成当前盘当前目录后加一个大于号“>”,应使用命令()(本题分值:1分)

B

A.PROMPT

B.PROMPT $ p $ g

C.PROMPT $ $

D.PROMPT C\>

15.在多媒体计算机系统中,CD-ROM属于()(本题分值:1分)

D

A.感觉媒体

B.表示媒体

C.表现媒体

D.存储媒体

16.设当前盘为C盘,将A盘根目录下的文件目录信息存放到当前盘当前目录下的文件AB中,应使用命令()(本题分值:1分)

C

A.TYPE A:\>AB

B.DIR >AB

C.DIR A:\>AB

D.DIR \>AB

17.在位运算中,操作数每右移一位,其结果相当于()(本题分值:1分)

B

A.操作数乘以2

B.操作数除以2

C.操作数除以16

D.操作数乘以16

18.在当前盘当前目录下有一个文件A.BAT,其内容为

CD \

MD \XYZ\AB\B\C

CD XYZ\AB\B

在正确执行上述文件后,接着执行下列命令时,不会发生错误的是()(本题分值:1分)

C

A.MD C

B.RD \XYZ

C.RD C

D.RD B

19.下列命令组中两个DOS命令互相等价的是()(本题分值:1分)

D

A.TYPE AB.TXT与DIR AB.TXT

B.DISKCOMP A:B:与COMP A:.* B:*.

C.TYPE AB.TXT>>XY.TXT与COPY AB.TXT XY.TXT

D.TYPE AB.TXT>XY.TXT与COPY AB.TXT XY.TXT

20.设A盘为启动盘,其目录结构为

根目录

DOS子目录 COMAND.COM

USER子目录 AUTOEXEC.BAT

其文件AUTOEXEC.BAT的内容如下:

MD \XYZ

CD \DOS\USER

则由A盘启动成功后,A盘的当前目录是()(本题分值:2分)

C

A.\DOS\USER

B.\XYZ

C.根目录

D.\DOS

21.C语言提供的合法关键字是()(本题分值:1分)

C

A.switch

B.cher

C.case

D.default

22.在C语言中,合法的字符常量是()(本题分值:1分)

B

A.′\084′

B.′\x43′

C.′ab′

D.′\0′

23.若已定义x和y为double类型,则表达式: x=1,y=x+3/2的值是()(本题分值:1分)

C

A.1

B.2

C.2.0

D.2.5

24.合法的数组定义是()(本题分值:1分)

D

A.int a[]=〃string〃;

B.int a[5]=;

C.char a=〃string〃;

D.char a[]=;

25.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是()(本题分值:1分)

A

A.10<a<15

B.a==11||a==12||a==13||a==14

C.a>10&&a<15

D.!(a<=10)&&!(a>=15)

26.若t为double类型,表达式t=1,t+5,t++的值是()(本题分值:1分)

C

A.1

B.6.0

C.2.0

D.1.0

27.若有定义和语句:

char s[10];s=〃abcd〃;printf(〃%s\n〃,s);

则结果是(以下μ代表空格)()(本题分值:1分)

D

A.输出abcd

B.输出a

C.输出abcdμμμμμ

D.编译不通过

28.若有定义和语句:

int **pp,*p,a=10,b=20;

pp=&p;p=&a;p=&b;printf(〃%d,%d\n〃,*p,**pp);

则输出结果是()(本题分值:1分)

D

A.10,10

B.10,20

C.20,10

D.20,20

29.若有以下定义和语句:

int u=010,v=0x10,w=10;

printf(〃%d,%d,%d\n〃,u,v,w);

则输出结果是()(本题分值:1分)

A

A.8,16,10

B.10,10,10

C.8,8,10

D.8,10,10

30.若有以下定义和语句:

char c1=′b′,c2=′e′;

printf(〃%d,%c\n〃,c2-c1,c2-′a′+′A′);

则输出结果是()(本题分值:1分)

B

A.2,M

B.3,E

C.2,E

D.输出项与对应的格式控制不一致,输出结果不确定

31.若有定义:int a[3][4];,()不能表示数组元素a[1][1]。(本题分值:1分)

D

A.*(a[1]+1)

B.*(a[1][1])

C.(*(a+1))[1]

D.*(a+5)

32.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是()(本题分值:1分)

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

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

A

A.20

B.24

C.25

D.30

33.若有以下定义和语句:

char *s1=〃12345〃,*s2=〃1234〃;

printf(〃%d\n〃,strlen(strcpy(s1,s2)));

则输出结果是()(本题分值:1分)

A

A.4

B.5

C.9

D.10

34.若有以下定义和语句:

int a[10]=,*p=a;

则不能表示a数组元素的表达式是()(本题分值:1分)

B

A.*p

B.a[10]

C.*a

D.a[p-a]

35.下面程序的输出结果是()(本题分值:2分)

C

A.k=3 a=2 b=3

B.k=3 a=3 b=2

C.k=2 a=3 b=2

D.k=2 a=2 b=3

36.下面程序的输出结果是()(本题分值:1分)

main()

{unsigned a=32768;

printf(〃a=%d\n〃,a);}

C

A.a=32768

B.a=32767

C.a=-32768

D.a=-1

37.执行下面语句后的输出结果为()(本题分值:1分)

int i=-1;

if(i<=0) printf(〃****\n〃);

else printf(〃%%%%\n〃)

D

A.****

B.%%%%

C.%%%%c

D.有语法错误,不能正确执行

38.对于条件表达式(M)?(a++):(a--),其中的表达式M等价于()(本题分值:1分)

C

A.M==0

B.M==1

C.M!=0

D.M!=1

39.下述程序段的输出结果是()(本题分值:1分)

int x=10;

int7nbspy=x++;

printf(〃%d,%d〃,(x++,y),y++);

A

A.11,10

B.11,11

C.10,10

D.10,11

40.若有以下的定义:

int a[]=,*p=a

则值为3的表达式是()(本题分值:1分)

A

A.p+=2,*(p++)

B.p+=2,*++p

C.p+=3,*p++

D.p+=2,++*p

41.假定所有变量均已正确说明,下列是程序段运行后x的值是()(本题分值:2分)

a=b=c=0;x=35;

if(!a) x--;

else if(b);

if(c) x=3;

else x=4;

B

A.34

B.4

C.35

D.3

42.在以下一组运算中,优先级最高的运算符是()(本题分值:2分)

C

A.<=

B.=

C.%

D.&&

43.若有以下定义和语句:

int w[2][3],(*pw)[3];pw=w;

则对w数组元素的非法引用是()(本题分值:2分)

A

A.*(w[0]+2)

B.*(pw+1)[2]

C.pw[0][0]

D.*(pw[1]+2)

44.若有以下程序片段: char str[ ]=〃ab\n\012\\\\〃; printf(〃%d〃,strlen(str));

上面程序片段的输出结果是()(本题分值:2分)

C

A.3

B.4

C.6

D.12

45.函数调用:strcat(strcpy(str1,str2),str3)的功能是()(本题分值:2分)

C

A.将串str1复制到串str2中后再连接到串str3之后

B.将串str1连接到串str2之后再复制到串str3之后

C.将串str2复制到串str1中后再将串str3连接到串str1之后

D.将串str2连接到串str1之后再将串str1复制到串str3中

46.以下对C语言函数的有关描述中,正确的是()(本题分值:2分)

A

A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.C函数既可以嵌套定义又可以递归调用

C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个源程序文件中

47.以下叙述中不正确的是()(本题分值:2分)

C

A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值

B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C.在C中,外部变量的隐含类别是自动存储类别

D.在C中,函数形参可以说明为register变量

48.设有以下定义或语句,则输出的结果是(用small模式编译,指针变量占2个字节)()(本题分值:2分)

struct date

{long *cat;

struct date *next;

double dog;

}too;

printf(〃%d〃,sizeof(too));

D

A.20

B.16

C.14

D.12

49.设有定义:struct sk

data,*p;

若有p=&data;,则对data中的a域的正确引用是()(本题分值:2分)

B

A.(*p).data.a

B.(*p).a

C.p->data.a

D.p.data.a

50.以下对枚举类型名的定义中正确的是()(本题分值:2分)

B

A.enum a=;

B.enum a;

C.enum a=;

D.enum a;

二、填空题(每空2分,共40分)请将答案分别写在答题卡中序号至的横线上,答在试卷上不得分。

1、与十进制数101等值的二进制数为。(本题分值:2分)

1100101

2、DOS命令分为内部命令与外部命令,XCOPY命令属于命令。(本题分值:2分)

外部

3、设当前盘为A盘,当前系统提示符为“”,在不改变当前盘的情况下,显示C盘的当前目录路径,应使用命令。 (本题分值:2分)

CD C:

4、自动批处理文件名必须是。(本题分值:2分)

AUTOEXEC.BAT

5、设在当前盘当前目录下有两个文件W.TXT与P.TXT,现要将文件P.TXT连接到文件W.TXT的后面,若使用COPY命令,则完整的命令为。(本题分值:2分)

COPY W.TXT+P.TXT W.TXT

6、表示条件10<x<100或x<0的C语言表达式是。(本题分值:2分)

(x>10 x<100)||x<0

或(10<xx<100)||x<0

或x<0 ||(x>10x<100)

或0>x ||(10<xx<100)

7、以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最笾怠G胩羁铡?br #define N 3

#define M 4

void LineMax(int x[N][M])

{ int i,j,p;

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

{p=0;

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

if(x[i][p]<x[i][j]) ;

printf(〃The max value in line is %d\n〃,);

}

}

main()

;

;

}

(本题分值:6分)

p=j

x[i][p]

LineMax(x)

8、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。

main()

{float x[1000],sum=0.0,ave,a;

int n=0,i;

printf(〃Enter mark:\n〃);scanf(〃%f〃,a);

while(a>= 0.0 n<1000)

{sum+=;x[n]=;

n++; scanf(〃%f〃,a);

}

ave= ;

printf(〃Output:\n〃);

printf(〃ave=%f\n〃,ave);

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

if() printf(〃%f\n〃,x[i]);

}

(本题分值:8分)

a

a

sum/n或sum/(float)n或sum/(double)n

x[i]<ave或!(x[i]>=ave)或ave>x[i]

9、执行以下程序,输入-10的结果是,输入5的结果是,输入10的结果是,输入30的结果是。

(本题分值:8分)

5

10

5

10、以下程序的功能是。

main()

int sum=0,i;

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

if(num[i]>0)

sum=num[i]+sum;

printf(〃sum=%6d〃,sum);

}

(本题分值:2分)

计算数组num中大于零的数据之和

11、以下程序可以把从键盘上输入十进制数(long型)以二到十六进制数的形式输出,请填空。

#include

main()

{char

b[16]=;

int c[64],d,i=0,base;

long n;

printf(〃Enter a number:\n〃); scanf(〃%1d〃,n);

printf(〃Enter new base:\n〃); scanf(〃%1d〃,base);

do

{c[i]=;

i++;

n=n/base;

}while(n!=0);

printf(〃The result is:\n〃);

for(--i;i>=0;--i)

{?d=c[i];

printf(〃%c〃,b);

}

}

(本题分值:4分)

n%base

[d]

C+高级语言程序设计 急~~~~~~~~~~~~~~~

问题1:

请注意输出格式 不管是X还是Y输出的都是%c 而%c就是把0-255之间的整数输出成字符,也可以理解成把

ASCII码输出 X=97 然后又给Y了一个97 自然输出的就是两个a了。

问题2:

第一行打错了吧 应该是 int d=1;

首先分析下fun()函数的作用:输入进来的数,然后让这个数加5,打印出来,最后返回计算出来的值的值

下面看整体程序:

最初d=1 a=3 执行了 printf("%d\n",fun(a+fun(d)))这句 注意这里面有两个fun()函数,而且此句本身

就是一个printf语句 所以肯定要打印出来3个数字(因为fun()里面就有打印)。

分开来看第一个执行的是fun(d) !!!注意这个d并不是fun()函数定义里面的d,两者的作用域不同,不理解

的话去看看相关资料。

最初d=1

执行结果是打印了6 然后让d=6

然后执行fun(a+fun(d))部分 因为a=3 所以a+fun(d)整体就是9了 于是执行fun(9)

结果自然就是打印了15 然后d=15 也就是fun(a+fun(d))的返回值

printf("%d\n",fun(a+fun(d))); 就是打印最后的结果 也就是fun(a+fun(d))的返回值,也就是d最后的

数值,也就是15.。。

问题3:

边看边分析吧

初值k=0 m=0

接下来是两个循环

外循环让i为基数 其实就是i=0和i=1各循环一次

内循环让j为基数 其实就是j=0 j=1 和j=2三次

以下开始才是真正执行:

k++ //k=1了

k=k-j //此时k=1 j=0 所以k=1

然后j=1了

k++ //k=2了

k=k-j //这时候k=2 j=1 所以k=1

然后j=2了

k++ //k=2

k=k-j //k=2 j=2 所以k=0

到此为止内循环结束一次

接下来把i=1了再次执行一遍内循环 因为k还是等于0 内循环又和i值无关

所以执行完了第二遍实际上k还是0

最后m=i+j //i=1 j=2 所以m=3

我算的答案和你的一样...

刚看了楼上CX3201的答案 很精辟...高手啊 问题3应该是如他所说 首先把i和j加了1才去判断是否继续循环。。。。所以跳出循环的时候i和j其实已经超过了限制 即i=2 j=3了

C语言习题:高级语言程序设计:下列叙述中错误的是________。

选C。

线性表采用顺序存储,插入和删除操作很可能引起一些元素需要“移动”。

所以C的说法是错的。

高级语言程序设计第五版课后答案的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言程序设计第5版课后答案、高级语言程序设计第五版课后答案的信息别忘了在本站进行查找喔。

扫码二维码