C++程序设计-答案 中国铁道出版社

合集下载

操作系统习题答案(中国铁道出版社_刘振鹏_李亚平_王煜_张明) (2)

操作系统习题答案(中国铁道出版社_刘振鹏_李亚平_王煜_张明) (2)
{
if(p->size>=n)
{
if(p->size-n>=size)
p->size=p->size-n;
a=p;
p=p+n;
else
a=p;
remove(Free,p);
}
else
p=p->next
}
return a
}
⒎什么叫紧凑?为什么要进行紧凑?
答:为了解决碎片问题,可采用的一种方法是,将内存中的所有作业进行移动,使它们相邻接。这样,原来分散的多个小分区便拼接成一个大分区,从而就可以把作业装入运行,这种通过移动,把多个分散的小分区拼接成大分区的方法被称为紧凑。
⑴时间片轮转法;
⑵优先级调度;
⑶先来先服务(按照次序l0、6、2、4、8运行);
⑷最短作业优先。
对⑴,假设系统具有多道处理能力,每个作业均获得公平的CPU时间,对⑵到⑷假设任—时刻只有一个作业运行,直到结束。所有的作业都是CPU密集型作业。
答:时间片轮转法的平均周转时间是21(当时间片长短=6分钟时)
⒍系统采用不能移动已在主存储器中作业的可变分区方式管理主存储器,现有供用户使用的主存空间100K,系统配有4台磁带机,有一批作业见表2.6。
表2.6
作业序号进输入井时间要求计算时间需要主存量申请磁带机数
1 l0:00 25分钟15K 2台
2 10:20 30分钟60K 1台
3 10:30 10分钟50K 3台
优先级调度的平均周转时间是20
先来先服务的平均周转时间是19
最短作业优先的平均周转时间是14
⒎并发执行的进程在系统中通常表现为几种关系?各是在什么情况下发生的?
答:在这些进程之间可能存在以下两种关系:

c__面向对象程序设计_课后答案_中国铁道出版社_陈维兴_林小茶 2

c__面向对象程序设计_课后答案_中国铁道出版社_陈维兴_林小茶 2

第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。

这种范型的主要特征是:程序=对象+消息。

面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。

第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。

面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。

这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。

[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。

对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。

类和对象之间的关系是抽象和具体的关系。

类是多个对象进行综合抽象的结果,一个对象是类的一个实例。

在面向对象程序设计中,总是先声明类,再由类生成对象。

类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。

[1_3]现实世界中的对象有哪些特征?请举例说明。

对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。

(2)需要用属性来描述它的某些特性。

(3)有一组操作,每一个操作决定了对象的一种行为。

(4)对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。

例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:1966.10.1 工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。

《C语言程序设计教程(第二版)》习题答案

《C语言程序设计教程(第二版)》习题答案

1 【C语言】《C语言程序设计教程(第二版)》习题答案说明1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理工大学出版社出版的,绿皮。

2 第1章程序设计基础知识一、单项选择题(第23页)1-4.CBBC 5-8.DACA二、填空题(第24页)1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分三、应用题(第24页)2.源程序:main(){int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */printf("cock hen chick\n");for(i=1;i<=20;i++)for(j=1;j<=33;j++)for(k=1;k<=33;k++)if (i+j+k*3==100&&i*5+j*3+k==100)printf(" %d %d %d\n",i,j,k*3);}执行结果:cock hen chick4 18 788 11 8112 4 843.现计算斐波那契数列的前20项。

递推法源程序:main(){long a,b;int i;a=b=1;for(i=1;i<=10;i++) /*要计算前30项,把10改为15。

*/{printf("%8ld%8ld",a,b);a=a+b;b=b+a;}}递归法源程序:main(){int i;for(i=0;i<=19;i++)printf("%8d",fib(i));}fib(int i){return(i<=1?1:fib(i-1)+fib(i-2));}执行结果:1 123 5 8 13 21 34 5589 144 233 377 610 987 1597 2584 4181 6765 4.源程序:#include "math.h";main(){double x,x0,deltax;x=1.5;do {x0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;}while(deltax>1e-12);printf("%.10f\n",x);}执行结果:1.32471795725.源程序略。

C语言程序设计答案-(陈明晰)中国铁道出版社

C语言程序设计答案-(陈明晰)中国铁道出版社

习题一一、选择题1.C程序的基本单位是(A)。

A.函数B.文件C.语句D.字符2.C程序中的变量(B)。

A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。

A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。

A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。

2.结构化程序由顺序、选择、循环三种基本结构构成。

3.一个C程序只有一个名为main的主函数。

4.C程序中的每个语句以分号结束。

5.C程序中,函数由函数首部和函数体组成。

6.每个基本结构有一个入口和一个出口,没有死循环和死语句。

7.算法是计算机解决问题所依据的步骤。

习题二一、选择题1.下列数据中属于字符串常量的是( B)。

A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。

A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。

A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。

A.568701400 B.0L C.0.03546287D.2.654e115.char型常量在内存中存放的是( A)。

A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。

A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。

A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。

A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。

A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/210.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。

《C语言程序设计实验指导与习题集》练习题的参考答案(中国铁道出版社)

《C语言程序设计实验指导与习题集》练习题的参考答案(中国铁道出版社)










答案
B
A
C
C
D
D
B
A
A
C
编号




答案
A
C
D
B
(一)填空题
编号
答案
编号
答案





b=i+1
i<10j%3!=0
52
right
17





X
S=25489213**六、数组(一)选择题
编号










答案
C
D
C
D
D
A
C
A
A
B
编号




答案
D
B
A
D
(一)填空题
编号
答案
C
D
D
A
7
8
9
10
11
12
C
A
C
D
C
B
13
14
15
16
17
18
A
C
D
C
A
B
2.填空
(1)22(2)struct st(3)2,3(4)zhao
(5)13(6)380039(7)struct list q
9
十一文件
1.选择
1
2
3
4
5
6

C语言程序与设计课后答案(中国铁道出版社)

C语言程序与设计课后答案(中国铁道出版社)

函数一、选择题1-5 ADCBD 6-10 DADAC11-15 DBDCC 16-17 DC二、填空题(1)3,2,2,3 (2)4,3,5 (3)t*10 (4)double max 从键盘上输入两个数据,输出最大值(5)m=fun(a,4)+fun(b,4)-fun(a+b,3) (6)a=1.0;b=1.0;s=1.0;(7)x x*x+1 (8)9 (10)-f指针一、选择题1-5 CADBC 6-10 CAACD 11-15 CACBD 16-20 ACCAA二、填空题(1)3 5 (2)5 3 (3)k *k (4)8 4 (5)0 7数组与指针一、选择题1-5 CBDCA 6-10 DCDAB 11-15 CADAD 16-20 BCBDD 21-25 ABBAC 26-30 DBDDB31-33 CCA二、填空题(1)1111 (2)24 (3)6 (4)19 (5)6 (6)5756 (7)2 4(8)1 2 3 (9)92 (10)580 5 60 0 9数组与函数一、选择题1-5 BADCA 6-10 BABCA 11-15 BACDA 16-17 BC二、填空题(1)s=18 (2)11 (3)br[i] (4)j<i a[i][j]=a[j][i] (5)x[i][i] x[i-1][j-1]+x[i-1][j](6)a[k][i] *sum x,&s (7)row a[row][colum] (8)j+1 i%2==1 (9)a[row][col]>max max<min字符串一、选择题1-5 CDAAC 6-10 ACBCB 11-15 DABDD 16-20 BCBDC 21-25 BDCBB 26-30 DAAAC31-35 CDDCA二、填空题(1)abcfg(2)efgh(3)*t(4)bcdefgha(5)gae(6)*2*4*6*8*(7)*t++(8)cdeab (9)s-1 *s++ (10)p+n(11)str+strlen(str)-1 t==0 huiwen(str) (12)s[i]>='0'&&s[i]<='9' (13)c=getchar() 1对C语言的深入讨论一、选择题1-5 CDCDB 6-10 DACDA 11-15 ADBDC 16-20 CAADA 21-25 CDDCB 26-28 DC 二、填空题(1)findbig (2)c(3)!knahT (4)3*sizeof(double) 1.50,2.50,3.75 (5)11110111 (6)/i结构体与共用体一、选择题1-5 DBDCB 6-10 CDBAD 11 (1)C (2)A (3)B 12-16 ACBDD二、填空题(1)struct node * (2)sizeof(struct node) (3)p!=NULL p->next (4)->next->data (5) 2002shangxian (6)struct DATE d={2006,10,1};文件一、选择题1-5 CDDBA 6-10 BCDCA 11-15 DBADA 16-17 DB二、填空题(1)"d1.dat","rb" (2)"a" (3)!feof(fp) (4)"wb""rb" (5)Hell (6)fopen ftell。

c程序设计第二版完整答案

c程序设计第二版完整答案
而const定义则是象定义一个变量一样定义一个常量标识符系统要按照类型要求为该标识符分配内存单元同时在将常量放入单元时进行类型检查如果类型不匹配类型相容的会进行系统的类型转换不相容的则要提示错误
第一章C++基础知识习题
1.1判断下列标识符的合法性。
sin book5arry _name Example2.1 main
int array[5]={1,2,3,4,5}; char s[]="Hello";
答:"China"文字常量
constint n=10;常变量
int m=5;变量
'a'文字常量
char ch='a'变量
int array[5]={1,2,3,4,5};变量
char s[]="Hello";变量
1.4将下列算式或叙述用C++表达式描述。
}
result=1;
for(i=2;i<=n;i++){
jch*=i; //jch是i的阶乘,注意n!=n*(n-1)!这样可少一层循环
result+=jch;
}
cout<<result<<endl;
return 0;
}
2.8
#include <iostream>
using namespace std;
}
m-=3;
}
解答:注意continue语句的使用
初值
m=0
k=1
第1次循环后
m=5
k=2
第2次循环后
m=2
k=3
第3次循环后

