C语言程序设计(第三版)习题库答案
c程序设计第三版课后习题答案
c程序设计第三版课后习题答案C程序设计第三版课后习题答案C程序设计是计算机科学中一门重要的编程语言,它的应用广泛,被广泛应用于软件开发、嵌入式系统、操作系统等领域。
而C程序设计第三版是一本经典的教材,为学习C语言的初学者提供了全面而系统的知识讲解。
在学习过程中,课后习题是巩固知识的重要环节,下面将为大家提供一些C程序设计第三版课后习题的答案。
1. 习题一:编写一个C程序,计算并输出1到100之间所有奇数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i += 2) {sum += i;}printf("1到100之间所有奇数的和为:%d\n", sum);return 0;}```2. 习题二:编写一个C程序,判断一个输入的整数是否是素数。
```c#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) { if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数。
\n", num); } else {printf("%d不是素数。
\n", num); }return 0;}3. 习题三:编写一个C程序,将一个十进制数转换为二进制数。
```c#include <stdio.h>void decimalToBinary(int num) {if (num == 0) {return;}decimalToBinary(num / 2);printf("%d", num % 2);}int main() {int num;printf("请输入一个十进制数:");scanf("%d", &num);printf("转换为二进制数为:");decimalToBinary(num);printf("\n");return 0;}```4. 习题四:编写一个C程序,实现两个整数的交换。
C语言程序设计第三版谭浩强课后习题答案完整版
C语言程序设计第三版谭浩强课后习题答案完整版第一章1.5请参照本章例题,编写一个C程序,输出以下信息:**************************Very Good!**************************解:mian(){printf(“**************************”);printf(“\n”);printf(“Very Good!\n”);printf(“\n”);printf(“**************************”);}1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。
解:mian(){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);}第三章3.6写出以下程序运行的结果。
main(){char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);printf(“\t\b%c %c”,c4,c5);}解:aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabcAㄩN3.7要将"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语言程序设计课后习题参考答案习题一一、单项选择题1、C2、B3、B4、C5、D6、A7、C8、A二、填空题1、判断条件2、面向过程编程3、结构化4、程序5、面向对象方法6、基本功能操作、控制结构7、有穷性8、直到型循环结构9、算法10、可读性11、模块化12、对问题的分解和模块的划分习题二一、单项选择题1、B2、D3、C4、B5、A6、A7、B8、C二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C5、A6、D7、B8、D9、B 10、C 11、A 12、D 13、C 14、B 15、C 16、A17、B 18、C 19、C 20、D 21、A 22、D 23、D 24、D、A25、D 26、A二、填空题1、补码2、10^-138~10^138、15~163、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B 10、B二、填空题1、两, ;2、5.1690003、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车4、a=98,b=765.000000,c=4321.0000005、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车6、0,0,37、38、scanf(“%lf %lf %lf”,&a,&b,&c);9、13 13.000000 13.00000010、c=b-a;a=b+c;习题五一、单项选择题1、B2、D3、C4、B5、B6、D7、A8、B9、D二、填空题1、1 、02、k!=03、if(x>4||x<-4)printf(“%d”,x);else printf(“error!”);4、if(((x>=1&&x<=10)||(x>=200&&x<=210))&&(x%2!=0))Printf(“%d”,x);5、16、17、10!Right!8、a=09、2,110、0<a<b习题六一、单项选择题1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、204、115、3.66、*#*#*#$7、8 5 28、d=1.0 、k++、k<=n9、!(x<0)、x<amin习题七一、单项选择题1、B2、D3、C4、C5、A6、A7、D8、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i<263、break、i==84、a[i]>b[i]、i<3、j<55、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B2、C3、C4、A5、A6、A7、C8、D9、D 10、B 11、A 12、C 13、A 14、C 15、B二、填空题1、return 1、return n+sum(n-1)2、return 1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C6、C7、C8、C9、B 10、C 11、A 12、C 13、B 14、A 15、D 16、B17、C 18、A 19、B 20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max<*q、min>*q习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D 10、11、C 12、D 13、D 14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adabc defghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B6、D7、B8、A9、A 10、B 11、B 12、B 13、C 14、C 15、D 16、A17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\\zk04\\data\\txfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值。
《C语言程序设计教程》第三版课后习题参考答案
《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。
它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。
1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。
其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。
1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。
每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。
1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。
通过运算符和表达式可以进行各种数值计算和逻辑判断。
第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。
整型数据类型可以表示整数值,并具有不同的取值范围。
2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。
浮点型数据可以表示较大或较小的数值,并具有一定的精度。
2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。
字符型数据可以用于表示各种字符(包括字母、数字、符号等)。
2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。
C语言程序设计[第三版]习试题库答案解析
C 语言程序设计(第三版)习题库1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。
请编程序。
#include <stdio.h>main(){float r,h,C1,Sa,Sb,Va,Vb;scanf(__”%f ”__,&r);scanf(”%d ”,__&h _);;C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb );}2、输入一个华氏温度,要求输出摄氏温度。
公式为 c=5(F-32)/9输出要求有文字说明,取位2小数。
#include <stdio.h>main(){float F,c;scanf("%f",&F);____c=5*(F-32)/9______;printf("c=%.2f",c);}3、有一函数:⎪⎩⎪⎨⎧≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。
#include <stdio.h>main(){int x,y;printf("输入x :");scanf("%d",&x);if(x<1) { /* x<1 */y=x;printf("x=%3d, y=x=%d\n",x,y);} else if (____x<10_______){ /* 1≤x -10 */_____y=2*x-1_______;printf("x=%3d, y=2*x-1=%d\n",x,y);} else{ /* x≥10 */y=3*x-11;printf("x=%3d, y=3*x-11=%d\n",x# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d\n",y);}# include "stdio.h"main(){int x,y;scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}printf("%d",y);}scanf("%d",&x);if(x<1){ y=x;}else if(x>=1 && x<10){ y=2*x-1;}else{ y=3*x-11;}# include "stdio.h" main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x>=1 && x<10)y=2*x-1;elsey=3*x-11;printf("%d",y);},y);}}4、给定一个不多于5位的正整数,要求:①求它是几位数;②按逆序打印出各位数字。
c语言程序设计第三版谭浩强课后习题及答案
c语言程序设计第三版谭浩强课后习题及答案C语言程序设计是一门基础而重要的编程课程,谭浩强教授的《C语言程序设计》第三版是许多高校计算机专业学生的必修教材。
课后习题是检验学生对课程内容掌握程度的重要手段,以下是部分习题及答案的示例。
# 第一章:C语言概述习题1:简述C语言的特点。
答案: C语言是一种结构化编程语言,具有以下特点:1. 简洁、紧凑、贴近硬件。
2. 丰富的运算符和数据类型。
3. 具有结构化控制语句。
4. 支持模块化程序设计。
5. 可移植性好。
习题2:为什么说C语言具有“高级语言”的特点?答案: C语言被称为高级语言,因为它:1. 抽象了机器语言的复杂性。
2. 允许使用变量名代替内存地址。
3. 提供了丰富的控制结构和数据类型。
4. 支持高级的编程概念,如函数、数组和指针。
# 第二章:数据类型、运算符和表达式习题3:写出C语言中的基本数据类型。
答案: C语言中的基本数据类型包括:- 整型:`int`- 浮点型:`float` 和 `double`- 字符型:`char`习题4:解释赋值运算符的右结合性。
答案:赋值运算符的右结合性意味着当多个赋值运算符出现在同一个表达式中时,它们将从右向左进行计算。
例如,在表达式 `a = b = c;` 中,首先计算 `b = c`,然后将结果赋值给 `a`。
# 第三章:控制语句习题5:描述if语句的基本用法。
答案: if语句用于基于条件执行代码块。
基本语法如下:```cif (条件) {// 条件为真时执行的代码} else {// 条件为假时执行的代码}```其中条件是一个表达式,如果其值为真(非零),则执行if块中的代码;如果为假(零),则执行else块中的代码。
习题6:举例说明for循环的使用。
答案: for循环用于重复执行一段代码,直到给定条件不再满足。
基本语法如下:```cfor (初始化表达式;条件表达式;更新表达式) {// 循环体}```例如,打印0到9的数字:```cfor (int i = 0; i < 10; i++) {printf("%d ", i);}```以上是部分习题及答案的示例。
C语言程序设计 第三版 部分习题 (谭浩强 著) 清华大学出版社 课后答案
【习题1】一、简答题(在课本中寻找答案,略)1.1 C程序的基本结构包括哪些内容?1.2 如何定义标识符?1.3 输入格式、输出格式的组成包括哪些内容?1.4 C语言函数分为哪两类?1.5 计算表达式的值应该考虑哪些方面?1.6 上机调试程序的步骤如何?二、判断并改错1.7 C程序执行的入口是main()函数,所以main函数必须放在程序的开头。
错误:main函数可以放在程序的任何位置。
并不限定在程序的开头。
1.8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。
错误:不可以交叉出现,数据说明部分在执行语句部分的前面。
1.9 编辑与编译不是一回事。
错误:不是一回事。
编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。
1.10 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。
正确1.11 注释内容太多会影响程序的执行效率。
错误:不会影响程序的执行效率。
因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。
1.12 所有的数学公式可以直接出现在源程序中。
错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。
三、编程题1.13 在屏幕上输出自己名字的拼音。
提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用printf()函数。
1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。
提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f1.15 输入两个整数,输出其中最大者。
提示:模仿例1.31.16 输入三个整数,输出其中最小者。
提示: min(min(a,b),c);【习题2】一、简答题(在课本中寻找答案,略)2.1 常量与变量的区别?2.2 C语言中的标识符的定义规则?2.3 变量为什么要“先定义,后使用”?2.4 字符常量'a'与字符串常量"a"有何区别?2.5 大小写字母转换的规则是什么?2.6 变量的具有哪三种属性?二、单项选择题2.7 C语言中,int型数据在内存中的存储形式是(D)。
c程序设计第三版谭浩强课后答案
c程序设计第三版谭浩强课后答案C程序设计第三版是谭浩强教授编写的一本广受欢迎的C语言教材,它详细地介绍了C语言的基础知识和编程技巧。
这本书不仅适合初学者学习,也适合有一定基础的读者深入理解和掌握C语言。
课后答案对于学习者来说是一个重要的参考资源,可以帮助他们检验自己的学习成果和理解程度。
以下是一些C程序设计第三版谭浩强课后答案的示例,这些答案涵盖了书中的部分习题,以供读者参考:1. 习题1.3:编写一个C程序,输入两个整数,输出它们的和。
答案:```c#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("它们的和是:%d\n", sum);return 0;}```2. 习题2.4:使用if语句判断一个数是正数、负数还是零。
答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num > 0) {printf("这是一个正数。
\n");} else if (num < 0) {printf("这是一个负数。
\n");} else {printf("这是一个零。
\n");}return 0;}```3. 习题3.5:编写一个程序,计算并输出1到100的累加和。
答案:```c#include <stdio.h>int main() {int i, sum = 0;for (i = 1; i <= 100; i++) {sum += i;}printf("1到100的累加和是:%d\n", sum);return 0;}```4. 习题4.7:使用switch语句实现一个简单的计算器程序。
谭浩强《C程序设计》第三版习题答案(全)
谭浩强《C程序设计》第三版习题答案(全)第一章1.5#include <stdio.h>void main(){printf("* * * * * * * * *\n Very good!\n* * * * * * * * *\n");}1.6(法一)#include <stdio.h>main(){int a,b,c,max;scanf("%d,%d,%d",&a,&b,&c);max=(a>b)?a:b;max=(max>c)?max:c;printf("max=%d\n",max);}(法二)main(){int a,b,c,max;scanf("%d,%d,%d",&a,&b,&c);if(a>b&&a>c)max=a;else if (b>c)max=b;elsemax=c;printf("max=%d\n",max);}(法三)# 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 A,B;if(x>y) A=x;else A=y;if(z>A) B=z;else B=A;return(B);}第三章3.3(1)(10)10=(12)8=(a)16(2)(32)10=(40)8=(20)16(3)(75)10=(113)8=(4b)16(4)(-617)10=(176627)8=(fd97)16(5)(-111)10=(177621)8=(ff91)16(6)(2483)10=(4663)8=(963)16(7)(-28654)10=(110022)8=(9012)16(8)(21003)10=(51013)8=(520b)163.6aabb (8)cc (8)abc (7)AN3.7main(){char c1='C',c2='h',c3='i',c4='n',c5='a';c1+=4, c2+=4, c3+=4, c4+=4, c5+=4; printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5); }3.8main(){int c1,c2;c1=97;c2=98;printf("%c %c",c1,c2);}3.9(2)=3.53.109,11,9,103.12(1)24 (2)10 (3)60 (4)0 (5)0 (6)0第四章4.4main(){int a,b,c;long int u,n;float x,y,z;char c1,c2;a=3;b=4;c=5;x=1.2;y=2.4;z=-3.6;u=51274;n=128765;c1='a';c2='b';printf("\n");printf("a=%2d b=%2d c=%2d\n",a,b,c);printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x); printf("u=%6ld n=%9ld\n",u,n);printf("c1='%c'or %d(ASCII)\n",c1,c1);printf("c2='%c'or %d(ASCII)\n",c2,c2);}4.5575 767.856400,-789.12396267.856400,-789.12396267.86 -789.12,67.856400,-789.123962,67.856400,-789.123962 6.785640e+001,-7.89e+002A,65,101,411234567,4553207,d68765535,177777,ffff,-1COMPUTER, COM4.6x=8.5 y=71.82/c1=A c2=a/4.710 20Aa1.5 -3.75 +1.4,67.8/(空3)10(空3)20Aa1.5(空1)-3.75(空1)(随意输入一个数),67.8回车4.8main(){float pi,h,r,l,s,sq,sv,sz;pi=3.1415926;printf("input r,h\n");scanf("%f,%f",&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;sv=4.0/3.0*pi*r*r*r;sz=pi*r*r*h;printf("l=%6.2f\n",l);printf("s=%6.2f\n",s);printf("sq=%6.2f\n",sq);printf("vq=%6.2f\n",sv);printf("vz=%6.2f\n",sz);}4.9main(){float c,f;scanf("%f",&f);c=(5.0/9.0)*(f-32);printf("c=%5.2f\n",c);}4.10#include"stdio.h"main(){char c1,c2;scanf("%c,%c",&c1,&c2);putchar(c1);putchar(c2);printf("\n");printf("%c%c\n",c1,c2);}第五章5.3(1)0 (2)1 (3)1 (4)0 (5)15.4main(){int a,b,c;scanf("%d,%d,%d",&a,&b,&c); if(a<b)if(b<c)printf("max=%d\n",c);elseprintf("max=%d\n",b); else if(a<c)printf("max=%d\n",c); elseprintf("max=%d\n",a);}main(){int a,b,c,temp,max;scanf("%d,%d,%d",&a,&b,&c); temp=(a>b)?a:b;max=(c>temp)?c:temp;printf("max=%d",max);}5.5main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x<10)y=2*x-1;else y=3*x-11;printf("y=%d",y);}5.6main(){int score,temp,logic;char grade;logic=1;while(logic){scanf("%d",&score);if(score>=0&&score<=100)logic=0;}if(score==100)temp=9;elsetemp=(score-score%10)/10;switch(temp){case 9:grade='A';break;case 8:grade='B';break;case 7:grade='C';break;case 6:grade='D';break;case 5:case 4:case 3:case 2:case 1:case 0:grade='E';}printf"score=%d,grade=%c",score,grade);}5.7main(){long int num;int indiv,ten,hundred,thousand,ten_thousand,place;scanf("%ld",&num);if(num>9999) place=5;else if(num>999) place=4;else if(num>99) place=3;else if(num>9) place=2;else place=1;printf("place=%d\n",place);ten_thousand=num/10000;thousand=(num-ten_thousand*10000)/1000;hundred=(num-ten_thousand*10000-thousand*1000)/100;ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=num-ten_thousand*10000-thousand*1000-hundred*100-ten*10;switch(place){case 5:printf("%d,%d,%d,%d,%d\n",ten_thousand,thousand,hundred,ten,indiv);printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand);break;case 4:printf("%d,%d,%d,%d\n",thousand,hundred,ten,indiv);printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousand);break;case 3:printf("%d,%d,%d\n",hundred,ten,indiv);printf("%d,%d,%d\n",indiv,ten,hundred);break;case 2:printf("%d,%d\n",ten,indiv);printf("%d,%d\n",indiv,ten);break;case 1:printf("%d\n",indiv);printf("%d\n",indiv);}}5.8main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;scanf("%ld",&i);if(i<=1e5)bonus=i*0.1;else if(i<=2e5)bonus=bon1+(i-100000)*0.075;else if(i<=4e5)bonus=bon2+(i-200000)*0.05;else if(i<=6e5)bonus=bon4+(i-400000)*0.03;else if(i<=1e6)bonus=bon6+(i-600000)*0.015;else bonus=bon10+(i-1000000)*0.01;printf("bonus=%10.2f",bonus);}main(){long i;float bonus,bon1,bon2,bon4,bon6,bon10;int branch;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;scanf("%ld",&i);branch=i/100000;if(branch>10)branch=10;switch(branch){case 0:bonus=i*0.1;break;case 1:bonus=bon1+(i-100000)*0.075;break; case 2:case 3:bonus=bon2+(i-200000)*0.05;break; case 4:case 5:bonus=bon4+(i-400000)*0.03;break; case 6:case 7case 8:case 9:bonus=bon6+(i-600000)*0.015;break; case 10:bonus=bon10+(i-1000000)*0.01;}printf("bonus=%10.2f",bonus);}4.9main(){int t,a,b,c,d;scanf("%d,%d,%d,%d",&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("%d %d %d %d\n",a,b,c,d);}5.10main(){int h=10;float x,y,x0=2,y0=2,d1,d2,d3,d4;scanf("%f,%f",&x,&y);d1=(x-x0)*(x-x0)+(y-y0)*(y-y0);d2=(x-x0)*(x-x0)+(y+y0)*(y+y0);d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);d4=(x+x0)*(x+x0)+(y+y0)*(y+y0);if(d1>1&&d2>1&&d3>1&&d4>1)h=0; printf("h=%d",h);}第六章6.1main(){int a,b,num1,num2,temp;scanf("%d,%d",&num1,&num2);if(num1<num2){temp=num1;num1=num2;num2=temp;}a=num1;b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf("%d\n",a);printf("%d\n",num1*num2/a);}6.2#include"stdio.h"main(){char c;int letter=0,space=0,digit=0,other=0;while((c=getchar())!='\n'){if(c>='a'&&c<='z'||c>='A'&&c<='Z') letter++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;else other++;}printf("letter=%d\nspace=%d\ndigit=%d\nother=%d\n",letter,space,digit,other); }6.3main(){int a,n,count=1,sn=0,tn=0;scanf("%d,%d",&a,&n);while(count<=n){tn+=a;sn+=tn;a*=10;++count;}printf("a+aa+aaa+...=%d\n",sn);}6.4main(){float n,s=0,t=1;for(n=1;n<=20;n++){t*=n;s+=t;}printf("s=%e\n",s);}6.5main(){int N1=100,N2=50,N3=10;float k;float s1=0,s2=0,s3=0;for(k=1;k<=N1;k++)s1+=k;for(k=1;k<=N2;k++)s2+=k*k;for(k=1;k<=N3;k++)s3+=1/k;printf("s=%8.2f\n",s1+s2+s3);}6.6main(){int i,j,k,n;for(n=100;n<1000;n++){i=n/100;j=n/10-i*10;k=n%10;if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)printf("n=%d\n",n);}}6.7#define M 1000main(){int k0,k1,k2,k3,k4,k5,k6,k7,k8,k9;int i,j,n,s;for(j=2;j<=M;j++){n=0;s=j;for(i=1;i<j;i++){if((j%i)==0){n++;s=s-i;switch(n){case 1:k0=i;break;case 2:k1=i;break;case 3:k2=i;break;case 4:k3=i;break;case 5:k4=i;break;case 6:k5=i;break;case 7:k6=i;break;case 8:k7=i;break;case 9:k8=i;break;case 10:k9=i;break;}}}if(s==0){printf("j=%d\n",j);if(n>1)printf("%d,%d",k0,k1);if(n>2)printf(",%d",k2);if(n>3)printf(",%d",k3);if(n>4)printf(",%d",k4);if(n>5)printf(",%d",k5);if(n>6)printf(",%d",k6);if(n>7)printf(",%d",k7);if(n>8)printf(",%d",k8);if(n>9)printf(",%d\n",k9);}}}main(){static int k[10];int i,j,n,s;for(j=2;j<=1000;j++){n=-1;s=j;for(i=1;i<j;i++){if((j%i)==0){n++;s=s-i;k[n]=i;}}if(s==0){printf("j=%d\n",j);for(i=0;i<n;i++)printf("%d,",k[i]);printf("%d\n",k[n]);}}6.8main(){int n,t,number=20; float a=2;b=1;s=0;for(n=1;n<=number;n++) {s=s+a/b;t=a,a=a+b,b=t;}printf("s=%9.6f\n",s);}6.9main(){float sn=100.0,hn=sn/2; int n;for(n=2;n<=10;n++){sn=sn+2*hn;hn=hn/2;}printf("sn=%f\n",sn); printf("hn=%f\n",hn);}6.10main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1;day--;}printf("x1=%d\n",x1);}6.11#include"math.h"main(){float a,xn0,xn1;scanf("%f",&a);xn1=(xn0+a/xn0)/2;do{xn0=xn1;xn1=(xn0+a/xn0)/2;}while(fabs(xn0-xn1)>=1e-5);printf("a=%5.2f\n,xn1=%8.2f\n",a,xn1); }6.12#include"math.h"main(){float x,x0,f,f1;x=1.5;do{x0=x;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x=x0-f/f1;}while(fabs(x-x0)>=1e-5);printf("x=%6.2f\n",x);}6.13#include"math.h"main(){float x0,x1,x2,fx0,fx1,fx2;do{scanf("%f,%f",&x1,&x2);fx1=x1*((2*x1-4)*x1+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;}while(fx1*fx2>0);do{x0=(x1+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;if((fx0*fx1)<0){x2=x0;fx2=fx0;}else{x1=x0;fx1=fx0;}}while(fabs(fx0)>=1e-5);printf("x0=%6.2f\n",x0);}6.14main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf(" ");for(k=0;k<=2*i;k++)printf("*");printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=i;j++)printf(" ");for(k=0;k<=4-2*i;k++)printf("*");printf("\n");}}6.15main(){char i,j,k;for(i='x';i<='z';i++)for(j='x';j<='z';j++){if(i!=j)for(k='x';k<='z';k++){if(i!=k&&j!=k){if(i!='x'&&k!='x'&&k!='z')printf("\na--%c\tb--%c\tc--%c\n",i,j,k);}}}}第七章7.1#include <math.h>#define N 101main(){ int i,j,line,a[N];for (i=2;i<N;i++) a[i]=i;for (i=2;i<sqrt(N);i++)for (j=i+1;j<N;j++){if(a[i]!=0 && a[j]!=0)if (a[j]%a[i]==0)a[j]=0; } printf("\n");for (i=2,line=0;i<N;i++){ if(a[i]!=0){ printf("%5d",a[i]);line++; }if(line==10){ printf("\n");line=0; }}}7.2#define N 10main(){int i,j,min,temp,a[N];for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=0;i<N-1;i++){min=i;for(j=i+1;j<N;j++)if(a[min]>a[j])min=j;temp=a[i];a[i]=a[min];a[min]=temp;}for(i=0;i<N;i++)printf("%5d",a[i]);}7.3main(){float a[3][3],sum;int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++){scanf("%f",&sum);a[i][j]=sum;}for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%f",sum);}7.4main(){int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1,temp2,number, end,i,j;scanf("%d",&number);end=a[9];if(number>end) a[10]=number;else{for(i=0;i<10;i++){if(a[i]>number){temp1=a[i];a[i]=number;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;i<11;i++)printf("%6d",a[i]);}7.5#define N 5main(){int a[N]={8,6,5,4,1},i,temp;for(i=0;i<N/2;i++){temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}for(i=0;i<N;i++)printf("%4d",a[i]);}7.6#define N 11main(){int i,j,a[N][N];for(i=1;i<N;i++){a[i][i]=1;a[i][1]=1;}for(i=3;i<N;i++)for(j=2;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;i<N;i++){for(j=1;j<=i;j++)printf("%6d",a[i][j]);printf("\n");}}7.7main(){int a[16][16],i,j,k,p,m,n;p=1;while(p==1){scanf("%d",&n);if((n!=0)&&(n<=15)&&(n%2!=0))p=0;}for(i=1;i<=n;i++)for(j=1;j<=n;j++)a[i][j]=0;j=n/2+1;a[1][j]=1;for(k=2;k<=n*n;k++){i=i-1;j=j+1;if((i<1)&&(j>n)){i=i+2;j=j-1;}else{if(i<1)i=n;if(j>n)j=1;}if(a[i][j]==0)a[i][j]=k;else{i=i+2;j=j-1;a[i][j]=k;}}for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%3d",a[i][j]);printf("\n");}}7.8#define N 10#define M 10main(){int i,j,k,m,n,flag1,flag2,a[N][M],max,maxi,maxj; scanf("%d,%d",&n,&m);for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%d",&a[i][j]);flag2=0;for(i=0;i<n;i++){max=a[i][0];for(j=0;j<m;j++)if(max<a[i][j]){max=a[i][j];maxj=j;}for(k=0,flag1=1;k<n&&flag1;k++)if(max>a[k][maxj])flag1=0;if(flag1){ printf("\na[%d][%d]=%d\n",i,maxj,max);flag2=1;}}if(!flag2) printf("NOT");}7.9#include<stdio.h>#define N 15main(){int i,j,number,top,bott,min,loca,a[N],flag;char c;for(i=0;i<=N;i++)scanf("%d",&a[i]);flag=1;while(flag){scanf("%d",&number);loca=0;top=0;bott=N-1;if((number<a[0])||(number>a[N-1]))loca=-1;while((loca==0)&&(top<=bott)){min=(bott+top)/2;if(number==a[min]){loca=min;printf("number=%d,loca=%d\n",number,loca+1);}else if(number<a[min])bott=min-1;elsetop=min+1;}if(loca==0||loca==-1)printf("%d not in table\n",number);printf("continue Y/N or y/n\n");c=getchar();if(c=='N'||c=='n')flag=0;}}7.10main(){int i,j,uppn,lown,dign,span,othn;char text[3][80];uppn=lown=dign=span=othn=0;for(i=0;i<3;i++){gets(text[i]);for(j=0;j<80&&text[i][j]!='\0';j++){if(text[i][j]>='A'&&text[i][j]<='Z')uppn++;else if(text[i][j]>='a'&&text[i][j]<='z')lown++;else if(text[i][j]>='0'&&text[i][j]<='9')dign++;else if(text[i][j]==' ')span++;elseothn++;}}for(i=0;i<3;i++)printf("%s\n",text[i]);printf("uppn=%d\n",uppn);printf("lown=%d\n",lown);printf("dign=%d\n",dign);printf("span=%d\n",span);printf("othn=%d\n",othn);}7.11main(){static char a[5]={'*','*','*','*','*'};int i,j,k;char space=' ';for(i=0;i<=5;i++){printf("\n");for(j=1;j<=3*i;j++)printf("%1c",space);for(k=0;k<=5;k++)printf("%3c",a[k]);}}7.12#include<stdio.h>main(){int i,n;char ch[80],tran[80];gets(ch);i=0;while(ch[i]!='\0'){if((ch[i]>='A')&&(ch[i]<='Z'))tran[i]=26+64-ch[i]+1+64;else if((ch[i]>='a')&&(ch[i]<='z'))tran[i]=26+96-ch[i]+1+96;elsetran[i]=ch[i];i++;}n=i;for(i=0;i<n;i++)putchar(tran[i]);}7.13main(){char s1[80],s2[40];int i=0,j=0;scanf("%s",s1);scanf("%s",s2);while(s1[i]!='\0')i++;while(s2[j]!='\0')s1[i++]=s2[j++];s1[i]='\0';printf("s=%s\n",s1);}7.14#include<stdio.h>main(){int i,resu;char s1[100],s2[100];gets(s1);gets(s2);i=0;while((s1[i]==s2[i])&&(s1[i]!='\0'))i++;if(s1[i]=='\0'&&s2[i]=='\0')resu=0;elseresu=s1[i]-s2[i];printf("s1=%s,s2=%s,resu=%d\n",s1,s2,resu); }7.15#include"stdio.h"main(){char from[80],to[80];;int i;scanf("%s",from);for(i=0;i<=strlen(from);i++) to[i]=from[i];printf("%s\n",to);}第八章8.1hcf(u,v)int u,v;{int a,b,t,r;if(u>v){t=u;u=v;v=t;}a=u;b=v;while((r=b%a)!=0){b=a;a=r;}return(a);}lcd(u,v,h)int u,v,h;{return(u*v/h);}main(){int u,v,h,l;scanf("%d,%d",&u,&v);h=hcf(u,v);printf("H.C.F=%d\n",h);l=lcd(u,v,h);printf("L.C.D=%d\n",l);}8.2#include"math.h"float x1,x2,disc,p,q; greater_than_zero(a,b) float a,b;{x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a);}equal_to_zero(a,b)flaot a,b;{x1=x2=-b/(2*a);} smaller_than_zero(a,b)float a,b;{p=-b/(2*a);q=sqrt(-disc)/(2*a);}main(){float a,b,c;scanf("%f,%f,%f",&a,&b,&c);disc=b*b-4*a*c;if(fabs(disc)<=1e-5){equal_to_zero(a,b);printf("x1=%5.2f\tx2=%5.2f\n",x1,x2);}else if(disc>0){greater_than_zero(a,b);printf("x1=%5.2f\tx2=%5.2f\n",x1,x2);}else{smaller_than_zero(a,b);printf("x1=%5.2f+%5.2fi\tx2=%5.2f-%5.2fi\n",p,q,p,q);}}8.3main(){int number;scanf("%d",&number);if(prime(number))printf("yes");elseprintf("no");}int prime(number)int number;{int flag=1,n;for(n=2;n<number/2&&flag==1;n++)if(number%n==0)flag=0;return(flag);}8.4#define N 3int array[N][N];convert(array)int array[3][3];{int i,j,t;for(i=0;i<N;i++)for(j=i+1;j<N;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}main(){int i,j;for(i=0;i<N;i++)for(j=0;j<N;j++)scanf("%d",&array[i][j]);convert(array);for(i=0;i<N;i++){printf("\n");for(j=0;j<N;j++)printf("%5d",array[i][j]);}}8.5main(){char str[100];scanf("%s",str);inverse(str);printf("%s\n",str);}inverse(str)char str[];{char t;int i,j;for(i=0,j=strlen(str);i<strlen(str)/2;i++,j--) {t=str[i];str[i]=str[j-1];str[j-1]=t;}}8.6char concate(str1,str2,str)char str1[],str2[],str[];{int i,j;for(i=0;str1[i]!='\0';i++)str[i]=str1[i];for(j=0;str2[j]!='\0';j++)str[i+j]=str2[j];str[i+j]='\0';}main(){char s1[100],s2[100],s[100];scanf("%s",s1);scanf("%s",s2);concate(s1,s2,s);printf("\ns=%s",s);}8.7main(){char str[80],c[80];void cpy();gets(str);cpy(str,c);printf("\n%s\n",c);}void cpy(s,c)char s[],c[];{int i,j;for(i=0,j=0;s[i]!='\0';i++)if(s[i]=='a'||s[i]=='A'||s[i]=='e'||s[i]=='E'||s[i]=='i'|| s[i]=='I'||s[i]=='o'||s[i]=='O'||s[i]=='u'||s[i]=='U'){c[j]=s[i];j++;}c[j]='\0';}8.8main(){char str[80];scanf("%s",str);insert(str);}insert(str)char str[];{int i;for(i=strlen(str);i>0;i--){str[i*2]=str[i];str[i*2-1]=' ';}printf("%s\n",str);}8.9int alph,digit,space,others;main(){char text[80];gets(text);alph=0,digit=0,space=0,others=0;count(text);printf("\nalph=%d,digit=%d,space=%d,others=%d\n",alph,digit,space,others); }count(str)char str[];{int i;for(i=0;str[i]!='\0';i++)if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))alph++;else if(str[i]>='0'&&str[i]<='9')digit++;else if(strcmp(str[i],' ')==0)space++;elseothers++;}8.10int alph(c)char c;{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))return(1);elsereturn(0);}int longest(string)char string[];{int len=0,i,length=0,flag=1,place,point;for(i=0;i<=strlen(string);i++)if(alph(string[i]))if(flag){point=i;flag=0;}elselen++;else{flag=1;if(len>length){length=len;place=point;len=0;}}return(place);}main(){int i;char line[100];gets(line);for(i=longest(line);alph(line[i]);i++) printf("%c",line[i]);printf("\n");}8.11#define N 10char str[N];main(){int i,flag;for(flag=1;flag==1;){scanf("%s",str);if(strlen(str)>N)printf("input error");elseflag=0;}sort(str);for(i=0;i<N;i++)printf("%c",str[i]);}sort(str)char str[N];{int i,j;char t;for(j=1;j<N;j++)for(i=0;(i<N-j)&&(str[i]!='\0');i++)if(str[i]>str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}8.12#include<math.h>float solut(a,b,c,d)float a,b,c,d;{float x=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;x=x0-f/f1;}while(fabs(x-x0)>=1e-5);return(x);}main(){float a,b,c,d;scanf("%f,%f,%f,%f",&a,&b,&c,&d);printf("x=%10.7f\n",solut(a,b,c,d));}8.13main(){int x,n;float p();scanf("%d,%d",&n,&x);printf("P%d(%d)=%10.2f\n",n,x,p(n,x));}float p(tn,tx)int tn,tx;{if(tn==0)return(1);else if(tn==1)return(tx);elsereturn(((2*tn-1)*tx*p((tn-1),tx)-(tn-1)*p((tn-2),tx))/tn); }8.14#define N 10#define M 5float score[N][M];float a_stu[N],a_cor[M];main(){int i,j,r,c;float h;float s_diff();float highest();r=0;c=1;input_stu();avr_stu();avr_cor();printf("\n number class 1 2 3 4 5 avr");for(i=0;i<N;i++){printf("\nNO%2d",i+1);for(j=0;j<M;j++)printf("%8.2f",score[i][j]);printf("%8.2f",a_stu[i]);}printf("\nclassavr");for(j=0;j<M;j++)printf("%8.2f",a_cor[j]);h=highest(&r,&c);printf("\n\n%8.2f %d %d\n",h,r,c); printf("\n %8.2f\n",s_diff());}input_stu(){int i,j;float x;for(i=0;i<N;i++){for(j=0;j<M;j++){scanf("%f",&x);score[i][j]=x;}}}avr_stu(){int i,j;float s;for(i=0;i<N;i++){for(j=0,s=0;j<M;j++)s+=score[i][j];a_stu[i]=s/5.0;}}avr_cor(){int i,j;float s;for(j=0;j<M;j++){for(i=0,s=0;i<N;i++)s+=score[i][j];a_cor[j]=s/(float)N;}}float highest(r,c)int *r,*c;{float high;int i,j;high=score[0][0];for(i=0;i<N;i++)for(j=0;j<M;j++)if(score[i][j]>high){high=score[i][j];*r=i+1;*c=j+1;}return(high);}float s_diff(){int i,j;float sumx=0.0,sumxn=0.0;for(i=0;i<N;i++){sumx+=a_stu[i]*a_stu[i];sumxn+=a_stu[i];}return(sumx/N-(sumxn/N)*(sumxn/N)); }8.15#include<stdio.h>#define N 10void input_e(num,name)int num[];char name[N][8];{int i;for(i=0;i<N;i++){scanf("%d",&num[i]);gets(name[i]);}}void sort(num,name)int num[];char name[N][8];{int i,j,min,temp1;char temp2[8];for(i=0;i<N-1;i++){min=i;for(j=i;j<N;j++)if(num[min]>num[j])min=j;temp1=num[i];num[i]=num[min];num[min]=temp1;strcpy(temp2,name[i]);strcpy(name[i],name[min]);strcpy(name[min],temp2);}for(i=0;i<N;i++)printf("\n%5d%10s",num[i],name[i]);}void search(n,num,name)int n,num[];char name[N][8];{int top,bott,min,loca;loca=0;top=0;bott=N-1;if((n<num[0])||(n>num[N-1]))loca=-1;while((loca==0)&&(top<=bott)){min=(bott+top)/2;if(n==num[min]){loca=min;printf("number=%d,name=%s\n",n,name[loca]);}else if(n<num[min])bott=min-1;elsetop=min+1;}if(loca==0||loca==-1)printf("number=%d is not in table\n",n);}main(){int num[N],number,flag,c,n;char name[N][8];input_e(num,name);sort(num,name);for(flag=1;flag;){scanf("%d",&number);search(number,num,name);printf("continue?Y/N!");c=getchar();if(c=='N'||c=='n')flag=0;}}8.16#include<stdio.h>#define MAX 1000main(){int c,i,flag,flag1;char t[MAX];i=0;flag=0;flag1=1;while((c=getchar())!='\0'&&i<MAX&&flag1){if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f') {flag=1;t[i++]=c;}else if(flag){t[i]='\0';printf("\nnumber=%d\n",htoi(t));printf("continue?");c=getchar();if(c=='n'||c=='N')flag1=0;else{flag=0;i=0;}}}htoi(s)char s[];{int i,n;n=0;for(i=0;s[i]!='\0';i++){if(s[i]>='0'&&s[i]<='9')n=n*16+s[i]-'0';if(s[i]>='a'&&s[i]<='f')n=n*16+s[i]-'a'+10;if(s[i]>='A'&&s[i]<='F')n=n*16+s[i]-'A'+10;}return(n);}8.17#include<stdio.h>void convert(n)int n;{int i;if((i=n/10)!=0)convert(i);putchar(n%10+'0');}main(){int number;scanf("%d",&number);if(number<0){putchar('-');number=-number;}convert(number);}8.18main(){int year,month,day;int days;scanf("\n%d,%d,%d",&year,&month,&day); days=sum_day(month,day);if(leap(year)&&(month>=3))days+=1;printf("days=%d\n",days);。
C语言程序设计第三版谭浩强课后习题答案完整版
C语⾔程序设计第三版谭浩强课后习题答案完整版C语⾔程序设计第三版谭浩强课后习题答案完整版第⼀章1.5请参照本章例题,编写⼀个C程序,输出以下信息:**************************值,输出其中最⼤值。
解:mian(){int a,b,c,max;printf(“请输⼊三个数a,b,c:\n”);scanf(“%d,%d,%d”,&a,&b,&c);max=a;if(maxmax=b;if(maxmax=c;\1aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc AㄩN3.7 要将"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%c%c%c\n",c1,c2,c3,c4,c5); }运⾏结果:密码是Glmre3.9求下⾯算术表达式的值。
(1)x+a%3*(int)(x+y)%2/4设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设量。
(1)a+=a (2) a-=2 (3) a*=2+3 (4)a/=a+a(5) a%=(n%=2),n的值等于5(6)a+=a-=a*=a解:(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0第四章4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a ’,c2=c1=c2=printf("a=%2d b=%2dc=%2d\n",a,b,c);printf("x=%f,y=%f,z=%f\n",x,y,z); printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x);printf("u=%6ld n=%9ld\n",u,n);printf("%s %s %d%s\n","c1=’a’","or",c1,"(ASCII)");printf("%s %s %d%s\n","c2=’a’","or",c2,"(ASCII)"); }ˊA ˊ,;); 4.8设圆半径r=1.5,圆柱⾼h=3,求圆周长、圆⾯积、圆球表⾯积、圆球体积、圆柱体积。
C语言程序设计(第三版)习题库答案
x1=__(x0+a/x0)/2__;
} while(__x1>1e-5__);
printf("%g\n",x1);
}
3x2x
15、用牛顿迭代法求方程2x4360在1.5附近的根。
#include <stdio.h>
#include __<math.h>__
#define f(x) 2*x*x*x-4*x*x+3*x-6
main(){
int x,y,z,t=0;
scanf("%d %d %d",&x,&y,&z);
if(x>y)
{t=y;y=x;x=t;}
if(x>z)
{t=z;z=x;x=t;}
if(y>z)
{t=z;z=y;y=t;}
printf("%d\n",z);
}
6、输入两个正整数m和n,求其最大公约数和最小公倍数。
落地时共经过多少米?第10次反弹多高?
#include <stdio.h>
main(){
int i,n=10;
double h=100,s=100;
for(i=2;i<=n;i++){
h*=__0.5 __;
s%f,h=%f\n",s,h);
}
13、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一
}
2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9
输出要求有文字说明,取位2小数。
#include <stdio.h>
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语言)第3版习题及答案
第1章C语言概述【习题1-1】简述C语言的特点。
答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。
【习题1-2】简述上机调试运行C程序的操作步骤。
答:上机运行C语言程序的操作步骤为:启动Visual C++ 6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。
【习题1-3】上机运行本章的3个例题。
答:略。
【习题1-4】请从以下的4个选项中选择一个正确答案。
(1)A (2)A (3)C (4)B【习题1-5】参照本章例题,编写一个C语言程序,输出以下信息:**************Nice to meet you!**************编写程序如下:#include<stdio.h>void main(){printf("**************\n");printf("Nice to meet you!\n");printf("**************\n");}第2章基本数据类型和运算符【习题2-1】上机编辑并调试本章所有例题。
答:略。
【习题2-2】下面哪些是合法的常量?⑴20 0.5 012 13e5.1 E-5 8e4 5. 0x6a⑵'mn' "OK" "a" '\012' "a/b" '\\'答:⑴合法的常量有:20 0.5 012 8e4 5. 0x6a⑵合法的常量有: "OK" "a" '\012' "a/b" '\\'【习题2-3】下面的变量名中哪些是合法的?A&b abc123 abc% AbC a_b_cint _abc 123abc a\b?ca bc a*bc 'a'bc答:合法的变量名有:abc123 AbC a_b_c _abc【习题2-4】指出下面的变量定义哪些是正确的,哪些是不正确的,为什么?⑴Int i,j;⑵float a,b;⑶int a,b;float a,b;⑷float a,int b;⑸char 'a';答:⑴错误,因为关键字Int 应该全为小写字母⑵正确⑶错,因为同一变量在程序的同一处不应该声明为不同的数据类型⑷错,因为不同类型的变量要分别声明,其间应使用分号,而不是逗号⑸错,'a'表示字符常量,不能用作变量名【习题2-5】把下列数学式子写成C 语言表达式。
c程序设计第三版课后答案完整版
c程序设计第三版课后答案完整版C程序设计第三版课后答案完整版C程序设计是一门基础而重要的计算机科学课程,它不仅教授编程语言本身,还涵盖了程序设计的基本概念和技巧。
第三版的教材在内容上进行了更新和扩充,以适应现代编程教育的需求。
以下是基于第三版C 程序设计教材的课后答案完整版,供同学们参考学习。
第一章:C语言概述1. C语言的历史和特点- C语言由Dennis Ritchie在1972年开发,用于UNIX操作系统。
- 特点包括跨平台、高效、灵活、可移植。
2. C语言的基本组成- C程序由函数、变量、表达式和控制语句组成。
3. C程序的编写和运行过程- 编写源代码,编译,链接,生成可执行文件,运行。
第二章:数据类型、运算符和表达式1. 基本数据类型- 整型(int)、浮点型(float)、双精度型(double)、字符型(char)。
2. 变量声明和初始化- 使用类型说明符声明变量,初始化赋予初值。
3. 运算符- 算术运算符、关系运算符、逻辑运算符、位运算符等。
4. 表达式- 表达式由操作数和运算符组成,用于计算结果。
第三章:控制语句1. 条件语句- if语句、switch语句。
2. 循环语句- while循环、do-while循环、for循环。
3. 跳转语句- break语句、continue语句、return语句、goto语句。
第四章:函数1. 函数的定义和声明- 函数由返回类型、函数名、参数列表和函数体组成。
2. 函数的调用- 调用函数时,需要传递参数并接收返回值。
3. 函数的作用域和生命周期- 局部变量的作用域仅限于函数内部,全局变量可在程序中多处访问。
第五章:数组和字符串1. 数组的基本概念- 存储相同类型元素的集合。
2. 字符串的操作- 字符串是字符数组,以空字符'\0'结尾。
3. 常用字符串处理函数- strcpy、strcat、strlen、strcmp等。
第六章:指针1. 指针的基本概念- 指针变量存储另一个变量的地址。
C语言程序设计(第三版)课后习题答案
C程序设计(第三版)答案-谭浩强程序是在VC6.0下编译的,所以头文件和TC的不太一样!4-8#include <iostream>#define pi 3.1415void main(){float r,h,rl,ra,ss,sv,cv;printf("输入圆的半径和圆柱的高\n\n");scanf("%f%f",&r,&h);rl=2*pi*r;ra=pi*r*r;ss=4*pi*r*r;sv=4*pi*r*r*r/3;cv=ra*h;printf("圆周长为:%f\n\n圆面积为:%f\n\n圆球表面积为:%f\n\n圆球体积为:%f\n\n 圆柱体积为:%f\n\n",rl,ra,ss,sv,cv);}4-9#include <iostream>void main(){float F,c;printf("输入一个华氏温度\n\n");scanf("%f",&F);c=5*(F-32)/9;printf("摄氏温度为:%.2f\n\n",c);}第五章5-4#include <iostream>void main(){int a,b,c,max;printf("输入三个整数a,b,c\n\n"); scanf("%d%d%d",&a,&b,&c);if(a>b) max=a;else max=b;if(max<c) max=c;printf("最大的数为:%d\n\n",max); }5-5#include <iostream>void main(){float x,y;printf("输入x\n\n");scanf("%f",&x);if(x<1) y=x;else if(x<10) y=2*x-1;else y=3*x-11;printf("y=%f\n\n",y);}5-6#include <iostream>void main(){float m;int n;printf("输入成绩\n\n");scanf("%f",&m);n=m/10;switch(n){case 0:case 1:case 2:case 3:case 4:case 5:printf("E\n\n");break;case 6:printf("D\n\n");break;case 7:printf("C\n\n");break;case 8:printf("B\n\n");break;case 9:case 10:printf("A\n\n");break;}}5-7#include <iostream>#include <math.h>void main(){int a,b,c,i,j,n;printf("输入五位正整数\n\n");scanf("%d",&a);printf("\n\n");c=a;for(i=1;;i++){b=c%10;c=c/10;printf("%d",b);if(c==0){printf("\n\n");printf("正整数为%d位数\n\n",i);break;}}c=a;for(j=i-1;j>=0;j--){n=pow(10,j);b=c/n;c=c%n;printf("%d\n",b);}}5-8if语句:#include <iostream>void main(){int I;float bonus;printf("输入当月利润I\n\n");scanf("%d",&I);if(I<=100000) bonus=I/10;else if(I<=200000) bonus=10000+(I-100000)*7.5/100;else if(I<=400000) bonus=10000+7500+(I-200000)*5/100;else if(I<=600000) bonus=10000+7500+10000+(I-400000)*3/100;else if(I<=1000000)bonus=10000+7500+10000+6000+(I-600000)*1.5/100;else bonus=10000+7500+10000+6000+6000+(I-1000000)*1/100; printf("应发奖金数为:%f\n\n",bonus);}switch语句:#include <iostream>void main(){int I,n;float bonus;printf("输入当月利润I\n\n");scanf("%d",&I);if(I>1000000) n=10;else n=I/100000;switch(n){case 0:bonus=I/10;break;case 1:bonus=10000+(I-100000)*7.5/100;break;case 2:case 3:bonus=10000+7500+(I-200000)*5/100;break;case 4:case 5:bonus=10000+7500+10000+(I-400000)*3/100;break;case 6:case 7:case 8:case 9:bonus=10000+7500+10000+6000+(I-600000)*1.5/100;break;case 10:bonus=10000+7500+10000+6000+6000+(I-1000000)*1/100;break; }printf("应发奖金数为:%f\n\n",bonus);}5-9#include <iostream>void main(){int a,b,c,d,temp,min;printf("输入四个数a,b,c,d\n\n");scanf("%d%d%d%d",&a,&b,&c,&d);if(a>b){temp=a;a=b;b=temp;}if(a>c){temp=a;a=c;c=temp;}if(a>d){temp=a;a=d;d=temp;}printf("由小到大排列为:\n\n"); printf("%d ",a);if(b>c){temp=b;b=c;c=temp;}if(b>d){temp=b;b=d;d=temp;}printf("%d ",b);if(c>d){temp=c;c=d;d=temp;}printf("%d ",c);printf("%d",d);}5-10#include <iostream>#include <math.h>void main(){float x,y,a,b,c,d;printf("输入点的坐标\n\n");scanf("%f%f",&x,&y);a=sqrt((2-x)*(2-x)+(2-y)*(2-y));b=sqrt((2-x)*(2-x)+(-2-y)*(-2-y));c=sqrt((-2-x)*(-2-x)+(-2-y)*(-2-y));d=sqrt((-2-x)*(-2-x)+(2-y)*(2-y));if(a<=1||b<=1||c<=1||d<=1) printf("该点建筑高度为:10m"); else printf("该点建筑高度为:0m");}第六章:6-1#include <iostream>#include <math.h>void main(){int m,n,max,min,i,k;printf("输入两个正整数\n\n");scanf("%d%d",&m,&n);if(m>n) k=n;else k=m;for(i=1;i<=k;i++){if((m%i==0)&&(n%i==0)) max=i;}printf("最大公约数为:%d\n\n",max);if(m>n) k=m;else k=n;for(i=k;;i++){if((i%m==0)&&(i%n==0)){min=i;break;}}printf("最小公倍数为:%d\n\n",min);}6-2#include <iostream>void main(){char c;int l=0,b=0,n=0,e=0;printf("输入一行字符\n\n");while((c=getchar())!='\n'){if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) l+=1;else if(c==' ') b+=1;else if(c>=48&&c<=57) n+=1;else e+=1;}printf("英文字母个数为:%d\n\n空格个数为:%d\n\n数字个数为:%d\n\n其他字符个数为:%d\n\n",l,b,n,e);}6-3#include <iostream>#include <math.h>void main(){int n,k,i;float a,s=0;printf("输入n和a\n\n"); scanf("%d%f",&n,&a);for(i=0;i<n;i++){k=pow(10,i);s=s+(n-i)*a*k;}printf("和s=%f\n\n",s); }6-4#include <iostream>void main(){int n,s,S=0,i,j;printf("输入n\n\n"); scanf("%d",&n);for(i=1;j<=n;i++){s=1;for(j=1;j<=i;j++){s=s*j;}S+=s;}printf("和S=%d\n\n",S); }6-5#include <iostream>void main(){int i,m,n,t;int s1=0,s2=0;float s3=0,s,l;printf("输入m,n,t的值\n\n"); scanf("%d%d%d",&m,&n,&t);for(i=1;i<=m;i++){s1+=i;}for(i=1;i<=n;i++){s2+=i*i;}for(i=1;i<=t;i++){l=1.0/i;s3+=l;}s=s1+s2+s3;printf("和s=%f",s);}6-6#include <iostream>void main(){int m,n,k,i,j;printf("水仙花数为:\n");for(i=100;i<=999;i++){j=i;m=j%10;j=j/10;n=j%10;k=j/10;if(i==m*m*m+n*n*n+k*k*k) printf("%d ",i); }}6-7#include <iostream>#include <math.h>void main(){int i,j,k,s;for(i=1;i<=1000;i++){s=0;for(j=1;j<i;j++){if(i%j==0) s+=j;}if(s==i){printf("\n\n");printf("%d its factors are ",i);for(j=1;j<i;j++){if(i%j==0) printf("%d ",j);}}}}6-8#include <iostream>void main(){int n,i;float f1,f2,s,temp;printf("输入n\n\n");scanf("%d",&n);f1=2.0;f2=3.0;s=f1;for(i=1;i<=n-1;i++){s+=f2/f1;temp=f2;f2=f1+f2;f1=temp;}printf("前%d项和为%f",n,s);}6-9#include <iostream>#include <math.h>void main(){int i,n,l=100;float m,s=0;printf("输入n\n\n");scanf("%d",&n);m=l;for(i=1;i<=n;i++){s+=2*m;m=m*0.5;}printf("第%d次落地时经过%f米\n\n",n,s-l); printf("第%d次落地后反弹%f米\n\n",n,m); }6-10void main(){int m=1,n,i;printf("输入n\n\n");scanf("%d",&n);for(i=1;i<n;i++){m=(m+1)*2;}printf("一共摘了%d个桃子\n\n",m);}6-11#include <iostream>#include <math.h>void main(){float a,x1,x2;printf("输入a\n\n");scanf("%f",&a);x1=a/2;loop:x2=(x1+a/x1)/2;if(fabs(x1-x2)>1e-5){x1=x2;goto loop;}else printf("\n\na的平方根为%f\n\n",x2); }6-12#include <math.h>void main(){float f(float);float xpoint(float,float);float root(float,float);float x,x1,x2,f1,f2;do{printf("输入x1,x2\n\n");scanf("%f%f",&x1,&x2);f1=f(x1);f2=f(x2);}while(f1*f2>0);x=root(x1,x2);printf("方程在1.5附近的根为:%f\n\n",x); }float f(float x){float y;y=2*x*x*x-4*x*x+3*x-6;return(y);}float xpoint(float x1,float x2){float y;y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)); return(y);}float root(float x1,float x2){float x,y,y1;y1=f(x1);do{x=xpoint(x1,x2);y=f(x);if(y*y1>0){y1=y;x1=x;}elsex2=x;}while(fabs(y)>1e-4);return(x);}6-13#include <iostream>#include <math.h>void main(){float f(float);float root(float,float);float x,x1,x2,f1,f2;do{printf("输入x1,x2\n\n");scanf("%f%f",&x1,&x2);f1=f(x1);f2=f(x2);}while(f1*f2>0);x=root(x1,x2);printf("方程的根为:%f\n\n",x); }float f(float x){float y;y=2*x*x*x-4*x*x+3*x-6;return(y);}float root(float x1,float x2){float x,y;do{y=f((x1+x2)/2);if(y<-1e-4){x1=(x1+x2)/2;}else if(y>1e-4){x2=(x1+x2)/2;}else x=(x1+x2)/2;}while(fabs(y)>1e-4);return(x);}6-14#include <iostream>void main(){int i,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++){printf(" ");}for(k=0;k<=2*i;k++){printf("*");}printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=i;j++){printf(" ");}for(k=0;k<=4-2*i;k++){printf("*");}printf("\n");}}6-15#include <iostream>void main(){char i,j,k;for(i='X';i<='Z';i++)for(j='X';j<='Z';j++){if(i!=j)for(k='X';k<='Z';k++){if(i!=k&&j!=k){if(i!='X'&&k!='X'&&k!='Z')printf("\nA--%c\nB--%c\nC--%c\n",i,j,k);}}}}第七章7-1#include <iostream>#include <math.h>void main(){int i,j;int a[101];printf("素数为:\n\n");for(i=1;i<=100;i++){a[i]=i;}for(i=3;i<=100;i++){for(j=2;j<=sqrt(a[i]);j++){if(a[i]%j==0){a[i]=0;break;}}}for(i=2;i<=100;i++){if(a[i]!=0) printf("%d ",a[i]); }}7-2#include <iostream>void main(){int a[10],i,j,temp;printf("输入10个整数\n\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}for(i=0;i<10;i++){for(j=i+1;j<10;j++){if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}}printf("排序后的输出为:\n\n"); for(i=0;i<10;i++){printf("%d ",a[i]);}printf("\n\n");}7-3#include <iostream>void main(){int a[9],i,s=0;printf("输入一个3*3整型矩阵\n\n"); for(i=0;i<9;i++){scanf("%d",&a[i]);}for(i=0;i<9;i+=4){s+=a[i];}printf("对角线元素之和为:%d\n\n",s); }7-4#include <iostream>void main(){int a[11]={1,2,3,4,5,6,7,8,9,10};int i,j,n,temp1,temp2;printf("输入一个数n\n\n");scanf("%d",&n);if((a[0]-a[9])>0){if(n<=a[9]){a[10]=n;}else{for(i=0;i<10;i++)if(a[i]<n){temp1=a[i];a[i]=n;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}}if((a[9]-a[0])>0){if(n>=a[9]){a[10]=n;}else{for(i=0;i<10;i++){if(a[i]>n){temp1=a[i];a[i]=n;for(j=i+1;j<11;j++){temp2=a[j];a[j]=temp1;temp1=temp2;}break;}}}for(i=0;i<11;i++){printf("%d ",a[i]);}}7-5#include <iostream>#define N 5void main(){int a[N];int i,temp;printf("输入5个个数\n\n"); for(i=0;i<N;i++){scanf("%d",&a[i]);}for(i=0;i<=N/2;i++){temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}for(i=0;i<N;i++){printf("%d ",a[i]);}printf("\n\n");}7-6#include <iostream>#include <stdio.h>void main(){int a[10][10]={1};int i,j;for(i=1;i<10;i++){for(j=0;j<=i;j++){a[i][0]=a[i-1][0];a[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0;i<10;i++){for(j=0;j<=i;j++){printf("%4d",a[i][j]);}printf("\n\n");}}7-7#include <iostream>#define N 7void main(){int a[N][N]={0};int i,j,k;i=0;j=(N-1)/2;a[i][j]=1;for(k=2;k<=N*N;k++) {i=i-1;j=j+1;if((i<0)&&(j>N-1)){i=i+2;j=j-1;}else{if(i<0) i=N-1;if(j>N-1) j=0;}if(a[i][j]==0){a[i][j]=k;}else{i=i+2;j=j-1;a[i][j]=k;}}for(i=0;i<N;i++){for(j=0;j<N;j++){printf("%4d",a[i][j]);}printf("\n\n");}}7-8#include <iostream>void main(){int a[4][4],i,j,max,min,k1,k2,flag; printf("输入一个4*4的数组\n\n"); for(i=0;i<4;i++){for(j=0;j<4;j++){scanf("%d",&a[i][j]);}}printf("鞍点为:\n\n");for(i=0;i<4;i++){max=a[i][0];for(j=0;j<4;j++){if(max<=a[i][j]){max=a[i][j];k1=j;}}min=a[0][k1];for(j=0;j<4;j++)if(min>=a[j][k1]){min=a[j][k1];k2=j;}}if((max!=min)) flag=0;else{flag=1;printf("%d\n",max);break;}}if(flag==0) printf("不存在\n\n");}7-9#include <iostream>void main(){float a[15]={100,98,65,55,34,23,23,12,11,9,7,6,4,3,2},n; int i,low,high,mid;printf("原数组为:\n\n");for(i=0;i<15;i++){printf("%6.2f",a[i]);}printf("\n\n输入一个数n\n\n");scanf("%f",&n);low=0;high=14;while(low<=high){mid=(low+high)/2;if(a[mid]==n){printf("该数是数组中第%d个元素\n\n",mid+1);i++;break;}else if(a[mid]<n) high=mid-1;else low=mid+1;}if(i==0) printf("无此数!!\n\n");}7-10#include <iostream>void main(){char a[3][80];int i,j,upon=0,low=0,num=0,spa=0,oth=0;for(i=0;i<3;i++){printf("输入第%d行文字\n\n",i);gets(a[i]);for(j=0;j<80&&a[i][j]!='\0';j++){if(a[i][j]>='A'&&a[i][j]<='Z') upon+=1;else if(a[i][j]>='a'&&a[i][j]<='z') low+=1;else if(a[i][j]>=48&&a[i][j]<=57) num+=1;else if(a[i][j]==' ') spa+=1;else oth+=1;}printf("英文大写字母:%d个\n\n",upon);printf("英文小写字母:%d个\n\n",low);printf("数字: %d个\n\n",num); printf("空格: %d个\n\n",spa); printf("其他字符: %d个\n\n",oth);}7-11#include <iostream>void main(){int i,j;for(i=0;i<5;i++){for(j=0;j<=i;j++){printf(" ");}for(j=i;j<i+5;j++){printf("* ");}printf("\n");}}7-12#include <iostream>void main(){char a[80],b[80];int i,j;printf("输入密码\n\n");gets(a);for(i=0;i<80&&a[i]!='\0';i++){if((a[i]>='A')&&(a[i]<='Z')){b[i]=155-a[i];}else if((a[i]>='a')&&(a[i]<='z')){b[i]=219-a[i];}else b[i]=a[i];}b[i]='\0';printf("密文为:\n\n");puts(a);printf("原文为:\n\n");puts(b);}7-13#include <iostream>void main(){char a[80],b[80];int i,j,k;printf("输入第1个字符串\n\n");gets(a);printf("输入第2个字符串\n\n");gets(b);for(i=0;i<80;i++){if(a[i]=='\0'){k=i;for(j=0;j<80&&b[j]!='\0';j++){a[k]=b[j];k++;}a[k]='\0';break;}}printf("连接后字符串为:\n\n");puts(a);}7-14#include <iostream>void main(){char a[80],b[80];int i,j,k;printf("输入第1个字符串\n\n");gets(a);printf("输入第2个字符串\n\n");gets(b);for(i=0;(i<80)&&(a[i]!='\0')&&(b[i]!='\0');i++) {k=a[i]-b[i];if(k>0){printf("\n\n字符串a大于字符串b:%4d\n\n",k);break;}else if(k<0){printf("\n\n字符串a小于字符串b:%4d\n\n",k);break;}else k=0;}if(k==0) printf("\n\n字符串a等于字符串b:%4d\n\n",k); }7-15#include <iostream>void main(){char s1[80],s2[80];int i,j;printf("输入数组s1\n\n");gets(s1);printf("输入数组s2\n\n");gets(s2);for(i=0;i<80&&s2[i]!='\0';i++){s1[i]=s2[i];}s1[i]='\0';printf("\n\n复制后的数组为:\n\n");puts(s1);}第八章8-1#include <iostream>void main(){int max_div(int,int);int min_mul(int,int);int m,n;printf("输入两个整数\n\n");scanf("%d%d",&m,&n);if(max_div(m,n)==0) printf("\n\n无最大公约数为\n\n"); else printf("\n\n最大公倍数为:%d\n\n",max_div(m,n)); printf("\n\n最大公倍数为:%d\n\n",min_mul(m,n));}int max_div(int k1,int k2){int min(int,int);int i,k,flag;k=min(k1,k2);for(i=k;i>1;i--){if((k1%i==0)&&(k2%i==0)){return(i);flag=1;break;}else flag=0;}if(flag==0) return(0);}int min_mul(int k1,int k2){int max(int,int);int i,k;k=max(k1,k2);for(i=k;;i++){if((i%k1==0)&&(i%k2==0)){return(i);}}}int min(int k1,int k2){int min;min=k1;if(k1>k2) min=k2;return(min);}int max(int k1,int k2){int max;max=k1;if(k1<k2) max=k2;return(max);}8-2#include <iostream>#include <math.h>void main(){void root1(float,float,float);void root2(float,float,float);void root3(float,float,float);float a,b,c,k;printf("输入a,b,c的值\n\n");scanf("%f%f%f",&a,&b,&c);k=b*b-4*a*c;if(k>0) root1(a,b,c);else if(k==0) root2(a,b,c);else root3(a,b,c);}void root1(float a,float b,float c){float p,q;p=-b/(2*a);q=sqrt(b*b-4*a*c)/(2*a);printf("\n\n方程的两个根为:x1=%6.2f,x2=%6.2f\n\n",p+q,p-q); }void root2(float a,float b,float c){p=-b/(2*a);printf("\n\n方程的两个根为:x1=x2=%6.2f\n\n",p);}void root3(float a,float b,float c){float p,q;p=-b/(2*a);q=sqrt(-b*b+4*a*c)/(2*a);printf("\n\n方程的两个根为:x1=%6.2f+%6.2fi,x2=%6.2f-%6.2fi\n\n",p,q,p,q); }8-3#include <iostream>void main(){int prime(int);int x;printf("输入一个正整数\n\n");scanf("%d",&x);if(prime(x)==0) printf("\n\n此数为素数\n\n");else printf("\n\n此数不是素数\n\n");}int prime(int x){int i,flag;for(i=2;i<x;i++){if(x%i==0){flag=1;break;}else flag=0;}return(flag);}8-4#include <iostream>void main(){void exchange(int a[3][3]);int a[3][3],i,j;printf("输入一个3*3的矩阵\n\n"); for(i=0;i<3;i++){for(j=0;j<3;j++){scanf("%d",&a[i][j]);}}exchange(a);printf("\n\n转置后的矩阵为:\n\n"); for(i=0;i<3;i++){for(j=0;j<3;j++){printf("%d ",a[i][j]);}printf("\n");}}8-5#include <iostream>void main(){void exchange(char str[]);char str[80];printf("输入一个字符串\n\n");gets(str);exchange(str);printf("\n\n反序字符串为:\n\n"); puts(str);}void exchange(char str[]){int i,j,k;char temp;for(i=0;;i++){if(str[i]=='\0') break;}k=i/2;for(j=0;j<=k;j++){temp=str[j];str[j]=str[i-1-j];str[i-1-j]=temp;}str[i]='\0';}8-6#include <iostream>void main(){void strcat(char str1[],char str2[]);char str1[80],str2[80];printf("输入str1\n\n");gets(str1);printf("\n\n输入str2\n\n");gets(str2);strcat(str1,str2);printf("\n\n连接后的字符串为:\n\n"); puts(str1);}void strcat(char str1[],char str2[]){int i,j;for(i=0;;i++){if(str1[i]=='\0'){for(j=0;str2[j]!='\0';j++){str1[i]=str2[j];i+=1;}break;}}str1[i]='\0';}8-7#include <iostream>void main(){void strcpy(char str1[],char str2[]);char str1[80],str2[80];printf("输入str2\n\n");gets(str2);strcpy(str1,str2);printf("\n\n复制后的字符串为:\n\n");puts(str1);}void strcpy(char str1[],char str2[]){int i,j=0;for(i=0;str2[i]!='\0';i++){if((str2[i]=='a')||(str2[i]=='e')||(str2[i]=='i')||(str2[i]=='o')||(str2[i]=='u')) {str1[j]=str2[i];j++;}}str1[j]='\0';}8-8#include <iostream>void main(){void stradd(char str[]);char str[80];printf("输入一串数字\n\n");gets(str);stradd(str);printf("\n\n加空格后的字符串\n\n");puts(str);}void stradd(char str[]){char a[80];int i=0,j;for(j=0;str[j]!='\0';j++){a[i]=str[j];a[i+1]=' ';i+=2;}a[i]='\0';for(i=0;a[i]!='\0';i++){str[i]=a[i];}str[i]='\0';}8-9#include <iostream>void main(){void num(char str[],int a[]);char str[80];int a[4]={0};printf("输入一个字符串\n\n");gets(str);num(str,a);printf("字母个数为:%d\n",a[0]);printf("数字个数为:%d\n",a[1]);printf("空格个数为:%d\n",a[2]);printf("其它字符个数为:%d\n",a[3]);}void num(char str[],int a[]){int i,word=0,num=0,span=0,oth=0;for(i=0;str[i]!='\0';i++){if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z')) word+=1; else if(str[i]>=48&&str[i]<=57) num+=1;else if(str[i]==' ') span+=1;else oth+=1;}a[0]=word;a[1]=num;a[2]=span;a[3]=oth;}8-10#include <iostream>void main(){int word(char c);int longest(char str[]);int i;printf("输入一行字符串\n\n");gets(str);printf("\n\n最长的单词为:\n\n");for(i=longest(str);word(str[i]);i++)printf("%c",str[i]);printf("\n");}int word(char c){if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) return 1; else return 0;}int longest(char str[]){int i,flag=1,len=0,point,max_len=0,max_point; for(i=0;i<=strlen(str);i++){if(word(str[i])){if(flag==1){point=i;flag=0;}else len++;}else{flag=1;if(len>max_len){max_len=len;max_point=point;}len=0;}}return (max_point);}8-11#include <iostream>{char str[80];void sort(char str[]);printf("输入一个字符串\n\n");gets(str);sort(str);printf("\n\n字符由小到大排序为:\n\n");puts(str);}void sort(char str[]){int i,j;char temp;for(i=0;i<strlen(str);i++){for(j=0;j<strlen(str)-i-1;j++){if(str[j]>str[j+1]){temp=str[j];str[j]=str[j+1];str[j+1]=temp;}}}}8-12#include <iostream>#include <math.h>void main(){int a,b,c,d;float root(int a,int b,int c,int d);printf("输入a,b,c,d\n\n");scanf("%d%d%d%d",&a,&b,&c,&d);printf("\n\n在1附近的根为:%f\n\n",root(a,b,c,d)); }float root(int a,int b,int c,int d){float x=1,x1,f,f1;do{x1=x;f=((a*x1+b)*x1+c)*x1+d;f1=(a*x1+b)*x1+c;x=x1-f/f1;}while(fabs(x-x1)>=1e-5);return(x);}8-13#include <iostream>void main(){float p(int,float);int n;float x;printf("输入n和x\n\n");scanf("%d%f",&n,&x);printf("\n\n%d阶勒德让多项式的值为:%f\n\n",n,p(n,x)); }float p(int n,float x){if(n==0) return 1;else if(n==1) return x;else return ((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n;}8-14#include <iostream>#define n1 2#define n2 5float a_stu[n1],a_cou[n2];void main(){void input(float a[][n2]);void stu_aver(float a[][n2]);void cou_aver(float a[][n2]);int hightest(int *s,int *c,float a[][n2]);float d(float a[][n2]);int i,j,s=0,c=0;float score[n1][n2],h;input(score);stu_aver(score);cou_aver(score);printf("\n\n 序号课程1 2 3 4 5 平均成绩\n\n");for(i=0;i<n1;i++){printf(" NO.%d ",i+1);for(j=0;j<n2;j++){printf("%8.2f",score[i][j]);}printf("%8.2f\n\n",a_stu[i]);}printf("课程平均");for(i=0;i<n2;i++){printf("%8.2f",a_cou[i]);}h=hightest(&s,&c,score);printf("\n\n最高成绩为:%f 是第%d号学生,第%d门课的成绩\n\n",h,s,c); printf("平均方差为:%f\n\n",d(score));}void input(float a[][n2]){int i,j;for(i=0;i<n1;i++){printf("\n\n输入%d个学生的5个成绩\n\n",i+1);for(j=0;j<n2;j++){scanf("%f",&a[i][j]);}}}void stu_aver(float a[][n2]){int i,j;float s;for(i=0;i<n1;i++){s=0;for(j=0;j<n2;j++){s+=a[i][j];}a_stu[i]=s/n2;}void cou_aver(float a[][n2]){int i,j;float s;for(i=0;i<n2;i++){s=0;for(j=0;j<n1;j++){s+=a[j][i];}a_cou[i]=s/n1;}}int hightest(int *s,int *c,float a[][n2]) {float hightest=0;int i,j;for(i=0;i<n1;i++){for(j=0;j<n2;j++){if(a[i][j]>hightest){hightest=a[i][j];*s=i+1;*c=j+1;}}}return(hightest);}float d(float a[][n2]){int i;float x=0,y=0;for(i=0;i<n1;i++){x+=a_stu[i]*a_stu[i];y+=a_stu[i];}return(x/n1-(y/n1)*(y/n1));8-15#include <iostream>#define N 3void main(){void input(int num[],char name[N][8]);void sort(int num[],char name[N][8]);void search(int num[],char name[N][8],int n); int flag,n,num[N];char c,name[N][8];input(num,name);sort(num,name);for(flag=1;flag;){printf("输入要查找的职工号\n\n");scanf("%d",&n);search(num,name,n);printf("是否继续查找?Y/N ?\n\n");c=getchar();if(c=='N'||c=='n') flag=0;}}void input(int num[],char name[N][8]){int i;for(i=0;i<N;i++){printf("输入职工号\n\n");scanf("%d",&num[i]);printf("输入职工姓名\n\n");getchar();gets(name[i]);}}void sort(int num[],char name[N][8]){int i,j,min,temp1;char temp2[8];for(i=0;i<N;i++){min=i;。
C语言程序设计习题答案(第三版)
C语言程序设计(第三版)习题答案习题一一、名词解释(1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)高级语言P2(5)汇编程序P3 (6)编译程序P4 (7)算法P5 (8)结构化程序设计方法P10二、简答题1. 设计程序时应遵循哪些基本原则?P4答:正确性、可靠性、简明性、有效性、可维护性、可移植性。
2. 算法具有哪些特点?答:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。
3. 算法的表示形式有哪几种?答:自然语言、伪代码、传统流程图、N-S流程图、计算机语言。
4. 结构化程序设计方法的三种基本结构是什么?答:顺序结构、选择结构和循环结构。
5. 传统流程图与N-S流程图最大的区别是什么?答:N-S流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。
三、用传统流程图或N-S流程图表示求解以下问题的算法。
1. 从键盘输入10个整数,求出其中的最小数并输出。
2. 求1+2+3+…+100的值。
3. 求10~50的所有素数之和。
4. 求下列分段函数的值。
四、请参照本章例题,编写一个简单的C 程序,输出以下三行信息。
**************************Yangtze University**************************#include <stdio.h>void main(){printf("**************************\n");printf(" Yangtze University\n");printf("**************************\n");}4X-1 (X ≤1) 5(X-1)+6 (1<X<5) 6-3X (X ≥5)习题二一、选择题1~10: B C D C D D B C A A11~20: D A C D B D B A C D二、填空题1.字母 L 或字母 l2. %c(或字符) 、 %d(或整数)3.在程序运行过程中,其值可以在一定的范围内变化的量4.'\0'5.小数形式、指数形式6.关键字、预定义标识符、用户标识符7.字母、数字、下划线、数字8. 189. 2 、 1 、 3010.双精度实数或double11.赋值、逗号、 20 、 20 、 20 、 412. 4 、 4习题三一、选择题1~10: B C C B C C C D C C注:第4题答案D为: 10 22↙33↙二、填空题1. printf 、 scanf2. h3."%5d"4.'\0'5. e 、 E6. 67. s 、 c8. *9. - 、 +10. i三、编程题1. 编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进行输出。
c语言程序设计(第3版)的习题答案
c语言程序设计(第3版)的习题答案c语言程序设计(第3版)的习题答案本文为《c语言程序设计(第3版)》中的习题答案汇总,旨在帮助读者更好地理解和掌握该教材。
以下是各章节习题的详细解答:第1章:计算机概述习题1:答案:计算机是一种能够接受输入数据、对其进行逻辑和算术运算,并产生输出结果的电子设备。
习题2:答案:计算机主要由中央处理器(CPU)、主存储器、输入设备和输出设备四个主要部分组成。
......第2章:c语言概述习题1:答案:C语言是一种通用的高级编程语言,由贝尔实验室的Dennis Ritchie于1972年开发。
习题2:答案:C语言的特点包括高效性、可移植性、灵活性和丰富的操作符与控制语句。
......第3章:数据类型、运算符和表达式习题1:答案:C语言中的基本数据类型包括int、float、double、char等。
习题2:答案:C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。
......第4章:程序控制结构习题1:答案:C语言中的程序控制结构主要包括顺序结构、选择结构和循环结构。
习题2:答案:顺序结构是指程序按照语句的顺序依次执行,没有分支和循环。
......第5章:函数习题1:答案:C语言中的函数由函数头和函数体组成。
习题2:答案:函数的定义包括函数名、返回类型、参数列表和函数体。
......第6章:数组和字符串习题1:答案:数组是一组相同类型的数据元素的集合。
习题2:答案:C语言中的字符串是以空字符'\0'结尾的字符数组。
......第7章:指针习题1:答案:指针是用来存储另一个变量的地址的变量。
习题2:答案:指针变量可以通过取地址运算符(&)获取普通变量的地址。
......第8章:结构和共用体习题1:答案:结构是由不同数据类型的成员组成的复合类型。
习题2:答案:共用体(union)是一种特殊的数据类型,它可以存储不同类型的数据,但在同一时间只能存储其中的一种。
C语言程序设计实例教程(第三版)练习题答案1
练习1一、选择题1、一个C程序是由(B)。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成解析:C语言称为函数式语言,其程序是由至少一个主函数main,和其他更多的函数组成,答案选B;2、一个C程序的执行是从( A )。
A.main函数开始,直到main函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main函数开始,直到最后一个函数结束解析:C语言执行都是从主函数main函数开始,不论main函数放置的位置,答案选A;3、C语言语句的结束符是(B)。
A.回车符B.分号C.句号D.逗号解析:C语言语句是以分号结束,答案选B;4、下面标识符中( D )不是C语言的关键字。
A.char B.goto C.case D.include解析:char 声明字符型变量关键字,case 为switch结构中开关语句分支关键字,goto为无条件跳转语句关键字,在C语言中include不属于关键字,属于预处理命令,故答案选D;5、以下说法正确的是(A)A.C程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
B.C程序的注释只能是一行。
C.C程序的注释不能是中文文字信息。
D.C程序的注释中存在的错误会被编译器检查出来。
解析:在C程序中注释只是起到增加程序的可读性,编译器并不会对注释进行检查,且C程序中存在多行注释。
故答案选A6、以下说法正确的是(D)A.C程序中的所有标识符都必须小写B.C程序中关键字必须小写,其他标识符不区分大小写C.C程序中所有标识符都不区分大小写D.C程序中关键字必须小写,其他标识符区分大小写。
解析:C程序中的关键字均是小写定义的,且标识符定义可以使用大写和小写,但是严格区分大小写;故答案选D。
7、设x、y均为float型变量,则以下不合法的赋值语句是(B)A.++x ; B.y=(x%2)/10 ; C.x*=y+8; D.x=y=0 ;解析:运算符%要求两端的操作数必须为整型,而在答案B中%号两端的操作数为x和2,x为实型,所以是错误的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计(第三版)习题库1、设圆半径r=1、5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。
请编程序。
#include<stdio、h>main(){float r,h,C1,Sa,Sb,Va,Vb;scanf(__”%f"__,&r);scanf(”%d”,__&h_);;C1=2*3、14*r;Sa=3、14*r*r;Sb=4*Sa;Va=4*3、14*r*r*r/3;Vb=Sa*h;printf(___”Cl=%、2fSa=%、2fSb=%、2fVa=%、2fVb=%、2f”,Cl,Sa,Sb,Va,Vb);}2、输入一个华氏温度,要求输出摄氏温度。
公式为c=5(F-32)/9输出要求有文字说明,取位2小数。
#include <stdio、h>main(){float F,c;scanf("%f",&F);____c=5*(F-32)/9______;printf(”c=%、2f",c);}3、有一函数:写一程序,输入x值,输出y值。
#include<stdio、h>main(){int x,y;printf("输入x:”);scanf("%d”,&x);if(x<1){ /* x<1 */y=x;printf(”x=%3d, y=x=%d\n”,x,y);} else if(____x〈10_______){/*1≤x—10 */ _____y=2*x—1_______;printf("x=%3d, y=2*x—1=%d\n",x,y);}else{/*x≥10 */y=3*x-11;printf(”x=%3d, y=3*x-11=%d\n",x# include "stdio、h"main(){intx,y;scanf(”%d”,&x);if(x<1){ y=x;}else if(x>=1&& x<10)ﻩ{ y=2*x—1;}else{y=3*x-11;}printf(”%d”,y);}#include”stdio、h"main(){intx,y;scanf(”%d",&x);if(x〈1)ﻩ{y=x;}else if(x>=1 &&x〈10){y=2*x-1;}elseﻩ{y=3*x-11;}printf(”%d\n",y);}# include ”stdio、h"main(){intx,y;scanf("%d",&x);if(x〈1){y=x;}else if(x>=1&& x〈10){y=2*x-1;}elseﻩ{ y=3*x—11;}printf(”%d",y);}scanf("%d”,&x);if(x〈1){ y=x;}else if(x〉=1&&x〈10){ y=2*x—1;}elseﻩ{ y=3*x-11;}# include "stdio、h"main(){int x,y;scanf(”%d”,&x);if(x<1)y=x;else if(x〉=1 &&x<10)y=2*x-1;elseﻩ y=3*x-11;printf(”%d”,y);},y);}}4、给定一个不多于5位得正整数,要求:①求它就是几位数;②按逆序打印出各位数字。
例如原数为321,应输出123。
#include <stdio、h〉main(){long intnum,m=0;inti=0;scanf(”%ld",&num);while(num>0){i++; /*统计长度*/m=m*10+num%10;num=num/10;}printf("数字长度为:%d",i);printf("逆序数字为:%d\n",m);}5、以下程序实现得功能:求三个数得最大值#include<stdio、h>main(){ﻩint a,b,c,max;ﻩscanf("%d %d%d”,&a,&b,&c);ﻩif(a>b){if(a>c) max=a;ﻩelse max=c;} else{ﻩif(b>c) max=b;ﻩelseﻩmax=c;ﻩ}printf("max=%d",max);}#include <stdio、h>main(){intx,y,z,t=0;ﻩscanf(”%d %d %d",&x,&y,&z);if(x>y)ﻩ{t=y;y=x;x=t;}if(x>z){t=z;z=x;x=t;}ﻩif(y>z)ﻩ {t=z;z=y;y=t;}printf(”%d\n",z);}6、输入两个正整数m与n,求其最大公约数与最小公倍数。
/*枚举法*/#include<stdio、h〉main(){long m,n,i=1,j,s;scanf(”%ld,%ld",&m,&n);for(;i〈=m&&i<=n;i++){if(m%i==0&&n%i==0)s=i;}if(m>=n)j=m;else j=n;for(;!(j%m==0&&j%n==0);j++);printf("s=%ld,j=%ld\n",s,j);}#include 〈stdio、h〉main(){int a,b,k,temp,i,p;ﻩscanf(”%d,%d",&a,&b);if(a>b)ﻩ temp=b;ﻩelseﻩ temp=a;for(i=2;i<=temp;i++)ﻩ{ if(a%i==0 && b%i==0)k=i;ﻩ}printf(”%d\n",k);p=a*b/k;printf(”%d\n”,p);}/*辗转相除*/#include〈stdio、h〉main(){int m,n,k,j,p,r=1;scanf("%d,%d”,&m,&n);k= m>n?m:n;j= m>n? n:m;do{r=k%j;k=j;j=r;}while(r!=0);printf(”%d,%d”,k,m*n/k);}/*反复减法*/#include<stdio、h〉main(){int m,n,k,j,p,r=1;scanf(”%d,%d”,&m,&n);k= m>n?m:n;j= m〉n?n:m;do{p=k-j;if(j>p){ k=j; j=p;}else k=p;}while(p!=0);printf("%d,%d",k,m*n/k);}7、输入一行字符,分别统计出其中英文字母、空格、数字与其她字符得个数。
#include"stdio、h”main(){char c;int i=0,j=0,k=0,l=0;while((c=getchar())!=’\n') {if(c>=’A'&&c<=’Z’||c>=’a’&&c<=’z’)i++; //英文字母统计else if(c>=’0’&&c<=’9’)j++; //数字统计else if(c==’’)k++; //空格统计else l++;}printf("i=%d,j=%d,k=%d,l=%d\n”,i,j,k,l);}8、求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a就是一个数字。
例如:2+22+222+2222+22222(n=5),n由键盘输入。
#include <stdio、h>main(){int a,n;longb=0,sum=0;scanf(“%d %d”,&a,&n);for (i=1;i〈=n;i++){b = b*10+a;sum =sum+b;}printf (“%ld”,sum);}9、打印出所有"水仙花数",所谓"水仙花数"就是指一个三位数,其各位数字立方与等于该本身。
例如:153就是一个水仙花数,因为153=13+53+33。
【程序1】#include〈stdio、h>main(){int i,m,n,k;for(i=100;i<1000;i++){m=__i%10__;n=_ i/10%10__;ﻩk=i/100;if(__m*m*m+n*n*n+k*k*k==i__)ﻩ printf("%5d",i);}}【程序2】#include〈stdio、h>main(){int i,a,n,s;for (i=100;i<=999;i++){n=i;s=0;while(n>0) {a=__n%10__;s+=a*a*a;n /=__10__;}if (__s==i__) printf(“%d”,i);}10、一个数如果恰好等于它得因子之与,这个数就称为"完数".例如,6得因子为1、2、3,而6=1+2+3,因此6就是"完数"。
编程序找出1000之内得所有完数,并按下面格式输出其因子:6its factors are1、2、3#include 〈stdio、h〉main() {inta,i,m;for (a =1; a〈=1000;a++) {for (__i=1,m=0__;i〈=a/2;i++)if(!(a%i)) __m+=i__;if (m==a)printf(“%4d",a);}}11、利用:π/4=1-1/3+1/5-1/7+…、级数求π得值,直到最后一项得绝对值小于10-6为止。
求绝对值得函数为fabs().#__include<stdio、h〉__#include<math、h〉main(){int i=1,flag=1;doublesum=0、0,s;do{s=__1、0/(2*i—1)__;sum+=s*flag;i++;__flag=-flag__;}while(__fabs(s)〉1e-6__);/**/printf("pi=%f”,__4*sum__);}11、有一分数序列:2/1,3/2,5/3, 求出这个数列得前20项之与。
#include<stdio、h>#define N 20main(){int i=1;double x=1,y=2,sum=0;while(__i〈=20__) {sum=sum+__y/x__;y=___x+y__;x=__y-x__;i++;}printf("%f\n”,sum);}12、一球从100米高度自由下落,每次落地后返回原高度得一半,再落下。