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

c语言程序设计教程第二版课后答案【篇一:c语言程序设计(第2版)-- 课后题答案】p> 参考答案第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 is21+35equal 523.34214. aaa项目实训题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。
(1)main(){ int a=7;float x=2.5,y=4.7;printf(%f\n,x+a%3*(int)(x+y)%2/4);}(2)main(){ int a=2,b=3;float x=3.5,y=2.5;printf(%f\n,(float)(a+b)/2+(int)x%(int)y);}第三章顺序结构程序设计一选择题a c d c c二操作题1. x=3,a=2,b=32. z=12.7000002 13 3 2 bb cc abc n3. 1 2 1a2 1 2三.编程题编程题解:#include stdio.hmain(){float sj,gz,yfgz;printf(time,salary:);scanf(%f,%f,sj,gz);yfgz=sj*gz*0.9;printf(total salary:%f\n,yfgz);}本程序运行结果为:time,salary:4,3crtotal salary:10.8000002.编写一个程序求出任意一个输入字符的ascii码解:#include stdio.hmain(){char c;printf(input a string:);scanf(%c,c);printf(%c ascii is %d\n,c,c);}本程序运行结果为:input a string:acra ascii is 973、编写一个程序用于水果店售货员算帐:已知苹果每斤2.50元,鸭梨每斤1.80元,香蕉每斤2元,橘子每斤1.6元,要求输入各类水果的重量,打印出应付3解:main(){float p,y,x,j,ys,g,fk;printf(apple,pear,banana,orange(weight)=);scanf(%f,%f,%f,%f,p,y,x,j);ys=2.5*p+1.8*y+2*x+1.6*j;printf(fu kuan=);scanf(%f,g);fk=g-ys;printf(result:\n);printf(fukuan=%6.2fyuan\nshoukuan=%6.2fyuan\nzhaohui=%6. 2fyuan\n,g,ys,fk);}本程序运行结果为:apple,pear,banana,orange(weight)=1,2,3,4fu kuan=100result:fukuan=100.00yuanshoukuan= 18.50yuanzhaohui= 81.50yuan项目实训1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n 年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。
C语言基础知识第二章概述

2019/3/14
C语言程序设计教程
第2章 C语言的基本数据类型与表达式
12
例如:字符A的ASCII码为: 65D(十进制)=41H(十六进制)=101Q(八 进制) ∴字符A可以表示为‘A’、’\x41’、’\101’。 2、分类: char 和 unsigned char; 3、值域: 每个字符型数据在内存中占一个字节;包括 ASCII字符表中的所有字符(可显示字符和非显 示字符)。
– 例如: 某计算机允许表示具有七位有效数字的十进制数,计算 333.3333+0.0002222222,若计算时没有位数的限制,则结果应当 是3.3335222222。 计算机由于字长位数的限制,只能表示七位有 效数字,于是只得将小数点后的七个数字全部删掉,而仅保留其 整数部分,得到和值333.3335。 (4)根据实际要求选择单精度或双精度。
2019/3/14
C语言程序设计教程
13
• 注意: • • • • (1)字符常量只能用单引号括起来,不能用双引号 或其他括号。 (2)字符常量只能是单个字符, 不能是字符串。 ‘ab’ 不是字符常量 (3)字符可以是字符集中任意字符,但数字被定义为 字符型之后就以ASCII码值参与数值运算。 如,‘6’和6是不同的,‘6’是字符常量,而6是整型 常量。
注意
‘a’与“a”的区别。
2019/3/14
C语言程序设计教程
15
• 字符常量与字符串常量的区别:
– ⑴ 定界符不同。 – 字符常量使用单引号,而字符串常量使用双引号。 – ⑵ 长度不同。 – 字符常量的长度固定为1,而字符串常量的长度可以是0,也可以 是某个整数。 – ⑶ 存储要求不同。 – 字符常量存储的是字符的ASCII码值,而字符串常量除了要存储 字符串常量的有效字符外,还要存储一个字符串结束标志‘\0’。
C语言define定义函数-C语言零基础入门教程

C语⾔define定义函数-C语⾔零基础⼊门教程⽬录零基础 C/C++ 学习路线推荐 : >>⼀.define 简介中,除了可以⽤定义⼀个标识符来表⽰⼀个常量,还可以⽤,例如://定义常量#define MAX_VALUE 100 //定义整型变量MAX_VALUE值为100#define USER_NAME "huge" //定义字符串变量USER_NAME值为"huge"#define PI 3.1415926 //定义浮点数变量PI值为3.1415926//定义函数#define MAX(a,b) (a>b)?a:b //取两个数最⼤值#define MIN(a,b) (a<b)?a:b //取两个数最⼩值凡是以#开头的均为预处理指令,预处理⼜叫预编译。
预编译不是编译,⽽是编译前的处理。
这个操作是在正式编译之前由系统⾃动完成的。
⼆.define 定义函数1.define 定义不带参数的函数/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT (x*2+5)int main(){int x = 10;printf("RESULT是:%d\n",RESULT);return 0;}/*RESULT是:25*/2.define 定义带参数的函数/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define MAX(a,b) (a>b)?a:b //取两个数最⼤值#define MIN(a,b) (a<b)?a:b //取两个数最⼩值int main(){printf("最⼤值是:%d\n",MAX(5,100));printf("最⼩值是:%d\n",MIN(5,100));return 0;}/*最⼤值是:100最⼩值是:5*/三.define 定义函数陷阱1.define 函数陷阱⼀/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) x*xint main(){printf("RESULT是:%d\n",RESULT(2));printf("RESULT是:%d\n",RESULT(2+1));return 0;}/*RESULT是:4RESULT是:5*/很蒙蔽??为什么第⼆个计算结果不是9,⽽是5??#define RESULT(x) x*xRESULT(2) 等价 2*2 = 4RESULT(2+1) 等价 2+1*2+1 = 52.define 函数陷阱⼀解决办法/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) (x)*(x) //在参数两侧加括号int main(){printf("RESULT是:%d\n",RESULT(2));printf("RESULT是:%d\n",RESULT(2+1)); //等价 (2+1)*(2+1) = 9return 0;}/*RESULT是:4RESULT是:9*/3.define 函数陷阱⼆/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) (x)*(x)int main(){printf("RESULT是:%d\n",RESULT(2));printf("RESULT是:%d\n",9/RESULT(2+1));return 0;}/*RESULT是:4RESULT是:9*/很蒙蔽??为什么第⼆个计算结果不是1,⽽是9??#define RESULT(x) x*xRESULT(2) 等价 2*2 = 49/RESULT(2+1) 等价 9/(2+1)*(2+1) = 54.define 函数陷阱⼆解决办法/******************************************************************************************///@Author:猿说编程//@Blog(个⼈博客地址): //@File:C语⾔教程 - C语⾔ define定义函数//@Time:2021/06/27 08:00//@Motto:不积跬步⽆以⾄千⾥,不积⼩流⽆以成江海,程序⼈⽣的精彩需要坚持不懈地积累!/******************************************************************************************/#include <stdio.h>#include <stdlib.h>#include <string>#define RESULT(x) ((x)*(x)) //在参数两侧加括号,整个表达式也需要加上括号int main(){printf("RESULT是:%d\n",RESULT(2));printf("RESULT是:%d\n",9/RESULT(2+1));return 0;}/*RESULT是:4RESULT是:1*/以上讨论说明,对于宏定义,保险的做法是不仅应在参数两侧加括号,也应在整个字符串外加括号。
C语言专区