C语言程序设计(第二版)答案

C语言程序设计(第二版)答案

参考答案习题二(P33)一.单选题1.C2.B3.D4.C5.A6.D7.D8.B9.B 10.D 11.D 12.C 13.C . 15. A 14题最后一句应为printf("%f\n",d*y);结果为2.2二.填空题1. 182. int float double3. 10 114. 八十六十5. %三.阅读程序题1.10,10,9,102.j=1,i=2k=3,i=3j=3,i=2k=1,i=1习题三(P52)一.单选题1.D2.C3.D4.B5.A6.B7.C8.A9.C 10.B 11. -1,37777777777,4294967295 二.填空题5. L6. -1三.阅读程序题1. 6 6 6.00 6.002. x=127,x= 127,x=177,x=7fY=123.4567 , y= 123.46 , y=123.456703. 2,14. 12345. 4,36. -6,-6四.程序设计题1.#include "stdio.h"#include "math.h"main(){float a,b,c,d,x1,x2;a=2;b=-3;c=-5;d=b*b-4*a*c;x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("x1=%.2f,x2=%.2f\n",x1,x2);}2.#include <stdio.h>main(){ float a,v,s;scanf("%f",&a);v=a*a*a;s=6*a*a;printf("v=%.2f,s=%.2f\n",v,s);}3.#include <stdio.h>main(){ int a,b,c,t;scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);t=c;c=b;b=a;a=t;printf("a=%d,b=%d,c=%d\n",a,b,c);}4.#include <stdio.h>main(){ char s1,s2;s1=getchar();s2=s1-32;printf("%c\n",s2);}习题四(P70)一.单选题1.C2.D3.D4.B5.A6.D7.D8.B9.C 10.A 11.B 12.D 13.passwarnerror .14.C 15. C 16.B 17. B 18. C二.填空题1. 非0 02. k==03. n%7==0 && n%8==0 else三.阅读程序题1. a=1,b=02. c=1四.程序设计题1.#include <stdio.h>main(){ int a,b;char c;printf("INPUT A+(-*/)B\n");scanf("%d%c%d",&a,&c,&b);switch(c){case'+':printf("%d+%d=%d\n",a,b,a+b);break;case'-':printf("%d-%d=%d\n",a,b,a-b);break;case'*':printf("%d*%d=%d\n",a,b,a*b);break;case'/':printf("%d/%d=%d\n",a,b,a/b);break;default:printf("INPUT ERROR!");}}2.#include <stdio.h>main(){ float x,y;scanf("%f",&x);if(x==0||x==2)y=0;else if(x>0) y=(x+1)/(x-2);else y=(x-1)/(x-2);printf("y=%f\n",y);}3.#include <stdio.h>main(){ int g;printf("请输入学生成绩:");scanf("%d",&g);printf("g=%d:",g);switch(g/10){case 10:printf("A\n");break;case 9:printf("B\n");break;case 8:printf("C\n");break;case 7:printf("D\n");break;case 6:printf("E\n");break;default:printf("F\n");}}4.#include <stdio.h>main(){ int x,n=0;scanf("%d",&x);if(x<=0||x>=10000)printf("Data Error!\n");else{if(x<10)n=1;else if(x<100)n=2;else if(x<1000)n=3;else n=4;}printf("n=%d\n",n);}习题五(P87)一.单选题1.B2.D3.C4.C5.B6.C7.D8.C9.A 10.D 11.B 12.B 13.B 14.D 15. C 二.填空题1. for语句while语句do-while语句2. a=14,y=263. k=14,n= -14. 395. s=196. 222227. 108. 79. 810. 5,5三.改错题应改为for(i=0;i<5;i++)j++;应改为int j=0;while(j<10){j++;i=j;} 注while(j<10)后不应有分号应改为while(j<10); 注while(j<10)后分号不能少s*=i;i++;应改为{s*=i;i++;}continue 应改为break四.程序设计题1.#include <stdio.h>main(){ int i,j,s=0;for(i=1,j=1;i<=100;i++,j=j*(-1))s=s+i*j;printf("s=%d\n",s);}1.(另一做法)#include<stdio.h>main(){int i,s;for(i=1,s=0;i<=100;i++)if(i%2==0)s=s-i;else s=s+i;printf ("%d\n",s);}2.#include <stdio.h>main(){ int i,j,s1=0,s2=0;for(i=0;i<10;i++){scanf("%d",&j);if(j>0)s1=s1+j;else s2=s2+j;}printf("s1=%d,s2=%d\n",s1,s2);}3.#include<stdio.h>main(){int i,s;for(i=6,s=0;i<=96;i=i+1)if(i%10==6||i/10==6)s=s+i;printf ("%d\n",s);}4.#include<stdio.h>main(){int i,a,b,c;for(i=100;i<=999;i++){a=(i%10);b=(i/10%10);c=(i/100);if(i==a*a*a+b*b*b+c*c*c)printf ("%d\n",i);}}5.#include <stdio.h>main( ){int i,j,k=0;for (i=1;i<=4;i++){for (j=1;j<=i;j++){k++;printf("%d",k%10);}printf("\n");}}6.#include <stdio.h>main( ){int i,j,k=0;for (i=-3;i<=3;i++){if(i<0)k=-i;else k=i;for(j=1;j<=k;j++)printf(" ");for(j=1;j<=7-2*k;j++)printf("*");printf("\n");}}习题六(P111)一.单选题1.D2.B3.C4.C5.C6.D7.A8.B二.填空题1. 20 0 192. 数组名3. 越界4. 65. j==k a[j][k]=1; a[j][k]=0;三.阅读程序题1. 6 5 43 2 12.aaabbbccc ddd3.2,2,1四.程序设计题1.#include<stdio.h>main(){ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,s=0;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j||i+j==3)s+=a[i][j];printf("%d",s);}2.#include <stdio.h>{ char a[80];int i,j=5; /*假设删除位置为5*/gets(a);for(i=j-1;a[i]!='\0';i++)a[i]=a[i+1];a[i]='\0';puts(a);}3.#include <stdio.h>#include <string.h>main(){ char a[80];int i,j=5; /*假设插入位置为5*/char s='t'; /*假设插入字符为t*/gets(a);for(i=strlen(a);i>j;i--)a[i+1]=a[i];a[j]='t';puts(a);}4.#include<stdio.h>main(){ int a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6}; int i,j,s1[3]={0},s2[5]={0};for(i=0;i<3;i++)for(j=0;j<5;j++)s1[i]+=a[i][ j];for(i=0;i<5;i++)for(j=0;j<3;j++)s2[i]+=a[ j][i];for(i=0;i<3;i++){for(j=0;j<5;j++)printf("%6d",a[i][j]);printf (" |%6d\n",s1[i]);}for(i=0;i<33;i++) printf("-");printf("\n");for(i=0;i<5;i++) printf("%6d",s2[i]);printf("\n");}5.#include<stdio.h>{ char s[3][80];int a=0,b=0,c=0,d=0,e=0,i,j;for(i=0;i<3;i++) gets(s[i]);for(i=0;i<3;i++)for(j=0;s[i][j]!='\0';j++)if(s[i][j]>='A'&&s[i][j]<='Z')a++;else if(s[i][j]>='a'&&s[i][j]<='z')b++;else if(s[i][j]>='0'&&s[i][j]<='9')c++;else if(s[i][j]==32)d++;else e++;printf("%3d%3d%3d%3d%3d",a,b,c,d,e);}习题七(P145)一.单选题1.A2.B3.C4.A5.C6.D7.C8.B9.B 10.C 11.D 二.填空题1. 该函数内局部2. 整型3. k<=breturn y;4. x[i]return (ave);fun(a,20)5. 1;add(n-1);add(n);6. n*f(n-1)0;f(i)三.阅读程序,写出运行结果1.10,20,302.643.84. hlo5. sum=55四.程序设计题1.#include <stdio.h>main(){float add(float, float), sub(float, float);float aver(float, float),a,b;scanf("%f,%f",&a,&b);printf("add=%f, sub=%f\n ", add(a,b), sub(a,b)); printf("aver =%f", aver(a,b));}float add(float x, float y) {return(x+y);}float sub(float x, float y) {return(x-y);}float aver(float x, float y) {return((x+y)/2);} 2.#include<stdio.h>main(){ int a,b,c,abmax(int,int);scanf("%d%d%d",&a,&b,&c);printf("max=%d\n",abmax(abmax(a,b),c)); }int abmax(int a,int b){if(a>b)return a;else return b;}3.#include <stdio.h>main(){float x,fun(float, int);int n;scanf("%f%d",&x,&n);printf("%f\n", fun(x,n));}float fun(float x, int n){float y;if(n==0)y=1;else y=x*fun(x,n-1);return y;}4.#include <stdio.h>main(){long f(int);int n,k;scanf("%d",&n);for(k=1;k<=n;k++)printf("%ld,",f(k));printf("\n");}long f(int n){long y;if(n<=2)y=1;else y=f(n-1)+f(n-2); return y;}5.#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k,s;for(k=0;k<n/2;k++) {s=a[k];a[k]=a[n-k-1];a[n-k-1]=s;}}5. (另一做法)#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k;char b[50];for(k=0;k<n;k++)b[n-1-k]=a[k];b[k]=a[k];strcpy(a,b);}6.#include <stdio.h>#define KK 100main(){char a[KK];long sjz(char a[]);int i=0,f1=0;printf("input a data:");gets(a);for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9'||a[i]>='A'&&a[i]<='F'||a[i]>='a'&&a[i]<='f') continue;else {f1=1;break;}}a[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(a));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}6.(另一做法)#include <stdio.h>#define KK 100main(){char str[KK],c;long sjz(char a[]);int i=0,f1=0;printf("input a data:");while((c=getchar())!='\n'&&i<KK){if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f')str[i++]=c;else f1=1;}str[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(str));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}习题八(P181) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.C4.D5.C6.B7.C8.C9.C 13.D 14.B 15.A 16.C 17.A 二.填空题1. 指向取地址2. 2 +23. 286. *(p+5)7. ABCD A三.阅读程序题1.102.103.04. 3,65. 1 2 3 4四.程序填空题1.a,b,c或者&x,&y,&z max=*b或者max=y max=*c或者max=z2. ++ =*q ++ ++4. int *a,int *b b[j]=a[i] b[i++]5. *str+=3 *str>’z’&&*str<’a’||*str>’z’ a6. else 0 t[2*j+1]五.程序设计题1.#include <stdio.h>main(){int a[10],*p,*q,t;p=a;for(q=a;q<a+10;q++)scanf("%d",q);for(q=a;q<a+10;q++)printf("%5d",*q);printf("\n");q--;for(;p<q;p++,q--){t=*p;*p=*q;*q=t;}for(p=a;p<a+10;p++)printf("%5d",*p);printf("\n");}2.#include <stdio.h>#include <string.h>void main( ){ char a[50],*p1,*p2,t,n;gets(a);n=strlen(a);p1=a; p2=a+n-1;for(; p1<p2; p1++, p2--){t=*p1; *p1=*p2; *p2=t;}puts(a);}另一做法#include <stdio.h>main(){char str[20],*p=str;gets(str);while(*p)p++;p--;while(p>=str){printf("%c",*p);p--;}printf("\n");}3.#include <stdio.h>main(){int a[10],*p,*max,*min,t;for(p=a;p<a+10;p++)scanf("%d",p); for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");max=min=a;for(p=a+1;p<a+10;p++){if(*p>*max)max=p;if(*p<*min)min=p;}t=a[0];a[0]=*min;*min=t;t=a[9];a[9]=*max;*max=t;for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");}5.#include <stdio.h>int length(char *s){int n=0;while(*s){n++;s++;}return n;}main(){char str[20];int n;gets(str);n=length(str);printf("The string length is %d\n",n);}6.#include <stdio.h>main(){char str[81],*p=str,*q,t;gets(str);printf("The origenal string:\n");puts(str);for(p=str;*(p+1);p++)for(q=p+1;*q;q++)if(*q<*p){t=*p;*p=*q;*q=t;}printf("The result string:\n");puts(str);}习题九(P222) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.B4.D 8.B 9.B 10.C二.填空题1. 结构体成员结构体指针指向2. 343. 224.ex三.阅读程序题1.92.10,x3.134. 46 40 415. 06. 3839。

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

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

