//复习过程中,纯手打,持续更新,觉得好就点个赞吧。
第一章:程序设计和C语言
习题
1、什么是程序?什么是程序设计?
答:程序就是一组计算机能识别和执行的指令。
程序设计是指从确定任务到得到结果,写出文档的全过程。(一般经历6个阶段:①问题分析;②设计算法;③编写程序;④对源程序进行编辑,编译和连接;⑤运行程序,分析结果;⑥编写程序文档;)
2、为什么需要计算机语言?高级语言的特点?
答:如同和人类交流一样,和哪个国家的人交流就需要哪个国家的语言来作为桥梁,想要和计算机进行交流沟通也就需要计算机语言,沟通以后就能用计算机做很多事情,更好的控制计算机 更好的用计算机完成我们的目的。高级语言同自然语言相近,便于人类理解和记忆,从人类的逻辑思维角度出发的计算机语言,抽象程度大大提高,需要经过编译成特定机器上的目标代码才能执行,一条高级语言的语句往往需要若干条机器指令来完成。
3、正确理解以下名词及其含义
(1)源程序 目标程序 可执行程序
答:用高级语言编写的代码程序即为源程序。
(2)程序编辑 程序编译 程序连接
答:
(3)程序 程序模块 程序文件
答:程序就是一组计算机能识别和执行的指令。
(4)函数 主函数 被调用函数 库函数
答:
(5)程序调试 程序测试
答:
4、 自学本书复录A,熟悉上级运行C程序的方法,上级运行本章3个例题。
5、请参照本章列题,编写一个C程序,输出以下信息:
*******************************
Very good !
*******************************
1 #include2 int main() 3 { 4 for(int i=1;i<8;i++) 5 { 6 printf("**"); 7 } 8 printf("\n"); 9 printf("Very Good ! \n"); 10 11 for(int i=1;i<8;i++) 12 { 13 printf("**"); 14 } 15 16 return 0; 17 18 }
6、编写一个C程序,输入a,b,c三个值,输出其中最大者。
1 #include2 3 int main () { 4 int max(int a,int b,int c); 5 int x=92,y=100,z=70; 6 int c=max(x,y,z); 7 printf("%d\n",c); 8 return 0; 9 } 10 11 int max(int a,int b ,int c) 12 { 13 if(a>b) 14 { 15 if(a>c) 16 return a; 17 else 18 return c; 19 } 20 else if(b>c) 21 { 22 return b; 23 }else 24 return c; 25 26 }
第二章:算法-----程序的灵魂
读书笔记:
1、一个程序主要包括数据结构和算法。在程序中指定用到哪些数据以及这些数据的类型和数据的组织形式就是数据结构。对操作的描述即为算法。
2、算法的特性:有穷性;确定性;有零个或多个输入、输出;有效性。
3、表示算法的方法:自然语言表示;程序流程图表示;N-S流程图表示;伪代码表示;计算机语言表示。
4、程序流程图的基本结构:顺序结构;选择结构;循环结构(当型循环、直到型循环)。
习题:
1、什么是算法?试从日常生活中找三个列子,描述他们的算法。
答:算法是对一个程序涉及到的操作的描述。eg1:机场过安检:安检口验证登机人信息是否一致,验证通过将自己的行李放到行李安检区,此时安检人员检查登机者,都通过允许进入候机厅。
2、什么叫结构化的算法?为什么要提倡结构化的算法?
答:由顺序结构,选择结构,循环结构构成的算法即为结构化的算法。结构化的算法不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。不会出现死循环,使算法的质量得到保证和提高,所以,要提倡结构化的算法。
3、试述3种基本结构的特点,请另外设计一种基本结构。
答:顺序结构可以保证代码从上到下一个总的编写逻辑结构。选择结构能够灵活的进行分支判断,增强代码的健壮性。循环结构有效提高简单重复率高程序的运行效率。 do{语句} while(条件);
4、
5、
6、
7、
8、用自顶向下,逐步细化的方法进行以下算法的设计:
(1)输出1900~2000年中是闰年的年份,符合下面两个条件之一的年份是闰年:①能被4整除但不能被100整除 ②能被100整除且能被400整除
1 #include2 3 int checkYear(int year){ 4 if(year%100==0 && year%400==0) 5 return year; 6 else if(year%4==0 && year%100!=0) 7 return year; 8 return 0; 9 } 10 11 int main () { 12 //printf("%d",checkYear(2000)); 13 int i,result; 14 for(i=1900 ;i<2001 ;i++){ 15 result=checkYear(i); 16 if(result==0) 17 continue; 18 else 19 printf("%d\n",result); 20 } 21 }
(2)求ax2+bx+c=0的根,分别考虑d=b2-4ac大于0、等于0和小于0这三种情况。
(3)输入10个数,输出其中最大的一个数。