C语言内涵教程练习5参考答案

合集下载

c语言程序设计第五版习题答案解析

c语言程序设计第五版习题答案解析

习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。

【解答】(1)语言简洁、紧凑,使用方便、灵活。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛。

(4)具有结构化的控制语句。

如if…else语句、while语句、do while语句、switch 语句、for语句。

(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。

(6)所生成的目标代码质量高,可移植性好。

2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。

3.C语言程序的运行一般要经过哪几个步骤?【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。

二.运行程序写结果1.输入下面程序并运行。

main(){int a1,a2,x;a1=100;a2=50;x=a1-a2;printf(″x=%d\n″,x);}【解答】运行结果为:x=502.输入下面程序并运行。

main(){int a1,a2,x;a1=10;a2=20;x=a1*a2;printf(″a1=%d,a2=%d\n″,a1,a2);printf(″x=%d\n″,x);}【解答】运行结果为:a1=10,a2=20x=2003.输入下面程序并运行。

#include <stdio.h>main(){printf("******\n");printf(" *****\n");printf(" ****\n");printf(" ***\n");printf(" **\n");printf(" *\n");}【解答】运行结果为:*********************思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。

最新最全标准C语言程序设计第五版课后基础练习题复习答案完整版.doc

最新最全标准C语言程序设计第五版课后基础练习题复习答案完整版.doc

课后练习题答案Chapter 11.1×√×√√×√××√1.2b c1.3ad1.4semicolon printf math.h \nChapter 22.1 ×√××√√×√××√×2.2 typedef 255 external constChapter 33.1 ×√××√√×××√√√3.2 integer modula 6 logical sizeof paratheses typeconversion precedence3.3 F F T F F F3.4 F T T T F3.5 (b) (c)3.6 0 -2 7 10.25 false 3 3 13.10 0 1 1 1 13.11d}1003.121101113.13 13.14 2003.15 x<=y3.16 TRUE3.192143.20-4040Chapter 44.1 ×√√√√√××√√√×4.2 %hd %x ctype.h %l %*d [^] blank 6 - %e4.4 (a) scanf(“%d %c %d”, &a, &b, &c); (b)scanf(“%d %f %s”, &a, &b, &c);(c) scanf(“%d-%d-%d”, &a, &b, &c); (d) scanf(“%d %s %d”, &a, &b, &c);4.5 (a)10x1.230000 (b)1234x 1.23 (c)1234 456.000000 (d) “123.40 ”(e) 1020 1222(乱码)4.7 (a)1988 x (b)乱码(c)120 乱码(d)乱码 x4.8 (a)1275 -235.740000(b) 1275-235.740000(c) 0 0.000000(d) 1275xxxx-235.74(e)Cambridge(f)1275 Cambridge4.10 1988 无无Chapter 55.1 √×√××××××√5.2 && switch break if-else x=y5.4 (a)x = 2; y = 0; (b) x = 1; y = 0;5.5 (a) if (grade <= 59)if (grade >= 50)second = second + 1;(b) if (number > 100) printf(“out of range”);else if (number < 0) printf(“out of range”);else sum = sum + number;(c)if (T > 200) printf(“admitted”);else if (M > 60){if (M > 60) printf(“admitted”);}else printf(“not admitted”);5.6 F T F T5.8 (a) x > 10 (b) (x != 10)||(y ! = 5) || (z >= 0)(c) (x + y != z) || (z > 5) (d) (x > 5) || (y != 10) || (z >= 5)5.9 (a) x = 5; y = 10; z = 1 (b) x = 5; y = 10; z = 1(c) x = 5; y = 0; z =0 (d) 无变化5.10 (a) x= 0; y = 2; z = 0; (b) x = 1; y = 2; z = 0;5.12 85.13 Delhi Bangalore END5.1424485.15 0 0 25.16 255.17 Number is negative5.18 ABC5.19 105.20 无输出Chapter 66.1 √√√××√×√√×6.2 n continue infinite indefinite-repetition-loop counter-variable 6.9 (a) 43210 (b)4321 (c)55555…55555(d)10 86.11 (a)无数次 x = 10; x = 5; x = 10; x = 5; x = 10;…(b)5次 m = 3, m = 5, m = 7, m = 9, m = 11(c)无数次, i 恒为0(d)4次 m = 11 n = 9; m = 12 n = 11; m = 13, n = 13; m = 14, n = 15;6.13(a)for (n = 1; n <= 32; n = n * 2) printf("%d ", n);(b)for (n = 1; n <= 243; n = n * 3) printf("%d ", n);(c)for (n = -4; n <= 4; n = n + 2) printf("%d ", n);(d)sum = 0;for (i = 2; i <= 16; i = sum){sum = sum + i;n = n - i;printf("%d %d %d \n", i, sum, n);}6.16 100 90 80 70 60 50 40 30 20 10 06.17 m = 20时陷入死循环,程序无输出6.18 16.19 16.20 死循环,延长时间用Chapter 77.1 √×√××√√√√××√7.2 index/subscript run-time dynamic multi-dimensional sorting7.14 157.15 HLOWRDChapter 88.1 ×√√√×√××√×××√×√8.2 %[ a-z,A-Z] strcpy 3 stdlib gets strlen strstr strcmp s1-s2 puts8.6 (a) The sky is the limit.(b) The sky is(c) T(d) The sky is the limit(e)8410410132115107121321051153211610410132108105109105116(f)输出1 2 3 4 5 6 7 8 9…21这些ASCII码对应的字符,无显示符号(g)%(h)U8.7 (d)8.8 78.9 (a)he(b)heorshe(c)5 78.11 puneChapter 99.1 √×××√×××√√√×××√×√√××9.2 actual-parameter local-variable int data-type variable-name scope recursive static type auto9.8 abceg9.9 abcdeg9.12 (a) 5 (b) 4 (c)3 (d)09.13 (a) 5 4 4 0 (b) 5.0 4.0 3.0 0.679.14 题目错,设z = 5;结果为:200 10009.15 1009.16 x = 3; y = 0Chapter 1010.1 ×√√√√×√√×√√√××√10.2 typedef union tag_name pointer memberChapter 1111.1 √×√√√√×√××11.2 address * * 0 null赠送以下资料5以内的加减法口算练习题姓名得分2+2= 3+2= 0+2= 0+1= 3-1= 2+1= 2+3= 1+4= 1-0= 2+2= 0-0= 3+2= 3-1= 2-1= 2+2= 4-3= 3+2= 2+2= 5-4= 3-1= 0+4= 4+1= 1+0= 0+0= 5-2= 3+2= 4-3= 2+2= 1+2= 5-2= 1+2= 2-0= 1+2= 4+1= 2+2= 2-0= 1-1= 2+2= 2-0= 1-0= 3+0= 4-2= 2-0= 3-0= 0+1= 4-1= 4+1= 3-1= 4-3= 2-0= 3-1= 1+3= 2-0= 1-0= 3+0= 1+2= 5-4= 1-1= 2+0= 3-1= 2-0= 0+1= 1+4= 2+3= 2-1= 3-1= 0+0= 2+2= 2-0= 3-1= 1+0= 1+2= 2+2= 1+3= 5-4= 0+2= 2+3= 1-0=5-2= 3-3= 1+2= 2-1= 3-3= 3-0= 4-4= 5-4= 2+2= 3-2= 3-0= 3+1= 2+1= 3-3= 4-4= 2-0= 4-0= 3-2= 3-0= 4-3= 5-2= 5+0=家长签名。