第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>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<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>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); // 存活期存款。

Visual Basic程序设计教程(中国铁道出版社)课后习题参考答案

Visual Basic程序设计教程(中国铁道出版社)课后习题参考答案
4.DragMode; 1; 0
5.1; 2; 4; Shift; Ctrl; Alt
6.1; 2; 4;左;右;中
7.ClipBoard; SetText; SetData; Clear
8.RichTextBoxrt1.SaveFile“D:\MyFolder\MyDoc.rft”, 0
9.InitDir; 1;“c:\winnt\*.Doc”;“*.Doc”; 2;”c:\winnt\*.txt”;“*.txt”
二﹑选择题
1-5ACBDC6-10DDCDA
第2题C选项应该为ABCDEFG
第九章
一﹑填空题
1.编译错误、运行错误、逻辑错误
2.设计模式、运行模式、中断模式窗口标题栏
3.切换断点、跟踪调试、调试窗口
第十章

第十一章

4.false
5.Interval
6.这题按书上的代码打出来后,运行是错误的。我觉得是题目错了,感觉题目的本意是想让答案是B。所以要想横线上填B,就把1改为2, 3改为0就行了。
7.ABC, DEF
第三章
一﹑选择题
1-5CADDA6-9ABCC
其中第3题题目错了,题目中的c应改为e,还有选项中的函数名开头字母应该大写。
参考答案
第一章
一﹑选择题
1-5CBCBC6-8ACA
二﹑填空题
1.对象
2.设计,运行,中断
3.vbp,frm
4.用来设计应用程序的窗口
5.windows
第二章
一﹑选择题
1-5CCDBB6-9BCDB
二﹑填空题
1.Autosize
2.Scrollbar,Multiline,True

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