1000本C/C++电子书专题下载Smzxys 654321123456789《C语言专区》C语言实例教程 1.72/soft/8658.htm经典编程900例(C语言) /soft/7972.htmC语言实例教程/soft/6530.htmC语言图象处理方法/soft/6514.htmC语言编程实例/soft/6103.htmC语言书打包下载/soft/6041.htm集成学习环境(C语言) /soft/5764.htmC语言圣经 1.0/soft/5745.htm用C实现面向对象/soft/7566.htmC语言高级实用编程技巧/soft/4593.htmC语言最新编程技巧200例/soft/4594.htm C语言速成3.0 /soft/4723.htmC语言编程技巧程序集/soft/4561.htmC语言速成多媒件课件 3.0/soft/3238.htm C语言多媒体教程/soft/2893.htmC程序设计培训/soft/6340.htm实用C语言详解/soft/3274.htmC语言程序设计及应用实例/soft/3241.htm C语言程序宝典/soft/3071.htmC语言教程/soft/3027.htm《C语言编程宝典》/soft/1849.htmC语言常用函数手册/soft/1818.htmC语言学习系统/soft/1816.htmC语言技术文章/soft/1817.htmC常用算法程序集/soft/6225.htm微软C编程精粹/soft/6166.htm《C++语言专区》Inside C++ Object Model/soft/7851.htmC++ 入门基础教程/soft/7617.htmC++和面向对象的数值计算/soft/6987.htm 经典C++语言教程/soft/7399.htmC++编程实例详解/soft/6988.htmC_C++深层探索/soft/6989.htmC_C++程序设计/soft/6990.htmC++输入输出流及本地化/soft/6986.htm经典C++语言教程/soft/6978.htmC++ Primer 3rd Edition/soft/6823.htmC++_Primer_Plus_4th/soft/6819.htmC++应用编程200例/soft/6820.htmC++面向对象高效编程/soft/6610.htm Borland C++ 3.0自学培训教程/soft/6274.htm 经典C++ 语言教程/soft/6600.htmC++Builder自学培训教程/soft/6317.htm Borland C++ Builder高级编程/soft/7927.htm 高质量C_C++编程指南/soft/7916.htmC++程序设计培训教程/soft/6339.htmC++程序设计教程/soft/6338.htmC++Builder核心program/soft/6318.htmC++Builder基础进阶/soft/6316.htm创世纪的C++ Builder教程/soft/6175.htmC++Builder30开发指南/soft/6311.htm21天学会C++/soft/6307.htmC++程序调试实用手册/soft/6131.htmC++Builder学习大全中文版/soft/6077.htmC&C++深层探索/soft/6036.htmC++ 设计新思维/soft/6037.htm经典C++图书下载1/soft/6067.htm经典C++图书下载2/soft/6068.htmC++ 常见问题问与答/soft/6005.htmC++ 和面向对象的数值计算/soft/6006.htmC++ 面向对象多线程编程/soft/6007.htm嵌入式系统中C的开发/soft/6027.htm用C++ 开发Web 商用程序/soft/6033.htmC++名家对话/soft/5981.htmC++实践之路/soft/6040.htmC++bulider参考手册 1.1/soft/6574.htm用C++开发Web商用程序/soft/6975.htmC++代码设计与重用/soft/5980.htmC++程序设计讲义/soft/5742.htm《C#语言专区》C# Primer Plus中文版/soft/7990.htmC# 开发编码规范/soft/7991.htmC#深入浅出全接触/soft/6992.htm# COM+ Programming/soft/7855.htmDesign Pattern In C# /soft/7852.htmC#实现的俄罗斯方块程序/soft/7805.htmC#高级编程第2版/soft/6883.htmC#百例/soft/7638.htmC#.NET 开发者手册/soft/7620.htmCSharp程序员参考手册/soft/7618.htmC#程序100实例/soft/7619.htm新一代C#与权威指南/soft/4115.htmC#与.NET技术平台实演练/soft/4044.htmC#程序员参考手册/soft/6991.htmC# Network Programming/soft/7484.htmC#入门经典/soft/6570.htm C#教程/soft/6640.htmC#.NET中文版Web服务开发基础/soft/3691.htm精通C#与程序设计/soft/6578.htmC#文档中文版(微软) /soft/1839.htmC#教程/soft/3070.htmC#高级编程/soft/1841.htmC#进阶手册/soft/1596.htmS Press Inside C#/soft/4306.htmC#实例程序/soft/5586.htmWindows应用高级编程-C#编程篇/soft/4992.htmC#与.NET技术平台实战演练/soft/4813.htmC#语言参考/soft/4814.htmC#.NET编程培训教程/soft/6331.htmC# WINDOWS程序设计/soft/6097.htmC#系列教程/soft/6099.htmC#英文手册/soft/5929.htm精通C#简体中文版/soft/6552.htmC# 参考手册/soft/6374.htmC#语言规范/soft/6375.htmC# 程序员介绍/soft/6356.htmC# 程序员参考手册/soft/6388.htmC#--微软.NET的第一语言/soft/6376.htmC#基本书写规范技术文档/soft/5660.htm《VC++语言专区》VC++与Matlab混合编程的快速实现/soft/7848.htm VC++编程指南/soft/7475.htmVC++6编程方法/soft/6352.htmVC++6.0 类库参考手册/soft/6345.htmVC++database编程大全/soft/6348.htmVC++6.0培训教程/soft/6351.htmVC++编程技巧与范例/soft/6349.htmVC++网络教程/soft/6350.htmVC++面向对象入门/soft/6346.htmVC++扩展编程实例/soft/6159.htm用VC++编写USB接口通信程序/soft/6073.htmVC++6.0 语言参考手册/soft/5956.htmVC++6.0内幕/soft/5959.htmVC++6.0 运行库参考手册/soft/5957.htmVC++5.0易学活用/soft/5954.htmVC++6.0 用户界面制作技术与应用实例/soft/5955.htmVisual C++6.0从入门到精通/soft/8645.htmVisual C++ 6.0 教程/soft/7974.htmVisual C++ 6.0 开发宝典/soft/7973.htmVisual C++ 6.0实例/soft/7970.htmVISUAL C++扩展编程实例/soft/7606.htmVisual C++6.0高级编程技巧与实例/soft/7607.htm Visual C++ 6.0用户开发手册/soft/7593.htm疯狂VC技巧集/soft/5688.htmVC模板库手册/soft/5960.htm用VC开发Activex/soft/5969.htm用VC开发CGI/soft/5970.htm用VC开发win应用/soft/5971.htmVC通讯/soft/5964.htmVC入门教程/soft/5961.htmVC实例/soft/5962.htmVC使用大全/soft/5963.htmVC5.0开发人员参考手册/soft/5952.htm跟我学VISUAL C++ 6.0/soft/7592.htm精通Visual C++图像编程/soft/7590.htmVisual C++.NET应用编程150例/soft/7396.htm Visual C++ 6.0 高级编程/soft/6802.htmVisual C++ 6—24学时学习教程/soft/6582.htmVisual C++高级编程技巧与实例/soft/6554.htmVisual C++ 设计WIN32应用程序/soft/6555.htm Visual C++ 6.0 编程实例与技巧/soft/6449.htmVisual C++ 6.0 程序员指南/soft/6275.htmVisual C++ 6-24学时学习教程/soft/6223.htmVisual C++ - V isual C++/soft/6063.htmVisual C++ .net多媒体教学/soft/1069.htmVC编程经验总结/soft/6160.htmVC新手学堂/soft/6090.htmVC6.0 MFC类库参考手册/soft/6357.htmVC6.0 运行库参考手册/soft/6355.htmVC-MFC编程实例/soft/6354.htmVC-MFC扩展编程实例/soft/6353.htm深入VC编程内幕/soft/6473.htmVisual 中文版Web服务开发基础/soft/6976.htm。
《C语言程序设计教程》课后题答案

