c++程序设计课后习题答案(杨长兴__刘卫国主编)1111

合集下载

《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); // 存活期存款。

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

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

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

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

3C语言有什么特点?答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(){ int a,b,c,t;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程序是由若干个函数构成的,其中有且只能有一个___函数。

c++程序设计课后习题答案(杨长兴,刘卫国主编)1111

c++程序设计课后习题答案(杨长兴,刘卫国主编)1111

c++程序设计课后习题答案(杨长兴,刘卫国主编)1111习题⼀⼀、选择题1.C2. C3.B4.C5.C6.D7.C8.A9.B10.D⼆、填空题1. 算法2. main3. ;4. cpp obj exe5. 符号定义6. 是10 是117. d ouble 18. -2649. 是410. m-m/n*n11. a为6 b为4 c为212. 为1三、问答题1.有点。

计算机程序设计语⾔模型是更规则、⽆⼆意性的语⾔模型。

2.书P33..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不是,因为+、!是运算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#includeusing 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<<"⾯积="<2.见《实验教程》p27 4.3.#includevoid 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<<"优惠款为:"<}4.见《实验教程》p285.5. #includeusing namespace std;int i,n;long js=1;void main(){cout<<"输⼊n:"; cin>>n;for (i=1;i<=n;i++)js*=i;cout<}6. #include#includeusing namespace std;int n=1;float pi=0,xn=4;void main(){ while (fabs(xn)>1.0e-8)cout<<"π="<}7. #includevoid main(){ int i,j,sum;for(i=2;i<=1000;i++){ sum=0;For (j=1;jif (i%j==0) sum+=j;if (sum==i){cout<For (j=1;jIf (i%j==0) cout<Cout<}}}8. #includevoid 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<<"公猴:"<}}9. 见《教程》p60 例2.2310. 见《实验教程》p32 5.习题三七、选择题1.B2.B5.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. #includefloat 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<2. #include#includeint isprime(int n){ int i;float k;k=sqrt(n);for (i=2;ivoid main(){ int s=0,i;for (i=2;i<=100;i++)if (isprime(i)) s+=i; cout<<"和:"<}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;elses=sum(n-1)+n;return s;}5. #includeinline int ischar(char n){ if (n<=127) return 1;return 0;}void main(){ char a;cout<<"输⼊字符:";cin>>a;if (ischar(a))cout<elsecout<<"输⼊的不是英⽂字符:" } 6.file1.cppfloat fac(int n){ int i;float s=1;For (i=1;i<=n;i++) s*=i;}File2.cpp#includefloat pow(float a,int n){ int i;float s=1;for (i=1;i<=n;i++)s*=a;return s;}void main()cin>>a>>b>>n;cout<}习题四程序设计题:1. #includevoid main(){ int a[10],i,j,k,tem;for (i=0;i<10;i++){cout<<"输⼊第"<>a[i];} for (i=0;i<=8;i++) { k=i;for (j=i+1;j<=9;j++)if (a[k]tem=a[i];a[i]=a[k];a[k]=tem;cout<}}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.#includeint a[100],i,,k,b;while (i<=100){ cout<<"输⼊第"<>b;for (k=0;kif (a[k]==b) break;if (k==i-1){ a[i++-1]=b;}}}4. #include#define lnum 10#define cnum 10void main(){ float a[lnum][cnum],max,min;int i,j,k,l,fb=1;//输⼊数给数组for (i=0;ifor(j=0;j{cout<<"输⼊"<cin>>a[i][j];}//找鞍点,先找出⼀⾏中的最⼤点,然后在同列中确定是否为最⼩点 for (i=0;i { l=0;for(k=1;kif (a[i][l]for(k=0;kif (a[i][l]>a[l][k]) break;if (k==cnum){ cout<fb=0;}elseif (fb) cout<<"该数组⽆鞍点";}{ int i,tem;for (i=0;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{ if (*p!=*p1)return 0;else{p++;p1--}}return 1;}7. #include#includevoid main(){ char str1[100],str2[50],*p=str2;int n;Cout<<"输⼊字符串";Cin.get(str1,100);n=strlen(str1);for (i=0;i{*(str2+i/2)=str1[i];}*(Str2+i/2)=null;cout<<"str1:"<cout<<"str2:"<}8. #includeusing namespace stdchar 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<<”⼤写字母数:”<cout<<”⼩写字母数:”<cout<<”空格数:”<cout<<”数字字母数:”<cout<<”其它字母数:”<}9.#includeusing 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<<”单字个数:”<}10. #include#includeusing namespace std;void main(){ int i,maxn=0,maxxb,m=0;char a[40][100];cout<<"输⼊各⾏:"<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<}11.##include#includeusing namespace std;void main(){ int i,n,m,j,k;char a[40][100],b[100];cout<<"输⼊各国家名(⼀个国家⼀⾏):"<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{ k=i;for (j=i+1;jif (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}12.int find(char *s,char *word){ char *p1,*p2,lable=1,firstspace=1;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四、程序设计题1.#includeusing namespace std;struct date{ int year;int month;};struct student{ long num;char name[9];char sex;date birth;float totalscore;char hometown[20];};Void main(){ student s[5],s1;char i,j,m[5];for (i=0;i<5;i++){ cout<<”输⼊第”<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{s1=s[i];s[i]=s[j];s[j]=s1;}for(i=0;i<5;i++){cout<<”学号\t姓名\t性别\t出⽣年⽉\t⼊学总分\t籍贯”<cout<cout<<””<cout<}}2.3.链表就是把物理上不连续的存储块链接为逻辑上连续的存储块,每个存储块都包含⼀个指向下⼀个存储块的指针。

《C 程序设计教程》课后习题答案

《C  程序设计教程》课后习题答案

第1章C++及其开发环境概述一、问答题1.结构化程序设计主要有哪些劣势?【答案】(1)程序的开发效率低下(2)程序的可重用性差(3)程序的维护成本高(4)无法适应信息的快速膨胀和多样化2.面向对象的程序设计有哪些优点?【答案】(1)程序的开发效率高(2)程序代码的可重用性高(3)程序易于维护3.C++的发展经历了哪些阶段?【答案】C++语言起源于C语言。

1980年初期,美国贝尔实验室的Bjarne Stroustrup博士及其同事在C语言的基础上,从Simula67中引入面向对象的特征,开发出一种过程性与对象性相结合的程序设计语言,最初称为“带类的C”,1983年正式取名为C++。

后来,Stroustrup和他的同事陆续将运算符重载、继承、虚函数等特性引入C++,1989年后推出AT&T C++ 2.0版,并经过多次改进和完善,发展成为现在的C++。

4.C++主要有哪些特点?【答案】(1)C++可以被看成C语言的一个超集,是对C的增强和扩展。

因此,许多C代码可以不经修改即可为C++所用。

自然,也可以利用C++开发环境来开发C程序。

(2)C++几乎支持所有面向对象的程序设计特征,因此,利用C++不仅可以进行传统的结构化程序设计,而且可以较好地进行面向对象的程序开发。

(3)C++很好地保持了C的简洁、高效、灵活和接近汇编语言的特点,因此,C++程序的执行效率也很高。

5.一个C++程序一般由哪几部分构成?【答案】①预处理命令。

C++提供了三种预处理命令,即宏定义命令、文件包含命令和条件编译命令。

②全局声明部分。

此部分内容通常会给出用户自定义的数据类型声明,以及程序中所涉及变量的定义,例如类的声明。

数据结构③函数。

一个程序中可包含一个或多个函数,它们是执行用户指定操作的主要部分。

6.使用Visual C++ 开发C++程序时一般要经过哪几个步骤?每个步骤的作用是什么?相应地产生哪些文件?【答案】(1)编写程序C++是一种高级语言,所以用其编写的程序称为“源程序”,以.cpp做为后缀。

c程序设计第三版习题参考解答 全

c程序设计第三版习题参考解答 全

C程序设计(第三版)课后习题参考解答第1章 C语言概述1.5 参照本章例题,编写一个C程序,输出以下信息:******************************Very Good!******************************解:main ( ){printf(“****************************** \n”);printf(“\n”);printf(“ Very Good! \n”);printf(“\n”);printf(“****************************** \n”);}1.6 写一个程序,输入a,b,c三个值,输出其中最大者。

解:main ( ){int a,b,c,max;printf(“请输入三个数a,b,c: \n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf(“最大数为:%d ”,max);}第2章程序的灵魂——算法2.1 什么叫结构化的算法?为什么要提倡结构化的算法?解:由一些基本结构顺序组成的算法称为结构化的算法。

由于在基本结构之间不存在非顺序的跳转,流程的转移只存在于一个基本结构范围之内,因而提高了算法的质量。

2.7 什么叫结构化程序设计?它的主要内容是什么?解:结构化程序就是用高级语言表示的结构化算法。

它的主要内容包括“自顶向下,逐步细化”的分析方法和“模块化设计”的解决方法,以及“结构化编码”的实现方法。

第3章数据类型、运算符与表达式3.4将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。

注:如果没有学过二进制和补码,此题可以不做。

解:各数据在内存中的存储形式如下表所示:其中int和short类型,其取值范围是-32768~32767。

32769在这两种类型中实际表示负数,它是一个负数的补码,对其再求一次补码可得其真值,即-(65536-32769)=-32767。

《C 程序设计教程》课后习题答案

《C  程序设计教程》课后习题答案

第1章C++及其开发环境概述一、问答题1.结构化程序设计主要有哪些劣势?【答案】(1)程序的开发效率低下(2)程序的可重用性差(3)程序的维护成本高(4)无法适应信息的快速膨胀和多样化2.面向对象的程序设计有哪些优点?【答案】(1)程序的开发效率高(2)程序代码的可重用性高(3)程序易于维护3.C++的发展经历了哪些阶段?【答案】C++语言起源于C语言。

1980年初期,美国贝尔实验室的Bjarne Stroustrup博士及其同事在C语言的基础上,从Simula67中引入面向对象的特征,开发出一种过程性与对象性相结合的程序设计语言,最初称为“带类的C”,1983年正式取名为C++。

后来,Stroustrup和他的同事陆续将运算符重载、继承、虚函数等特性引入C++,1989年后推出AT&T C++ 2.0版,并经过多次改进和完善,发展成为现在的C++。

4.C++主要有哪些特点?【答案】(1)C++可以被看成C语言的一个超集,是对C的增强和扩展。

因此,许多C代码可以不经修改即可为C++所用。

自然,也可以利用C++开发环境来开发C程序。

(2)C++几乎支持所有面向对象的程序设计特征,因此,利用C++不仅可以进行传统的结构化程序设计,而且可以较好地进行面向对象的程序开发。

(3)C++很好地保持了C的简洁、高效、灵活和接近汇编语言的特点,因此,C++程序的执行效率也很高。

5.一个C++程序一般由哪几部分构成?【答案】①预处理命令。

C++提供了三种预处理命令,即宏定义命令、文件包含命令和条件编译命令。

②全局声明部分。

此部分内容通常会给出用户自定义的数据类型声明,以及程序中所涉及变量的定义,例如类的声明。

数据结构③函数。

一个程序中可包含一个或多个函数,它们是执行用户指定操作的主要部分。

6.使用Visual C++ 开发C++程序时一般要经过哪几个步骤?每个步骤的作用是什么?相应地产生哪些文件?【答案】(1)编写程序C++是一种高级语言,所以用其编写的程序称为“源程序”,以.cpp做为后缀。

c程序设计第三版习题参考解答(全)

c程序设计第三版习题参考解答(全)
max=a;
if (max<b)
max=b;
if (max<c)
max=c;
printf(“最大数为:%d”,max);
}

2.1
解:由一些基本结构顺序组成的算法称为结构化的算法。由于在基本结构之间不存在非顺序的跳转,流程的转移只存在于一个基本结构范围之内,因而提高了算法的质量。
2.7
解:结构化程序就是用高级语言表示的结构化算法。它的主要内容包括“自顶向下,逐步细化”的分析方法和“模块化设计”的解决方法,以及“结构化编码”的实现方法。
设x=2.5,a=7,y=4..7
(2)(float)(a+b)/2+(int)x%(int)y
设a=2,b=3,x=3.5,y=2.5
解:
(1)2.5
(2)3.5
3
main ( )
{ inti, j, m, n;
i=8;
j=10;
m=++i;
n=j++;
printf (“%d, %d, %d, %d”, i, j, m, n);
此题可以这样考虑:带符号数在计算机中采用补码表示,正数的补码与原码相同,负数的补码=模+真值。若使用16位存储,模为216=65536。-617的补码为65536+(-167)=64919=(176627)8=(FD97)16
(5)(-111)10=(177621)8=(FF91)16
(6)(2483)10=(4663)8=(9B3)16
scanf(“%f %e”,&x , &y);
scanf(“%c %c”,&c1 , &c2);
}
解:

c程序设计第三版习题参考解答(全)

c程序设计第三版习题参考解答(全)

C程序设计(第三版)课后习题参考解答第1章C语言概述1.5 参照本章例题,编写一个C程序,输出以下信息:******************************Very Good!******************************解:main ( ){printf(“****************************** \n”);printf(“\n”);printf(“Very Good! \n”);printf(“\n”);printf(“****************************** \n”);}1.6 写一个程序,输入a,b,c三个值,输出其中最大者。

解:main ( ){int a,b,c,max;printf(“请输入三个数a,b,c: \n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf(“最大数为:%d ”,max);}第2章程序的灵魂——算法2.1 什么叫结构化的算法?为什么要提倡结构化的算法?解:由一些基本结构顺序组成的算法称为结构化的算法。

由于在基本结构之间不存在非顺序的跳转,流程的转移只存在于一个基本结构范围之内,因而提高了算法的质量。

2.7 什么叫结构化程序设计?它的主要内容是什么?解:结构化程序就是用高级语言表示的结构化算法。

它的主要内容包括“自顶向下,逐步细化”的分析方法和“模块化设计”的解决方法,以及“结构化编码”的实现方法。

第3章数据类型、运算符与表达式3.4将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。

注:如果没有学过二进制和补码,此题可以不做。

解:各数据在内存中的存储形式如下表所示:它是一个负数的补码,对其再求一次补码可得其真值,即-(65536-32769)=-32767。

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

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

c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)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.hint 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.hint 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); // 存活期存款。