《C语言程序设计》课后习题参考答案
参考代码如下:
#include <stdio.h>
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10};
int n,i,j,k=0;
printf("Please enter the number:");
scanf("%d",&n);
for(i=0;i<10;i++)
{ while(n==a[i])
s++;
}
}
printf("s=%d\n",s);
}
4.编程:从键盘输入正整数n,输出1+(1+2)+(1+2+3)+……+(1+2+3+…+n)。
参考代码如下:
#include <stdio.h>
main()
{
int n,i,s=0,t=0;
printf("Please enter n=");
scanf("%d",&n);
for(j=0;j<3;j++)
printf("%5d",b[i][j]);
}
printf("\n");
getch();
}
6.利用公式 计算m×n的矩阵A和m×n的矩阵B之和,已知 为矩阵A的元素, 为矩阵B的元素, 为矩阵C的元素, 。
1. A 2.A 3.C
二、填空题
1.基本数据类型、构造数据类型、指针类型、空类型
2.反斜线“\”
3.枚举数据类型(Enumerated Data Type)

《C语言程序设计实验指导与习题集》练习题的参考答案(中国铁道出版社)期末测试题参考答案

《C语言程序设计实验指导与习题集》练习题的参考答案(中国铁道出版社)期末测试题参考答案

附录四期末测试题一、选择题1.下面对C语言字符数组的描述中错误的是________。

A.字符数组可以存放字符串B.字符数组的字符串可以整体输入、输出C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D.不可以用关系运算符对字符数组中的字符串进行比较2. 在宏定义#define PI3.14159中,用宏名PI代替一个________。

A. 常量B. 单精度数C. 双精度数D. 字符串3. 以下有关宏替换的叙述不正确的是________。

A. 宏替换不占用运行时间B. 宏名无类型C. 宏替换只是字符替换D. 宏名必须用大写字母表示4. 若有语句int w[5]={-4,6,0,-1,9};则以下说法错误的是_________。

A. w 是地址的概念B. 编译后,数组w占用连续的储存空间C. 表达式w+3是地址的概念D. 表达式*(w+1)的值为-45. 变量的指针,其含义是指该变量的______。

A. 值B. 地址C. 名称D. 一个标志6. 若有语句ch ar s[]=“WELCOME”;为得到字符串中的字符…w‟,如下_______的引用方法是错误的。

A. s[0]B. *(s+1)C. *sD.*(s+0)7. 若有语句int *point,a=4;point=&a;下面均代表地址的一组选项是________。

A. a,point,*&aB. &*a,&a,*pointC. *&point,*point,&aD. &a,&*point,point8. 若有赋值语句x=2,y=3; ,则x&y的位运算结果是_______。

A.0B. 2C. 3D. 59. 用feof(fp)函数判断文件是否结束时,如果文件结束,则函数值为________。

A. 1B. …\0‟C. 0D. NULL10. 对于库函数fread(buffer,size,count,fp),关于参数buffer的描述正确的是_____。

c 面向对象程序设计_课后答案_中国铁道出版社_陈维兴_林小茶

c  面向对象程序设计_课后答案_中国铁道出版社_陈维兴_林小茶

c++面向对象程序设计_课后答案_中国铁道出版社_陈维兴_林小茶.txt婚姻是键盘,太多秩序和规则;爱情是鼠标,一点就通。

男人自比主机,内存最重要;女人好似显示器,一切都看得出来。

网址/xxgc/showart.asp?art_id=13网址/xxgc/showart.asp?art_id=17软件工程学院/xxgc/index.asp第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。

这种范型的主要特征是:程序=对象+消息。

面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。

第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。

面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。

这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。