C语言程序设计练习五(参考答案)

C语言程序设计练习五(参考答案)

C语言程序设计练习五(参考答案)五、程序设计题1.从键盘上输入10个整数,并将其存放在一数组中,求出该数组中所有大于零且为偶数的数的平均值。

#includevoidmain(){inta[10],i,n=0;floataver=0;for(i=0;i<10;i++)canf(\for(i=0;i<10;i++)if(a[i]>0&&a[i]%2==0){aver+=a[i];n++;}aver=aver/n;printf(\}2.若有n行n列数组,试编写一程序,分别求出两条对角线元素之和。

(从键盘输入n某n个整型数,n≤20)#include#defineN20voidmain(){inta[N][N],n,i,j,k=0,t=0;canf(“%d”,&n);for(i=0;i}printf(“k=%d,t=%d\\n”,k,t);}3.从键盘输入n某n个整型数(n≤20),组成n行n列数组,打印出其上三角数组。

#includevoidmain(){inta[20][20],i,j,n;canf(\for(i=0;icanf(\for(i=0;iprintf(\printf(\}}4.用以下近似公式编一个求的近似值的程序。

1111,其中n的值由键盘输入。

1(1)n143572n1#includevoidmain(){floatpi=0.0,=1.0;intn,i;canf(\for(i=1;i<=n;i++){pi=pi+/(2某i-1);=某(-1.0);}printf(\}25.若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。

#includevoidmain(){inta[]={8,2,5-3,7,-9,0,-4,10,15},ma某,min,ima某=a[0];min=a[0];for(i=1;i<10;i++){if(a[i]>ma某)ma某=a[i];If(a[i]}printf(“ma某=%d,min=%d\\n”,ma某,min);}6.从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。

c程序语言第五版习题答案

c程序语言第五版习题答案

c程序语言第五版习题答案C程序语言第五版习题答案在学习编程语言的过程中,练习和理解习题是非常重要的一部分。

对于C程序语言第五版的学习者来说,习题的解答不仅可以帮助巩固所学的知识,还能够提升编程能力。

在本文中,我将为大家提供C程序语言第五版习题的一些答案和解析,希望能够对学习者有所帮助。

1. 习题1-1题目:编写一个程序,在屏幕上输出"Hello, World!"。

解答:```c#include <stdio.h>int main(){printf("Hello, World!\n");return 0;}```解析:这是一个非常简单的程序,使用了C语言中的标准输入输出库函数`printf`来输出字符串"Hello, World!"。

`\n`表示换行符。

2. 习题2-1题目:编写一个程序,计算并输出华氏温度转换为摄氏温度的结果。

解答:```c#include <stdio.h>int main(){float fahrenheit, celsius;printf("请输入华氏温度:");scanf("%f", &fahrenheit);celsius = (fahrenheit - 32) * 5 / 9;printf("摄氏温度为:%.2f\n", celsius);return 0;}```解析:这个程序通过用户输入的华氏温度,使用公式`(华氏温度 - 32) * 5 / 9`来计算摄氏温度,并输出结果。

3. 习题3-2题目:编写一个程序,输入一个浮点数,输出该浮点数的立方值。

解答:```c#include <stdio.h>int main(){float num, cube;printf("请输入一个浮点数:");scanf("%f", &num);cube = num * num * num;printf("立方值为:%.2f\n", cube);return 0;}```解析:这个程序通过用户输入的浮点数,使用乘法运算符`*`计算该浮点数的立方值,并输出结果。

C语言第五章习题带答案

C语言第五章习题带答案

练习5-1答案一、选择题1.合法得数组说明语句就是( B )。

A.int a[]="string";B.int a[]={0,1,2,3,4,5};C.char a="string";D.char a[5]={'0', '1', '2', '3', '4', '5'};2.以下对一维整型数组a得说明正确得就是( D )。

A.int a(10);B.int n=10, a[n];C.int n;D.#define SIZE 10scanf("%d", &n); int a[SIZE];int a[n];3.已知:int a[10];,则对a数组元素得正确引用就是( D )。

A.a[10]B.a[3、5]C.a(5)D.a[10-10]4.以下对一维数组a进行正确初始化得语句就是( C )。

A.int a[10]=(0, 0, 0, 0, 0);B.int a[10]={};C.int a[]={0};D.int a[2]={10, 9, 8};5.对以下说明语句得正确理解就是( B )。

