C程序设计(谭浩强第四版)试卷7 试卷及答案
(完整word版)c程序设计(第四版)谭浩强-课后答案(完整版).pdf
C 语言课后习题答案 -第四版 - 谭浩强 (1-7 )第一章#include <stdio.h>int main ( )**\n\n");printf(" Very Good!\n\n");printf (return 0; #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 **\n");printf("The largest number is %d\n",max); return 0;}第3章#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; }#include <stdio.h>#include <math.h> int main()p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;{float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p1=p*((1+r5)*5); // 一次存5 年期p2=p*(1+2*r2)*(1+3*r3); // 先存2 年期,到期后将本息再存3 年期// 先存3 年期,到期后将本息再存2 年期p3=p*(1+3*r3)*(1+2*r2);p4=p*pow(1+r1,5); // 存1 年期,到期后将本息存再存1 年期,连续存5 次p5=p*pow(1+r0/4,4*5); // 存活期存款。
大学生C语言程序设计(第四版 谭洪强)实验7 答案
实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。
例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。
注意:n 的值要求不大于100。
算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。
注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。
n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。
参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。
合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。
例如,当a=45,b=12,调用该函数后,c=5241。
算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。
c程序设计(谭浩强)第七章习题答案
int i;
float ave=0;
for(i=0;i<10;i++)
ave=ave+a[i][n]/10;
return ave;
}
void max(float a[][5]) //最高分的学生和课程
{
int i,j,row,colum;
float max=a[0][0];
for(i=0;i<10;i++)
# include <stdio.h>
# include<math.h>
# include<string.h>
/*int yue(int a,int b) //求最大公约数
{
int i,min;
min=a>b?b:a;
for(i=min;i>0;i--)
{
if(a%i==0&&b%i==0)
{
return i;
if((mid%2)!=1) //因职工号序号为奇数,故强制把序号转为奇数
mid-=1;
if(strcmp(b,a[mid])>0) //不能写b>a[mid]
{min=mid+2;}
else if(strcmp(b,a[mid])<0) //不能写b<a[mid]
{max=mid-2;}
else
{printf("职工姓名为:%s\n",a[mid-1]);break;}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("%-2d",b[i][j]);
C语言练习题(谭浩强第四版)..附有答案
C语⾔练习题(谭浩强第四版)..附有答案⼀、选择题1、⼀个C程序由若⼲个C函数组成,各个函数在⽂件中的位置顺序为:()A、任意B、第⼀个函数必须是主函数,其他函数任意C、必须完全按照执⾏的顺序排列D、其他函数可以任意,主函数必须在最后2、下列四个叙述中,正确的是:()A、C程序中的所有字母都必须⼩写B、C程序中的关键字必须⼩写,其他标⽰符不区分⼤⼩写C、C程序中的所有字母都不区分⼤⼩写D、C语⾔中的所有关键字必须⼩写3、下列四个叙述中,错误的是:()A、⼀个C源程序必须有且只能有⼀个主函数B、⼀个C源程序可以有多个函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下⾯不是C语⾔合法标识符的是:()A、abcB、5nC、_4mD、x35、以下叙述不正确的是:()A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后⾯C. 函数是C程序的基本单位D. 主函数的名字不⼀定⾮⽤main来表⽰6、C语⾔中允许的基本数据类型包括:()A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、C语⾔中能⽤⼋进制表⽰的数据类型为:()A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语⾔合法的字符常数是:()A、’\97’B、”A”C、’\t’D、”\0”9、在C语⾔(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:()A、charB、char=intC、charD、char=int=10、若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:()A、2,MB、3,EC、2,ED、输出项与相应的格式控制不⼀致,输出结果不确定11、以下合法的赋值语句是:()A、x=y=100B、d--;C、x + yD、c = int(a+b);12、在以下⼀组运算符中,优先级最⾼的是:()A、<=B、==C、%D、&&13、下列能正确表⽰a≥10或a≤0的关系表达式是:()A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=014、下列只有当整数x为奇数时,其值为“真”的表达式是:()A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、!(x%2)15、设a为整型变量,不能正确表达数学关系10A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)16、已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:()A、0B、语法错C、1D、“假”17、表达式17%4 /8的值为:()A、0B、1C、2D、318、⼀个可执⾏的C程序的开始执⾏点是:()A. 程序中的第⼀个语句B. 包含⽂件中的第⼀个函数C. 名为main的函数D. 程序中的第⼀个函数19、组成C语句的⼀个必不可少的符号是:()A. 逗号B. 引号C. 冒号D. 分号20、若将int、long、float等类型的数据进⾏混合运算,其结果的数据类型是:()A. intB. longC. floatD. double21、下述是C语⾔中有关变量定义的⼏个说法,正确的是:()A. 变量可以不定义直接使⽤B. ⼀个说明语句只能定义⼀个变量C. ⼏个不同类型的变量可在同⼀语句中定义D. 变量可以在定义时进⾏初绐化22、与x * = y + z等价的赋值表达式是:()A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z23、当代电⼦计算机能够⾃动地处理指定的问题是因为:()A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是24、以下叙述中最准确的是:()A.计算机程序是处理某⼀问题所有指令的集合B.计算机程序是处理某⼀问题所⽤到的所有数据的集合C.计算机程序是处理某⼀问题的所有指令及其数据的集合D.计算机程序是处理某⼀问题的所有指令及其数据的有序集合25、⽬前编写计算机程序⼀般采⽤的是:()A.机器语⾔B.汇编语⾔C.⾼级语⾔D.英语26、设计⼀个计算机程序最基本的⼯作是:()A.制定正确的算法B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构D.以上都不是27、算法具有五个特性,以下选项中不属于算法特性的是:()A.有穷性B.简洁性C.可⾏性D.确定性28、下述哪⼀个不是结构化程序基本结构:()A.顺序B.选择C.循环D.嵌套29、C语⾔是⼀种:()A.机器语⾔B.汇编语⾔C.⾼级语⾔D.以上都不是30、C语⾔源程序的扩展名为:()A..exe B..c C..obj D..cpp31、C程序编译、连接后最终产⽣(即计算机执⾏)的⽂件的扩展名为( ) A..exe B..c C..obj D..cpp32、构成C语⾔源程序的基本单位是:()A.⼦程序B.过程C.⽂本D.函数33、下列叙述正确的是:()A.C语⾔源程序可以直接在DOS环境中运⾏B.编译C语⾔源程序得到的⽬标⽂件可以直接在DOS环境中运⾏C.C语⾔源程序经过编译、连接得到的可执⾏程序可以直接在DOS环境中运⾏D.C语⾔源程序可以直接在VC++环境中运⾏34、某C程序由⼀个主函数main()和⼀个⾃定义函数max()组成,则该程序:()A.写在前⾯的函数先开始执⾏B.总是从main()函数开始执⾏C.总是从max()函数开始执⾏D.写在后⾯的函数先开始执⾏35、以下叙述不正确的是:()A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后⾯C.函数是C程序的基本单位D.主函数的名字不⼀定⽤mian表⽰36、以下为C语句的是:()A.a=8 B.a++;C.if(a>8) D. #include37、以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);⼆、判断题1.( T )C语⾔是严格区分⼤写和⼩写的,因此主函数不能写成main()以外的其他形式。
(完整版)《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程序设计——顺序程序设计373。
1顺序程序设计举例373.2数据的表现形式及其运算393。
2.1常量和变量393.2。
2数据类型423.2.3整型数据443。
2。
4字符型数据473。
2.5浮点型数据493。
2。
6怎样确定常量的类型513。
c程序设计(第四版)谭浩强答案
c程序设计(第四版)谭浩强答案《C程序设计》(第四版)是谭浩强教授编写的一本广受欢迎的C语言编程教材,它以系统性、实用性和易学性著称。
这本书不仅适合作为高等院校计算机专业学生的教材,也适合自学者使用。
由于这本书的广泛使用,很多读者和学生都希望获得书中习题的答案,以便更好地理解和掌握C语言编程。
然而,直接提供答案并不是学习的最佳方式。
学习编程,特别是C语言,需要通过实践来掌握。
因此,我建议读者在尝试解决问题之前,先仔细阅读书中的相关章节,理解概念和原理,然后自己动手编写代码。
如果遇到难题,可以参考答案来检查自己的思路和代码,但不要一开始就依赖答案。
以下是一些学习C语言编程的建议:1. 理解基础概念:C语言的基础概念包括变量、数据类型、运算符、控制结构(如if语句、循环)等。
这些是编程的基石,必须首先掌握。
2. 实践编程:编程是一项实践技能,需要通过编写代码来学习。
尝试解决书中的习题,即使一开始遇到困难,也要坚持下去。
3. 阅读和分析代码:阅读别人的代码是学习编程的好方法。
分析书中的示例代码,理解它们是如何工作的,然后尝试修改它们以实现不同的功能。
4. 使用调试工具:当代码出现问题时,学会使用调试工具来找出错误所在。
这不仅能帮助你解决问题,还能加深你对程序流程的理解。
5. 参与讨论和求助:加入编程社区,参与讨论,向他人求助。
有时候,别人的一个提示或建议可能会让你豁然开朗。
6. 编写自己的项目:当你对C语言有了一定的了解后,尝试编写自己的小项目。
这不仅能巩固你的知识,还能激发你的创造力。
7. 持续学习:编程是一个不断发展的领域,新的技术和工具不断出现。
即使你已经掌握了C语言,也要不断学习新的编程语言和技术。
最后,如果你确实需要参考答案来辅助学习,可以考虑以下途径:- 官方资源:有些出版社会提供官方的习题解答,你可以查看是否有相关的资源。
- 教师指导:如果你在学校学习,可以向老师寻求帮助,他们可能会提供一些指导或解答。
C语言程序设计第四版第七章答案-谭浩强
C语言程序设计第四版第七章答案-谭浩强第七章函数7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
maxyueshu(m,n)int m,n;{ int i=1,t;for(;i<=m&&i<=n;i++){if(m%i==0&&n%i==0)t=i;}return(t);}minbeishu(m,n)int m,n;{int j;if(m>=n) j=m;else j=n;for(;!(j%m==0&&j%n==0);j++);return j;}main()整数,输出是否是素数的消息。
psushu(m)int m;{int i=2,t;for(;i<=m;i++)if(m%i==0&&i<m) break;if(m-i==0) t=1;else t=0;return m;}main(){int a,s;printf("enter sushu is \n");scanf("%d",&a);s=psushu(a);if(s==1) printf("a is sushu\n");else printf("s is not sushu\n");}7.4写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
int zhuangzhi(b)int b[3][3];{int i,j,t;for(i=0;i<3;i++)for(j=0;j>=i&&j<3-i;j++){t=b[i][j];b[i][j]=b[j][i];b[j][i]=t;}}main(){int a[3][3];int i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(" %d",a[i][j]);printf("\n");}zhuangzhi(a);for(i=0;i<3;i++){for(j=0;j<3;j++)printf(" %d",a[i][j]);printf("\n");}}7.5写一函数,使输入的一个字符串按反序存放,在主函数中输入输出字符串。
C程序设计(谭浩强第四版)试卷7 试卷及答案
一、单项选择题(20题,每题2分,共40分)1.一个C语言程序就是由组成得。
A.主程序B.子程序C.函数D.过程2.判断char型变量c1就是否为小写字母得最简单且正确得表达式为。
A、 'a'<=c1<='z'B、 (c1>=a)& &(c1<=z)C、 ('a'<=c1)||('z'>=c1)D、 (c1>='a')&&(c1<='z')3.为了判断两个字符串s1与s2就是否相等,应当使用。
A、 if (s1==s2)B、 if (s1=s2)C、 if (strcpy(s1,s2))D、 if( strcmp(s1,s2) == 0 )4、设a,b都就是int型变量,则表达式:(a=2,b=5,a>b? a++ : b++ ,a+b)得值为。
A、 7B、 8C、9 D、 25、设x、y与t均为int型变量,则以下语句:t=x; x=y; y=t;得功能就是。
A、把x与y按从大到小排列B、把x与y按从小到大排列C、无确定结果D、交换x与y中得值6、下面标识符中,合法得用户标识符为。
A、 P#AdB、12aC、char D、_int7、循环语句while(!E);中得表达式!E等价于。
A、 E!=0B、 E!=1C、 E==0 D、 E==18、设有以下语句,则不就是对a数组元素得正确引用,其中0≤i<10。
int a[10] = {0,1,2,3,4,5,6,7,8,9};int *p = a;供选择得答案就是:A、 a[p-5]B、 *(&a[i])C、 p[i]D、 *(a+i)9、若用数组名作为函数调用得实参,传递给形参得就是。
A、数组得首地址B、数组第一个元素得值C、数组中全部元素得值D、数组元素得个数10.下面四段程序中,不就是死循环得程序段就是。
c程序设计谭浩强考试题及答案
c程序设计谭浩强考试题及答案一、单项选择题(每题2分,共20分)1. C语言中,用于定义变量类型的关键字是:A. intB. floatC. doubleD. char答案:A2. 在C语言中,以下哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C3. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable_name答案:B4. C语言中,用于输出的函数是:A. scanf()B. printf()C. getchar()D. putchar()答案:B5. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[5] = "Hello";B. char str[5] = {'H', 'e', 'l', 'l', 'o'};C. char str[5] = "Hello"; // 错误:字符串长度超过数组长度D. char str[] = "Hello"; // 正确:数组长度自动根据字符串长度确定答案:D6. C语言中,以下哪个选项是正确的数组定义方式?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3, 4};D. int array[5] = {1, 2, 3, 4, 5, 6}; // 错误:元素个数超过数组长度答案:B7. 在C语言中,以下哪个选项是正确的函数定义方式?A. int function() { return 0; }B. int function() { return 1; }C. int function() { return 2; }D. int function() { return 3; }答案:B8. C语言中,用于计算两个数的和并返回结果的函数是:A. sum()B. add()C. plus()D. calculate()答案:B9. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > 0) { ... }B. if x > 0 { ... } // 错误:缺少括号C. if (x > 0) { ... } else { ... }D. if x > 0 { ... } else { ... } // 错误:缺少括号答案:C10. C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++) { ... }B. for (int i = 0; i <= 10; i++) { ... }C. for (int i = 0; i < 10; i--) { ... } // 错误:递减应在循环体内部D. for (int i = 0; i < 10; i++) { ... } // 正确答案:D二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量并初始化为10的语句是:int a = 10;2. C语言中,用于计算两个数的差并返回结果的函数是:int difference(int x, int y) { return x - y; }3. 在C语言中,用于输入的函数是:scanf();4. C语言中,用于计算两个数的除法并返回结果的函数是:int divide(int x, int y) { return x / y; }5. 在C语言中,用于计算两个数的乘积并返回结果的函数是:int multiply(int x, int y) { return x * y; }6. C语言中,用于输出一个字符的函数是:putchar();7. 在C语言中,用于输出一个字符串的函数是:printf();8. C语言中,用于计算两个数的模并返回结果的函数是:int modulus(int x, int y) { return x % y; }9. 在C语言中,用于计算两个数的加法并返回结果的函数是:intadd(int x, int y) { return x + y; }10. C语言中,用于计算两个数的指数并返回结果的函数是:double power(double base, int exponent) { return pow(base, exponent); }三、编程题(每题10分,共20分)1. 编写一个C语言程序,计算并输出两个整数的和。
C程序设计习题答案(7-9章)谭浩强著
{ printf("\na[%d][%d]=%d\n",i,maxj,max);
flag2=1;
}
}
if(!flag2) printf("NOT");
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
uppn++;
else if(text[i][j]>='a'&&text[i][j]<='z')
printf("\n");
}
}
7.7
main()
{int a[16][16],i,j,k,p,m,n;
p=1;
while(p==1)
{scanf("%d",&n);
for(j=i+1;j<11;j++)
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
c=getchar();
if(c=='N'||c=='n')flag=0;
}
}
7.10
main()
{int i,j,uppn,lown,dign,span,othn;
char text[3][80];
for(i=3;i<N;i++)
C程序设计(第四版)(谭浩强)完整版_课后习题答案
C程序设计(第四版)(谭浩强)第一章课后习题答案P006 1.1 向屏幕输出文字.#include<stdio.h>//预编译. 代码均调试成功,若有失误大多不是代码问题.自已找找. int main(){printf("Welcome to \n");return 0; //与int main对应,为了程序可移植性,建议全用int main + return 0;.}P008 1.2 求两个数的和.#include<stdio.h>int main(){int a,b,sum;a=5;b=4;sum=a+b;printf("The sum is %d .\n",sum);return 0;}P008 1.3 调用函数比较两个数的大小.#include<stdio.h>int main(){int max(int x,int y); //被调用函数在主函数后面,用前先声明.int a,b,c;scanf("%d,%d",&a,&b); //输入时要按格式来,此处的逗号,用空格会发生错误.c=max(a,b); //a,b作为实参传入被调用函数中.printf("The max is %d .\n",c);return 0;}int max(int x,int y) //定义了两个形参.{int z; //z属于局部变量,可与主函数中相同名字.if (x>y)z=x;elsez=y;return(z); //z作为整个程序的出口值,赋给主函数中的c.}#include<stdio.h>int main(){int a,b,c,d; //d是用于存储最大值的.int max(int x , int y , int z); //测试可知,在VS2008中,可以不预先声明.printf("Please input 3 numbers :\n");scanf("%d %d %d",&a,&b,&c);d=max(a,b,c); //调用函数中有三个形参,这里需要传入三个实参,才可运算.printf("The max is :%d .\n",d); // d可以换成max(a,b,c).}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>y && z>x)m=z;return (m); //返回值m给主函数中的d.}C程序设计(第四版)(谭浩强)第2章课后习题答案算法——程序的灵魂#include<stdio.h>int main(){int i,s=1; //在执行数值操作前一定要先有个初值.for(i=1;i<6;i++) //这里是到6.{s=s*i; //相乘}printf("The sum is %d .\n",s);return 0;}#include<stdio.h> //作出要求:换成1到11间奇数相乘.int main(){int i,s=1; //在执行数值操作前一定要先有个初值.for(i=1;i<12;i++) //这里是到,但题目要求的是取单数.也可以是i=i+2{if(i%2!=0) //i对取模,值为非为奇数;为则为偶数.s=s*i;elsecontinue; //跳过这个for循环的这一次,执行下一次.}printf("The sum is %d .\n",s);return 0;}P019 2.2 按要求输出80分以上的学生信息.暂时没法做.P019 2.3 判断2000-2500年中的闰年,并输出.年的概念是地球围绕太阳一周的时间(所谓公转周期)称为一年,这个周期是相当稳定的,很长时间也不会变动1秒,但是真正的一年是365.2423天(目前)。
《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#includeintmain(){printf(\printf(\verygood!\\n\\n\printf(\return0;}1-6#includeintmain(){inta,b,c,max;printf(\scanf(\max=a;if(maxprintf(\return0;}第2章算法——程序的灵魂162.1算法是什么162.2简单算法示例172.3算法的特点212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用NS流程图表示算法282.4.5用伪码312表示算法。
4.6用计算机语言32表示算法2.5结构化程序设计方法34习题36第三章最简单的c语言编程-顺序编程373.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#includeintmain(){floatp,r,n;r=0.1;n=10;p=pow(1+r,n);printf(\return0;}3-2-1#include#includeintmain(){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程序设计(第四版)谭浩强_课后答案(完整版)
p1=p*((1+r5)*5); p2=p*(1+2*r2)*(1+3*r3); p3=p*(1+3*r3)*(1+2*r2); p4=p*pow(1+r1,5); p5=p*pow(1+r0/4,4*5); printf("p1=%f\n",p1); printf("p2=%f\n",p2); printf("p3=%f\n",p3); printf("p4=%f\n",p4); printf("p5=%f\n",p5); return 0; }
// 一次存 5 年期 // 先存 2 年期,到期后将本息再存 3 年期 // 先存 3 年期,到期后将本息再存 2 年期 // 存 1 年期,到期后将本息存再存 1 年期,连续存 5 次 // 存活期存款。活期利息每一季度结算一次 // 输出按第 1 方案得到的本息和 // 输出按第 2 方案得到的本息和 // 输出按第 3 方案得到的本息和 // 输出按第 4 方案得到的本息和 // 输出按第 5 方案得到的本息和
printf("%c,%c\n",c1,c2); printf("按 ASCII 码输出结果为:\n"); printf("%d,%d\n",c1,c2); return 0; }#include <stdio.h> int main() { char c1,c2; int i1,i2; printf("请输入两个字符 c1,c2:"); scanf("%c,%c",&c1,&c2); i1=c1; i2=c2; printf("按字符输出结果:\n"); printf("%c,%c\n",i1,i2); printf("按整数输出结果:\n"); printf("%d,%d\n",c1,c2); return 0; }#include <stdio.h> int main() { char c1,c2; // 定义为字符型 // 赋值给整型变量 // 定义字符型变量 // 定义整型变量
(完整版)《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");p rintf (”**************************\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程序设计——顺序程序设计373。
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。
《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语言程序设计》课后习题答案(第四版)谭浩强第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#includeintmain(){printf(\printf(\verygood!\\n\\n\printf(\return0;}1-6#includeintmain(){inta,b,c,max;printf(\scanf(\max=a;if(maxprintf(\return0;}第2章算法――程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样则表示一个算法222.4.1用自然语言则表示算法222.4.2用流程图则表示算法222.4.3三种基本结构和改进的流程图262.4.4用ns流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的c程序设计――顺序程序设计373.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#includeintmain(){floatp,r,n;r=0.1;n=10;p=pow(1+r,n);printf(\return0;}3-2-1#include#includeintmain(){floatr5,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语⾔【第15页】1-5#include <>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (maxmax=b;if (maxmax=c;printf("The largest number is %d\n",max);return 0;}第2章算法——程序的灵魂【第36页】暂⽆答案第3章最简单的C程序设计——顺序程序设计【第82页】3-1#include <>#include <>int main(){float p,r,n;r=;n=10;return 0;}3-2-1#include <>#include <>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000; r5=;r3=;r2=;r1=;r0=;p1=p*((1+r5)*5); #include <> #include <>int main(){float d=300000,p=6000,r=,m;m=log10(p/(p-d*r))/log10(1+r);printf("m=%\n",m);return 0;}3-4#include <>int main(){int c1,c2;c1=197;c2=198;printf("c1=%c,c2=%c\n",c1,c2);printf("c1=%d,c2=%d\n",c1,c2);return 0;}3-5#include <>int main(){int a,b;scanf("a=%d b=%d",&a,&b);scanf("%f %e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2); return 0; }3-6#include <>int main(){char c1='C',c2='h',c3='i',c4='n',c5='a';c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("passwor is %c%c%c%c%c\n",c1,c2,c3,c4,c5);return 0;}3-7#include <>int main (){float h,r,l,s,sq,vq,vz;float pi=;printf("请输⼊圆半径r,圆柱⾼h∶");scanf("%f,%f",&r,&h); #include <>int 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=e lse /* x>=10 */{ y=3*x-11;printf("x=%d, y=3*x-11=%d\n",x,y);}return 0;}4-7-1#include <>int main(){int x,y;printf("enter x:");scanf("%d",&x);y=-1;if(x!=0)if(x>0)y=1;elsey=0;printf("x=%d,y=%d\n",x,y);return 0;}4-7-2#include <>int main(){int x,y;printf("please enter x:"); scanf("%d",&x); y=0;if(x>=0)if(x>0) y=1;else y=-1;int main(){ float score;char grade;printf("请输⼊学⽣成绩:");scanf("%f",&score);while (score>100||score<0){printf("\n 输⼊有误,请重输");s canf("%f",&score);}switch((int)(score/10)){case 10:c ase 9: grade='A';break;c ase 8: grade='B';break;c ase 7: grade='C';break;c ase 6: grade='D';break;c ase 5:c ase 4:c ase 3:c ase 2:c ase 1:c ase 0: grade='E';}printf("成绩是 %,相应的等级是%c\n ",score,grade); r eturn 0;}4-9#include <>#include <>int main(){int main(){double s=0,t=1;int n;for (n=1;n<=20;n++){t=t*n;s=s+t;}printf("1!+2!+...+20!=%\n",s);return 0;}5-7#include <>int main(){int n1=100,n2=50,n3=10;double k,s1=0,s2=0,s3=0;for (k=1;k<=n1;k++) /*计算1到100的和*/{s1=s1+k;}for (k=1;k<=n2;k++) /*计算1到50各数的平⽅和*/ {s2=s2+k*k;} for (k=1;k<=n3;k++) /*计算1到10的各倒数和*/ {s3=s3+1/k;} printf("sum=%\n",s1+s2+s3);return 0;}5-8#include <>int main(){int i,j,k,n;printf("parcissus numbers are ");i=n/100;j=n/10-i*10;k=n%10;if (n==i*i*i + j*j*j + k*k*k)printf("%d ",n);}printf("\n");return 0;}5-9-1#define M 1000 /*定义寻找范围*/ #include <>int main()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单项选择题(20题,每题2分,共40分)1.一个C语言程序是由组成的。
A.主程序B.子程序C.函数D.过程2.判断char型变量c1是否为小写字母的最简单且正确的表达式为。
A. 'a'<=c1<='z'B. (c1>=a)&&(c1<=z)C. ('a'<=c1)||('z'>=c1)D. (c1>='a')&&(c1<='z')3.为了判断两个字符串s1和s2是否相等,应当使用。
A. if (s1==s2)B. if (s1=s2)C. if (strcpy(s1,s2))D. if( strcmp(s1,s2) == 0 )4. 设a,b都是int型变量,则表达式:(a=2,b=5,a>b? a++ : b++ ,a+b)的值为。
A. 7B. 8C. 9D. 25. 设x、y和t均为int型变量,则以下语句:t=x; x=y; y=t;的功能是。
A. 把x和y按从大到小排列B. 把x和y按从小到大排列C. 无确定结果D. 交换x和y中的值6. 下面标识符中,合法的用户标识符为。
A. P#AdB.12aC.charD._int7. 循环语句while(!E);中的表达式!E等价于。
A. E!=0B. E!=1C. E==0D. E==18. 设有以下语句,则不是对a数组元素的正确引用,其中0≤i<10。
int a[10] = {0,1,2,3,4,5,6,7,8,9};int *p = a;供选择的答案是:A. a[p-5]B. *(&a[i])C. p[i]D. *(a+i)9. 若用数组名作为函数调用的实参,传递给形参的是。
A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数10.下面四段程序中,不是死循环的程序段是。
──────—───┬───────────────A.int i=100; C.int k=0;while (1) do {++k;{ i=i%100+1; } while (k>=0);if (i>100) ───────────────break; D.int s=3379;} │while (s);──────────┤s++;B.for ( ;;);──────────┴───────────────11.在一个文件中定义的全局变量的作用域为。
A.本程序的全部范围;B.本文件的全部范围;C.函数内的全部范围;D.从定义该变量的位置开始到文件结束。
12.下面的程序执行后,文件test.t中的内容是。
#include <stdio.h>#include<string.h>void fun(char *fname,char *st){ FILE *myf;int i;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){ fun("test.t","new world");fun("test.t","hello,");}A)hello,B)new worldhello,C)new world D)hello,world 13.若有以下定义和语句int a=3,b=4, *q,*w,*p;p=&a;q=&b;w=q;q=NULL;则以下选项中错误的语句是。
A *p=a;B w=p;C *q=0;D *p=*w;14.以下语句中,指针s所指字符串的长度为。
char *s=”\\Hello\tWorld\n”;A.13 B.12C.14 D.1015.若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数。
A.没有返回值 B.返回若干个系统默认值C.能返回一个用户所希望的函数值 D.返回一个不确定的值16.有以下程序main(){ int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for(i=0;i<3;i++)printf(“%d”,m[k][i]);}执行后输出结果是A. 4 5 6B. 2 5 8C. 3 6 9D. 7 8 917.下列程序的输出结果为。
#define SQR(x) x*xmain(){ int a=10, k=2, m=1;a/=SQR(k+m);printf(“%d\n”, a);}A. 1B. 8C. 2D. 918. 设有以下程序段:char a[ ]=”study”,*p;p=a;printf(“%d”,*(p+5));执行后的结果为:A、111B、0C、104D、不确定19.设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为。
struct student{ char name[20];int age;char sex;}stu[5], *p;p=stu;A. scanf("%s", stu[0].name);B. scanf("%d", p->age);C. scanf("%c", &(p->sex));D. scanf("%d", &stu[0].age);20.已知static int a[ ]={5,4,3,2,1},*p[ ]={a+3,a+2,a+1,a},**q=p;则表达式:*(p[0]+1) + **(q +2 ) 的值是。
A.5 B.4 C.6 D.7二、程序填空题(每空2分,共20分)1、求1 + 1/2 +1/4 + 1/6 + ···+ 1/100 的值。
#include “stdio.h”main( ){ int i =2 ;float sum ;_______________;while ( i <=100){ sum = ____________ ;__________________ ; }printf ( “ sum = %f “ , sum);}2、以下程序的功能是:从键盘输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。
main( ){ float x[1000], sum = 0.0, ave, a ;int n=0, i;printf(“Enter mark:\n”);scanf(“%f”,&a);while(a>=0.0 && n<1000){sum =sum+a;x[n]=______;n++;scanf(" % f ",_______);}ave= ________ ;printf(“Output: \n”);printf(“ave=%f\n”,ave);for(i=0; i<n; i++)if(_________) printf("%f\n”,x[i]);}4、将输入的百分制成绩转换成相应的等级。
100—90分为A,89—80分为B …… 60分以下为E。
main(){int score,temp;char grade;scanf("%d",&score);if(score ==100)temp=9;elsetemp= __________;switch( ______ ){case 9:grade='A'; break;case 8:grade='B'; break;case 7:grade='C'; break;case 6:grade='D'; break;______________}printf ("Score=%d Grade=%c\n", score, grade);}三、程序阅读题(每题4分,共20分)1、以下程序运行后,输出结果是_______。
#include "stdio.h"main( ){ char ch='A';int x=8;while (ch<='H'){ printf("%c,",ch);ch+=2;}printf("\n");do{ x--;if (x%3==0) continue;printf("%d,",x);} while (x>0);}2、以下程序运行后,输出结果是_______。
int func(int a, int b){ static int m=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){ int k=4,m=1,n;n=func(k, m);printf(“%d,”, n);n=func(k, m);printf(“%d ”, n);}3、下面程序的运行结果是:。
void swap(int *a,int *b){ int *t;t=a; a=b; b=t;}main(){ int x=3,y=5,*p=&x,*q=&y;swap(p,q);printf(“%d,%d\n”,*p,*q);}4、下面程序的运行结果是:。
#include "stdio.h"main(){ int i,j;char ch;for(i=1;i<5;i++){ for(j=1;j<20-i;j++) printf(" ");ch='A';for(j=1;j<=2*i;j++) printf("%2c",ch++);printf("\n");}}5、以下程序运行后的输出结果是。
int func(int a,int b){ return (a+b);}main(){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}四、编程题(三题中任选两题,每题10分,共20分,)1、用递归方法求n!。
2、从键盘输入十个数,按升序排列后输出排序的结果,请按以下要求完成,要求:1)、必须用主、子函数调用完成程序。