c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc

上传人:wj 文档编号:3879995 上传时间:2023-05-02 格式:DOC 页数:40 大小:95.50KB
下载 相关 举报
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第1页
第1页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第2页
第2页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第3页
第3页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第4页
第4页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第5页
第5页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第6页
第6页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第7页
第7页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第8页
第8页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第9页
第9页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第10页
第10页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第11页
第11页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第12页
第12页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第13页
第13页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第14页
第14页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第15页
第15页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第16页
第16页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第17页
第17页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第18页
第18页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第19页
第19页 / 共40页
c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc

《c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc》由会员分享,可在线阅读,更多相关《c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc(40页珍藏版)》请在冰点文库上搜索。

c语言《程序设计基础》课后习题参考答案与解析Word文件下载.doc

第2章程序设计基础知识

一、单选题

1、C2、A3、C4、A5、C6、C7、D8、C

9、D10、A11、D12、A13、C14、C15、BA

16、B17D

1.答案:

C。

这里考察的是用户标识符的定义。

用户标识符由字母、数字、下划线组成。

且必须以字母或下划线开头,区分大小写,且不能与C语言已有的32个关键字同名。

由于选择不合法的用户标识符, A项的A、P_0、Do都是合法的用户标识符;

B项的_A是合法的;

D项的_123、temp、INT也都是合法的。

只有C选项的标识符都是错误的用户标识符。

2.答案:

A。

这里考察的是整型常量的概念。

B项当中01a不正确,C

项当中的0668不是正确的八进制常量,D项当中的2e5是float型常量。

3.答案:

这里考察的是字符常量的定义。

字符常量是用单撇号括起来的单个字符或转义字符。

所以答案是C。

4.答案:

字符变量只能包含一个字符。

5.答案:

这里考察的是转义字符的正确表示。

C项的’074’是错误的转义字符,正确表示方法是’\074’。

6.答案:

字符变量只能包含一个字符,而C项的c=’yes’是错误的。

 7.答案:

D。

这里考察的是输入格式的控制。

输入格式要与scanf语句中字符串格式相对应。

8.答案:

这里考察的是输出格式和字符对应的ASCII码值。

’A’的ASCII码值是65,’Y’字符的ASCII码值是89。

9.答案:

这里考察输入格式和输出结果形式。

由于输入格式不正确,所以输出的是不确定值。

10.答案:

这里考察的是标识符的特点区分大小写,变量sum和变量sUM是两个不同的变量,sum并没有参加运算,所以它的值不边仍然是7。

11.答案:

%运算符要求两边的运算数必须是整型。

12.答案:

这里考察的是复合赋值运算。

a%=b+1;

等价与a=a%(b+1);

由于a=10,b=4;

所以运算后a的值是0。

13.答案:

这里考察的是在变量定义类型是进行赋值操作。

要求 a,b,c都赋值为5,且为int类型。

只有C正确。

14.答案:

这里考察的是类型的自动转换,只要有单精度类型或双精度类型参加运算,结果都是double(双精度)类型。

15.答案:

B,A。

这里考察的是逻辑表达式的运算过程。

表达式1&

表达式2,若表达式1的值是0的话,结果就是0,表达式2就不参加运算。

要注意:

赋值表达式的值是左边赋值变量的值。

所以答案为B,A。

16.答案:

这里考察的是逗号表达式运算过程是从第1个表达式开始运算,然后依次运行到最后一个表达式。

逗号表达式的值是最后表达式的值,且注意逗号运算符优先级低于赋值运算符。

所以表达式

(a=2,b=5,b++,a+b)运算过程a=2—>

b=5—>

b++—>

a+b=8;

结果是8。

17.答案:

这里考察的是条件表达式的结合性是从右向左。

所以

 k<

a?

k:

c<

b?

c:

a;

等价于k<

a?

k:

(c<

a);

先运算c<

a;

的值

是1,然后计算k<

1;

的值是1。

二、填空题