int a[10]={6, 7, 8, 9, 10};A.将5个初值依次赋给a[1]至a[5]B.将5个初值依次赋给a[0]至a[4]C.将5个初值依次赋给a[6]至a[10]D.因为数组长度与初值得个数不相同,所以此语句不正确二、填空题6.求所有不超过200得N值,N得平方就是具有对称性质得回文数。

所谓回文数就就是将一个数从左到右与从右到左读都就是一样得,例如:34543与1234321都就是回文数。

例如:满足题意要求得数有:N=1,11*11=121;N=111,111*111=12321。

#include <stdio、h>main(){int m[16], n, i, t, count=0;long a, k;printf("Result is:\n");for (n=10; n<200; n++){ k=0;t=1;a=n*n;for (i=1; a!=0; i++){ ①;a/=10;}for (; i>1; i--){ k+=m[i-1]*t;②;}if ( ③) printf("%2d:%10d %10d\n", ++count, n, n*n);}}则①为( m[i]=a%10; )、②为( t*=10; )、③为( k==n*n )。

《C语言学习与应用》课后习题及答案05

《C语言学习与应用》课后习题及答案05

学习任务五 参考答案 问题5-1:输入正方形的边长,求面积的函数解法,请将代码补充完整。

#include "stdio.h"double fun(double);void main(){ double a,area;printf("请输入正方形的边长:");scanf("%lf",&a);area=fun(a);printf("area=%lf\n",area);}double fun(double x){double s;s=x*x;return s;}问题5-2:模仿应用举例5-2,编写一个函数isprime(int a)判断a是否为素数,并在主函数中输出100以内的非素数之和。

#include "stdio.h"#include "math.h" //包含数学函数的头文件int isprime(int a){int i;for(i=2;i<=sqrt(a);i++)if(a%i==0)return 0;return 1;}void main(){int i,s=0;for(i=1;i<=100;i++)if(isprime(i)==0)s=s+i;printf("s=%d\n",s);getchar();}程序执行结果:s=3989编程训练5-1-1 输入两个整数,输出较大数,只由main函数实现#include "stdio.h"void main(){int x,y,max;printf("请输入两个整数:\n");scanf("%d%d",&x,&y);if(x>y)max=x;elsemax=y;printf("较大值是:%d\n",max);}编程训练5-1-2 建一个无参数的函数,将主函数中的代码全部转移到自定义函数中,#include "stdio.h"void fmax() //自定义函数{ // 将原来主函数中的内容全部搬来.int x,y,max;while(1){printf("请输入两个整数:\n");scanf("%d%d",&x,&y);if(x>y)max=x;elsemax=y;printf("较大值是:%d\n",max);}}void main(){fmax(); //主函数中仅一条函数调用语句}编程训练5-1-3 编写带参数的函数。

c语言入门经典 第5版 习题答案

c语言入门经典 第5版 习题答案

c语言入门经典第5版习题答案
《C语言入门经典第5版习题答案》
在学习编程语言C的过程中,经典教材《C语言入门经典第5版》是许多初学者的首选。

本书系统地介绍了C语言的基础知识和编程技巧,深受广大读者的喜爱。

而书中的习题部分更是对读者学习成果的检验和巩固,因此备受关注。

本书第5版的习题答案部分,为读者提供了宝贵的学习资源。

通过阅读和理解习题答案,读者可以更好地掌握C语言的编程技巧和解题思路。

同时,习题答案也为读者提供了与书中知识点结合的实际编程练习,帮助读者加深对C语言的理解和运用能力。

在习题答案部分,读者可以找到对各种不同类型题目的解答,涵盖了C语言的各个知识点和编程技巧。

这些答案不仅仅是简单的结果展示,更是对解题过程和思路的详细解释,帮助读者理解每个问题的解决方法和实现逻辑。

通过阅读习题答案,读者可以学习到更多实际的编程技巧和解题思路,为以后的学习和实践打下坚实的基础。

除此之外,习题答案还可以帮助读者检验自己的学习成果。

通过对比自己的解答和书中的答案,读者可以及时发现和纠正自己的错误,提高对C语言知识点的掌握程度。

同时,习题答案也可以为读者提供更多的实际编程练习,帮助读者巩固所学知识,提高编程能力。

总之,《C语言入门经典第5版习题答案》为读者提供了宝贵的学习资源和实践指导,帮助读者更好地掌握C语言的编程技巧和解题思路。

通过认真阅读和理解习题答案,相信读者一定能够在C语言的学习过程中取得更好的成绩,成为一名优秀的C语言程序员。

c语言第五章习题答案

c语言第五章习题答案

第一题:1. 从键盘输入10个数,求和。

#include "stdio.h"void main( ){int x,s=0;int i;for(i=0;i<10;i++){scanf("%d",&x);s+=x;}printf("s=%d\n",s );}2. 从键盘输入10个数,求平均值。

#include "stdio.h"void main( ){int x,s=0,ave;int i;for(i=0;i<10;i++){scanf("%d",&x);s+=x;}ave=s/10;printf("s=%d,ave=%d\n",s ,ave );}3. 从键盘输入10个数,求偶数的和。

#include "stdio.h"void main( ){int x,s=0;int i;for(i=0;i<10;i++){scanf("%d",&x);if(x%2==0) s+=x;}printf("s=%d\n",s );}4. 从键盘输入10个数,求偶数的平均值。

#include "stdio.h"void main( ){int x,s=0,ave;int i;int k=0;for(i=0;i<10;i++){scanf("%d",&x);if(x%2==0) {s+=x;k++;}}ave=s/k;printf("s=%d,ave=%d\n",s,ave );}5. 从键盘输入n个数,求偶数的平均值。