[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。

对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。

类和对象之间的关系是抽象和具体的关系。

类是多个对象进行综合抽象的结果,一个对象是类的一个实例。

在面向对象程序设计中,总是先声明类,再由类生成对象。

类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。

[1_3]现实世界中的对象有哪些特征?请举例说明。

对象是现实世界中的一个实体,其具有以下一些特征:(1)每一个对象必须有一个名字以区别于其他对象。

(2)需要用属性来描述它的某些特性。

C语言程序设计(铁道出版社第二版)课后习题参考答案

C语言程序设计(铁道出版社第二版)课后习题参考答案

C语言程序设计课后习题参考答案第1章一、选择题1.C2.B3.A4.B5.D二、填空题1.main2. main3.有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性4. 顺序、分支和循环5. 自顶向下,逐步细化、模块化设计、限制使用goto语句第2章一、选择题1.C2.C3.B4.C5.A二、叙述题1. 向菜单或工具栏添加命令(1)单击“工具”菜单中的“自定义”,或者右单击菜单栏(或工具栏),在弹出的快捷菜单中选择“自定义”命令选项。

(2)在“命令”选项卡的“请选择要重排的菜单或工具栏”下,选择要更改的菜单或工具栏,如选择工具栏,在其对应的下拉列表框中选择“调试”,然后单击“添加命令”。

(3)在“添加命令”话框中,从“类别”列表中选择类别名称,然后从“命令”列表中选择要添加的命令。

(4)单击“确定”,再单击“关闭”。

2.项目和解决方案是Visual Studio 2010提供的两类容器。

项目是构成某个程序的所有项的容器,该程序可能是控制台应用程序、基于窗口的应用程序或某种别的程序,构成项目的项可以是源代码文件、窗体、类、资源文件等。

一个解决方案可包含一个或多个项目,以及一些其他项。

例如,一个分布式系统可能由若干个不同的程序组成,而各个程序是作为同一个解决方案内的项目开发的。

源文件只有放在相关的项目中才可以生成可执行程序。

3.在解决方案资源管理中,首先移除该项目中的例1.1程序代码,然后右单击源文件,如果没有建立例1.2的代码文件,则选择添加→新建项,并选择C++文件,输入文件名和后缀.c,之后输入相关代码,就可生成项目、运行程序了;如果例1.2代码已存于某个源文件中,则选择添加→现有项,添加该源文件,生成、运行即可。

4.在VC++ 2010的编译系统中,编译会从多个角度检测每个错误,如果从多个角度解释都有问题,则系统会提示有多个错误。

也就说,哪怕一个程序中只有一个错误,但生成项目时可能会出现了一系列编译错误和警告信息。

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

C语言程序设计教程 课后习题参考答案
(2)编辑、编译、链接、执行
(3)一个C程序由一或多个函数组成,一函数若干条语句构成,每条语句的末尾必须以分号结束。
(4)标识符,关键字,运算符,分隔符,常量,注释符等
4.从键盘输入一个双精度小数,打印出它的余弦值。
#include <stdio.h>
#include <math.h>
main( )
else if( score>=90 )
printf(“优秀\n”);
else if( score>=80 )
printf(“良好\n”);
else if( score >= 70 )
printf(“中等\n”);
else if( score >= 60 )
printf(“及格\n”);
else
printf(“不及格\n”);
printf(“%lf\n”, result);
}
习题3
1.
(1)D(2)AD(3)C(4)B(5)A
(6)-(10):BDACB
2.
(1)3.141593,3.1416,3.142
(2)c=K
(3)| 123.46|,|123 |
(4)x= 1.23,y= 50.00
(5)0
3.
(1)scanf(%f”, c);改为:scanf(“%f”, &c);
{
double x;
scanf(“%lf”, &x);
printf(“%lf\n”, cos(x) );
}
第2章
1.
(1)BDE、ACFG
(2)D(3)C(4)C
2.
(1)错(2)错(3)错(4)对(5)错

C#程序的设计大学教材课后答案

C#程序的设计大学教材课后答案

引言复习题1.什么是程序设计?答:计算机程序设计又称为编程(programming),是一门设计和编写计算机程序的科学和艺术。

程序是程序设计中最基本的概念,也是软件中最基本的概念。

程序是计算任务的处理对象和处理规则的描述。

所谓计算任务是指所有通过计算来解决实际问题的任务。

处理对象是数据,如数字、文字和图像等。

处理规则一般指处理动作和步骤。

在低级语言中,程序是一组指令和相关的数据。

在高级语言中,程序一般是一组说明和语句,它包括了算法和数据结构。

程序设计就是为计算机设计和编写程序,使其按照人所规定的算法对数据进行处理。

通常程序设计包括了问题建模、算法设计、编写代码和编译调试等过程。

2.当今的计算机是基于什么模型?答:现代计算机都是基于·诺伊曼模型的。

此模型着眼于计算机的部结构,定义了处理机的运行过程。

该模型把计算机分为四个子系统:存储器、算术/逻辑单元、控制单元和输入/输出单元。

3.为什么不称计算机为数据处理器?答:数据处理器。

可以认为是一个接受输入数据,处理数据,产生输出数据的黑盒。

尽管这个模型能够体现现代计算机的功能,但是它的定义还是太狭窄。

这个模型并没有说明它处理的类型以及是否可以处理一种以上的类型。

换句话说,它并没有清楚的说明一个基于这个模型的机器能够完成操作的类型和数量。

它是专用机器还是通用机器呢?这种模型可以表示为一种设计用来完成特定任务的专用计算机(或者处理器),比如用来控制建筑物温度或汽车油料使用。

但计算机作为一个当今使用的术语,是一种通用的机器。

它可以完成各种不同的工作。

4.你所知道的程序设计语言有哪些?你知道它们有什么不同特点吗?(答案略)5.位模式是如何表示一个构成文本的语言符号的?答所谓位(bit,binary digit 的缩写)是存储在计算机中的最小单位;它是0 或1。

位代表设备的某一状态,这些设备只能处于两种状态中的某一种状态。

计算机存储器并不知道所存储的位模式是表示哪种类型的数据。

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语⾔程序设计教程(第2版)课后题及模拟题参考答案c语⾔程序设计教程(第2版)课后题及模拟题参考答案习题1 (4)1-1 填空题 (4)1-2 思考题 (4)1-3 编程题 (5)习题2 (6)2-1 单选题 (6)2-2 思考题 (6)习题3 (7)3-1 选择题 (7)3-2 填空题 (7)3-3 编程题 (8)习题4 (11)4-1单选题 (11)4-2填空题 (11)4-3 编程题 (11)习题5 (16)5-1单选题 (16)5-2填空题 (16)5-3 编程题 (16)习题6 (22)6-1单选题 (22)6-2填空题 (22)习题7 (25)7-1单选题 (25)7-2填空题 (25)7-3 编程题 (25)习题8 (26)8-1单选题 (26)8-2填空题 (26)8-3 编程题 (26)习题9 (30)9-1单选题 (30)9-2填空题 (30)9-3 编程题 (30)习题10 (38)10-1单选题 (38)10-2填空题 (38)10-3 编程题 (38)习题11 (41)11-1单选题 (41)11-2填空题 (41)习题12 (42)12-1单选题 (42)12-2 填空题 (42)实验1 熟悉Visual C++6.0可视化集成开发环境 (43)实验2 顺序结构程序设计 (43)实验3 选择结构程序设计 (43)实验4 循环结构程序设计 (44)实验5 函数 (47)实验6 数组 (54)实验7 指针 (58)实验8 结构体和共⽤体 (61)实验9 ⽂件 (63)实验10 综合编程 (64)模拟试卷(⼀)参考答案 (65)模拟试卷(⼆)参考答案 (67)习题11-1 填空题1. 函数2. 主函数main(),主函数main()3. 主函数main()4. 函数⾸部,函数体5. {, }6. /*, */7. 顺序结构,选择结构,循环结构8. .c, .obj, .exe1-2 思考题1. 结构化程序设计是指:为使程序具有⼀个合理的结构以保证程序正确性⽽规定的⼀套如何进⾏程序设计的原则。

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

