C语言程序设计(第二版)课后答案 丁亚涛

合集下载

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

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

c 语言程序设计教程第二版课后习题答案篇一: c 语言程序设计教程_李含光_ 郑关胜_清华大学出版社习题答案习题答案[完美打印版]】1.单项选择题(1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数(2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案1.单项选择题1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题(1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+(m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15)(x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/(a+b))第 3 章习题参考答案1.单项选择题1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题(1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1(4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果(1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11)i=6 ,k=4 (12)1,-2 4 .程序填空(1)x:y ,u :z(2)m=n ,m !=0 ,m=m/10(3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,printf(“ %nd” ,k)(5)cx=getchar() , cx!=front , cx (6)double s=0, 1.0/k , %lf (7)s=0 , sgmin, 5 .编程题(1).#include stdio.h int main() {double x,y; scanf(%lf,x); if(x1) y=x;else if(x=1.0x10) y=2*x-11; else y=3*x-11;printf(%lf\n,y); return 0; } ( 2 ).#include stdio.h int main() { double x,y,z,min;scanf(%lf%lf%lf,x,y,z); if(xy) min=y; else min=x; if(minz) min=z; printf(min=%lf\n,min); return 0; } ( 3 ).#include stdio.h int main() { int y,m,d,flag,s=0,w,i;scanf(%d%d%d,y,m,d); flag=(y%4==0y%100!=0||y%400==0); w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7; for(i=1;i=m;i++){ switch(i) {case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case 6:s=151+d;break; case 7:s=181+d;break; case 8:s=212+d;break; case 9:s=243+d;break; case 10:s=273+d;break; case 11:s=304+d;break; case 12:s=334+d;break; } }s=(w+s)%7; if(s==0) printf( 星期日\n); else printf( 星期%d\n,s); return 0; } (4).#include stdio.h int main() {float p,r;scanf(%f,p); if(p=10) r=p*0.1;else if(p10p=20) r=10*0.1+(p-10)*0.075; else if(p20p=40)r=10*0.1+10*0.075+(p-20)*0.05; else if(p40p=60)r=10*0.1+10*0.075+20*0.05+(p-40)*0.03;else if(p60p=100) r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p100) r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%f\n,r); return 0; } ( 5).#include stdio.h int main() { char c;while((c=getchar())!=\n) {if(c=ac=z) c=c-32; putchar(c);}return 0; } ( 6 ).#includestdio.h int main() { int m,k=2; printf( 输入一个正整数:\n); scanf(%d,m); while(km) if(m%k==0) {printf(%4d,k); m=m/k; } else k++; printf(%4d\n,m); return 0; }( 7 ).#includestdio.h int main() {int a,n,s=0,p=0,i;scanf(%d %d,n,a); for(i=1;i=n;i++) { p=p*10+a; s=s+p; }printf(%d\n,s); return 0; } ( 8 ).#includestdio.h int main(){int i,j,k; for(i=1;i=9;i++) for(j=0;j=9;j++) for(k=0;k=9;k++) printf(%5d,100*i+10*j+k); return 0; }(9).#includestdio.h #includemath.h int main() { float a=-10,b=10,x,f1,f2,f; f1=(((2*a-4)*a+3)*a)-6; f2=(((2*b- 4)*b+3)*b)-6; do { x=(a+b)/2;f=(((2*x-4)*x+3)*x)-6; if(f*f10) { b=x; f2=f; } else { a=x;f1=f; }}while(fabs(f)=1e-6); printf(%6.2f\n,x); return 0; }(10).#includestdio.h #includemath.h int main() { int n=2;double eps,t,s=0,x;scanf(%lf %lf,x,eps); t=x; s=t; while(fabs(t)=eps) { t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n++; } printf(%d,%lf\n,n,s); return 0; }(11).#includestdio.h int main() { unsigned long s,t=0,p=1; scanf(%u,s); while(s!=0) {if((s%10)%2!=0) { t=t+(s%10)*p; p=p*10; } s=s/10; } printf (%u\n,t); return 0; } 第 4 章习题参考答案1.单项选择题1-5 dddbd 6-10 badcd 11-14 bdab 2 .填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量( 4 )auto , static , register , extern (5)外部变量(6)编译,运行3.阅读程序,指出结果(1)15(2)5(3)5,4,3 (4)i=5i=2 i=2 i=4 i=2(5)求水仙花数(6)-5*5*5 (7)30 (8)0 10 1 11 2 12 4.程序填空(1)float fun(float , float),x+y,x-y, z+y,z-y (2)x ,x*x+1(3)s=0 , a=a+b 5 .编程题(1).while(s!=0) #includestdio.h { unsigned int fun (unsigned int); p=p+s%10; int main() s=s/10; { } unsigned ints; return p; scanf(%u,s); } printf(%u\n,fun(s));( 2 ).return 0;#includestdio.h } #includestdlib.h unsigned int fun(unsigned int s) #includemath.h { void f1(float,float,float,float); unsigned int p=0; void f2(float,float,float,float);【篇二:《 c 语言程序设计》课后习题答案(第四版)谭浩强】t>1.1 什么是计算机程序 11.2什么是计算机语言 11.3c 语言的发展及其特点 31.4最简单的 c 语言程序 51.4.1最简单的 c 语言程序举例 61.4.2c 语言程序的结构101.5运行 c 程序的步骤与方法121.6程序设计的任务14 1-5 #include stdio.hint main (){ printf ( **************************\n\n); printf( verygood!\n\n);printf ( return 0;\n);}1-6#include stdio.hint main(){int a,b,c,max; printf(please input a,b,c:\n);scanf(%d,%d,%d,a,b,c); max=a;if (maxb) max=b;if (maxc) max=c;printf(the largest number is %d\n,max); return 0;}第 2 章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用n?s 流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5 结构化程序设计方法34 习题36第章最简单的 c 程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1 常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3c 语句573.3.1c 语句的作用和分类573.3.2最基本的语句——赋值语句59 3.4 数据的输入输出653.4.1 输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf 函数输出数据683.4.4用scanf 函数输入数据753.4.5字符数据的输入输出78习题823-1 #include stdio.h#include math.hint main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(p=%f\n,p);return 0;}3-2-1#include stdio.h#include math.hint main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5; p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存 5 年期p2=p*(1+2*r2)*(1+3*r3); // 先存 2 年期,到期后将本息再存p3=p*(1+3*r3)*(1+2*r2); // 先存 3 年期,到期后3 年期将本息再存int main(){double r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5);// 一次存 5 年期p2=p*(1+2*r2)*(1+3*r3); // 先存 2 年期,到期后将本息再存 3 年期 p3=p*(1+3*r3)*(1+2*r2); // 先存 3 年期,到期后将本息再存 2 年期 p4=p*pow(1+r1,5); // 存 1 年期,到期后将本息存再存 1 年期,连 续存 5 次 p5=p*pow(1+r0/4,4*5); // 存活期存款。

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

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

c语言程序设计教程第二版课后习题答案《C语言程序设计教程第二版课后习题答案》在学习C语言程序设计的过程中,课后习题是非常重要的一部分。

通过做课后习题,我们可以巩固所学知识,提高编程能力,加深对C语言的理解。

本文将为大家总结《C语言程序设计教程第二版》中的课后习题答案,希望对大家的学习有所帮助。

1. 第一章第一章是C语言程序设计的基础知识,包括变量、常量、表达式、运算符等。

课后习题主要是一些基础的编程练习,例如求两个整数的和、差、积、商等。

这些习题可以帮助我们熟悉C语言的基本语法和运算符的使用。

2. 第二章第二章介绍了C语言的控制结构,包括顺序结构、选择结构和循环结构。

课后习题主要是一些简单的流程控制练习,例如判断一个数是奇数还是偶数、求一个数的阶乘、计算一个数的平方根等。

这些习题可以帮助我们理解程序的执行流程,掌握流程控制的使用方法。

3. 第三章第三章介绍了C语言的数组和字符串,包括数组的定义、初始化、访问和操作,以及字符串的定义、赋值、比较和连接。

课后习题主要是一些数组和字符串的操作练习,例如求一个数组的最大值、最小值、平均值,查找一个字符串中的某个字符等。

这些习题可以帮助我们熟悉数组和字符串的使用方法,提高对数组和字符串的处理能力。

4. 第四章第四章介绍了C语言的函数和指针,包括函数的定义、调用、参数传递和返回值,以及指针的定义、初始化、访问和操作。

课后习题主要是一些函数和指针的练习,例如编写一个函数求两个数的最大公约数、最小公倍数,使用指针实现数组的排序等。

这些习题可以帮助我们理解函数和指针的使用方法,提高对函数和指针的掌握程度。

总的来说,《C语言程序设计教程第二版》中的课后习题涵盖了C语言程序设计的基础知识和常用技巧,通过认真做好这些习题,我们可以加深对C语言的理解,提高编程能力,为以后的学习和工作打下坚实的基础。

希望大家能够认真对待这些习题,不断提升自己的编程能力。

课后题答案-C语言程序设计(第2版)

课后题答案-C语言程序设计(第2版)

《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题C B A B A C C二操作题,2,-8,23.000000,2.500000,-8.0000002. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。

#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。

(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。

C语言程序设计(第二版)习题解答

C语言程序设计(第二版)习题解答

计算机程序设计基础C语言程序设计(第二版)习题解答习题一1.(1)00000000 00101101 (2)1000000000101101 (3)1111111111010011(4)65491 (5)0177723 (6)0xFFD32.11001000 0310 0xC83.(1) 00000000 00000000 00000000 10110010(2) 11111111 11111111 11111111 01001110(3)37777777516 (4)FFFFFF6D4.1100001101010000 0141520 0xC350习题二一、选择题DDCD BADA二、填空题1.字母或下划线 32个字符2. 字符串常量转义字符3. 65 974. 25. 06. 97. 2 4 4 8 18. 2 49. 24 10 60 0 0 010. sqrt((sin(3.14/3)+1)*(sin(3.14/6)+1)/cos(x)) 11. fabs(1-pow(x,3.6))12. (exp(x)+exp(-x))/2 13. 2.5 14. 3.5习题三一、单选题A C DB C二、填空题1.将x的值取出,加3后存回。

2. #include <stdio.h>3. 9,54.4.4三、编程题1.#include <stdio.h>#include <math.h>#define PI 3.1415926void main(){float a,b,c,s,jiaodu;printf(“shuru 2 bian yu jiajiao:”);scanf(“%f,%f,%f”,&a,&b,&jioadu);c=sqrt(a*a+b*b-2*a*b*cos(jiaodu*PI/180);s= a*b*sin(jiaodu*PI/180)/2;2. #include <stdio.h>void main(){float a;int b,c,d;printf(“shuru RMB(yuan):”);scanf(“%f”,&a);d=(int)(a*100)/5; c=(int)(a*100)%5/2;一、填空题1. 0 1 非0 02. 03. z>80 &&(x==100&&y>80||y==100&&x>80)二、按照输出格式写出以下程序的运行结果 21. a=1,b=0,c=02. a=8,b=8,c=103. y=0.5000004. 3三、编程题1. #include "stdio.h"main(){ char c;c=getchar();if (c= ='a' || c= ='A') printf("America");else if (c= ='b' || c= ='B') printf("Britain");else if (c= ='c' || c= ='C') printf("China");else printf("France");}2. #include <stdio.h>void main(){char c;c=getchar();switch (c){ case ‘a’:case ‘A’: printf(“America\n”);break;case ‘b’:case ‘B’: printf(“Britain\n”);break;case ‘c’:case ‘C’: printf(“China\n”);break;default: printf(“France\n”);}}一、 单选题C A C B B B二、 填空题1. 52. 63. 0 20三、 判断题四、 按照输出格式写出以下程序的运行结果1. ▫▫1▫▫2▫▫42. ▫▫7,▫▫8,▫423. 94. 38,6,3,5 五、 编程题4. #include <stdio.h>void main() { int rd,wr,bl,k=0; for(rd=0;rd<=3;rd++) { for(wr=0;wr<=3;wr++) { bl=8-rd-wr;if( bl>6) continue;k+=1;printf(“red=%d,write=%d,black=%d\n ”,rd,wr,bl); }}printf(“count=%d\n ”,k)k;}1. main() { int i; long fact,s; for (i=2;i<=10;i++) {fact=fact*(-1)*I;s=s+fact;} printf(“s=%ld ”,s);}一、 单选题ACAB ABCB二、 填空题1. float b[10]; 0 92. int a[10]={5,12,8,20,15}; 5 8 0 0 0 20 0 a[5]=10; scanf(“%d ”,&a[6]);for(i=0,i<10,i++) printf(“%d ”,a[i]);3. 0 44. 0 6三、 简答题int b[ ]={1,5,8,2,3}只有5个元素。

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

(完整版)C语言程序设计课后习题答案
(1)变量c1、c2应定义为字符型或整形?或二者皆可?
(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?
(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:charc1,c2;与intc1,c2;是否无条件地等价?
解 :#include<stdio.h> void main()
printf(“Verygood!\n”);printf(“\n”);
printf(“**************************”);
}
2.编写一个C程序,输入a、b、c三个值,输出其中最大值。解:
#include<stdio.h> void main()
{
int a,b,c,max;
printf(“请输入三个数a,b,c:\n”);
解 :#include<stdio.h> #include<math.h> void main()
{
double P, r=0.1, n=10;
P=pow((1+r), n);
printf(“%lf\n”, P);
}
3.请编程序将“China”译成密码,译码规律是用原来字母后面的第4个字母代替原来的字母。
printf(“c1=%d c2=%d\n”,c1,c2); printf(“c1=%c c2=%c\n”,c1,c2);
}
第四章
3.写出下面各逻辑表达式的值。设a=3,b=4,c=5。
(1)a+b>c&&b==c
(2)a||b+c&&b-c (3)!(a>b)&&!c||1

c程序设计(第二版)课后习题答案

c程序设计(第二版)课后习题答案
2
C 语言程序设计(第二版) 课后习题参考答案
putchar(c2);//将变量 c2 的值输出 printf("\n"); printf("%c%c\n",c1,c2);//用 printf 输出 c1、c2 的值 printf("%d,%d\n",c1,c2);//输出 c1,c2 的 ASCII 码 } 第四章 【习题 4.5】 /*有三个整数 a,b,c,由键盘输入,输出其中最大的数,请编程序。*/ /*变量:三个整数 a、b、c,中间变量 t,最大值 max*/ #include<stdio.h> void main() { int a,b,c,t,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); t=a>b?a:b;//比较 a 与 b 的大小,将大者赋给中间变量 t max=t>c?t:c;//比较 t 与 c 的大小,将大者赋给最大值 max printf("the max is:\n"); printf("%d\n",max); } 【习题 4.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 score; printf("please input the score:(0-100)\n"); scanf("%d",&score); if(score>=90&&score<=100) printf("A");//如果成绩大于 90 分,输出 A else if(score>=80&&score<=89) printf("B");//如果成绩在 80~89 之间,输出 B else if(score>=70&&score<=79) printf("C");//如果成绩在 70~79 之间,输出 C else if(score>=60&&score<=69) printf("D");//如果成绩在 60~69 之间,输出 D else printf("E");//成绩小于 60 分时,输出 E printf("\n"); } 【习题 4.7】 /*给一个不多于 5 位的正整数,要求:(1)求出它是几位数;(2)分别输出每一个数字;(3)按 逆顺序输出各位数字,例如原数为 321,应输出 123.*/ /*变量:正整数 x、万位数 a、千位位数 b、百位数 c、十位数 d、个位数 e*/ #include <stdio.h>

c程序设计第二版习题答案

c程序设计第二版习题答案

c程序设计第二版习题答案C程序设计第二版习题答案第一章:C语言概述1. 描述C语言的特点。

- C语言是一种结构化编程语言,以其高效性、灵活性和可移植性而闻名。

它支持过程式编程和低级内存操作,适合编写系统软件、操作系统和嵌入式系统。

2. 解释C语言的编译过程。

- C语言的编译过程通常包括预处理、编译、汇编和链接四个步骤。

预处理阶段处理宏定义和条件编译指令,编译阶段将源代码转换为汇编代码,汇编阶段将汇编代码转换为目标代码,链接阶段将目标代码与库函数链接生成可执行文件。

第二章:数据类型、运算符和表达式1. 列举C语言的基本数据类型。

- C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float和double)以及枚举型(enum)。

2. 说明赋值运算符的用法。

- 赋值运算符(=)用于将一个值赋给一个变量。

例如,`a = 5;`表示将整数5赋给变量a。

第三章:控制语句1. 描述if语句的语法结构。

- if语句的基本语法是:`if (条件) { 语句; }`。

如果条件为真,则执行花括号内的语句。

2. 解释while循环的工作原理。

- while循环在每次迭代之前都会检查条件是否为真。

如果条件为真,循环体内的语句将被执行,然后再次检查条件。

这个过程会一直重复,直到条件为假。

第四章:函数1. 函数的定义和声明。

- 函数定义是创建函数的主体,包括函数名、参数列表和函数体。

函数声明是告诉编译器函数的原型,包括函数名、返回类型和参数列表。

2. 函数的调用过程。

- 函数调用包括函数名和参数列表。

调用时,实际参数的值将传递给形式参数,函数执行完毕后,返回值(如果有的话)将返回给调用者。

第五章:数组和指针1. 数组的基本概念。

- 数组是一种数据结构,可以存储固定大小的同类型元素的集合。

数组的元素可以通过索引访问。

2. 指针的用途。

- 指针用于存储内存地址,可以直接操作内存。

指针可以指向基本数据类型、数组、结构体等。

C语言程序设计(第二版)习题参考答案1

C语言程序设计(第二版)习题参考答案1

C语言程序设计(第二版)习题参考答案1C语言程序设计习题参考答案习题1一、判断题1.在计算机中,小数点和正负号都有专用部件来保存和表示。

2.二进制是由0和1两个数字组成的进制方式。

3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。

4.在整数的二进制表示方法中,0的原码、反码都有两种形式。

5.有符号数有三种表示法:原码、反码和补码。

6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。

解:1.F 2.T 3.T 4.T 5.T 6.T 二、单选题1.在计算机中,最适合进行数值加减运算的数值编码是。

A. 原码B. 反码C. 补码D. 移码2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。

A. 112B. 120C. 121D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。

A. 使用8位二进制数,最右边一位为1B. 使用8位二进制数,最左边一位为1C. 使用8位二进制数,最右边一位为0D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。

A. X∧Y=1000B. X∨Y=1111C. XY=0011D. =1000 Y5.下列叙述中正确的是()。

A.高级语言就是机器语言B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。

A.生成可执行文件B.生成目标文件C.输出运行结果D.自动保存源文件7.下列叙述中不正确的是()。

A.main函数在C程序中必须有且只有一个B. C程序的执行从main函数开始,所以main函数必须放在程序最前面C. 函数可以带参数,也可以不带参数。

c语言程序设计(第二版)习题答案

c语言程序设计(第二版)习题答案

c语言程序设计(第二版)习题答案《C语言程序设计(第二版)习题答案》C语言是一种通用的高级程序设计语言,广泛应用于系统软件、应用软件、驱动程序、网络软件、嵌入式软件等领域。

《C语言程序设计(第二版)》是一本经典的教材,对于学习C语言的人来说具有重要的指导意义。

在学习过程中,通过做习题可以更好地巩固所学知识。

本文将为大家介绍一些《C语言程序设计(第二版)》中常见的习题答案,希望对大家的学习有所帮助。

1. 编写一个C程序,实现输入两个整数,输出它们的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和为:%d\n", sum);return 0;}```2. 编写一个C程序,实现输入一个整数,判断它是否为偶数。

```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("是偶数\n");} else {printf("不是偶数\n");}return 0;}```3. 编写一个C程序,实现输入一个字符,判断它是否为大写字母。

```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:");scanf(" %c", &ch);if (ch >= 'A' && ch <= 'Z') {printf("是大写字母\n");} else {printf("不是大写字母\n");}return 0;}```以上是《C语言程序设计(第二版)》中一些常见习题的答案,希望对大家的学习有所帮助。

C语言程序设计(第二版)-电子教案-丁亚涛-8587 第4章 选择结构程序设计

C语言程序设计(第二版)-电子教案-丁亚涛-8587 第4章 选择结构程序设计
执行结果。default子句也可以省略不用。 • 多个case可以共用一组执行语句。例如:
•… • case 'A': • case 'B': • case 'C':printf("Pass\n");break;
关于 break
4.11 案例:判断输入的整数是否含有数字6
【例4-11】输入一个100以内的十进制正整数,判断该数是 否包含数字字符“6”。若是输出“Yes!”,否则输出“No!”。
#include <stdio.h> void main() { int a;
printf("Input a:"); scanf("%d",&a); if(a==6 || (a%10 == 6 || a/10==6))
printf("Yes!\n"); else
printf("No!\n"); }
4.12 案例:三个数的排序
4.9 条件运算符和条件表达式
•?: • 表达式1? 表达式2 :表达式3
if(x>y) max=x; else max=y; • max=x>y?x:y • 优先级 • 右结合性 : • a>b?a:c>d?c:d 等价于 a>b?a:(c>d?c:d)
【例4-9】用条件运算符输出3个整数中的最 大者
4.10 switch语句
switch(表达式) {
case常量表达式1: 语句1; break; case常量表达式2: 语句2; break; … case常量表达式n: 语句n; break; default: 语句n+1; }

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

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

c语言程序设计第2版习题答案1. 基础语法练习题- 题目:编写一个程序,计算并输出1到10的和。

- 答案:使用一个循环结构,累加1到10的数值。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 10; ++i) {sum += i;}printf("The sum from 1 to 10 is: %d\n", sum);return 0;}```2. 数组和字符串练习题- 题目:编写一个程序,找出一个字符串中出现次数最多的字符,并输出它。

- 答案:使用数组来统计每个字符的出现次数,然后找出最大值。

```c#include <stdio.h>#include <string.h>int main() {char str[] = "example string";int maxCount = 0;char maxChar = str[0];int charCount[256] = {0};for (int i = 0; str[i] != '\0'; ++i) {charCount[(int)str[i]]++;if (charCount[(int)str[i]] > maxCount) { maxCount = charCount[(int)str[i]];maxChar = str[i];}}printf("The most frequent character is: %c\n", maxChar);return 0;}```3. 函数和指针练习题- 题目:编写一个函数,交换两个整数的值。

- 答案:使用指针来实现参数的传递。

```c#include <stdio.h>void swap(int *x, int *y) {int temp = *x;*x = *y;*y = temp;}int main() {int a = 5, b = 10;printf("Before swap: a = %d, b = %d\n", a, b);swap(&a, &b);printf("After swap: a = %d, b = %d\n", a, b);return 0;}```4. 结构体和文件操作练习题- 题目:定义一个结构体,包含学生姓名、学号和成绩,编写程序,将学生信息存储到文件中。

C语言程序设计(第二版)课后答案 丁亚涛

C语言程序设计(第二版)课后答案  丁亚涛

习题二一、选择题二、填空题1.182.int float double3.10 114.8 16 105.%三、阅读题1. 10,10,9,102. j=1, i=2k=3,i=3i=3,i=2k=1,i=1习题三一、选择题二、填空题1. 从键盘上读入一个字符在屏幕上输出一个字符 #include<stdio.h>2. 按十进制整数形式输出,有符号按16进制整数形式输出,没有符号按十进制小数形式输出,输出的数据长度为7位,有2位小数按字符形式输出一个字符3. 按十进制整数形式输入数据按十进制整数形式输入三位数据跳过3位十进制数据按字符形式输入一个字符4. 分程序;;5. 大写字母L6. -1三、阅读题1. 6 6 6.00 6.002. x=127,x= 127,x=177,x=7fy=123.4567,y= 123.46,y=123,456703. 2,14. 12345. 4,36. -6,-6习题四一、选择题二、填空题1. 非0 0 、2. k==03. n%7==0&&n%==0 else三、阅读题1. a=1,b=02. c=1习题五一、选择题二、填空题1. for语句 do-while 语句 while 语句2. a=14,y=263. k=14,n=-14. 395. s=196. 222227. 108. 79. 810. 5,5三、改错题1. for( i=0;i<5;i++);for控制部分用分号分隔2. int j=0;while(j<10){j++;i=j} 分号是多余的,否则会造成死循环3. int s=1,i=1;while(i<5){s*=i;i++;}两条语句需要加上花括号4. while(j<10);(分号不能少)5. continue改为break习题六一、选择题二、填空题1. 20 0 192. 数组名3. 越界4. 65. j==k a[j][k]=1; a[j][k]=0;三、阅读题1. 6 5 43 2 12. aaabbbccc ddd3. 2,2,1习题七一、选择题二、填空题1. 整个函数体内局部2. 整型3. k<=breturn y;4. x[i]return(ave)fun(a,20)5. 1;add(n-1);add(n);6. n*f(n-1)0;f(i)三、阅读题1. 10,20,302. 643. 84. hlo5. sum=55习题八一、选择题二、填空题1. 指向取地址2. 2 +23. 284. 4 a[2][0]5. 6 a[3]6. *(p+5)7. ABCD A三、阅读题1. 102. 103. 04. 3,65. 1 2 3 46. 6385四、程序填空题1. a,b,c或者&x,&y,&z max=*b或者max=y max=*c或者max=z2. ++ =*q ++ ++3. a[0] a[i],min min4. int *a,int*b b[j]=a[i] b[i++]5. *str+=3 *str>'Z'&&*str<'a'||*str>'z'6. else 0 t[2*j+1]习题九一、选择题二、填空题1. 结构体成员结构体指针指向2. 343. 224. ex5. (*int)6. {Jan=1,Feb,Mar,Apr,May,Jun,Aug,Sep,Oct,Nov,Dec}7. DDBBCC三、阅读题1. 92. 10,x3. 134. 36 40 415. 06. 38397. 48四、程序填空题1. struct studuent strcmp(stu[i].name,str)==0 break2. a.real+b.real a.virtual+b.virtuala.real*b.real-a.virtual*b.virtuala.real*b.virtual+a.virtual*b.real3. mai=i min=i stu[max].name,stu[max].scorestu[min].name,stu[min].score4. p count++ p->next5. *link struct node top p top。

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

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

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

C程序设计教程第二版习题答案

C程序设计教程第二版习题答案

C程序设计教程第二版习题答案第1章:C语言概述1. 简述C语言的特点。

- C语言是一种结构化编程语言,具有高效、灵活、功能强大等特点。

它支持多种编程范式,包括过程式、面向对象和泛型编程。

2. C语言的发展历史。

- C语言由丹尼斯·里奇在20世纪70年代初期开发,最初用于UNIX操作系统的编写。

随着UNIX的流行,C语言也逐渐普及。

第2章:C语言基础1. 变量声明的规则。

- 变量声明必须指定数据类型,变量名必须以字母或下划线开头,可以包含字母、数字和下划线,但数字不能作为变量名的首位。

2. 常量的使用。

- 常量是在程序执行过程中不能被修改的值,可以用#define预处理指令定义,或者直接使用字面量。

第3章:控制语句1. if语句的使用。

- if语句用于根据条件执行不同的代码块。

基本语法为:`if (条件) { 执行代码 }`。

2. switch语句的使用。

- switch语句用于根据变量的值执行不同的代码块。

基本语法为:`switch (变量) { case 值1: 执行代码1; break; ... }`。

第4章:循环语句1. for循环的使用。

- for循环用于重复执行一段代码直到满足特定条件。

基本语法为:`for (初始化; 条件; 增量/减量) { 执行代码 }`。

2. while循环的使用。

- while循环在条件为真时重复执行代码块。

基本语法为:`while (条件) { 执行代码 }`。

第5章:函数1. 函数的定义和调用。

- 函数是一段具有特定功能的代码块,可以被重复调用。

定义函数的基本语法为:`返回类型函数名(参数列表) { 函数体 }`。

调用函数时使用:`函数名(参数)`。

2. 函数的参数传递。

- 参数传递可以是值传递或引用传递。

值传递时,函数内部对参数的修改不会影响到外部变量的值;引用传递则相反。

第6章:数组1. 一维数组的声明和使用。

- 一维数组的声明语法为:`类型数组名[大小]`。

C语言程序设计(第2版)-- 课后题答案.

C语言程序设计(第2版)-- 课后题答案.

《C语言程序设计能力教程(第二版)》课后作业及实训题参考答案第1章进入C语言程序世界二、1. I love China!printf("we are students.\n")2. 6项目实训题参考答案1.编写一个C程序,输出以下信息:* * * * * * * * * * * * * * * * * * * *I am a student!* * * * * * * * * * * * * * * * * * * *main(){ printf("********************\n");printf(" I am a student!\n ");printf("********************\n");}2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。

解:main(){int a,b,c,v;a=10;b=20;c=15;v=a*b*c;printf("v=%d",v);}本程序运行结果为:v=3000第2章编制C程序的基础知识一选择题C B A B A C C二操作题,2,-8,23.000000,2.500000,-8.0000002. ABC DEFGHwhy is 21+35 equal 523.3 14 32 31 24. aa bb cc abcA N项目实训题1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。

#define M 5main(){ int n,c;n=2; c=M*n;printf("%d\n",c); }2.编程求下面算术表达式的值。

(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。

C语言程序设计(第二版)-电子教案-丁亚涛-8587 第8章 指针

C语言程序设计(第二版)-电子教案-丁亚涛-8587 第8章 指针
}
8.5.3 指针与二维数组
• 二维数组其实可以看成由一维数组构造而成。就相当于 几个队列构成一个方阵,方阵由队列组成,队列由具体 的元素--人组成。
• 一级指针只能管理队列,如果管理方阵,则需要二级指 针。
•int a=1000,*pa,**ppa; • pa=&a; • ppa=&pa;
• *(*(ppa)) ≡ *(pa) ≡ a ≡ 1000
• p是二级指针 • *p相当于*(p+0),级别降低为一级指针,相当于p[0] • **p相当于*(*(p+0)+0),级别降低为数组元素(普通变量),
也相当于p[0][0]
• p[1][2],相当于*(*(p+1)+2) • &p[1][2], 级别提升为一级指针,相当于:
• p[1]+2,*(p+1)+2 • &p[1],级别提升为二级指针,相当于:
f=f4; printf("a/b=%d\n",f(a,b));
8.5 指针与数组
• 8.5.1 指针与字符数组 • char str[100]= "Hello World"; • char *p=str; • 字符w可以有如下多种表示形式: • str[6] • *(str+6) • p[6] • *(p+6)
【例8-2】演示指针和数组的关系。
#include <stdio.h>
接可存取,由于p中存储的是x的信息。访问p可以获取x的信 息,再对银行存款进行操作。
8.1 借钱的故事
8.2 指针的概念
• C语言允许使用变量名、数组名[下标]、函数名等标 识符来访问内存

C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案

C语言程序设计(第二版)习题参考答案为了适应标题所需的字数限制,我将按照适当的格式和排版要求来回答C语言程序设计(第二版)习题的参考答案。

以下是部分习题的解答示例:1. 基本概念与语法1.1 变量和数据类型C语言中的变量用于存储不同类型的数据。

常见的数据类型包括整型、浮点型、字符型等。

例如,声明一个整型变量x并赋值为10的方法如下:```cint x = 10;```1.2 操作符和表达式C语言提供了丰富的操作符和表达式,用于进行数值计算和逻辑判断。

例如,使用逻辑与(&&)操作符可以判断两个条件同时成立的情况,示例如下:```cif (x > 0 && x < 100) {// 满足条件的代码```2. 流程控制2.1 分支结构流程控制中的分支结构用于根据条件来执行不同的代码块。

常见的分支结构有if语句和switch语句。

例如,使用if语句判断一个数的正负情况:```cif (x > 0) {printf("x是正数\n");} else if (x < 0) {printf("x是负数\n");} else {printf("x是零\n");}```2.2 循环结构循环结构用于多次执行相同的代码块。

常见的循环结构有for循环、while循环和do-while循环。

例如,使用for循环输出1到10的数字:for (int i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");```3. 函数和数组3.1 函数的定义和调用函数是一段完成特定功能的代码块,可以多次调用。

函数的定义包括函数名、参数列表和返回值类型。

例如,定义一个用于计算两个整数相加的函数:```cint add(int a, int b) {return a + b;}// 调用add函数int result = add(3, 5);printf("3 + 5 = %d\n", result);```3.2 数组的定义和使用数组是一种存储相同类型数据的集合。

C语言程序设计(第二版)-电子教案-丁亚涛-8587 第5章 循环结构程序设计

C语言程序设计(第二版)-电子教案-丁亚涛-8587 第5章 循环结构程序设计
第5章 循环结构程序设计
• 掌握循环结构的基本特点 • 掌握3种循环语句:for语句、while语句和do-while
语句
• 学会利用for语句、while语句和do-while语句设计简 单的循环程序
• 了解goto语句构成的循环
5.1 案例:一次有趣的投币游戏
5.1.1 游戏规则
5.1.2 问题的解决
s = s + i++;
• ①、②、③均省略,即:
• for (;;) ④;
• 相当于while (1) ④;。循环的所有控制和计算功能都必 须在循环体④中完成,这样的循环适合于随机退出循 环程序的情况。
• 表达式④也可以省略,但必须至少保留一个分号,即:
• for (①;②;③) ; 一个分号即是一条空语句。
【例5.7】阅读下面程序,写出运行结果。
5.8 案例:阶乘的计算
• 【例5-8】计算s=1×2×3×4×…×8。 #include <stdio.h> void main() { int i; long s; for(i=1,s=1;i<=8;i++) s = s * i; printf("s=%ld\n",s); }
#include <stdio.h> void main() { int i,s;
i=3;s=0; while(i<=99) { s=s+i;
i=i+3; } printf("s=%d\n",s); }
5.3 do-while循环
• do-while循环,又称为“直到型”循环,用do-while语句来实 现,其一般格式为: do { 语句 } while(表达式); • do-while语句的执行过程为: 先执行循环体语句再判断表达式的值。若值为0,则结 束循环,退出do-while语句;若值为非0,则继续执行循 环体。

C语言程序设计(第二版)-电子教案-丁亚涛-8587 第7章 函数

C语言程序设计(第二版)-电子教案-丁亚涛-8587 第7章 函数
时限制变量的使用范围,对于只有一个文件的程序有无
static都是一样。 • 局部变量声明为static类型,则要求系统对该变量采用静态
存储的内存分配方式。值得注意的是,对这种static类型的
局部变量,系统初始化只进行一次,多次遇到该声明语句, 将不再被执行。
【例7-5】演示静态变量
int s;
static int t; /*其他文件不能使用*/
7.6.3 静态(static)类型
• static类型变量称为静态变量,存放在静态存储区。 • 全局变量和局部变量都可以声明为static类型,但意义不同。 • 全局变量总是静态存储,默认值为0。全局变量前加上static
表示该变量只能在本程序文件内使用,其他文件无使用权限。
对于全局变量,static关键字主要用于在程序包含多个文件
static int add(int a, int b) { return a+b; }
main()
{ int a,b,c;int i,s = 0;int sub(int,int);extern int d;a=20;c=10;
{int a;
int c=20;
b=10; a = add(b,c);n}
x[i] = x[i]+ 1; }
void main() { int x=10,y=20; int a[10] = {1,2,3,4,5,6,7,8,9,10}; int i,s = 0; swap(x,y); /*值传递*/ printf("x,y=%d(main)\n",x,y); for(i = 0 ; i < 10 ; i++)
7.6.4 外部(extern)类型
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题二
一、选择题
二、填空题
1.18
2.int float double
3.10 11
4.8 16 10
5.%
三、阅读题
1. 10,10,9,10
2. j=1, i=2
k=3,i=3
i=3,i=2
k=1,i=1
习题三
一、选择题
二、填空题
1. 从键盘上读入一个字符在屏幕上输出一个字符 #include<stdio.h>
2. 按十进制整数形式输出,有符号
按16进制整数形式输出,没有符号
按十进制小数形式输出,输出的数据长度为7位,有2位小数
按字符形式输出一个字符
3. 按十进制整数形式输入数据
按十进制整数形式输入三位数据
跳过3位十进制数据
按字符形式输入一个字符
4. 分程序;;
5. 大写字母L
6. -1
三、阅读题
1. 6 6 6.00 6.00
2. x=127,x= 127,x=177,x=7f
y=123.4567,y= 123.46,y=123,45670
3. 2,1
4. 1234
5. 4,3
6. -6,-6
习题四一、选择题
二、填空题
1. 非0 0 、
2. k==0
3. n%7==0&&n%==0 else
三、阅读题
1. a=1,b=0
2. c=1
习题五一、选择题
二、填空题
1. for语句 do-while 语句 while 语句
2. a=14,y=26
3. k=14,n=-1
4. 39
5. s=19
6. 22222
7. 10
8. 7
9. 8
10. 5,5
三、改错题
1. for( i=0;i<5;i++);for控制部分用分号分隔
2. int j=0;while(j<10){j++;i=j} 分号是多余的,否则会造成死循环
3. int s=1,i=1;
while(i<5)
{s*=i;
i++;
}
两条语句需要加上花括号
4. while(j<10);(分号不能少)
5. continue改为break
习题六
一、选择题
二、填空题
1. 20 0 19
2. 数组名
3. 越界
4. 6
5. j==k a[j][k]=1; a[j][k]=0;
三、阅读题
1. 6 5 4
3 2 1
2. aaa
bbb
ccc ddd
3. 2,2,1
习题七
一、选择题
二、填空题
1. 整个函数体内局部
2. 整型
3. k<=b
return y;
4. x[i]
return(ave)
fun(a,20)
5. 1;
add(n-1);
add(n);
6. n*f(n-1)
0;
f(i)
三、阅读题
1. 10,20,30
2. 64
3. 8
4. hlo
5. sum=55
习题八
一、选择题
二、填空题
1. 指向取地址
2. 2 +2
3. 28
4. 4 a[2][0]
5. 6 a[3]
6. *(p+5)
7. ABCD A
三、阅读题
1. 10
2. 10
3. 0
4. 3,6
5. 1 2 3 4
6. 6385
四、程序填空题
1. a,b,c或者&x,&y,&z max=*b或者max=y max=*c或者max=z
2. ++ =*q ++ ++
3. a[0] a[i],min min
4. int *a,int*b b[j]=a[i] b[i++]
5. *str+=3 *str>'Z'&&*str<'a'||*str>'z'
6. else 0 t[2*j+1]
习题九
一、选择题
二、填空题
1. 结构体成员结构体指针指向
2. 34
3. 22
4. ex
5. (*int)
6. {Jan=1,Feb,Mar,Apr,May,Jun,Aug,Sep,Oct,Nov,Dec}
7. DDBBCC
三、阅读题
1. 9
2. 10,x
3. 13
4. 36 40 41
5. 0
6. 3839
7. 48
四、程序填空题
1. struct studuent strcmp(stu[i].name,str)==0 break
2. a.real+b.real a.virtual+b.virtual
a.real*
b.real-a.virtual*b.virtual
a.real*
b.virtual+a.virtual*b.real
3. mai=i min=i stu[max].name,stu[max].score
stu[min].name,stu[min].score
4. p count++ p->next
5. *link struct node top p top。

相关文档
最新文档