#include "stdio.h"void main( ){int x,s=0,ave;int i;int k=0;int n;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&x);if(x%2==0) {s+=x;k++;}}ave=s/k;printf("s=%d,ave=%d\n",s,ave );}第二题:#include "stdio.h"void main( ){char c;int zm=0,sz=0;do{c=getchar();if(c>='A'&&c<='Z' || c>='a'&&c<='z')zm++; else if(c>='0'&&c<='9')sz++;}while(c!='*');printf("zm=%d,sz=%d\n",zm,sz );}第三题:#include "stdio.h"void main( ){int n,s=0,d,x;scanf("%d",&n);x=n;while(n!=0){d=n%10;s+=d;n=n/10;}printf("n=%d,s=%d\n",x,s );}第四题:#include "stdio.h"void main( ){char c;do{c=getchar();if(c >= 'A' && c <= 'Z') putchar(c+32); else if(c >= 'a' && c < 'z' )putchar(c-32); }while(c!='\n');}第五题:#include "stdio.h"void main( ){int k=0; float t=200;while(t<500){ t=t*(1+0.045);k++;//if(t>=500)break; }printf("after %d years: t=%f",k,t);}第六题:#include "stdio.h"void main( ){int m,d,x;for(m=1;m<=999;m++){ x=m;if(x%3==0){while(x!=0){ d=x%10;if(d==5) {printf("%4d",m);break;}x=x/10;}}}}第七题:#include "stdio.h"void main( ){int m,k=0;for(m=7; 1 ;m++){if(m%2==1&&m%3==2&&m%5==4&&m%6==5&&m %7==0){printf("m=%d\n",m);k++;}if(k==5)break;}}。

c语言程序设计第五版习题答案解析

c语言程序设计第五版习题答案解析

c语言程序设计第五版习题答案解析首先,值得指出的是,《C语言程序设计》是一本经典的编程教材,它通过系统性的介绍和练习,帮助读者掌握C语言编程的基本原理和技巧。

而针对这本书中的习题,我们将逐一进行解答和解析,以便读者更好地理解和掌握其中的知识。

1. 第一章:C语言概述在第一章中,主要介绍了C语言的历史背景、特点和发展。

对于习题的解答,我们可以通过提问的方式帮助读者思考和回顾所学内容,例如:“C语言为什么被广泛应用于系统软件开发?”、“C语言的起源是什么?”2. 第二章:数据类型、运算符和表达式在第二章中,主要介绍C语言中的数据类型、运算符和表达式。

习题部分则涵盖了类型转换、算术运算、逻辑运算等内容。

针对这些习题,我们可以给出详细的解答步骤和原理解析,让读者了解C语言中各种运算符的优先级和使用规则。

3. 第三章:控制结构第三章主要介绍了C语言中的分支结构和循环结构。

针对习题部分,我们可以详细解答条件语句、循环语句的使用和注意事项,同时提供一些实际例子和应用场景,让读者更好地理解和掌握这些知识点。

4. 第四章:函数与程序结构在第四章中,重点介绍了函数的定义、调用和参数传递等。

针对习题,我们可以通过编写代码的方式,给出函数的实际应用案例,并解释其中的关键代码部分,帮助读者理解函数的作用和使用方法。

5. 第五章:指针与数组第五章主要介绍了C语言中指针和数组的概念和用法。

对于习题解答,我们可以给出指针和数组的定义、操作方法,并通过实例演示指针和数组在实际编程中的应用。

6. 第六章:字符输入输出第六章主要讲解了C语言中字符输入输出的函数和特点。

在解答习题时,我们可以提供一些常见的字符输入输出问题,并给出详细的解决思路和代码示例。

7. 第七章:类型第七章主要介绍了C语言中的类型定义和使用。

对于习题解答,我们可以通过解析代码和理论知识的结合,帮助读者理解类型的定义和使用场景。

8. 第八章:运算符和表达式在第八章中,主要介绍了C语言中的运算符和表达式。

C语言第五章习题带答案

C语言第五章习题带答案

练习5-1答案一、选择题1.合法得数组说明语句就是( B )。

A.int a[]="string";B.int a[]={0,1,2,3,4,5};C.char a="string";D.char a[5]={'0', '1', '2', '3', '4', '5'};2.以下对一维整型数组a得说明正确得就是( D )。

A.int a(10);B.int n=10, a[n];C.int n;D.#define SIZE 10scanf("%d", &n); int a[SIZE];int a[n];3.已知:int a[10];,则对a数组元素得正确引用就是( D )。

A.a[10]B.a[3、5]C.a(5)D.a[10-10]4.以下对一维数组a进行正确初始化得语句就是( C )。

A.int a[10]=(0, 0, 0, 0, 0);B.int a[10]={};C.int a[]={0};D.int a[2]={10, 9, 8};5.对以下说明语句得正确理解就是( B )。

int a[10]={6, 7, 8, 9, 10};A.将5个初值依次赋给a[1]至a[5]B.将5个初值依次赋给a[0]至a[4]C.将5个初值依次赋给a[6]至a[10]D.因为数组长度与初值得个数不相同,所以此语句不正确二、填空题6.求所有不超过200得N值,N得平方就是具有对称性质得回文数。

所谓回文数就就是将一个数从左到右与从右到左读都就是一样得,例如:34543与1234321都就是回文数。

例如:满足题意要求得数有:N=1,11*11=121;N=111,111*111=12321。

#include <stdio、h>main(){int m[16], n, i, t, count=0;long a, k;printf("Result is:\n");for (n=10; n<200; n++){ k=0;t=1;a=n*n;for (i=1; a!=0; i++){ ①;a/=10;}for (; i>1; i--){ k+=m[i-1]*t;②;}if ( ③) printf("%2d:%10d %10d\n", ++count, n, n*n);}}则①为( m[i]=a%10; )、②为( t*=10; )、③为( k==n*n )。

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

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