《C语言程序设计教程》课后题答案第一章一选择题1.A2.B3.C4.D5.B6.C二.填空题1.程序2.算法3.main或主4.编译5.编译6. .obj7.库函数8.文本或ASCII码第二章一选择题1.B2.A3.A4.A5.D6.B7.C8.C9.D 10.B 11.A 12.C 13.B 14.C二.填空题1.int float double2.65,893.a=98,b=765.000000,c=4321.0000004.scanf("%lf%lf%lf",&a,&b,&c);第三章一选择题1.A2.C3.C4.D5.C6.B7.C8.B9.A 10.A 11.A 12.B 13.D 14.A 15.B 16.C 17.C 18.C 19.C 20.C 21.C 22.B 23.C 24.C 25.A 26.B 27.A 28.A29.C 30.A 31.C 32.C二.填空题1.非零零2.passwarm3.5252524.fabs(x)>55.x%y==06.if((1<=x&&x<=10||200<=x&&x<=210)&&x%2==1)printf("%d",x);7.k=18.Right!1Right!19.$$$ a=010.a=2,b=111.0<a<b12. t;"%f%f"a=b;13. "%c",&ch'A'<=ch&&ch<='Z'ch14.死循环15.34516. 7 3 -117.x>=0x<amin18.scanf("%f",&x);sum+=x;19.820.1121. 2.40000022.892123.i<=9j%3!=024. b=i+125. 8 5 226. d=1.0k++k<=n第四章一选择题1.A2.C3.D4.D5.B6.B7.B8.D9.B 10.A 11.C 12.D 13.C 14.A 15.D16.C 17.A 18.C 19.A 20.D 21.D 22.A二.填空题1. a=1234 b=52. Hello3.j<3; b[j][i]=a[i][j]; i<34. a[age]++i=18;i<=255.c[i]=n%base; b[d]6.break; i>=87. -850,2,08.a[i]>b[j] i<3 j<59.a[i][j] j=0;j<4;j++ j==3 printf("\n");10.fi11.GDABC12. s[i++]13.ahAMa14.LBLMNP15. '\0' i++16.b[j]=a[j][0]; b[j]=a[j][k]17.a[k++]=a[j]第五章一.选择题1-5 DDBCB 6-10 BACAA 11-15DBBCD二.填空题1. How does she2. *(p+i*4+j)printf("\n")3. *(++p)4. num+1q<num+10*q>max*q<min5.0或'\0'n++b[n]= '\0'第六章一.选择题1-5 CBCDA 6-10 AADBB 11-15BBDBD 16-20 AABAA 二.填空题1. 四auto, register, static, extern2. 5 63. 8,174. 126241205.return 1return n+sum(n-1)第七章一.选择题1-5BDDCC 6-10 BBDCB 11-15BBDCB 16-18 DBB 二.填空题1.3042. ARRAY a,b,c;3. 234. ac5.p->name&p->post_codestruct communication *p->post_code第八章一.单选题1-5 BABAD 6-10 DDDCD 11 D 二.填空题1. 二进制文本2. pf=fopen("D:\\zk04\\data\\txfile.dat","w")3. 二进制文本文件结束符非0值第九章1.(1)30 (2)3 (3)9 (4)292.(1)1 (2)1 (3)1 (4)7 (5)15 (6)6第十一章一.单选题1-5 CBBDD 6 D二.填空题1.struct link *next;2.①struct student *②tail->next③head3.Answer:34.①break②(struct data *)malloc(struct data)③while(1)④p!=NULL⑤p=p->link5.①x②p③s。
51单片机c语言教程