1、-32768-327672、字母,数字,下划线3、分号(;

4、30,155、186、0

7、-2648、79、0

10、111、y%2==112、x<

z||y<

z

13、014、(x>

2&

&

x<

3)||x<

-1015、1

1、编写程序,输入一个长方形的二边长,输出其面积。

inta,b,s;

/*a,b作为长方形的两个边长,s为面积。

printf(“请输入两个边长\n”);

scanf(“%d%d”,&

a,&

b);

s=a*b;

printf(“Thearea:

%d\n“,s);

}

2、设置半径为r=2.9,编程求圆周长和圆面积

#include“stdio.h”

#definePI3.14

main()

floatr,L,S;

L=2*PI*r;

 S=PI*r*r;

printf(“L=%f,S=%f\n“,L,S);

3、输入一个华氏温度,输出相应的摄氏温度。

二者的换算公式是:

c=5/9(F–32),其中F表示华氏温度,c表示摄氏温度。

main()

{

floatc,F;

printf(“请输入一个华氏温度:

\n”);

scanf(“%f”,&

F);

c=(float)5/9*(F-32);

printf(“F=%f,c=%f\n”,F,c);

 }

第3章程序设计初步

1、C2、C3、B4、B5、B

这里考察的是if-else语句和表达式中有增量和减量的执行过程。

if(m++>

5)printf(“%d\n”,m);

elseprintf(“%d\n”,m++);

先执行m>

5的值是0,然后执行m=m+1;

得到m=6;

由于m>

5的值是0所以执行else语句,应先输出m的值是6,然后m再自增一个单位变成7。

2.答案:

这里考察的是if语句的嵌套。

根据else子句总是与之前最近的if语句配对来进行选择满足条件的答案。

这里也考察的是if语句的嵌套。

同理:

if(x<

y)

if(y<

0)z=0;

elsez+=1;

等价与if(x<

y){if(y<

0)z=0;

 elsez+=1;

}因此答案是B。

根据else子句总是与之前最近的if语句配对。

由于B项:

if(x=y)&

(x!

=0)x+=y;

if后的条件表达式没有用圆括号括起来。

正确的是:

if((x=y)&

=0))x+=y;

二、根据要求完成程序填空

1、z>

yz>

xy>

x2、ch>

=‘A’&

ch<

=’Z’ch=ch-32

3、x<

0x/10y!

=2

 1、编写一个程序,要求用户从终端键入两个整数数值。

检测这两个数,判定第一个数是否能被第二数整除,并在终端上显示相应的信息。

inta,b;

/*a为第一个数,b为第二个数*/

printf(“Pleaseinputtwonumbers:

\n”);

scanf(“%d%d”,&

a,&

b);

if(a%b==0)

printf(“%d能被%d整除。

\n”,a,b);

else

printf(“%d不能被%d整除。

2、有3个整数a,b,c,由键盘输入,输出其中最大的数。

main()

inta,b,c,max;

printf(“Pleaseinputthreenumbers:

scanf(“%d%d%d”,&

b,&

c);

if(a>

b)max=a;

elsemax=b;

if(max<

c)max=c;

 printf(“Themaxis%d\n”,max);

3、给出一百分制成绩,要求输出成绩等级A、B、C、D、E。

其中90分以上为A,80~89分为B,70~79为C,60~69为D,60分以下为E。

main()

floatscore;

intgrade;

printf(“Pleaseinputascore:

\n”);

scanf(“%f“,&

score);

grade=(int)score/10;

switch(grade)

{case10:

case9:

printf(“gradeisA\n”);

break;

case8:

printf(“gradeisB\n”);

 case7:

printf(“gradeisC\n”);

case6:

printf(“gradeisD\n”);

default:

printf(“gradeisE\n”);

4、新世纪百货进行打折促销活动,消费金额(P)越高,折扣(d)越大,标准如下:

消费金额折扣

P<

1000%

100≤P<

2005%

200≤P<

50010%

500≤P<

100015%

P≥100020%

编程实现从键盘输入消费金额,输出折扣率和实付金额(f)。

要求分别用 if语句和switch语句实现。

(1)用if语句编程实现如下

floatP,d,f;

printf(“输入消费金额:

scanf(“%f”,&

P);

if(P<

100)d=0;

if(P>=100&

P<

200)d=0.05;

if(P>=200&

500)d=0.10;

if(P>=500&

1000)d=0.15;

if(P>=1000)d=0.20;

f=P*(1-d);

 printf(“折扣是%f,则实付金额为%f\n”,d,f);

}

(2)用switch语句编程实现如下

#include“stdio.h”

main()

{

floatP,d,f;

intc;

printf(“输入消费金额:

scanf(“%f”,&

c=(int)P/100;

switch(c)

 {case0:

d=0;

case1:

d=0.05;

break;

case2:

case3:

case4:

d=0.10;

case5:

case6:

case7:

case8:

case9:

d=0.15;

 default:

d=0.20;

}

f=P*(1-d);

printf(“折扣是%f,则实付金额为%f\n”,d,f);

第4章循环结构程序设计

一、单项选择

1、A2、D3、C4、D5、B

6、D7、B8、B

二、按要求完成程序填空

1、c!

=’\n’c>=’0’&

c<

=’9’

2、i%3==2&

i%5==3&

i%7==2j%5==0

3、i<

10j%3!

=0

 三、编程题

1、编程求n的阶乘(n由键盘输入)。

{

intn,i;

longfac;

fac=1;

printf(“Inputanumber:

”);

 scanf(“%d”,&

n);

i=1;

while(i<

=n)

{fac=fac*i;

i++;

printf(“%d!

is%ld\n”,n,fac);

2、计算1!

+2!

+3!

+…+10!

的值。

方法一

inti=1,j;

doublefac,sum=0;

=10)

{j=1;

 fac=1;

while(j<

=i)

{fac=fac*j;

j++;

sum=sum+fac;

i++;

printf(“1!

=%.0f\n”,sum);

方法二:

#include“stdio.h”

main()

 {

inti,j;

doublefac,sum=0;

for(i=1;

i<

=10;

i++)

{

for(j=1,fac=1;

j<

=i;

j++)

fac=fac*j;

}

方法三:

inti;

doublefac,sum;

 sum=0;

fac=1;

for(i=1;

i<

10;

i++)

{

fac=fac*i;

3、求Sn=a+aa+aaa+…+aaa…a(n个a)的值,其中a是一个数字。

例如:

3+33+333+3333(此时n=4),n由键盘输入。

#include“stdio.h”

inta,n,i;

longSn,t;

Sn=0;

printf(“Pleaseinputa:

scanf(“%d”,&

printf(“Pleaseinputn:

t=a;

=n;

i++)

{Sn=Sn+t;

 t=t*10+a;

printf(“Sn=%ld\n”,Sn);

4、打印出所有的“水花仙数”,所谓“水花仙数”是指一个3位数,其各位数字立方和等于该数本身。

例如,153是一个水花仙数。

intt,a,b,c,n;

/*变量n为统计水花仙数的个数*/

n=0;

for(t=100;

t<

1000;

t++)

{a=t/100;

b=(t–a*100)/10;

c=t%10;

if(a*a*a+b*b*b+c*c*c==t)

 {n++;

if(n%6==0)

printf(“\n”);

printf(“%5d”,t);

6、每个苹果0.8元,第一天买2个苹果,第二天开始,每天买前一个的2倍,直至购买的苹果个数达到不超过100的最大值。

编写程序求每天平均花多少钱?

程序如下

#include“stdio.h”

main()

 intday,num,sum;

floatmoney,every;

sum=0;

num=2;

for(day=1;

num<

100;

{sum=sum+num;

day++;

num=num*2;

money=sum*0.8;

 every=money/day;

printf(“every=%f\n”,every);

7、变成完成用一元人民币换成一分、二分、五分的所有兑换方案,即输出所有满足搭配要求的1分币个数,2分币个数,5分币个数。

程序如下:

{

intone,two,five;

for(one=0;

one<

=100;

one++)

for(two=0;

two<

=50;

two++)

for(five=0;

five<

=20;

five++)

 if(one+two*2+five*5==100)

printf(“one=%d,two=%d,five=%d\n”,one,two,five);

第5章模块化程序设计---函数

1、B2、B3、A4、A5、D

6、D7、B8、B9、B10、A

二、编程题

1、已知三角形的三边长,编一实现求三角形面积的功能函数。

说明:

用海伦公式来求面积,但要注意输入的三边长要符合构成三角形的条件。

SΔ=(其中:

s=(a+b+c)/2)

 #include“stdio.h”

#include“math.h”

floatArea(inta,intb,intc)

floats,area;

s=(float)(a+b+c)/2;

if((a+b>

c)&

(a-b)<

c)

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

else

area=0;

returnarea;

 {

inta,b,c;

floatarea;

floatArea(int,int,int);

printf(“请输入三角形的三边长\n”);

scanf(“%d%d%d”,&

a,&

b,&

c);

area=Area(a,b,c);

if(area!

=0)

printf(“area=%f\n”,area);

eles

printf(“error!

\n”);

2、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。

#include“stdio.h”

intprime(intn)

intt,a=1;

for(t=2;

t<

=n/2;

 if(n%t==0)

a=0;

returna;

intn;

printf(“inputanumber:

 scanf(“%d”,&

n);

if(prime(n)==1)

printf(“%disprime\n”,n);

eles

printf(“%disnotprime\n”,n);

3、编写函数

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2