C语言程序设计教程第五章课后习题参考答案一、选择题1. B2. A3. C4. B5. D二、填空题1. while2. binary3. 164. 35. continue6. global三、判断题1. 错误2. 正确3. 错误4. 错误5. 正确四、编程题1.```c#include<stdio.h>int main() {int num;printf("请输入一个整数:"); scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数\n", num); } else {printf("%d是奇数\n", num); }return 0;}```2.```c#include<stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("%d与%d的和为%d\n", num1, num2, num1 + num2); return 0;}```3.```c#include<stdio.h>int isPrime(int num) {int i;if (num <= 1)return 0;for (i = 2; i <= num / 2; 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;}```4.```c#include<stdio.h>int factorial(int num) {int i, result = 1;for (i = 1; i <= num; i++) {result *= i;}return result;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d的阶乘为%d\n", num, factorial(num)); return 0;}```五、简答题1. C语言逻辑与运算符(&&)短路特性是什么?答:C语言逻辑与运算符(&&)具有短路特性,即在进行逻辑与运算时,如果前一个表达式的值为假(0),则后面的表达式将不会被计算,整个逻辑与表达式的值直接为假(0)。

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案

c语言程序设计第五版习题答案习题解析与答案第1章C语言概述一.简答题1.概述C语言的主要特点。

【解答】(1)语言简洁、紧凑,使用方便、灵活。

(2)数据类型丰富,表达能力强。

(3)运算符多样。

C语言中的运算符包含的范围非常广泛。

(4)具有结构化的控制语句。

如if…else 语句、while语句、do while语句、switch 语句、for语句。

(5)允许直接访问物理地址。

C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。

(6)所生成的目标代码质量高,可移植性好。

2.构成C语言程序的基本单位是什么?它由哪几部分组成?【解答】函数是构成C语言程序的基本单位。

一个完整的C程序一般由文件包含、宏定义、函一.简答题1.C语言中的数据类型主要有哪几类?【解答】短整型(short int )整型整型(int)长整型(long int )基本类型字符型 (char)单精度(float)实型(浮点型)双精度(double)枚举类型(enum)数组类型构造类型结构体类型 (struct)共用体类型(union)指针类型空类型(void)2.字符常量与字符串常量有什么区别?【解答】字符常量用单括号括起,字符串常量用双括号括起;字符常量存储时占1个字节,字符串常量存储时除了n个字符外,还有系统加上的字符串终止符\0,所以字符串常量存储时占n+1个字节。

3.C语言中的常量包括哪几类?各自是如何构成的?【解答】C语言中的常量是一些其值预先定的量,并且在程序执行过程中其值不再发生变化。

常量的分类遵循基本数据类型分类原则,C 语言编译系统自动将其存放在于类型相应的内存单元中。

其类别包含整形常量、浮点常量、字符常量、字符串常量和枚举常量。

整形常量又分为十进制整形常量、八进制整形常量、十六进制整形常量。

浮点常量分成十进制形式和指数形式。

C语言中的,字符常量是用单括号括起来的一个字符或是字符序列,而字符串常量是用一对双括号括起来的零个或者多个字符组成的序列。

c语言程序设计第五版习题答案解析

