习题答案.docx

上传人:b****0 文档编号:9445534 上传时间:2023-05-19 格式:DOCX 页数:51 大小:35.22KB
下载 相关 举报
习题答案.docx_第1页
第1页 / 共51页
习题答案.docx_第2页
第2页 / 共51页
习题答案.docx_第3页
第3页 / 共51页
习题答案.docx_第4页
第4页 / 共51页
习题答案.docx_第5页
第5页 / 共51页
习题答案.docx_第6页
第6页 / 共51页
习题答案.docx_第7页
第7页 / 共51页
习题答案.docx_第8页
第8页 / 共51页
习题答案.docx_第9页
第9页 / 共51页
习题答案.docx_第10页
第10页 / 共51页
习题答案.docx_第11页
第11页 / 共51页
习题答案.docx_第12页
第12页 / 共51页
习题答案.docx_第13页
第13页 / 共51页
习题答案.docx_第14页
第14页 / 共51页
习题答案.docx_第15页
第15页 / 共51页
习题答案.docx_第16页
第16页 / 共51页
习题答案.docx_第17页
第17页 / 共51页
习题答案.docx_第18页
第18页 / 共51页
习题答案.docx_第19页
第19页 / 共51页
习题答案.docx_第20页
第20页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

习题答案.docx

《习题答案.docx》由会员分享,可在线阅读,更多相关《习题答案.docx(51页珍藏版)》请在冰点文库上搜索。

习题答案.docx

习题答案

第1章习题答案

一、选择题

1.B  2.D  3.B  4.C  5.A  6.C  7.D  8.C  9.A  10.C  11.B  12.B  13.C  14.B  15.D  16.B  17.D  18.B  19.(略)  20.(略)

二﹑填空题

1.变量

2.区分、不同

3.退格、换行、横向跳格、双引号

4.双精度、长整型、字符、字符串、八进制整型、转义字符

注:

书中题目有错,08应改为07,这样才能表示八进制。

5.main

6.顺序、选择、循环

三、判断题

1.错  2.对  3.对  4.错  5.错  6.错  

7.错  8.对  9.对  10.对  11.对  12.对

四、问答题

1.写出下面表达式的值

(1)36  

(2)5,4  (3)9,9,27(注:

所使用的系统不同,结果也不同,此结果为TC2.0下的结果)

2.下列表达式是否正确?

若正确,表达式的值是什么?

21/221/2.021.0/221%221.0%221%2.018%1515%183%15

1010.50000010.5000001错误  错误  3   153

3.

(1)C语言程序是由文件组成

(2)每个C程序文件由函数组成

(3)C程序从main函数开始执行

(4)每个函数由函数说明部分和函数体组成。

4.

在TC的主菜单中选择Run菜单,选择下拉菜单中的Run命令(或直接按“Ctrl-F9”),就开始进行源程序的编译、连接并运行。

如没有严重的语法错误,系统自动生成对应的目标文件和可执行文件,并以扩展名.OBJ和.EXE存盘。

5.

分别为“.C”、“.OBJ”和“.EXE”。

6.

(1)程序由三种基本结构组合而成

结构化程序设计时,不论程序大小、简单还是复杂,规定程序主要由三种基本结构组成,它们分别是顺序结构、选择结构和循环结构。

可以证明,任何一个复杂的问题的程序设计都可以由这三种基本结构组成。

而且要求每一个模块有以下特点:

只有一个入们;

只有一个出口;

程序结构中没有死循环。

(2)模块化设计

较复杂和大型程序应按功能分割成一些功能模块,并将这些模块按层次关系进行组织

(3)程序设计采用自顶向下、逐步细化的原则

7.

8.

有“解释方式”和“编译方式”两种

五、编程题

编写程序,在屏幕上输出如下信息:

===================

=Iamastudent.=

===================

main()

{

printf("===================\n");

printf("=Iamastudent.=\n");

printf("===================\n");

}

第2章习题答案

一、选择题

1.C  2.C  3.D  4.A  5.D  6.C  7.A  8.C  9.C  10.B  11.B  12.A  13.C  14.D  15.D  

二﹑填空题

1.分号   花括号或{}

2.换行

3.不做任何操作

4.%d   %c   %s

5.1

6.70   38    8

7.%09.2f   %0.2或%4.2f

8.是

9。

-1   3   1

10.getchar()函数将用户放入的字符回显屏幕上,放入结束后,按回车键才能响应    、getch()函数将用户放入的字符不回显屏幕上,放入结束后,不需按回车键立即响应

三、判断题