(完整版)C语言程序设计课后习题答案

(完整版)C语言程序设计课后习题答案

C语言程序设计(第2版)课后习题答案第一章1.请参照本章例题,编写一个C程序,输出以下信息:**************************Very good!**************************解:#include<stdio.h>void main(){printf(“**************************”);printf(“\n”);printf(“Very good!\n”);printf(“\n”);printf(“**************************”);}2.编写一个C程序,输入a、b、c三个值,输出其中最大值。

解:#include<stdio.h>void main(){int a,b,c,max;printf(“请输入三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(max<b) max=b;if(max<c) max=c;printf(“最大数为: %d”,max);}第二章1.假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比。

计算公式为P=(1+r)^n,r为年增长率;n为年数;P为与现在相比的百分比。

解:#include<stdio.h>#include<math.h>void main(){double P, r=0.1, n=10;P=pow((1+r), n);printf(“%lf\n”, P);}3.请编程序将“China”译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。

例如,字母“A”后面第4个字母是“E”,“E”代替“A”。

因此,“China”应译为“Glmre”。

请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e’,并输出。

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

《C语言程序设计》课后习题参考答案
}
运行结果:13
4.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第12次落地时,第12次反弹多高?按四舍五入的方法精确到小数点后面四位。
#include "stdio.h"
main()
{
float hn,sn=100.0;
int i;
hn=sn/2;
for(i=2; i<=12; i++)
#include <math.h>
main()
{
int sum=0, i, j, yes;
for(i=2; i<=500; i++)
{
yes=1;
for(j=2; j<=sqrt(i); j++)
if(i%j==0)
{
yes=0;
break;
}
if(yes) sum+=i;
}
printf("%d\n", sum);
源代码
#include <stdio.h>
void main()
{
int a[5]={3,-5,8,2,9};
int sum=0;
float average = 0;
int max = a[0];
int min = a[0];
int i;
for(i=0; i<5;i++)
sum += a[i];
average = (float)sum/5;
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
void main( )

程序设计基础教程(c语言版)课后答案

程序设计基础教程(c语言版)课后答案

z习题解答目录1.2 习题解答 (3)1.2.1 选择题 (3)1.2.2 填空题 (3)1.2.3 编程题 (4)2.2 习题解答 (5)2.2.1 选择题 (5)2.2.2 填空题 (7)2.2.3 编程题 (8)3.2 习题解答 (11)3.2.1 选择题 (11)3.2.2 填空题 (12)3.2.3 编程题 (12)4.2 习题解答 (15)4.2.1 选择题 (15)4.2.2 填空题 (17)4.2.3 编程题 (18)5.2 习题解答 (29)5.2.1 选择题 (29)5.2.2 填空题 (31)5.2.3 编程题 (33)6.2 习题解答 (37)6.2.1 选择题 (37)6.2.2 填空题 (41)6.2.3 编程题 (43)7.2 习题解答 (67)7.2.1 选择题 (67)7.2.2 填空题 (68)7.2.3 编程题 (68)21.2 习题解答1.2.1 选择题1、B【分析】在一个C程序中必须有且只能有一个main函数,而且main函数可以在任何地方出现.2、C【分析】C 语言中合法以的标识符组成为:字母,数字,下划线,且数字不能打头,亦不能为关键字。

A中,-sub 不合法。

B 中4d不合法。

D 中void 为关键字。

3、【分析】4、C【分析】转义字符中,第一个\”输出“,第二\\输出\,第三个\b退格,把前一个\去掉了,第四个\’输出’,第五个\t跳格,第六个\”输出”,第七个\n输出换行。

5、C【分析】本题将10进制17,分别按8、16进制输出。

8的进制21=2*8+1*1=17(10, 16制11=1*16+1*1=17(10)1.2.2 填空题1、主【分析】一个C源程序中至少包括一个主函数,其他函数没有限制。

2、双引号。

【分析】两种写法都是允许的,使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找.使用双引号则表示首先在当前的源文件目录中查找,若未找到才到包含目录中去查找。

c程序设计第三版习题参考解答(全)

c程序设计第三版习题参考解答(全)

c程序设计第三版习题参考解答(全) C程序设计第三版习题参考解答本文为《C程序设计第三版习题参考解答》的全文内容。

为了更好地适应题目要求,文章将按照解答问题的方式进行分段,每个问题对应一个小节。

以下是各个问题的解答:第一章:C概述和程序设计基本原则1. 什么是计算机程序?计算机程序是一系列指令的集合,用于告诉计算机执行特定的任务。

它由一系列语句组成,每条语句都包含了计算机可以理解和执行的命令。

2. C语言的起源和发展历程是什么?C语言是由贝尔实验室的Dennis Ritchie于20世纪70年代初开发的一种通用高级编程语言。

C语言基于早期的B语言进行了扩展和改进,成为了应用广泛且高效的编程语言。

3. 编译和解释有什么区别?编译是将源代码一次性转换为机器语言的过程。

它将整个源代码文件编译成可执行文件,然后可以直接在计算机上运行。

解释是逐行解析源代码并立即执行的过程。

解释器逐行读取源代码并将其转换为机器代码,然后立即执行转换后的代码。

4. C程序的一般结构是什么样的?C程序的一般结构包括预处理指令、函数声明、全局变量声明、main函数以及其他函数的定义。

预处理指令用于包含头文件、定义宏等。

函数声明用于声明函数的名称和参数。

全局变量声明用于声明全局变量。

main函数是C程序的入口点,也是程序执行的起始位置。

第二章:C基本语法和数据类型1. C中的注释有哪些类型?在C中,注释分为单行注释和多行注释。

单行注释以"//"开头,多行注释以/*开头,以*/结尾。

2. 什么是变量?变量是在程序中用来存储数据的存储区域。

每个变量都有一个名称和一个数据类型,可以通过变量名来引用它所存储的数据。

3. C语言中的常量有哪些类型?C语言中的常量分为整型常量、实型常量、字符常量和字符串常量。

整型常量表示整数值,实型常量表示实数值,字符常量表示单个字符,字符串常量表示一串字符。

4. C语言中的运算符有哪些类型?C语言中的运算符包括算术运算符、关系运算符、逻辑运算符、赋值运算符、自增自减运算符等。

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

《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语言程序设计教程第二版课后习题答案

c语言程序设计教程第二版课后习题答案【篇一:c语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main)(3)printf() , scanf()第2章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2.填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6(5)3.000000 (6)双精度(double)(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10)%10)*100+(m/100)*10+m%10(12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2.填空题(1)用;表示结束(2){ }(3)y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0(5)上面未配对(6)default 标号(7)while , do while , for(8)do while(9)本次(10)本层 3.阅读程序,指出结果(1)yes(2)*(3)abother(4)28 70(5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12(11)i=6,k=4 (12)1,-2 4.程序填空(1)x:y , u:z(2)m=n , m!=0,m=m/10(3)teps , t*n/(2*n+1) , printf(“%lf\n”,2*s) (4)m%5==0 ,printf(“%d\n”,k) (5)cx=getchar() , cx!=front , cx(6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5.编程题(1). #include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; elsey=3*x-11;printf(%lf\n,y); return 0; } (2).#include stdio.h int main() {double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz)min=z;printf(min=%lf\n,min); return 0; } (3).#include stdio.h int main() {int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d);flag=(y%4==0y%100!=0||y%400==0);w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7;for(i=1;i=m;i++) {switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case6:s=151+d;break; case 7:s=181+d;break; case8:s=212+d;break; case 9:s=243+d;break; case10:s=273+d;break; case 11:s=304+d;break; case12:s=334+d;break;} }s=(w+s)%7; if(s==0)printf(星期日\n); elseprintf(星期%d\n,s); return 0; }(4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100)r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } (5).#include stdio.h int main() {char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } (6).#includestdio.h int main() {int m,k=2;printf(输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++;printf(%4d\n,m); return 0; } (7).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) {p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } (8).#includestdio.h int main(){int i,j,k;for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++)printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() {float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b-4)*b+3)*b)-6; do {x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h#includemath.h int main() {int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t;while(fabs(t)=eps) {t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; }printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() {unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) {t=t+(s%10)*p; p=p*10; }s=s/10; }printf(%u\n,t); return 0; }第4章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern (5)外部变量(6)编译,运行 3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5 i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5(7)30 (8)0 10 1 11 2 124.程序填空(1)float fun(float , float) , x+y,x-y, z+y,z-y (2)x , x*x+1 (3)s=0 , a=a+b 5.编程题(1).while(s!=0) #includestdio.h { unsigned int fun(unsigned int);p=p+s%10; int main() s=s/10; { } unsigned int s; return p; scanf(%u,s); } printf(%u\n,fun(s)); (2). return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsignedint s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《c语言程序设计》课后习题答案(第四版)谭浩强】t>1.1什么是计算机程序11.2什么是计算机语言11.3c语言的发展及其特点31.4最简单的c语言程序51.4.1最简单的c语言程序举例61.4.2c语言程序的结构101.5运行c程序的步骤与方法121.6程序设计的任务141-5 #include stdio.hint main ( ){ printf (**************************\n\n);printf( very good!\n\n);printf (**************************\n);return 0;}1-6#include stdio.hint main(){int a,b,c,max;printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c);max=a;if (maxb)max=b;if (maxc)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.hint 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.hint 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); // 存活期存款。

c程序设计第三版习题参考解答(全)

c程序设计第三版习题参考解答(全)

C程序设计(第三版)课后习题参考解答第1章C语言概述1.5 参照本章例题,编写一个C程序,输出以下信息:******************************Very Good!******************************解:main ( ){printf(“****************************** \n”);printf(“\n”);printf(“Very Good! \n”);printf(“\n”);printf(“****************************** \n”);}1.6 写一个程序,输入a,b,c三个值,输出其中最大者。

解:main ( ){int a,b,c,max;printf(“请输入三个数a,b,c: \n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf(“最大数为:%d ”,max);}第2章程序的灵魂——算法2.1 什么叫结构化的算法?为什么要提倡结构化的算法?解:由一些基本结构顺序组成的算法称为结构化的算法。

由于在基本结构之间不存在非顺序的跳转,流程的转移只存在于一个基本结构范围之内,因而提高了算法的质量。

2.7 什么叫结构化程序设计?它的主要内容是什么?解:结构化程序就是用高级语言表示的结构化算法。

它的主要内容包括“自顶向下,逐步细化”的分析方法和“模块化设计”的解决方法,以及“结构化编码”的实现方法。

第3章数据类型、运算符与表达式3.4将以下三各整数分别赋给不同类型的变量,请画出赋值后数据在内存中的存储形式。

注:如果没有学过二进制和补码,此题可以不做。

解:各数据在内存中的存储形式如下表所示:它是一个负数的补码,对其再求一次补码可得其真值,即-(65536-32769)=-32767。

《C程序设计》课后习题全部答案

《C程序设计》课后习题全部答案

第一章习题1.5编写一个C程序,输入以下信息:***************************************Very good!***************************************程序:#include <stdio.h>void main()//信息输出{printf("***************************************\n");printf(" V ery good! \n");printf("***************************************\n");}结果:1.6编写一个c程序,输入a,b,c3个值,输出其中最大者。

程序:#include<stdio.h>void main() //主函数{int max(int x,int y, int z);int a,b,c,d;scanf("%d,%d,%d",&a,&b,&c);d = max(a,b,c);printf("max = %d\n",d);}int max(int x,int y,int z)//三个数取最大{int m;if(x > y && x > z) m = x;if(y > x && y > z) m = y;if(z > x && z > y) m = z;return(m);}结果:1.7运行本章3个例题例一结果:例二结果:例三结果:第二章习题2.8(1)输出1900-2000年中的闰年程序:#include<stdio.h>void main(){int i;// int a;printf("1900-2000的闰年有:\n");for(i = 1900;i <= 2000;i ++)//依次判断闰年{if( (((i % 4) == 0) && ((i % 100) != 0)) ||(((i % 100) == 0) && ((i % 400) == 0)) ) // a = i;printf("%d\n",i);}}结果:(2)求a+ bx + c = 0的根。

杨长兴,刘卫国c++第二章课后题答案

杨长兴,刘卫国c++第二章课后题答案

• • • • • • • • • • • • • • • • • • •
Hale Waihona Puke break; case 3:cout<<"31"; break; case 5:cout<<"31"; break; case 7:cout<<"31"; break; case 8:cout<<"31"; break; case 10:cout<<"31"; break; case 12:cout<<"31"; break; default :cout<<"30";
• • • • • • • • • • • • • • • • • • •
9 #include<iostream> #include<cmath> #include<iomanip> using namespace std; double main() { double a,c,d; cout<<"请输入x"<<endl; cin>>a; do { c=((3*a-4)*a-5)*a+13; d=(9*a-8)*a-5; a=a-c/d; }while(fabs(c/d)>=1e-6); cout<<setprecision(9)<<a<<endl; return 0; }
• •
10 #include <iostream> using namespace std; void lingXing(int n) {
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题一一、选择题1.C2. C3.B4.C5.C6.D7.C8.A9.B10.D二、填空题1. 算法2. main3. ;4. cpp obj exe5. 符号定义6. 是10 是117. d ouble 18. -2649. 是410. m-m/n*n11. a为6 b为4 c为212. 为1三、问答题1.有点。

计算机程序设计语言模型是更规则、无二意性的语言模型。

2.书P33..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 2 6,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];};Void 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.链表就是把物理上不连续的存储块链接为逻辑上连续的存储块,每个存储块都包含一个指向下一个存储块的指针。

相关文档
最新文档