c语言程序设计第五版习题答案解析
#include <stdio.h>
Void Main()
{
int a=6;b=8;
int c;
c=a*b;
printf(‘%d’,c);
}
【答案】错误的地方有3处:(1)第2行关键字应该小写;(2)定义b时前面应该
用逗号;(3)打印语句的格式应该用双引号括起来。
正确的程序如下:
#include <stdio.h>
x2=1(4%5等于4,3+4等于7,7-6等于1)
x3=0(-3*4等于-12,-12%-6等于0)
【解答】x1=11
x2=1
x3=0
5.以下程序的执行结果是。
#include <stdio.h>
main()
{
printf("%d\n",NULL);
printf("%d,%c\n",49,49);
#include <stdio.h>
main()
{
char a=’G’,b=’o’,c=’o’,d=’d’;
a=a+32;
b=b-6;
c=c+3;
d=d+8;
printf("%c%c%c%c\n",a,b,c,d);
}
【分析与提示】从ASCII代码表可以看出,字符“G”、“o”、“o”、“d”的ASCII代码值
【解答】
(1)“Hello!”字符串长度为6,占用内存字节数为7。
(2)“ABC?”字符串长度为9,占用内存字节数为10。因为其中\n\\
\064\?各自只占一个字符的位置。
(3)“765+123=?”该字符串不是合法的,因为\765表示的值太大,超出合

新概念C语言能力教程练习05答案

新概念C语言能力教程练习05答案

练习55.1 计算循环体的执行次数并上机验证。

1. int i = 0;2. short i = 1;while(1) while(i > 0){ {++i; ++i;printf("%d\n", i); printf("%d\n", i);} }3. short i = 1;4. char c = 'a';while(i * i >= 0) while(c >= 0){ {++i; --c;printf("d\n", i); printf("%c\n", c)} }答:1.表达式1恒真,因此循环体会执行无数次,具体分析为:2.在数学上,变量i的初值为1,每次自增1后会一直大于0,也就是说表达式i > 0恒真,但是,计算机中整型构成一个环,short型变量的取值范围为-32768~32767,当变量i的值自增到32767后再加1就变成了-32768,表达式i 〉0为假,循环退出,因此循环体执行了32767次。

3.表达式i * i >= 0恒真,因此循环体会执行无数次。

4.字符型变量c的值是字符‟a‟查表可知为97号字符,在比较操作中字符型表现为整型,因此,因此从97至0,循环体共执行了98次。

查表可知具体的执行过程如下。

5.2 画出例5-4的程序流程图。

5.3对折一张厚1毫米的纸,每折一次,纸的厚度就翻一倍,理论上折多少次后厚度可以达到珠穆朗玛峰的高度(按8848米计算)。

(实际上一张纸最多只能对折七次左右)答:分析:5.4 编程输出整数n的阶乘。

(n! = n * (n-1) * … * 2 * 1)答:与例5-4类似的:循环结构执行过程分析如下:0的阶乘等于1,此程序能正确输出吗?for循环结构的程序。

用户输入5时循环结构执行过程分析如下:还可以用:与前面两个程序相比,少用了一个变量。

标准C语言程序设计第五版课后练习题答案

标准C语言程序设计第五版课后练习题答案

课后练习题答案Chapter 11.1×√×√√×√××√1.2b c1.3ad1.4semicolon printf math.h \nChapter 22.1 ×√××√√×√××√×2.2 typedef 255 external constChapter 33.1 ×√××√√×××√√√3.2 integer modula 6 logical sizeof paratheses typeconversion precedence3.3 F F T F F F3.4 F T T T F3.5 (b) (c)3.6 0 -2 7 10.25 false 3 3 13.10 0 1 1 1 13.11d}1003.121101113.13 13.14 2003.15 x<=y3.16 TRUE3.192143.20-4040Chapter 44.1 ×√√√√√××√√√×4.2 %hd %x ctype.h %l %*d [^] blank 6 - %e4.4 (a) scanf(“%d %c %d”, &a, &b, &c); (b)scanf(“%d %f %s”, &a, &b, &c);(c) scanf(“%d-%d-%d”, &a, &b, &c); (d) scanf(“%d %s %d”, &a, &b, &c);4.5 (a)10x1.230000 (b)1234x 1.23 (c)1234 456.000000 (d) “123.40 ”(e) 1020 1222(乱码)4.7 (a)1988 x (b)乱码(c)120 乱码(d)乱码 x4.8 (a)1275 -235.740000(b) 1275-235.740000(c) 0 0.000000(d) 1275xxxx-235.74(e)Cambridge(f)1275 Cambridge4.10 1988 无无Chapter 55.1 √×√××××××√5.2 && switch break if-else x=y5.4 (a)x = 2; y = 0; (b) x = 1; y = 0;5.5 (a) if (grade <= 59)if (grade >= 50)second = second + 1;(b) if (number > 100) printf(“out of range”);else if (number < 0) printf(“out of range”);else sum = sum + number;(c)if (T > 200) printf(“admitted”);else if (M > 60){if (M > 60) printf(“admitted”);}else printf(“not admitted”);5.6 F T F T5.8 (a) x > 10 (b) (x != 10)||(y ! = 5) || (z >= 0)(c) (x + y != z) || (z > 5) (d) (x > 5) || (y != 10) || (z >= 5)5.9 (a) x = 5; y = 10; z = 1 (b) x = 5; y = 10; z = 1(c) x = 5; y = 0; z =0 (d) 无变化5.10 (a) x= 0; y = 2; z = 0; (b) x = 1; y = 2; z = 0;5.12 85.13 Delhi Bangalore END5.1424485.15 0 0 25.16 255.17 Number is negative5.18 ABC5.19 105.20 无输出Chapter 66.1 √√√××√×√√×6.2 n continue infinite indefinite-repetition-loop counter-variable 6.9 (a) 43210 (b)4321 (c)55555…55555(d)10 86.11 (a)无数次 x = 10; x = 5; x = 10; x = 5; x = 10;…(b)5次 m = 3, m = 5, m = 7, m = 9, m = 11(c)无数次, i 恒为0(d)4次 m = 11 n = 9; m = 12 n = 11; m = 13, n = 13; m = 14, n = 15;6.13(a)for (n = 1; n <= 32; n = n * 2) printf("%d ", n);(b)for (n = 1; n <= 243; n = n * 3) printf("%d ", n);(c)for (n = -4; n <= 4; n = n + 2) printf("%d ", n);(d)sum = 0;for (i = 2; i <= 16; i = sum){sum = sum + i;n = n - i;printf("%d %d %d \n", i, sum, n);}6.16 100 90 80 70 60 50 40 30 20 10 06.17 m = 20时陷入死循环,程序无输出6.18 16.19 16.20 死循环,延长时间用Chapter 77.1 √×√××√√√√××√7.2 index/subscript run-time dynamic multi-dimensional sorting7.14 157.15 HLOWRDChapter 88.1 ×√√√×√××√×××√×√8.2 %[ a-z,A-Z] strcpy 3 stdlib gets strlen strstr strcmp s1-s2 puts8.6 (a) The sky is the limit.(b) The sky is(c) T(d) The sky is the limit(e)8410410132115107121321051153211610410132108105109105116(f)输出1 2 3 4 5 6 7 8 9…21这些ASCII码对应的字符,无显示符号(g)%(h)U8.7 (d)8.8 78.9 (a)he(b)heorshe(c)5 78.11 puneChapter 99.1 √×××√×××√√√×××√×√√××9.2 actual-parameter local-variable int data-type variable-name scope recursive static type auto9.8 abceg9.9 abcdeg9.12 (a) 5 (b) 4 (c)3 (d)09.13 (a) 5 4 4 0 (b) 5.0 4.0 3.0 0.679.14 题目错,设z = 5;结果为:200 10009.15 1009.16 x = 3; y = 0Chapter 1010.1 ×√√√√×√√×√√√××√10.2 typedef union tag_name pointer memberChapter 1111.1 √×√√√√×√××11.2 address * * 0 null。

C语言第五章课后答案(1).docx

C语言第五章课后答案(1).docx

〃5.4有3个整数a,b,c,有键盘输入,输出其中最大的数。

#ifO;#include<stdio.h>void main(){int a,b9c9max;printf「输出三个数:”);scanf(H%d%d%d n,&a,&b,&c); printf(M输出最大的一个数:”);max=a;if(max<b)max=b;if(max<c)max=c;printf(H %d\n n,max);}#endif;#ifO;〃方法二#include<stdio.h> void main(){int max(int x,int y,int z);int a9b9c9d; scanfC'%d,%d,%(T,&a,&b,&c); d=max(a,b^c);printf(H%d\n,\d);}int max(int x9int y,int z){int n;if(x>y)if(x>z) n=x;else n=z;elseif (y>z) n=y;else n=z;return(n);#endif;#ifO;//5.5有一个函数,写一段程序,输入x,输出y。

#include<stdio.h>void main(){int x,y;printf(n输入x:n);scanf(n%d n,&x);if(x<l)y二x;if(x>=l&&x<10)y=2*x-l;if(x>=10)y=3*x-ll;prmtf(H%d n,y);#endif;#ifO;〃5・6给出一百分制成绩,要求输出成绩等级A,B,C,D,E。