51单片机c语言教程单片机是一种集成了处理器、存储器和各种输入输出接口的微型计算机。
它可以用来完成各种任务,如控制电机、采集数据、控制显示等。
在单片机中,C语言是一种常用的编程语言,通过使用C语言来编写单片机程序,可以更加方便快捷地完成各种功能。
单片机使用C语言进行编程的主要流程如下:首先,需要搭建一个适合的开发环境。
在使用C语言编写单片机程序之前,需要安装相应的开发工具,如Keil C51、IAR Embedded Workbench等。
这些开发工具可以提供编译、调试等功能,方便我们进行程序开发和调试。
接下来,需要了解单片机的硬件平台。
在编写单片机程序之前,需要了解单片机的硬件结构和各个引脚的功能。
单片机的硬件平台通常包括定时器、串口、数字转换等模块,通过对这些模块的理解,可以更好地利用它们完成各种任务。
然后,可以开始编写C语言程序。
C语言是一种结构化的高级语言,通过使用C语言,可以更方便地完成单片机程序的编写。
在编写C语言程序之前,需要了解C语言的语法和常用的函数库,如输入输出函数库、定时器函数库等。
通过灵活地使用这些函数,可以更加快速地实现想要的功能。
在编写C语言程序时,需要注意一些常见的问题。
比如,需要合理地分配内存空间,避免内存溢出等问题;需要注意函数的调用顺序,保证程序的正确执行;需要考虑编程的效率,避免不必要的计算和资源浪费;需要进行适当的程序调试,确保程序的正确性等。
最后,需要进行程序的下载和调试。
在编写完成单片机程序后,需要将程序下载到单片机的存储器中,并进行相应的调试工作,确保程序能够正常运行。
调试过程中,可以通过调试工具查看程序的执行过程,可以进行单步调试、变量跟踪等操作,帮助我们找出程序中的错误和问题,并进行修正。
通过以上步骤,可以更加方便地使用C语言来编写单片机程序。
当然,单片机的应用非常广泛,不仅仅限于C语言的编程,还可以使用汇编语言、基于图形化编程语言的开发工具等。
C教程
C#入门经典第三版清晰版(PDF)面向对象程序设计与VC++实践Visual C++ 案例教程面向对象的理论与C++实践C++到VC++精彩100例(新版)C++实训教程C++实用培训教程Borland C++3.1入门教程高质量程序设计指南 c++/c语言(第三版)《C/C++嵌入式系统编程》英文版C程序设计与错误分析(修订版)钱能C++程序设计第二版数据结构各种算法实现(C++模板)数字信号处理c语言程序集C++ Builder 5 实践与提高C++实践之路C语言学习100例实例程序更多更新(2008年11月3日更新)新编C语言大全Effective C++ 第2版侯捷Turbo C实用高级编程技巧Teach Yourself C++ in One Hour a DayC++参考大全第四版Visual C++编程技巧280例Visual C++ 6.0编程经典博览Visual C++视频_音频开发实用工程案例精选Visual C++ 6.0 实例精通Visual C++ 2005入门经典中文版ArcObjects GIS应用开发—基于C#.NET插图详解C# 2008C#大学教程C#编程语言详解C语言C语言程序设计题典Microsoft编写优质无错C程序秘诀STL轻松入门很基础性的文章(译文)深入浅出MFC C语言库函数速查directshow开发指南及代码网络环境下的C编程技巧及实例自已动手写操作系统C语言大全第4版+源码C.Primer.Plus.PDF C语言程序设计与实践C语言标准与实现C函数浏览数据结构习题与解析(C语言篇)Windows via C/C++数据结构C语言版C语言试题集C语言高级编程及实例部析Advanced C 数据结构与算法分析—C语言描述编程精粹-Microsoft编写优质无错C程序秘诀Turbo C2.0实用大全一本全面的C语言入门教程C plus plus Programming CookbookC程序设计:现代方法C语言参考手册(原书第5版)算法与数据结构c与c++描述数据结构C语言描述C 语言编程精粹经典编程900例(C语言)C程序100例经典C语言教程 C 专业项目实例开发C 语言编程要点C专家编程 C sharp 中对注册表的操作C语言编程宝典大全C语言实例教程1.72 C语言程序基础及应用实例C语言学习和精华文摘经典编程900例(C语言) C语言100例及教程C语言完美演绎C语言实例教程C程序设计培训C语言学习300例C语言图象处理方法实用C语言详解C语言经典编程C语言编程实例C语言程序设计及应用实例C语言核心编程C语言书打包下载C语言程序宝典C语言趣味程序百例精解集成学习环境(C语言) C语言教程C语言数值算法程序大全(第二版)C语言圣经 1.0 《C语言编程宝典》用C实现面向对象C语言常用函数手册C常用算法程序集C语言常用算法源代码C语言高级实用编程技巧C语言学习系统C语言编程技巧程序集C语言最新编程技巧200例C语言技术文章微软C编程精粹C 语言高级程序员编程指南C程序设计:现代方法C++语言Effective C++ Thingking C++经典编程900例(C语言)The C++ Programming Language Special EditionC++语言ISO标准文档高质量C++&C编程指南C++程序设计例解学OpenGL编3D游戏_CAI 白话C++COM 技术内幕——微软组件对象模型C++ Primer中文版Essential C++中文版(全)C++Builder6彻底研究C++Primer习题解答C++.Primer.Plus.PDFC++Primer中文版(第4版)完整版C++ Primer 3rd Edition 中文完美版C++程序开发例题与习题用面向对象方法与C++语言描述叙述讲解C++编程C++ProgrammingLanguageC++ CLI标准说明C++程序设计语言特别版(中文版+英文原版)c++builder6编程实例精讲C++沉思录完整版(中文版)编译器与编译器生成器(C++版C++到VC++精彩100例面向对象程序设计与C++教程C/C++指针经验总结C/C++与数据结构C/C++程序设计导论(第二版)C++ GUI Programming with Qt 4C++ Effective STLc++ neural networks and fuzzyC和C++实务精选 C和指针实用C++编程大全C++小型企业工资管理系统C++多范型设计C++编程艺术C++Builder精彩编程实例集锦Starting Out with C++ Early Objects 5th editionC++ Builder PPT 课件共35章C++ Primer Plus (5th Edition)数据结构的c++伪码实现C++经典教程C++编程金典(第三版) 数据结构的c++伪码实现算法与数据结构c与c++描述C++程序设计例解C++标准程序库自修教程与参考手册C++核心编程技术C和C++代码锦囊C++程序设计教程实验书C++基础知识C++大学基础教程C++大学教程(第二版) C++ Templates 全览C++语言的设计和演化高质量程序设计指南 C++_C语言C++代码设计与重用Inside C++ Object ModelBorland C++ 3.0自学培训教程C++Builder学习大全中文版C++ 入门基础教程经典 C++ 语言教程C&C++深层探索C++和面向对象的数值计算C++Builder自学培训教程C++ 设计新思维经典C++语言教程Borland C++ Builder高级编程经典C++图书下载 1C++编程实例详解高质量C_C++编程指南经典C++图书下载 2C_C++深层探索C++程序设计培训教程C++ 常见问题问与答C_C++程序设计C++程序设计教程C++程序设计讲义C++输入输出流及本地化C++Builder核心program C++ 面向对象多线程编程经典 C++语言教程C++Builder基础进阶嵌入式系统中C的开发C++ Primer 3rd Edition创世纪的C++ Builder教程用 C++ 开发 Web 商用程序C++_Primer_Plus_4th C++Builder30开发指南C++名家对话C++应用编程200例21天学会C++ C++实践之路C++面向对象高效编程C++程序调试实用手册C++bulider参考手册 1.1 C#语言C#应用程序开发全程演练c#2008从入门到精通C#2008和.NET 3.5平台Accelerated C# 2008 Cambridge University Press (Mar2007)OReilly.Designing.Embedded.Hardware.May.2005.eBook-DDU零基础学Visual C# 2005 电子教程Beginning C#2008 DatabasesC#记事本完全手册:C#2.0程序设计详解电子教程完全手册C# 2005+SQL Server数据库与网络开发C#入门经典(第三版) C# in Depth_ What you needDATA STRUCTURES AND ALGORITHMS USING C#C#宝典美国计算机宝典丛书Visual C# 2008 Step by StepC# 2005 NET3.0高级编程(第5版)Pro LINQ Object Relational Mapping in C# 2008C#软件项目开发全程剖析C# 3.0 Unleashed_ With the .NETC#技术揭秘C#高级编程(第三版)数据库入门经典--C#编程篇C#软件项目开发全程剖析C#设计模式C#编程思想精通C#数据库开发C#网络应用编程C#线程手册(英文)C#知识类库C#Web应用程序入门经典C#编程从入门到精通C#类设计手册C# COM+ Programming C#进阶手册C# Primer Plus中文版新一代C#与权威指南C#文档中文版(微软)C# 开发编码规范C#与.NET技术平台实演练C#教程C#深入浅出全接触C#程序员参考手册C#高级编程Design Pattern In C# C#入门经典MS Press Inside C#C#实现的俄罗斯方块程序 C#教程C#实例程序C#高级编程第2版C#.NET中文版Web服务开发基础Windows应用高级编程-C#编程篇C#百例精通C#与程序设计C#与.NET技术平台实战演练C#.NET 开发者手册C#英文手册C#语言参考CSharp程序员参考手册精通C#简体中文版C#.NET编程培训教程C#程序100实例C# 参考手册C# WINDOWS程序设计C#系列教程C#语言规范C# 程序员介绍C# 程序员参考手册VC++语言Visual C++应用技巧与常见问题你问我答vchome_graph Programming Windows with MFC西交大吕军VC++程序设计课程Visual 编程实例Visual.C.实践与提高数据库篇西交大吕军VC++程序设计课程Visual C++高级界面特效制作百例VC知识库5周年精华版数据结构算法:VisualC++6.0程序集Visual C++网络通信编程实用案例精选跟着实例学Visual C++6.0访问数据库绘图制表VC知识库电子杂志41-45期深入浅出MFC简体中文版(附源码)专家门诊 Visual C++开发答疑300问VisualC++网络高级编程Visual C++ 6.0职业技能培训教程Visual C++ /MATLAB图像处理与识别实用案例精选零基础学Visual C++ 电子教程vc++技术内幕第四版(清华版)深入编程内幕——Visual C++最新Visual C++使用手册Programming Visual C++ (5th)Visual C++ 6.0 应用开发教程新编Visual C++6.0教程Visual C++ 6.0 数据库开发技术Visual C++ 编程基础与实践Visual C++开发GIS系统(第2版)C/C++编程精选集锦-关键技术精解分册C/C++编程精选集锦-数据库及图形图像分册Sams.Teach.Yourself.Visual.C.Sharp.200824小时自学VC#2008 2008最新版VC++ 编程指南(CHM)Visual C++串口通信工程开发实例导航精彩C++Builder 6程序设计VC++.NET开发驱动程序详解Visual C++6.0运行库参考手册Visual C++ STL中文版Visual C# 2005从入门到精通练习文件Visual.C++程序设计技巧与实例Visual C++_Turbo C串口通信编程VisualC++6_0编程技巧与实例分析VISUAL C++MFC扩展编程提示Visual C++ 数字图像处理VC++6编程方法VC++与Matlab混合编程的快速实现VC++6.0 运行库参考手册用VC开发CGIVC++编程指南VC++5.0易学活用用VC开发win应用VC++6.0 类库参考手册Visual C++6.0从入门到精通Visual C++ 6-24学时学习教程VC++database编程大全Visual C++ 6.0 教程Visual C++ 6.0 编程实例与技巧VC++6.0培训教程Visual C++ 6.0 开发宝典VC使用大全VC++编程技巧与范例Visual C++ 6.0实例Visual C++ 6.0 程序员指南VC++网络教程VISUAL C++扩展编程实例跟我学 VISUAL C++ 6.0VC++面向对象入门Visual C++6.0高级编程技巧与实例精通VisualC++图像编程VC++扩展编程实例Visual C++ 6.0用户开发手册Visual C++.NET应用编程150例用VC++编写USB接口通信程序疯狂VC技巧集Visual C++ 6.0 高级编程VC++6.0 语言参考手册VC模板库手册Visual C++ 6—24学时学习教程VC++6.0内幕用VC开发Activex Visual C++高级编程技巧与实例Visual C++ 设计WIN32应用程序Visual C++6.0运行库参考手册C视频下载C++语言程序设计视频教学西北工业大学C语言程序设计视频电子科技大学--面向对象C++ 视频教程C语言概述视频共14讲数据库相关电子书专题下载Oracle数据库管理员教程VB编程技术电子书下载ASP/电子书下载Delphi程序设计电子书下载JAVA系列电子书专题下载C/C++系列电子书专题下载。
c语言程序设计教程第三版习题答案
c语言程序设计教程第三版习题答案C语言程序设计教程第三版习题答案第一章:C语言概述1. 简述C语言的特点。
C语言是一种结构化编程语言,具有高级语言的特点,同时支持底层硬件操作。
其特点包括:简洁、高效、可移植、丰富的运算符、数据结构支持、广泛的库函数等。
2. 什么是编译型语言?编译型语言是指源代码在执行前需要通过编译器转换成机器语言的程序设计语言。
C语言就是一种编译型语言。
第二章:数据类型、运算符和表达式1. 列出C语言的基本数据类型。
C语言的基本数据类型包括:整型(int)、字符型(char)、浮点型(float和double)。
2. 说明赋值运算符的用法。
赋值运算符(=)用于将右侧表达式的值赋给左侧的变量。
例如:`int a = 10;` 将整数值10赋给变量a。
第三章:控制结构1. 什么是条件语句?条件语句用于根据条件的真假来执行不同的代码块。
C语言中的条件语句主要有if语句和switch语句。
2. 循环语句有哪些?C语言中的循环语句主要有for循环、while循环和do-while循环。
第四章:数组和字符串1. 数组的声明和初始化方式。
数组声明的一般形式为:`type arrayName[arraySize];`。
初始化可以使用花括号一次性赋值,如:`int arr[5] = {1, 2, 3, 4, 5};`。
2. 字符串在C语言中的表示方法。
在C语言中,字符串以字符数组的形式存在,以空字符('\0')作为结束标志。
第五章:函数1. 函数的定义和调用。
函数定义的一般形式为:`returnTypefunctionName(parameterList) { /* function body */ }`。
调用函数时,使用其名称和必要的参数。
2. 函数的参数传递方式有哪些?C语言中函数的参数传递方式主要有值传递(pass by value)和引用传递(pass by reference)。
C语言程序设计教程 李含光 郑关胜 清华大学出版社习题答案
第1章习题参考答案1.单项选择题(1) A (2) C (3) D (4) C (5)B2.填空题(1)函数(2)主函数(main)(3)printf() ,scanf()第2章习题参考答案1.单项选择题(1) C (2) B (3) C (4) C (5)C(6) C (7)D (8) C (9) D (10)C(11) D (12)B (13) B2.填空题(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)(x<0&&y<0)||(x<0&&z<0)||(y<0||z<0 )(16)double (17)x==0(18)sqrt(fabs(a-b))/(3*(a+b))(19)sqrt((x*x+y*y)/(a+b))第3章习题参考答案1.单项选择题(1) C (2) C (3) C (4) D (5)D(6) B (7)C (8) D (9) B (10)C(11) B (12)C (13) B (14) B (15)B(16) A2.填空题(1)用;表示结束(2){ }(3)y=x<0?1:x==0?0:-1(4)y%4==0&&y%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,-24.程序填空(1)x:y ,u:z(2)m=n ,m!=0 ,m=m/10(3)t<eps , t*n/(2*n+1) , printf(“%lf\n”,2*s)(4)m%5==0 ,printf(“%d\n”,k)(5)cx=getchar() , cx!=front , cx(6)double s=0 , 1.0/k , %lf(7)s>=0 , s<gmin ,5.编程题(1).#include <stdio.h>int main(){double x,y;scanf("%lf",&x);if(x<1)y=x;else if(x>=1.0&&x<10)y=2*x-11;elsey=3*x-11;printf("%lf\n",y);return 0;} (2).#include <stdio.h>int main(){double x,y,z,min;scanf("%lf%lf%lf",&x,&y,&z);if(x>y)min=y;elsemin=x;if(min>z)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==0&&y%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;}}if(flag==1&&m>2)s=s+1;s=(w+s)%7;if(s==0)printf("星期日\n");elseprintf("星期%d\n",s);return 0;}(4).#include <stdio.h>int main(){float p,r;scanf("%f",&p);if(p<=10)r=p*0.1;else if(p>10&&p<=20)r=10*0.1+(p-10)*0.075;else if(p>20&&p<=40)r=10*0.1+10*0.075+(p-20)*0.05;else if(p>40&&p<=60)r=10*0.1+10*0.075+20*0.05+(p-40) *0.03;else if(p>60&&p<=100)r=10*0.1+10*0.075+20*0.05+20*0.0 3+(p-60)*0.015;else if(p>100)r=10*0.1+10*0.075+20*0.05+20*0.0 3+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>='a'&&c<='z')c=c-32;putchar(c);}return 0;}(6).#include<stdio.h>int main(){int m,k=2;printf("输入一个正整数:\n");scanf("%d",&m);while(k<m)if(m%k==0){printf("%4d",k);m=m/k;}elsek++;printf("%4d\n",m);return 0;}(7).#include<stdio.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).#include<stdio.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).#include<stdio.h>#include<math.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*f1<0){b=x;f2=f;}else{a=x;f1=f;}}while(fabs(f)>=1e-6);printf("%6.2f\n",x);return 0;}(10).#include<stdio.h>#include<math.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).#include<stdio.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) D (2) D (3) D (4) B (5)D(6) B (7)A (8) D (9) C (10)D(11) B (12)D (13) A (14) B2.填空题(1)2(2)嵌套,递归(3)全局变量,局部变量,静态变量,动态变量(4)auto , static , register , extern(5)外部变量(6)编译,运行3.阅读程序,指出结果(1)15(2)5(3)5,4,3(4)i=5i=2i=2i=4i=2(5)求水仙花数(6)-5*5*5(7)30(8)0 101 112 124.程序填空(1)float fun(float , float) ,x+y,x-y , z+y,z-y(2)x ,x*x+1(3)s=0 , a=a+b5.编程题(1).#include<stdio.h>unsigned int fun(unsigned int);int main(){unsigned int s;scanf("%u",&s);printf("%u\n",fun(s));return 0;}unsigned int fun(unsigned int s){unsigned int p=0;while(s!=0){p=p+s%10;s=s/10;}return p;}(2).#include<stdio.h>#include<stdlib.h>#include<math.h>void f1(float,float,float,float);void f2(float,float,float,float);voidf3(float,float,float,float);int main() {float a,b,c,d;scanf("%f %f %f",&a,&b,&c);if(a==0){printf("不是一元二次方程\n");exit(0);}d=b*b-4*a*c;if(d>0)f1(a,b,c,d);else if(d==0)f2(a,b,c,d);elsef3(a,b,c,d);return 0;}void f1(float a,float b,float c,float d){ float x1,x2;{x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("%.2f ,%.2f\n",x1,x2);}}void f2(float a,float b,float c,float d){ float x1,x2;{x1=-b/(2*a);x2=-b/(2*a);printf("%.2f ,%.2f\n",x1,x2);}}void f3(float a,float b,float c,float d){ float x1,x2;{x1=-b/(2*a);x2=sqrt(-d)/(2*a);printf("%.2f+i*%.2f\n",x1,x2);printf("%.2f-i*%.2f\n",x1,x2);}}(3).#include<stdio.h>double p(int,double);int main(){int n;double x;do{scanf("%d",&n);}while(n<0);scanf("%lf",&x);printf("%lf\n",p(n,x));return 0;}double p(int n,double x){double pn;if(n==0)pn=1;else if(n==1)pn=x;elsepn=((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2, x))/n;return pn;}(4).#include<stdio.h>#define RATE 0.053double fun(float);void display(float,int);int main(){float dep;int season;scanf("%f %d",&dep,&season);display(dep,season);return 0;}double fun(float d){return d*RATE;}void display(float d,int s){int i;printf("季度利息余额\n");printf("-------------------------------\n");for(i=1;i<=s;i++){printf("%-4d %-.2f %-.2f\ n",i,fun(d),fun(d)*i+d);printf("-------------------------------\n");} }(5).#include<stdio.h>double fun(void);int main(){printf("%lf\n",fun());return 0;}double fun(void){double s=0;int n=1;while((double)(2*n-1)/((2*n)*(2*n)) >1e-4){s=s+(double)(2*n-1)/((2*n)*(2*n));n++;}return s;}(6).#include<stdio.h>int fun(int);int main(){int w;scanf("%d",&w);printf("%d\n",fun(w));return 0;}int fun(int w){int n=1,p=1,m;m=w;while(m>10){m=m/10;p=p*10;n++;}return w%p;}第5章习题参考答案1、选择题:(1) C (2) B C (3) B (4) B (5) A(6) D (7) D (8) B2、填空题(1)0,9(2)float realArray[100],char strArray[16],int intArray[1000](3)运算符sizeof(4)6字节3、阅读程序,写出下面程序的运行结果(1)aabbcc dd(2)abcd(3)ahAMa(4)0010(5)1 3 4 5(6)This is the title.Name 1 is RosalindaName 2 is ZekeThe biggest name alpabetically is ZekeBoth names are Rosalinda Zeke(7)0 0 0 0 0 0 0 00 1 2 3 4 5 6 70 2 5 6 8 10 748 140 3 6 9 12 15 18 210 4 8 12 16 20 24 280 5 10 15 20 177 30 350 6 12 18 24 30 36 420 7 14 21 28 35 42 494、程序填空(1)a[i][j] != a[j][i] , 1(2)0, a[i] < a[mini] , maxi = i , a[maxi] = a[mini](3)int a[], int b[], b[i] = a[i], -999, arraycopy(a,b), b[i++](4)a<sizeof(ch), if5、编程题(1)#include<stdio.h>int main ( ){1 int a[3][4] = {0, 2,9,7,5,13,6,8,27,11,1,3};int i,j,temp;for(i=0,j=0;j<4;j++){temp = a[2-i][j];a[2-i][j] = a[i][j];a[i][j] = temp;}for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",a[i][j]);printf("\n");}return 0;}(2)#include<stdio.h>int main ( ){static int a[6][6];int i,j,t=1;for(i=0;i<6;i++){t = i+1;for(j=0;j<i+1;j++)a[i][j] = t--;}for(i=0;i<6;i++){for(j=0;j<6;j++)printf("%3d",a[i][j]);printf("\n");}return 0;}(3)#include <stdio.h>#define M 3#define N 4#define R 5int main( ){static int a[M][N],b[N][R],c[M][R];int i,j,k;2 printf("Matrix a:\n");for( i = 0; i < M; i++ )for( j = 0; j < N; j++ )scanf( "%d",&a[i][j] );printf("Matrix b:\n");for( i = 0; i < N; i++ )for( j = 0; j < R; j++ )scanf( "%d",&b[i][j] );for( i = 0; i < M; i ++ )for( j = 0; j < N; j++ )for( k = 0; k < R; k++)c[i][k] += a[i][j]*b[j][k];for( i = 0; i < M; i++ ){for( j = 0; j < R; j++ )printf( "%3d",c[i][j] );printf("\n");}return 0;}(4)#include <stdio.h>#define M 5int main( ){static int a[M];int i,max = -1,min = 100,maxi,mini,temp;for( i = 0; i < M; i++ )scanf( "%d",&a[i] ); //0~99间的值for( i = 0; i < M; i++ ){if( max < a[i] ){max = a[i];maxi = i;}if( min > a[i] ){min = a[i];mini = i;}}temp = a[maxi];a[maxi] = a[mini];a[mini] = temp;for( i = 0; i < M; i++ )printf( "%3d",a[i] );return 0; }3(5)#include <stdio.h>#define M 3#define N 4int main( ){static int a[M][N];int max = -1,sumcol=0,sumrow=0;int i,j,maxi,col;for( i = 0; i < M; i++ ){sumrow = 0;for( j = 0; j < N; j++ ){scanf( "%d",&a[i][j] );sumrow += a[i][j];}if ( max < sumrow ){max = sumrow;maxi = i;}}printf("which col sum will be caculated?(>0)");scanf("%d",&col);for( i = 0; i < M; i ++ )sumcol += a[i][col-1];printf("The %dth row's sum is max, max=%d\n",maxi+1,max);printf("The %dth column's sum=%d\n",col,sumcol);return 0;}(6)#include <stdio.h>#define M 81int main( ){static char str[M];int i,count = 0;char ch;gets(str);fflush(stdin); //清空输入缓冲区,以便读入字符数据printf("Which character will be found?");ch = getchar();for( i = 0; i < strlen(str); i++ )if( ch == str[i] )count++;printf( "The number of character '%c' is %d\n",ch,count );4 return 0;}(7)#include <stdio.h>#include <stdlib.h>#define N 10 //同学人数#define M 5 //课程数void enter_scores(void);void sort_scores(int score[][M], int average[N][3]);void disp_scores(int score[][M]);void histogram(int n, int score[][M]);void printchar(int n); static int score[N][M];static int aver[N][3]; //第1列为均值,第2列原始顺序,第3列为均值逆序int main(){int course;enter_scores();printf("\n===========Oringenal Score Start=========\n");disp_scores(score);printf("\n===========Oringenal Score End===========\n");printf("\n===========Sorted Score Start============\n");sort_scores(score,aver);printf("\n===========Sorted Score End==============\n");printf("\nWhich class will be statisticed?\n");scanf("%d",&course);histogram(course, score);system("Pause");return 0;}/* 输入成绩*/void enter_scores(){int i, j;for(i=0; i<N; i++) {for(j=0; j<M; j++){scanf("%d",&score[i][j]);aver[i][0] += score[i][j];}}for( i = 0; i < N; i++ )for ( j = 1; j < 3; j++ )5 aver[i][j] = i;}/* 成绩排序. */void sort_scores(int score[][M], int average[N][3]){int i,j,t;int temp,tempindex;for( i = 0; i < N - 1; i++ )for( j = 0; j < N - 1 - i; j++ )if ( average[j][0] < average[j+1][0] ){temp = average[j][0];average[j][0] = average[j+1][0];average[j+1][0] = temp;tempindex = average[j][2];average[j][2] = average[j+1][2];average[j+1][2] = tempindex;}printf("\n Score1 Score2 Score3 Score4 Score5\n");for( i = 0; i < N; i++ ){t = average[i][2];for( j = 0;j < M; j++ ){printf("%8d", score[t][j]);}printf("\n");}}/* 输出成绩*/void disp_scores(int score[][M]){int i, j;printf("\n Score1 Score2 Score3 Score4 Score5\n");for( i = 0; i < N; i++ ){for( j = 0;j < M; j++ )printf("%8d", score[i][j]);printf("\n");}}void printchar(int n){6 int i;for (i = 0; i < n; ++i) putchar('*');}void histogram(int course, int score[][M]){int i,temp;int segs[5] = {0};int sc[N];for( i = 0; i < N; i++ )sc[i] = score[i][course];for (i = 0; i < N; i++)/* 统计各分段人数*/{temp = (int)sc[i]/10;segs[ temp<6?0:temp-5]++; /* 成绩/10,将成绩分段*/}printf("\nSegment Number\n");for (i = 0; i < 5; i++) /* 输出直方图,每段的人数*/{printf("<%3d: %5d| ", (i+1)*10+50, segs[i]);printchar(segs[i]);putchar('\n');}putchar('\n');}(8)#include <stdio.h>#define M 81int main( ){static char str[M];int i,count = 0;char ch = 0;gets(str);for( i = 0; i < strlen(str); i++ )if( ch < str[i] )ch = str[i];for( i = 0; i < strlen(str); i++ )if( ch == str[i] )count++;printf( " max = '%c' ,count = %d\n",ch,count );return 0;}7第6章习题参考答案1、选择题:(1) B (2)B (3)D (4) D (5) A(6) C (7) C (8)A (9) B (10)D(11)C (12)B (13)C (14)D (15)A (16)A2、填空题(1)常量,变量(2)指针(3)2(4)12,12(5)a[0],a[3]3、阅读程序,写出下面程序的运行结果(1)5(2)6(3)abcdefglkjih(4)976531(5)5,9(6)2,4,5,7,6,0,11,9,7,3,(7)string_a=I am a teacher.string_b=You are a student.string_a=I am a teacher.string_b=I am a teacher.4、程序填空(1)*p != '\0', *p-'0', j—(2)i <strlen(str), j=i, k+1(3)a+i, (char)(n%10) + '0'(4)*pk = i, a,n,i+1,pk(5)s1++, *s2, s1=p5、编程题(1)#include <stdio.h>int main(){int a=3,b=7,c=2;int *ptra = &a,*ptrb = &b,*ptrc = &c;int temp;printf("a=%d,b=%d,c=%d\n",a,b,c);printf("*ptra=%d,*ptrb=%d,*ptrc=% d\n",*ptra,*ptrb,*ptrc);if ( *ptra > *ptrb ){temp = *ptra;*ptra = *ptrb;1 *ptrb = temp;}if ( *ptra > *ptrc ){temp = *ptra;*ptra = *ptrc;*ptrc = temp;}if ( *ptrb > *ptrc ){temp = *ptrb;*ptrb = *ptrc;*ptrc = temp;}printf("a=%d,b=%d,c=%d\n",a,b,c); printf("*ptra=%d,*ptrb=%d,*ptrc=% d\n",*ptra,*ptrb,*ptrc);return 0;}(2)#include <stdio.h>#include <stdlib.h>void inputdata(int a[],int n);void process(int a[],int n);void outputdata(int a[],int n);int main(){int a[10],n=10;inputdata(a,n);outputdata(a,n);process(a,n);outputdata(a,n);system("Pause");return 0;}void inputdata(int a[],int n) //0~99之间的数{int i;for( i = 0; i < n; i++ )scanf("%d",a+i);}void outputdata(int *ptr,int n){int i;2printf("\n==========OutPut Data Start=============\n");for( i = 0; i < n; i++ )printf("%4d",*ptr++);printf("\n==========OutPut Data End================\n");}void process(int *ptr,int n){int i,maxi,mini;int max=-1,min=101;for( i = 0; i < n; i++ ){if ( max < *(ptr+i) ){max = *(ptr+i);maxi= i;}if ( min > *(ptr+i) ){min = ptr[i];mini= i;}}if ( mini != 0){i = ptr[0];ptr[0] = ptr[mini];ptr[mini] = i;}if (maxi != n-1){i = ptr[n-1];ptr[n-1] = ptr[maxi];ptr[maxi] = i;}if (maxi == 0 && mini == n-1){i = ptr[maxi];ptr[maxi] = ptr[mini];ptr[mini] = i;}}(3)#include<stdio.h>3int strLength (char *);int main(){static char str[81];gets(str);printf("string "%s" length:%3d\n",str,strLength(str)) ;system("Pause");return 0;}int strLength (char *s){char *p=s;while (*p) p++ ;return (p-s) ;}(4)#include <stdio.h>#define M 3#define N 4void Transpose (int (*a)[N],int (*T)[M]);int main( ){static int a[M][N],T[N][M];int i,j;for( i = 0; i < M; i++ )for( j = 0; j < N; j++ )scanf( "%d",&a[i][j] );printf("\n======Oringinal Matrix Start=========\n");for( i = 0; i < M; i ++ ){for( j = 0; j < N; j++ )printf( "%4d",a[i][j] );printf("\n");}printf("\n======Oringinal Matrix End===========\n");Transpose(a, T);printf("\n======Transpose Matrix Start=========\n");for( i = 0; i < N; i ++ ){for( j = 0; j < M; j++ )printf( "%4d",T[i][j] );printf("\n");}4printf("\n======Transpose Matrix End===========\n");return 0;}void Transpose (int (*a)[N],int (*T)[M]){int i,j;for( i = 0; i < N; i++ )for( j =0; j < M; j++ )T[i][j] = a[j][i];}(5)#include <stdio.h>int main(){static char source[81],target[81];int result;gets(source);gets(target);result = Strcmp(source,target);if (result){if( result < 0 )printf("%s< %s\n",source,target);elseprintf("%s > %s\n",source,target);}elseprintf("%s= %s\n",source,target);return 0;}int Strcmp(char *s,char *t){while (*s && *t && (*s == *t)){s++;t++;}return *s - *t;}(6)#include <stdio.h>5#define M 5#define N 3int sum (int *a);int main( ){static int a[M][N];int i,j;for( i = 0; i < M; i++ )for( j = 0; j < N; j++ )scanf( "%d",&a[i][j] );for( i = 0; i < M; i ++ )printf("Row %d sum: %3d\n", i, sum(a[i]));return 0;}int sum (int *ptr){int i,result = 0;for( i = 0; i < N; i++ )result += *(ptr+i);return result;}6第7章习题答案1、选择题:(1)C (2) C (3)D (4) B (5)A(6)C (7) B (8) A (9)D (10)B(11)D (12) D (13) A2、判断题(1)×(2)√(3)√(4)×(5)√(6)×(7)√(8)×(9)√(10)√第8章习题答案1、选择题:(1) C (2) D (3)A (4) A (5) D(6) C (7) D (8) B 2、填空题(1).(成员域访问运算符),-〉(成员域间接访问运算符)(2)4, 6.0(3)enum(4)typedef(5)<person+3, old=p->age, q->name,q->age3、阅读程序,写出下面程序的运行结果(1)p!=NULL, c++, p->next(2)p1->next, p1->next, p1->next4、程序阅读题(1)7,3(2)zhangping 20(3)Li:3Zhang:3Wang:25.编程题#include <stdio.h>#include <stdlib.h>#define N 10 /*学生人数*/#define M 3 /* 课程数*/struct stu{ /*定义结构体类型*/char name[15];char num[6];float score[M];float aver;} student[N]; /*说明结构体变量*/struct stu findmax(struct stu student[]);void input(struct stu student[]);void output(struct stu student[]);int main(){struct stu temp;input(student);output(student);temp = findmax(student);printf("Max is:\n");printf("%15s%8s%7.2f%7.2f%7.2f% 7.2f",,temp.num,1temp.score[0],temp.score[1],temp.sc ore[2],temp.aver/M);system("Pause");return 0;}struct stu findmax(struct stu student[]){float max = 0.0;int i,maxi;for(i=0; i<N; i++){if(max < student[i].aver){max = student[i].aver;maxi = i;}}return student[maxi];}void input(struct stu student[]){int i,j;printf("input data:\n");for( i=0;i<N;i++){scanf("%s %s",student[i].name,stude nt[i].num);student[i].aver = 0;for( j=0;j<M;j++){scanf("%f",&student[i].score[j]);student[i].aver += student[i].score[j];}}}void output(struct stu student[]){int i,j;for( i=0;i<N;i++){printf("%15s%8s",student[i].name,stu dent[i].num);for( j=0;j<M;j++)printf("%7.2f",student[i].score[j]);printf("%7.2f\n",student[i].aver/M);}}2第9章习题答案1、选择题:(1) A (2) D (3)B (4) B (5) A(6) A (7) C (8)D (9) A (10) A2、填空题(1)文本文件,二进制文件(2)fopen, fclose(3)fprintf, fscanf, feof(4)fwrite, fread, fputs, fgets(5)文本, 二进制(6)1,0(7)字节,流式3、程序填空题(1)*fp1, *fp2, ftell(fp1); fgetc(fp1),fp2(2)*fp, fp,sizeof(stud[0])*i,0&stud[i](3)“r”, fgetc(fp),count++(4)FILE *f, sizeof(r), r.num,r.total4、编程题#include <stdio.h>#define N 5 /*学生人数*/#define M 3 /* 课程数*/struct stu{ /*定义结构体类型*/char name[15];char num[6];float score[M];float aver;} student[N]; /*说明结构体变量*/void sort(struct stu student[]);void writetofile(struct stu student[], char filename[],char mode[]);int main(){FILE *fp;struct stu *ptr=NULL;int i,j;printf("input data:\n");for( i=0;i<N;i++){scanf("%s %s",student[i].name,stude nt[i].num);student[i].aver = 0;for( j=0;j<M;j++){scanf("%f",&student[i].score[j]);student[i].aver += student[i].score[j];1 }}writetofile(student, "student.txt","w");writetofile(student, "sort.txt","w");writetofile(student,"sort2.txt","w");sort(student);writetofile(student, "sort.txt","a");ptr = (struct stu *)malloc(sizeof(struct stu));scanf("%s %s", ptr->name,ptr->num);ptr->aver = 0;for( j=0;j<M;j++){scanf("%f",&ptr->score[j]);ptr->aver += ptr->score[j];}if((fp=fopen("sort2.txt","a"))==NULL){printf("cannot open file");exit(0);}fprintf(fp,"%s %s",ptr->name,ptr->nu m);for( j=0;j<M;j++)fprintf(fp,"%7.2f",ptr->score[j]);fprintf(fp,"%7.2f\n",ptr->aver/M);fclose(fp);return 0;}void sort(struct stu student[]){struct stu temp;int i,j,k;for(i=0; i<N-1; i++){k=i;for(j=i+1; j<N; j++)if(student[j].aver < student[k].aver)k=j;if(k!=i){temp=student[i];student[i]=student[k];student[k]=temp;}}}2void writetofile(struct stu student[], char filename[],char mode[]){FILE *fp;int i,j;if((fp=fopen(filename,mode))==NULL ){printf("cannot open file");exit(0);}for( i=0;i<N;i++){ fprintf(fp,"%s %s",student[i].name,st udent[i].num);for( j=0;j<M;j++)fprintf(fp,"%7.2f", student[i].score[j]);fprintf(fp,"%7.2f\n",student[i].aver/M );}fclose(fp);}。
C语言程序设计实例教程课程设计
C语言程序设计实例教程课程设计一、引言C语言是一门十分受欢迎的计算机编程语言,其流行程度源于其简单性、可移植性和高效性等因素。
C语言的广泛使用范围包括嵌入式系统设计、操作系统编写、游戏开发以及各种应用程序的开发等。
因此,学习C语言程序设计对于计算机科学专业的学生来说至关重要。
本文档为C语言程序设计实例教程课程设计,旨在帮助学生更好地理解和掌握C语言的程序设计方法。
该课程设计将包括实例代码和详细的代码解释,通过这些实例,学生将学习到C语言的基本语法、程序结构、函数和指针等重要知识点,同时还能够提高自己的编程能力。
二、课程设计目标本课程设计以学习C语言的基本程序设计方法为核心,旨在实现以下目标:1.理解C语言的基本语法,包括变量类型、运算符、数据类型等;2.掌握C语言的程序结构,包括顺序结构、选择结构和循环结构等;3.熟悉C语言的函数和指针,能够编写复杂的程序;4.建立编程思维,提高编程能力;5.培养学生的团队合作意识。
三、教学内容3.1 C语言基础1.C语言简介2.C语言程序的基本结构3.C语言中的变量和运算符4.C语言中的数据类型5.C语言中的控制语句6.C语言中的函数3.2 C语言程序设计实例1.实例1:计算数组中元素的平均值2.实例2:冒泡排序3.实例3:字符串反转4.实例4:判断一个数是否为素数5.实例5:文件操作6.实例6:链表数据结构四、教学方法本课程设计采用讲解思路+实例案例的教学方法,以实现学生的基础和编程能力的提升。
具体方法如下:1.首先,老师将讲解课程内容的思路,并简单介绍应用场景;2.其次,老师将通过讲解实例案例的方式,详细阐述程序设计的各个细节,缺陷及处理方法;3.学生可以根据案例代码自行练习,以锻炼自己的编程能力;4.学生可以结合自己的理解,对老师的代码进行添加、修改和注释,以提升自己的编程水平;5.学生还可以通过团队合作的方式来完成课程设计,以培养团队协作能力。
五、教学评价本课程设计将根据以下方法进行评价:1.基于实例作业的评价方式,用于考核学生对于课程内容的理解和掌握程度;2.通过课堂练习和编程作业的评价方式,考核学生的实践能力和编程水平;3.通过学生团队合作的评价方式,考核学生的团队协作能力;4.进行期末考试,考核学生的知识掌握程度。