C语言程序设计》课后习题详细答案
(2)在同一行上的/ * main function * /显然是注释;C语言规定:注释由/*开头,由*/结束,但在*号和/之间不得插入任何空格,而在此处“/ *”和“* /”之间存在空格,因此,/ * main function * /的写法是错误的,而应写成:/* main function */。
printf(″(1) a=%d,b=%d,c=%d\n″,a,b ,c);
t=c; c=b; b=a; a=t;
printf(″(2) a=%d,b=%d,c=%d\n″,a,b,c);
}
第四章选择结构习题分析与解答
一、选择题
4.1【参考答案】A)
4.2【参考答案】A)
4.3【参考答案】A)
4.4【参考答案】D)
(6)设计输出语句。输出a、b、c和ave。
(7)把以上内容放在主函数的一对花括号中。
(8)编写程序如下:
main()
{ double a,b,c,ave;
printf(″Enter a ,b ,c :″);
scanf(″%lf%lf%lf″, &a, &b, &c );
ave=(a+b+c)/3;
2.15【参考答案】[1]4.2[2]4.2
2.16【参考答案】[1]{[2]}[3]定义[4]执行
2.17【参考答案】[1]关键字[2]用户标识符
2.18【参考答案】[1]int[2]float[3]double
2.19【参考答案】float a1=1.0, a2=1.0;
或float a1=1, a2=1;(系统将自动把1转换为1.0)
3.27【参考答案】x=127, x=127 , x=$127 ,x=$000127, x=%06d

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

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

《C语言程序设计》(邱晓红主编)课后习题参考答案第1章C语言及程序设计概述1.单选题(1)A (2)B (3)A (4)B (5)C2.填空题(1)//,/*…*/(2)scanf()(3)printf()3.判断题(1)对(2)错(3)错(4)对1.4简答题①概述C语言和C语言程序的主要特点。

答:1.C语言是高级语言。

它把高级语言的基本结构和语句与低级语言的实用性结合起来。

2。

C语言是结构式语言。

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。

这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

①C语言功能齐全。

具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。

②C语言适用范围大。

适合于多种操作系统,如Windows、DOS、UNIX、LINUX等等;也适用于多种机型。

②请编程,在计算机屏幕上显示:“您好,欢迎进入C语言世界!”解:#include<stdio.h>void main(){printf("您好,欢迎进入c预言世界!");}第二章:数据类型运算符与表达式1.单选题(1)C (2)D (3)C (4)B (5)C (6)A (7)B (8)D (9)A (10)B(11)C (12)C (13)D (14)A (15)B (16)C (17)A (18)A (19)B (20)C (21)C (22)D (23)C (24)A (25)D (26)B (27)C (28)B (29)B (30)A 2.填空题(1)sqrt(pow(y,x)+log10(y)) (2)36(3)6 (4)3 3(5)6 (6)36(7)int x=8,y=8; (8)1(9)E (10)7,9,6,8)(11)6 (12)66,96(13)240 (14)1,1,-1,-1(15)5,2,6 (16)1(17)!(18)2(19)(a>0&&a<101)&&(a%3==0||a%7==0)(20)A3.程序分析题(1)2 7 (VC++环境下,其它编译环境可能有不一样的结果)2 74 94 412 12(2)3 1 4 01 -616(3)100 d 68 D97 a 49 1(4)0 1 0 1(5)2 4 6 7-0.5800000 7.00000046.5800007.500000(6)33 12 113 13 082 32(7)618 30181(8)1 1 0 04.改错题(1)①无初始赋值,不能输出②数据精度丢失③少“;”号④单字符变量不能保存字符串常量⑤不能连续初始化⑥非法标识符(2)short i=38000溢出PI=3.1416 常量不能修改值Printf(“%d”,x%y) %必须是整数a*=(b+c)/=d复合赋值左边不能是表达式5、(1)#include <stdio.h>int main(){int H;float v,L1,L2,L,T,s1,M;printf("请输入开始里程数,单位为千米:\n");scanf("%f",&L1);printf("请输入结束里程数,单位为千米:\n");scanf("%f",&L2);printf("请输入时间,格式为时,分,秒\n");scanf("%d,%f,%f",&H,&M,&s1);T=H+M/60.0+s1/3600.0;//将时间折算成小时;L=L2-L1;//计算出这段时间走的路程,以千米计;v=L/T;printf("%f\n",v);return 0;}(2)#include <stdio.h>#define PI 3.14int main(){double r=2.5,h=5,V;V=(PI*r*r*h)/3;printf("%f\n",V);return 0;}第三章:算法概念与顺序结构程序设计1.选择题(1)D (2)D (3)D (4)B (5)C (6)A (在16位机答案为D)(7)B (8)C (9)B (10)D2.填空题.(1)一条语句;(2)小于左右(3)%%(4)输出项列表输出控制符(5)取地址取a的地址(6)从盘获取一个字符(7)大括号(8)f=68.000000(9)n1=%d\n n2=%d(10)7,5,c=33.程序分析题.(1)i=100,c=a,f=1.234000(2)i=65535,j=65536(10)1234,123.5,12345.53.4 编程题①编写一个程序,交换两个数的值。

C语言程序设计教程(第2版)课后习题答案(完美版)

C语言程序设计教程(第2版)课后习题答案(完美版)

C语言程序设计教程(第二版)课后习题答案第一章C语言程序设计概述-习题答案1算法的描述有哪些基本方法?答1、自然语言2、专用工具2 C语言程序的基本结构是怎样的?举一个例子说明。

答1、C语言程序由函数构成;2、“/*”与“*/”之间的内容构成C语言程序的注释部分;3、用预处理命令#include、#define可以包含有关文件或预定义信息;4、大小写字母在C语言中是有区别的;5、除main()函数和标准库函数外,用户也可以自己编写函数,应用程序一般由多个函数组成,这些函数指定实际所需要做的工作。

3 C语言有什么特点?答1、具有结构语言的特点,程序之间很容易实现段的共享;2、主要结构成分为函数,函数可以在程序中被定义完成独立的任务,独立地编译代码,以实现程序的模块化;3、运算符丰富,包含的范围很广;4、数据类型丰富;5、允许直接访问物理地址,即可直接对硬件进行损伤,实现汇编语言的大部分功能;6、限制不太严格,程序设计自由度大,这样使C语言能够减少对程序员的束缚;7、生成的目标代码质量,程序执行效率高,同时C语言编写的程序的可移植性好。

4★指出合法与不合法的标识符命名。

答AB12--√leed_3-- a*b2--× 8stu--× D.K.Jon--× EF3_3--√ PAS--√ if--× XYZ43K2 --√ AVE#XY--× _762--√ #_DT5--× C.D--×5说明下列Turbo C热键的功能。

答F2:源文件存盘 F10:调用主菜单 F4:程序运行到光标所在行(用于调试程序) Ctrl+F9:编译并链接成可执行文件 Alt+F5:将窗口切换到 DOS 下,查看程序运行结果。

6说明下列Turbo C方式下输入并运行下列程序,记录下运行结果。

①main(){printf("********************\n");printf(" welcome you \n");printf(" very good \n);printf("********************\n");}②main()printf("please input three numbers;");scanf("%d,%d,%d",&a,&b,&c); /*教材S是错误的*/t=max(max(a,b),c);printf("max number is:%d\n",t);}int max(int x, int y){ int z;if(x>y)z=x;else z=y;return(z);}答运行结果:********************welcome youvery good********************运行结果:please input three numbers;3,1,4 /*左侧下划线内容为键盘输入*/max number is:47一个C程序是由若干个函数构成的,其中有且只能有一个___函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题一一、选择题1.C2. C3.B4.C5.C6.D7.C8.A9.B 10.D二、填空题1. 算法2. main3. ;4. cpp obj exe5. 符号定义6. 是10 是117. double 18. -264 9. 是410. m-m/n*n 11. a为6 b为4 c为2 12. 为1三、问答题3..dsw 、.dsp、.ncp、.cpp4.提高程序的可读性、可维护性。

在行注释前加“//”。

段注释放入“/*”和“*/”之间。

注释对原程序的编译和运行没影响。

5.设置符号常量主要提高源程序的可读性、维护性。

区别:1.识别时,主要看符号的定义;2.运行时,符号常量不能改变值而变量可改变。

6.字符常量通常指一个字符,存储单元为一个字节;字符串可包含多个字符,存储单元为字符数加1个字节。

7.1.0 、1.1e2 类型:double; 1L、65536 类型:long8.int、new 不是,因为是关键字;abc、lxyz、a_0、Hello、aaaaa、_a是合法的标识符;a+b、!A 不是,因为+、!是运算符。

0_abc不是是因为数字开头;d$a不是是因为标识符不应包含$。

9.合法:(1)、(5)、(6)10.全部都是。

11.a=2;b=112.2;-2;6、4、40、-3、313.(1) 4 a=3 b=4 c=5; (2)5 a=3 b=4 c=6; (3)-9 a=3 b=5 c=5;(4) 4 a=4 b=4 c=414.(1) (float) k (2)x-int(x) (3)m/10%10(4)(ch>=‟A‟ && ch<=‟Z‟)?(ch=‟a‟+ch-…A‟):ch习题二一、选择题1.B2. C3.A4.B5.B二、填空题1. if2. do while和for3.循环体循环体4. 1 n+1 n5. 5,4,6三、程序阅读题15.m=516.1 4,2 6,2 3,3 5,5 6,c=37四、程序设计题1.#include <iostream>#include <cmath>using namespace std;float a,b,c,s,area;void main(){cout<<"输入a b c:"; cin>>a>>b>>c;if ((a+b>c)&&(a+c>b)&&(b+c>a)){s=(a+b+c)/2;cout<<"面积="<<sqrt(s*(s-a)*(s-b)*(s-c));} elsecout<<"输入的不是三角形的三条边";}2.见《实验教程》p27 4.3.#include <iostream.h>void main(){float x,y;cout<<"输入购物款:";cin>>x;switch (int(x/1000)){ case 0:y=x;break;case 1:y=x*0.95;break;case 2:y=x*0.9;break;case 3:y=x*0.85;break;default:y=x*0.8;}cout<<"优惠款为:"<<y<<endl;}4.见《实验教程》p285.5. #include <iostream>using namespace std;int i,n;long js=1;void main(){cout<<"输入n:"; cin>>n;for (i=1;i<=n;i++)js*=i;cout<<n<<"!="<<js;}6. #include <iostream>#include <cmath>using namespace std;int n=1;float pi=0,xn=4;void main(){ while (fabs(xn)>1.0e-8){ pi+=xn;n++;xn=-4.0*sign(xn)/(2*n-1);}cout<<"π="<<pi;}7. #include <iostream.h>void main(){ int i,j,sum;for(i=2;i<=1000;i++){ sum=0;For (j=1;j<i;j++)if (i%j==0) sum+=j;if (sum==i){cout<<i<<"-->";For (j=1;j<i;j++)If (i%j==0) cout<<j<<",";Cout<<endl;}}}8. #include <iostream.h>void main(){ int x,y,z;For (x=1;x<10;x++)For (y=1;y<12;y++){ z=20-x-y;If (5*x+4*y+2*z==50)Cout<<"公猴:"<<x<<"母猴:"<<y<<"小猴:"<<z;}}9. 见《教程》p60 例2.2310. 见《实验教程》p32 5.习题三一、选择题1.B2.B3.C4.D5.D二、填空题1. 函数头省略能省略应加“;”函数头不加“;”2. inline flat f(int,char)3.函数体外外部内部(静态) static 文件位置extern4.生存期作用域作用域生存期作用域本文件5.-22 100 -3三、程序阅读题17.S=4018.y=12919.max=820.S=29a) 程序设计题1. #include <iostream.h>float add(int x,int y){ return (float)(x+y);}float fac(int n){ int i;float s=1;For (i=1;i<=n;i++) s*=i;}void main(){ int m,ncout<<"输入整数m n:"; cin>>m>>n;cout<<m<<"!+"<<n<<"!="<<add(fac(m),fac(n))<<endl;}2. #include <iostream.h>#include <math.h>int isprime(int n){ int i;float k;k=sqrt(n);for (i=2;i<k;i++) if (n%i==0) return 0;return 1;}void main(){ int s=0,i;for (i=2;i<=100;i++)if (isprime(i)) s+=i; cout<<"和:"<<s<<endl; }3. 非递归:float pow(float a,int n) { int i;float s=1;for (i=1;i<=n;i++)s*=a;return s;}递归:float pow(float a,int n) { float s;if (n==0)return 1;elses=pow(a,n-1)*a; return s;}4.非递归:float sum(int n){ float s;int i;for (i=1;i<=n;i++) s+=i; return s;}递归:float sum(int n){ float s;if (n==1)retrun 1;elses=sum(n-1)+n; return s;}5. #include <iostream.h>inline int ischar(char n){ if (n<=127) return 1;return 0;}void main(){ char a;cout<<"输入字符:";cin>>a;if (ischar(a))cout<<a<<endl;elsecout<<"输入的不是英文字符:" }6.file1.cppfloat fac(int n){ int i;float s=1;For (i=1;i<=n;i++) s*=i;}File2.cpp#include <iostream.h>float pow(float a,int n){ int i;float s=1;for (i=1;i<=n;i++)s*=a;return s;}void main(){ int a,b,n;cout<<"输入a b n:";cin>>a>>b>>n;cout<<fac(a)/pow(b,n);}习题四程序设计题:1. #include <iostream.h>void main(){ int a[10],i,j,k,tem;for (i=0;i<10;i++){cout<<"输入第"<<i+1<<"个整数:"; cin>>a[i];} for (i=0;i<=8;i++){ k=i;for (j=i+1;j<=9;j++)if (a[k]<a[j]) k=j;tem=a[i];a[i]=a[k];a[k]=tem;cout<<a[i]<<"\t";}}2. 设:数组的大小为n,插入函数如下:int insert(int a[],int n){ int b,i=0,k;Cout<<"输入整数:";cin>>b;while (b>a[i] && i<=n) i++;if (i<=n){ for (k=n;k>i;k--) a[k]=a[k-1];a[i]=b;return 1;}elsecout<<"该数不能插入";return 0;}3.#include <iostream.h>int a[100],i,,k,b;void main(){ i=1;while (i<=100){ cout<<"输入第"<<i<<"个整数:";cin>>b;for (k=0;k<i-1;k++)if (a[k]==b) break;if (k==i-1){ a[i++-1]=b;}}}4. #include <iostream.h>#define lnum 10#define cnum 10void main(){ float a[lnum][cnum],max,min;int i,j,k,l,fb=1;//输入数给数组for (i=0;i<lnum;i++)for(j=0;j<cnum;j++){cout<<"输入"<<i<<"行"<<j<<"列数:";cin>>a[i][j];}//找鞍点,先找出一行中的最大点,然后在同列中确定是否为最小点for (i=0;i<lnum;i++){ l=0;for(k=1;k<cnum;k++)if (a[i][l]<a[i][k]) l=k;for(k=0;k<cnum;k++)if (a[i][l]>a[l][k]) break;if (k==cnum){ cout<<i<<"行"<<l<<"列元素为鞍点:";fb=0;}elseif (fb) cout<<"该数组无鞍点";}}5. void f(int a[],int n){ int i,tem;for (i=0;i<n/2;i++){tem=a[i];a[i]=a[n-1-i];a[n-1-i]=tem;}}6.int f(char *s){ int n=1;char *p,*p1;n=strlen(s);p=s;p1=s+n-1;while (p<p1){ if (*p!=*p1)return 0;else{p++;p1++}}return 1;}7. #include <iostream.h>#include <string.h>void main(){ char str1[100],str2[50],*p=str2;int n;Cout<<"输入字符串";Cin.get(str1,100);n=strlen(str1);for (i=0;i<n;i=i+2){*(str2+i/2)=str1[i];}*(Str2+i/2)=null;cout<<"str1:"<<str1<<endl;cout<<"str2:"<<str2<<endl;}8. #include <iostream>using namespace stdvoid main(){ int i,supercn=0,lowcn=0,spacecn=0,numbercn=0,othercn=0; char a[100];cout<<”输入字串:”;cin.get(a,100);while (a[i]){ { if (a[i]>=‟A‟ && a[i]<=‟Z‟) supercn++;else if (a[i]>=‟a‟ && a[i]<=‟z‟) lowcn++;else f (a[i]=‟ …) spacecn++;else if (a[i]>=‟0‟ & a[i]<=‟9‟) numbercn++;else othercn++;}}cout<<”大写字母数:”<<supercn<<endl;cout<<”小写字母数:”<<lowcn<<endl;cout<<”空格数:”<<spacecn<<endl;cout<<”数字字母数:”<<numbercn<<endl;cout<<”其它字母数:”<<supercn<<endl; }9.#include <iostream>using namespace stdvoid main(){ int i,lable=0,count=0;char a[100];cout<<”输入字串:”;cin.get(a,100);while (a[i]){ if (a[i]==‟ … && lable){count++;label=0;}else if(a[i]!=‟ ‟)lable=1;i++;}cout<<”单字个数:”<<count<<endl;}10. #include <iostream>#include <string>using namespace std;void main(){ int i,maxn=0,maxxb,m=0;char a[40][100];cout<<"输入各行:"<<endl;for (i=0;i<40;i++){ cin.getline(a[i],100);m=strlen(a[i]);if (m==0) break;if (m>maxn) {maxxb=i;maxn=m;}}cout<<a[maxxb]<<endl;}11.##include <iostream>#include <string>using namespace std;void main(){ int i,n,m,j,k;char a[40][100],b[100];cout<<"输入各国家名(一个国家一行):"<<endl;for (i=0;i<40;i++){ cin.getline(a[i],100);m=strlen(a[i]);if (m==0) break else n++;}for (i=0;i<n-2;i++){ k=i;for (j=i+1;j<n-1;j++)if (strcpy(a[k],a[j])>0) k=j;if (k!=i) {strcpy(b,a[i]);strcpy(a[i],a[k]);strcpy(a[k],b);)}}for (i=0;i<n;i++) {cout<<a[i]<<endl;}}12.int find(char *s,char *word){ char *p1,*p2,lable=1,firstspace=1;p1=s;p2=word;while (*p1){ if (*p1==' ')firstspace=1;else if(firstspace==1){ lable=1;while (*p1!=' ' && *p1 && *p2){if (*p1!=*p2) lable=0;p1++;p2++;}if (lable && !*p2 && (*p1==' ' || !*p1)) return 1;if (!*p1) return 0;if (*p1==' ') firstspace=1; else firstspace=0;p2=word;}p1++;}return 0;习题五一、选择题1.A2.D3.C4.A5.D二、填空题1. struct2.typedef3.1024.new delete三、程序阅读题程序1:65 A65 a程序2:10,20,7,9四、程序设计题1.#include <iostream>using namespace std;struct date{ int year;int month;};struct student{ long num;char name[9];char sex;date birth;float totalscore;char hometown[20];};V oid main(){ student s[5],s1;char i,j,m[5];for (i=0;i<5;i++){ cout<<”输入第”<<int(i+1)<<”个学生的学号:”;cin>>s[i].num;cout<<”姓名:”;cin.get(s[i].name,9);cin.readsome(m,5);cout<<”性别:”;cin>>s[i].sex;cin.readsome(m,5);cout<<”输入出生年月:”;cin>>s[i].birth.year>>s[i].birth.month;cout<<”输入总分:”;cin>>s[i].totalscore;cout<<”输入籍贯:”;cin.get(s[i].hometown,20);cin.readsome(m,5);}for(i=0;i<4;i++)for(j=i+1;j<5;j++)if (s[i].totalscore<s[j].totalscore){s1=s[i];s[i]=s[j];s[j]=s1;}for(i=0;i<5;i++){cout<<”学号\t姓名\t性别\t出生年月\t入学总分\t籍贯”<<endl;cout<<s[i].num<<”\t”<<s[i].name<<” ”<<s[i].sex<<”\t”<<s[i].birth.year;cout<<” ”<<s[i].birth.month<<”\t”<<s[i].score<<”\t”<<s[i].hometown;cout<<endl;}}2.3.链表就是把物理上不连续的存储块链接为逻辑上连续的存储块,每个存储块都包含一个指向下一个存储块的指针。

相关文档
最新文档