90分以上A,80~89 分为B, 70~79分为C,60~69分为D, 60分以下为E./*#include<stdio.h>void main(){int grade;scanf(n %d M,&grade);if(grade>90)printf(n A\n n);if(grade>80 && grade<89)printf(M B\n u);if(grade>70 && grade<79)printf(n C\n n);if(grade>60 && grade<69)printf(n D\n M);if(grade<60)#endif;#ifO;〃5・7给一个不多于5位数的正整数,要求:1,求出它是几位数;2,分别输出 每一位数字;3,按逆序输出各位数字,例如原数位321,应输出123。

c语言全部章节习题答案

c语言全部章节习题答案

c语言全部章节习题答案C语言是一门广泛应用于计算机编程的高级编程语言。

它的简洁和强大使得它成为了许多程序员的首选语言。

然而,学习一门新的编程语言并不总是容易的,特别是对于初学者来说。

为了帮助那些正在学习C语言的人们,本文将提供C语言全部章节习题的答案,以期为读者提供一些指导和帮助。

在学习C语言时,习题是巩固所学知识的重要方式。

通过解决习题,学生可以加深对C语言的理解,并提高他们的编程技能。

然而,有时候习题的解答并不容易找到,特别是对于初学者来说。

因此,本文将提供C语言教材中的全部章节习题的答案,以供读者参考。

在第一章中,我们学习了C语言的基本概念和语法。

习题主要涉及变量的声明和赋值,以及简单的算术运算。

以下是第一章习题的答案:1. 声明一个整型变量x,并将其赋值为10。

答案:int x = 10;2. 声明一个字符型变量ch,并将其赋值为'A'。

答案:char ch = 'A';3. 声明两个整型变量a和b,并将其相加的结果赋值给变量c。

答案:int a = 5;int b = 3;int c = a + b;第二章主要介绍了C语言中的控制结构,如条件语句和循环语句。

以下是第二章习题的答案:1. 编写一个程序,判断一个整数是否为偶数。

如果是偶数,输出"Even",否则输出"Odd"。

答案:#include <stdio.h>int main() {int num;printf("Enter an integer: ");scanf("%d", &num);if(num % 2 == 0) {printf("Even");} else {printf("Odd");}return 0;}2. 编写一个程序,计算1到100之间所有偶数的和。

c语言入门经典 第5版 习题答案

c语言入门经典 第5版 习题答案

c语言入门经典第5版习题答案C语言入门经典第5版习题答案C语言作为一门广泛应用于计算机科学和软件开发领域的编程语言,具有简洁、高效和灵活的特点。

《C语言入门经典》是一本经典的教材,对于初学者来说是学习C语言的良好起点。

本文将为读者提供《C语言入门经典》第5版的习题答案,帮助读者更好地巩固所学知识。

第一章:C语言基础知识1.1 变量和数据类型1. 在C语言中,变量的命名规则是以字母或下划线开头,后面可以跟字母、数字或下划线。

变量名不能以数字开头,也不能使用C语言的关键字作为变量名。

2. C语言提供了多种数据类型,包括整型、浮点型、字符型等。

整型可以分为有符号和无符号两种,浮点型可以分为单精度和双精度两种。

3. 常见的数据类型转换包括隐式类型转换和显式类型转换。

隐式类型转换是自动进行的,而显式类型转换需要使用强制类型转换运算符。

1.2 运算符和表达式1. C语言中的运算符包括算术运算符、关系运算符、逻辑运算符等。

算术运算符用于进行基本的数学运算,关系运算符用于比较两个值的大小关系,逻辑运算符用于进行逻辑判断。

2. 表达式是由运算符和操作数组成的。

C语言中的表达式可以包含常量、变量、函数调用等。

3. 运算符的优先级决定了表达式中各个运算符的执行顺序。

在表达式中可以使用括号来改变运算符的优先级。

第二章:控制语句2.1 分支语句1. C语言中的分支语句包括if语句、switch语句等。

if语句用于根据条件执行不同的代码块,switch语句用于根据表达式的值选择执行不同的代码块。

2. 在if语句中,可以使用if-else语句来处理多个条件。

在switch语句中,可以使用break语句来跳出switch语句的执行。

2.2 循环语句1. C语言中的循环语句包括while循环、do-while循环和for循环。

while循环用于在满足条件的情况下重复执行一段代码,do-while循环先执行一次代码,再根据条件判断是否继续执行,for循环在一定条件下重复执行一段代码。

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

5.22 把例 5-13 中的 for 循环结构替换为 while 循环结构。
注意:必须把修改循环变量的操作放在循环体的前面。 5.23 下面的代码中有几个 for 循环结构?找出每个循环结构的循环体。这段代码会有 怎样的输出? 代码嵌套了三个循环结构。输出结果如下:
5.24 编程输出如下所示的九九乘法表。
1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 ……………… 9*1=9 9*2=18
3*3=9 9*3=27
………… 9*9=81
5.25 编程输出如下所示图形
5.26 编程求出 1000 内所有的完全数,输出格式如 6=1+2+3。
5.27 编程求出所有的 3 位水仙数。 5.28 把 1 元换成 1 分、2 分、5 分的硬币,请编程输出详细的兑换方法。
5.பைடு நூலகம் 画出例 5-4 的程序流程图。
5.3 对折一张厚 1 毫米的纸,每折一次,纸的厚度就翻一倍,理论上折多少次后厚度可 以达到珠穆朗玛峰的高度(按 8848 米计算)。(实际上一张纸最多只能对折七次左右)
答:
5.4 编程输出整数 n 的阶乘。(n! = n * (n-1) * … * 2 * 1) 答: 与例 5-4 类似的:
5.20 有百余人,2 人一组余 1 人,3 人一组余 2 人,5 人一组余 4 人,6 人一组余 5 人,
7 人一组正好分完,问共有几人?编程计算。
5.21 用选择结构取代下面程序中循环体内的 continue 语句。
#include <stdio.h> void main( ) {
float f = 1; while (f != -1) {
2. #include <stdio.h> #include <math.h> void main( ) { int m, i, k, flag = 1; scanf("%d", &m); k = sqrt(m); for(i=2; i<=k; ++i)
if(m % i == 0) {
flag == 0; break; } if(flag == 1) printf("%d 是质数。\n", m); else printf("%d 不是质数。\n", m); } 3. #include <stdio.h> #include <math.h> void main( ) { int m, i, k, flag = 1; scanf("%d", &m); k = sqrt(m); for(i=2; flag==1 && i<=k; ++i) if(m % i == 0) flag == 0; if(flag == 1) printf("%d 是质数。\n", m); else printf("%d 不是质数。\n", m); } 分析: 这三个程序用于判断一个正整数是否为质数。与例题相比它们的效率较高(循环次数较少)。 不过它们都没有考虑 1 这种特殊情况,因此需稍加调整。如最后下结论时加个 n 是否为 1 的判断 条件。
#include <stdio.h> void main( ) {
int n = 0; char c; c = getchar( ); while(c != '\n') {
if(c >= '0' && c <= '9') ++n;
c = getchar( ); } printf("%d\n", n); }
12
9
3
4
9
3
0
所以 12 和 21 的最大公约数为 3。
答案:穷举法
辗转相除法

5.31 根据公式 e 1 1 1 …… 1 编程求 e 的近似值,精度要求为106 。
1! 2!
n!
5.32 输入正整数 a(1 a 9)和 n 的值,编程求出 a+aa+……+a……a(最后一个也就是
3. for(i=1; i<100; ++i) { ++i; printf("%3d", i); if(i % 20 == 0) printf("\n"); }
2. for( i=2; i<100; i+=2) { printf("%3d", i); if(i % 20 == 0) printf("\n");
或者: 5.29 三位数 xyz 和 yzz 的和为 532,编程计算 x、y、z 分别是几?
5.30 编程求出两个正数 m 和 n 的最大公约数。
提示 1:用穷举法。注意循环时是从大到小好还是从小到大好。
提示 2:设 n 除以 m 的商为 q 余数为 r,如果 r 为 0,则 m、n 的最大公约数为 n,否则
printf("请输入分数(0~100,-1 退出)\n"); scanf("%f", &f); if(f < 0 || f > 100) {
printf("输入错误!\n"); continue; } if(f >= 60) printf("及格!\n"); else printf("不及格!\n"); } printf("多谢使用!\n"); }
5.15 编程判断一个三位正整数是否为“水仙花数”。水仙花数是指一个 n 位数(n 3),
它每位上的数字的 n 次幂之和等于它本身(例如 371=3 3 +7 3 +1 3 ,153,407 等)。
5.16 编程判断一个正整数各位上数字的乘积是否大于各位上数字之和。
5.17 分析下面的程序,用 Z5z2j3 测试并改写为 for 循环结构
0 的阶乘等于 1,此程序能正确输出吗? for 循环结构的程序。
还可以用:
与前面两个程序相比,少用了一个变量。 5.5 编程输出一个正整数各位上数字中零的个数。
5.6 编程输出正整数各位上数字中的最大数。
或者(注意体会两者的区别)
5.7 以小僧的人数为循环变量求解例 5-6,要求程序不仅没有逻辑错误而且无解时可以 输出“问题没有解!”。
练习 5
5.1 计算循环体的执行次数并上机验证。
1. int i = 0;
2. short i = 1;
while(1)
while(i > 0)
{
{
++i;
++i;
printf("%d\n", i);
printf("%d\n", i);
}
}
3. short i = 1;
4. char c = 'a';
2. #include <stdio.h> void main( ) { int m, i; printf("请输入一个正数:"); scanf("%d", &m); printf("\n%d=", m); for(i=2; m!=1; ++i) if(m % i == 0)
{ printf("%d*", i); m /= i; i -= 1;
} printf("\b \n"); }
5.36 我国有 4 大淡水湖。甲说:洞庭湖最大,洪泽湖最小,鄱阳湖第三。乙说:洪泽
湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。丙说:洪泽湖最小,洞庭湖第三。丁说:鄱
有 m=n*q+r。此时显然有 m、n 的公约数也是 n 和 r 的公约数,即 m 和 n 的最大公约数与 n
和 r 的最大公约数相同,所以只要求出 n 和 r 的最大公约数就可,重复该过程直到余数为 0
求出最大公约数为止。如 m =12,n=21 时,过程如下
次数
m
n
r
1
12
21
12
2
21
12
9
3
答:
注意: 在用穷举法解决此类问题时要防止因四舍五入而出错的情况。如此题中设大僧每人 2 个馍,小僧 4 人一个馍,则问题应该无解,但用例 5-6 的算法求解时程序却会给出错误的结 果。 当然了也可以加一个(100-i) % 3 == 0 的条件来防止类似的错误。 5.8 鸡兔同在一个笼子里,从上面数有 35 个头,从下面数有 94 只脚。求笼中各有几只 鸡和兔。
注: 程序中变量 i 表示加数的绝对值,变量 j 表示加的是第几项,j 为 1 时 sum 加第 1 项即 1,j 为 2 时 sum 加第 2 项即-3。 或:
或:
或: 5.13 编程输出 2000 年至 2100 年间的闫年。
5.14 编程判断一个正整数是否为完全数。一个数如果恰好等于它的因数(自身除外) 之和,则称该数为完全数 (如 6=1+2+3,28 等)。
个程序。
1. #include <stdio.h> void main( ) { int m, i; printf("请输入一个正整数:"); scanf("%d", &m); printf("\n%d=", m); for(i=2; i<m; ++i) { while(m != i) if(m % i == 0) { printf("%d*", i); m /= i; } else break; } printf("%d\n",m); }
相关文档
最新文档