1.错  2.对  3.对  4.对  5.对  6.对  

7.错  8.对  9.错  10.错

四、问答题

3.写出下列程序的运行结果

(1)*2000――*\n

(2)X=%d,Y=%d

(3)X=100,Y=-100

4.程序改错

(1)把\n去掉

(2)把3%d改为%f(3)把x,y,z改为%x,%y,%z(4)s=x*y;v=s*c(5)(s=%f””v=%d\n”,s,v)

5.a=3,b=5

c=-3,d=12.102

input e=Af=8

五、编程题

1.编写程序,把560分钟换算成小时和秒。

#include

main()

{ints;

floath;

h=560/60.0;

s=560*60;

printf("560分钟换算成小时是:

%f,换算成秒是:

%d.\n",h,s);

}

2.键盘输入一个整数的值,求它的平方、平方根,输出结果时要求有文字提示,并取小数点后二位小数(求平方根函数为sqrt(x),包含在中)。

#include

#include

main()

{intx,y;

floatz;

printf("输入一个整数:

");

scanf("%d",&x);

y=x*x;

z=sqrt(x);

printf("%d的平方是%d,平方根是%.2f.\n",x,y,z);

}

3.已知一个圆球的半径,求该圆球的体积。

#include

#definePI3.14

main()

{floatr,v;

printf("输入圆球的半径:

");

scanf("%f",&r);

v=PI*r*r*r*4/3;

printf("圆球的体积:

%f.\n",v);

}

4.键盘输入若干个学生3门课程的成绩,计算每个学生的总分和平均成绩。

要求利用goto编写无穷循环程序。

#include

main()

{floatx1,x2,x3,s,avg;

printf("输入学生3门课程的成绩:

");

scanf("%f,%f,%f",&r1,&x2,&x3);

s=x1+x2+x3;

avg=s/3;

printf("总分:

%f,平均成绩:

%f.\n",s,avg);

}

5.编程进行摄氏温度和华氏温度相互转换,摄氏温度和华氏温度之间的转换公式如下:

摄氏温度=5/9(华氏温度-32),即C=(F-32)*5/9。

#include

main()

{floatf,c;

printf("输入华氏温度:

");

scanf("%f",&f);

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

printf("摄氏温度为:

%f.\n",c);

}

6.从键盘输入直角三角形的斜边c与一条直角边a的长,计算并输出另一条直角边b的长。

#include

#include

main()

{floata,b,c;

printf("输入直角三角形的斜边c与一条直角边a的长:

");

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

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

printf("另一条直角边b的长:

%f.\n",b);

}

7.编写程序,输出下面图形。

     *

    ***

    *****

   *******

    *****

    ***

     *

#include

main()

{

printf("*\n");

printf("***\n");

printf("*****\n");

printf("*******\n");

printf("*****\n");

printf("***\n");

printf("*\n");

}

第3章习题答案

一、选择题

1.A  2.B  3.B  4.B  5.C  6.D  7.B  8.B  9.C  10.D  11.A  12.C  13.D  14.B  15.A  16.D   17B  18。

C    19。

C   20。

D   21。

C    22。

D  

注:

教材中21题有错,if语句后丢失分号。

 

二﹑填空题

1.1    0

2.X>2&&X<10     X<10||X>20

3.0    0    1    1

4.退出SWITCH语句   当所有CASE分条件都不满足,则执行其后语句

5.前面最近的

三、判断题

1.错  2.错  3.错  4.对  5.错  6.对  

7.对  8.对  9.对  10.对

四、问答题

1、写出下面逻辑表达式的值

(1)真1

(2)真1(3)假0(4)(A)真1(B)真1(C)假0(D)真1

4、阅读程序,写出程序运行结果

ABother

五、编程题

1.对一批货物征收税金。

价格在1万元以上的货物征税5%,在5000元以上,1万元以下的货物征税3%,在1000元以上,5000千元以下的货物征税2%,1000元以下的货物征税1%。

编一个程序,输入货物价格,输出相应的税金。

#include

intmain(void)

{intn;

floatx,y,p;

printf("输入货物价格:

");

scanf("%f",&x);

if(x>=10000)p=0.05;

elseif(x>=5000)p=0.03;

elseif(x>=1000)p=0.02;

elsep=0.01;

y=x*p;

printf("应缴税金:

%f:

",y);

}

2.输入实型变量x和y,若x>y则输出x-y的值,否则输出y-x的值。

main()

{floatx,y,z;

printf("输入两个数x,y:

");

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

if(x>y)z=x-y;

elsez=y-x;

printf("结果:

%f\n",z);

}

3.用if和switch语句分别编写程序,实现从键盘输入数字1、2、3或4中某个数时,输出excellent、good、pass或fail中的某一个,输入其他字符时输出error。

#include

intmain(void)

{intx;

printf("输入1~4整数:

");

scanf("%d",&x);

if(x==1)printf("excellent");

elseif(x==2)printf("good");

elseif(x==3)printf("pass");

elseif(x==4)printf("fail");

elseprintf("error");

}

#include

intmain(void)

{intx;

printf("输入1~4整数:

");

scanf("%d",&x);

switch(x)

{

csae1:

printf("excellent");break;

csae2:

printf("good");break;

csae3:

printf("pass");break;

csae4:

printf("fail");break;

default:

printf("error");

}

}

4.键盘输入一个字符,如果是字母,则将其ASCII值加5,使其在字母字符“a~z”之间变换并输出。

例如,字母“a”变成“f",字母“z”变成字母“e”;如果是数字,则将其ASCII值减2,使其在数值字符“0~9”之间变换并输出。

例如,字符“9”变成字符“7”,字符“1”变成字符“9”。

#include

intmain(void)

{charc;

printf("输入一字符:

");

scanf("%c",&c);

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

{c=c+5;

if(c>'z')c=c-26;

}

if(c>='a'&&c<='z')

{c=c+5;

if(c>'z')c=c-26;

}

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

{c=c-2;

if(c<'0')c=c+10

}

printf("结果:

%c\n",c);

}

5.己知银行整存整取存款不同期限的年息利率分别为:

1.98%   期限一年

2.15%   期限二年

年息利率2.25%   期限三年

2.45%   期限五年

2.65%   期限八年

编写程序,输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。

#include

#include

intmain(void)

{intn;

floatx,y,p;

printf("输入存钱的本金和期限:

");

scanf("%f,%d",&x,&n);

switch(n)

{case1:

p=0.0198;break;

case2:

p=0.0215;break;

case3:

p=0.0225;break;

case5:

p=0.0245;break;

case8:

p=0.0265;break;

}

y=x*power((1+p),n);

printf("到期利息与本金的和:

%f:

",y);

}

第4章习题答案

一、选择题

1.A  2.D  3.B  4.C  5.D  6.C  7.C  8.A  9.C  10.A  11.B  12.D  13.A  14.D  15.D  16.A   

二﹑填空题

1.当型   直到型    WHILE  FOR   DO_WHILE

2.直到    先循环后判断

3.当  先判断后循环

4.循环赋初值    循环控制条件   循环变量埴值

5.

6.逗号表达式

7.不是

8.一个循环中又包含一个完整的循环

9.每一层循环次数的乘积

10.退出当前循环(跳到当前循环结构的后续语句)    结束本次循环(跳过本次循环结束前的语句)

三、判断题

1.错  2.对  3.对  4.错  5.对  6.对  

7.错  8.对  9.对  10.错  11.错

四、写出下列程序运行结果

1.2 5 8 11 14

2.1 3 7  15  31 63

3.*

**

***

五、编程题

1.编程计算1至50中是7的倍数的数值之和。

main()

{ints=0,i;

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

if(i%7==0)

s=s+i;

printf("1至50中是7的倍数的数值之和是:

%d\n",s);

}

2.从键盘输入的字符中统计数字字符的个数,用换行符结束循环。

#include

intmain(void)

{charc;

intn=0;

printf("输入正文文本,按回车结束输入:

\n");

while((c=getchar())!

=10)

if(c>=48&&c<=57)n++;

printf("输入的文本中数字字符的个数:

%d\n",n);

}

3.输入一批正整数,输出其中的最大值和最小值,输入数字“0”结束循环。

#include

intmain(void)

{intx,max,min,i=0;

printf("输入正整数,输入“0”束输入:

\n");

while

(1)

{scanf("%d",&x);

if(x==0)break;

if(i==0){max=x;min=x;}

if(x>max)max=x;

if(x

i++;

}

printf("其中的最大值=%d;最小值=%d\n",max,min);

}

4.输入一个整数,将其数值按小于10,10-99,100-999,1000以上分类并显示。

例如:

输入358时,显示358is100to999。

#include

intmain(void)

{intx,;

printf("输入一个正整数:

");

scanf("%d",&x);

if(x<10)printf("%dis<10\n",x);

elseif(x<100)printf("%dis10to99\n",x);

elseif(x<1000)printf("%dis100to999\n",x);

elseprintf("%dis>=1000\n",x);

}

5.编程实现屏幕输出“九九乘法表”,要求以三角形形式输出。

(提示:

外循环变量i从1开始到9,内循环变量j从1开始到i)。

#include

intmain(void)

{inti,j;

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

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

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

printf("\n");

}

}

6.求3到M之间的全部素数,M为任意整数。

main()

{intm,i;

scanf("%d",&m);

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

for(j=2;i%j&&j

if(j==i)

printf("%d",i);

}

7.用公式e=1+1/1!

+1/2!

+1/3!

+……+1/n!

求e的近似值,精度为1/n!

<10-6。

main()

{

inti=1;

floatp,t,e;

t=1,e=0;p=1;

while(t>=1e-6)

{e=e+t;

p=p*i;

i++;

t=1/p;

}

printf("e=%10.6f\n",e);

}

8.从键盘输入一位整数,当输入数字0叶程序结束;当输入1~7时,显示下面对应的英文星期名称缩写。

1:

MON 2:

TUE 3:

WED 4:

THU 5:

FRI 6:

SAT 7:

SUN

#include

intmain(void)

{intx,max,min,i=0;

printf("输入1~7整数,输入“0”束:

\n");

while

(1)

{scanf("%d",&x);

if(x==0)break;

switch(x)

{

csae1:

printf("MON");break;

csae2:

printf("THU");break;

csae3:

printf("WED");break;

csae4:

printf("THU");break;

csae5:

printf("FRI");break;

csae6:

printf("SAT");break;

csae7:

printf("SUN");break;

}

}

}

第5章习题答案

一、选择题

1.C  2.B  3.D  4.C  5C  6.D  7.D  8.C  9.D  10.C  11.C  12.C  13.C  14.D  15.B  16.C   17.A  18.A   19.B   20.C

二﹑填空题

1.相同数据类型数据    行顺序   行顺序

2.数据名

3.行   列

4.随机值    0

5.‘\0’

6.9

7.字符 和字符串

8.要STRING.H

9.首地址

三、判断题

1.错  2.错  3.对  4.对  5.对  6.对  

7.错  8.对  9.对  10.错

四、问答题

1.什么是数组,为什么要引入数组?

数组是一种自定义数据类型,它是相同数据类型的数据有序集合,数组中的分量称为数组元素,对数组元素的操作处理通过数组下标进行。

正是因为数组元素具有序号这个特性,就可以解决许多基本数据类型无法解决的一些实际问题。

2.数组的初始化有哪几种方式?

1)定义数组时如果没有进行初始化,则数组元素的值为随机值。

但如果在定义数组时规定其存储类别为static或extern,则编译系统自动将没有初始化的数组元素赋默认初值为0。

2)在定义数组时对所有数组元素初始化。

3)可以只对数组中的部分元素初始化。

3.a[3],a[2+3],a[9-9],a[3/1.0],a[3.4]

4.179175

5.i=10+k;i>=j;i--

a[i+1]=a[i]

五、编程题

1.用冒泡排序法对输入的20个数进行降序排序并存入数组中。

然后输入一个数,查找该数是否在数组中存在,若存在,打印出该数在数组中对应的下标值。

#defineN 20

main()

{inta[N],i,j,t,x;

printf("\n请输入%d个待排序的数据,每个数据都以回车结束:

\n",N);

for(i=0;i

scanf("%d",&a[i]);

for(i=0;i

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

if(a[j-1]

printf("\n降序排序后数据:

\n");

for(i=0;i

printf("\n输入要查找的数:

");

scanf("%d",&x);

for(i=0;i

if(a[i]==x)

{printf("\n要查找的数在数组中的下标是:

%d\n",i);

break;

}

if(i>=N)

printf("\n要查找的数不在数组中\n");

}

2.求一个3×3矩阵对角线元素之和。

#include

main()

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

inti,s=0;

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

s=s+num[i][i];

printf("对角线和:

%d\n",s);

}

3.编写程序,打印杨辉三角形(要求打印10行)。

1

11

121

1331

14641

15101051

……

#defineN11

main()

{inta[N][N]={0,0},i,j;

for(i=1;i

{a[i][i]=1;

a[i][1]=1;

}

for(i=3;i

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

a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=1;i

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

printf("%d\t",a[i][j]);

printf("\n");

}

}

4.将一个数组中的元素逆序存放,如原来数组的元素是23,59,26,48,14。

要求改为:

14,48,26,59,23。

#defin

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

当前位置:首页 > 求职职场 > 简历

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

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