c语言程序设计12上半部分习题课动态跟踪调试培训课件

上传人:日度 文档编号:149720017 上传时间:2020-10-29 格式:PPT 页数:100 大小:1.41MB
返回 下载 相关 举报
c语言程序设计12上半部分习题课动态跟踪调试培训课件_第1页
第1页 / 共100页
c语言程序设计12上半部分习题课动态跟踪调试培训课件_第2页
第2页 / 共100页
c语言程序设计12上半部分习题课动态跟踪调试培训课件_第3页
第3页 / 共100页
c语言程序设计12上半部分习题课动态跟踪调试培训课件_第4页
第4页 / 共100页
c语言程序设计12上半部分习题课动态跟踪调试培训课件_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《c语言程序设计12上半部分习题课动态跟踪调试培训课件》由会员分享,可在线阅读,更多相关《c语言程序设计12上半部分习题课动态跟踪调试培训课件(100页珍藏版)》请在金锄头文库上搜索。

1、1,“编程能力”不是听会的、也不是看会的、而是动手动脑练会的!,2,高级语言程序设计上半部分习题课,主讲教师:贾彩燕 计算机与信息技术学院 计算机科学与技术系 ,3,课程内容,第一章 程序设计和C语言 第二章 数据对象与计算 第三章 变量、函数和控制结构 第四章 基本程序设计技术 第五章 C程序结构(函数) 第六章 数组 第七章 指针 第八章 文件和输入输出 第九章 结构和其它数据机制 第十章 程序开发技术 第十一章 标准库,4,重点,控制结构 顺序、选择、循环结构 函数 定义、声明及调用 从问题到程序的编程思想 程序的函数分解 模块化程序设计 基本的程序调试技能 静态调试、动态调试 黑箱测试

2、、白箱测试,5,难点,循环 递归 基本输入、输出语句,6,程序数据结构算法,程序 程序规定了计算机执行的动作和动作的顺序。 算法: 解决问题的方法和步骤 算法的几个特性 有穷性 确定性无二义 可执行性 有0个或多个输入 有0个或多个输出,从问题到程序的程序设计思想也体现了算法的重要性,7,要点1:运算符及表达式?,已经学习哪几种运算符及表达式?优先级关系? 自增、自减运算符 算术运算符 关系运算符 逻辑运算符 位运算符 条件运算符 赋值运算符 逗号运算符,8,要点2:C语言的基本数据类型,C语言的基本数据类型有哪些? 什么是常量?如何定义? 什么是变量?如何定义? 变量的存贮类型有哪几种? a

3、uto, register, static, extern 变量从作用域的角度分哪几种? 全局变量、局部变量,9,要点3:条件if语句,条件if语句有几种形式? If else和switch开关语句的差别?,10,要点4:循环语句,循环语句有几种形式? 循环结构的三要素是什么? 如何从循环中跳出?,11,要点5:函数,如何定义函数? 函数声明的意义及原则? 如何调用函数? 参数传递和函数返回值过程中类型不匹配时的转换原则? 如何理解值参数?,12,要点6:基本输入输出语句,getchar() putchar() scanf() printf() 数的批量输入输出:基本输入输出循环结构,13,第

4、二章习题讲解,14,1.指出下面的字符序列不是合法的标识符:,_abc x+- 3x1 Xf_1_4 Eoof_ A$*24 x_x_2 bg1_I am,15,2.手工计算下列表达式的值,1) 125 + 0125 2)0XAF 0XFA 3)24 * 3 / 5 + 6 4)36 + -(5 23) / 4 5)35 * 012 + 27 / 4 / 7 * (12 - 4),210,-75,20,40,350,16,3.在下列表达式的计算过程中,在哪些地方将发生类型转换,各是从什么类型转换到什么类型,表达式计算的结果是什么?,1) 3 * (2L + 4.5f) 012 + 44 2)

5、3* (int)sqrt(34) sin(6) * 5 + 0 x2AF 3) cos(2.5f + 4) 6 * 27L + 1526 2.4L,17,18,第三章习题讲解,19,2.设a=1,b=2,c=3,则u的值为: u=a?b:c; u=(a=2)?b+a:c+a; 3.设a=1,b=2,c=0,则下列表达式的值为: a int main() float y = 3; printf(“%dn”, f(y, y+1); return 0; ,1,21,8.定义函数 double tmax(double, double,double),返回三个数中的最大的。,double tmax(do

6、uble x, double y, double z) double max = x; if (y max) max = y; if (z max) max = z; return max; ,22,10.四边形的边长为a,b,c,d及一对对角之各angel,求四边形的面积。,double QuaArea(double a, double b, double c, double d, double e) double s = (a+b+c+d)/2.; double area; area = sqrt(s-a)*(s-b)*(s-c)*(s-d)- a*b*c*d*cos(e)*cos(e);

7、 return area; ,有问题吗?,23,补充题1:用if语句写程序判断是否为闰年,int RuiNian( int year ) if ( year % 400 = 0 | year % 4 = 0 ,24,补充题2.求分段函数,#include int main() double x, y; printf(please input xn); scanf(%lf, ,有问题吗?,25,补充题3,给一个不多于3位的正整数,要 求出它是几位数; 分别输出每一位数字 按新逆序输出各位数字,例如原数为321,应输出123,算法思想: 设a是整数变量; 如果a999则输入错误 如果a=0并且a=

8、10并且a=100并且a1000则输出a是百位数 个位数是a%10 十位数是a/10%10 百位数是a/100,26,#include /程序分析 int main () int x, a, b, c, d; scanf(%d, ,27,#include int GradeIf(int); int GradeSwitch(int); int main() int n; printf(Input the mark from 0 to 99 n); while (scanf(%d, ,补充题4.从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输。9099为A级,8089为B级,7079为

9、C级,6069为D级,059为E级。,28,int GradeIf(int n) if(n99 | n=90) printf(The grade is A!n); else if(n=80) printf(The grade is B!n); else if(n=70) printf(The grade is C!n); else if(n=60) printf(The grade is D!n); else printf(The grade is E!n); return 0; ,29,int GradeSwitch(int n) if(n99 | n0) n=-1; else n=n/10

10、; switch (n) case -1: printf(Input error!n);break; case 9:printf(The grade is A!n);break; case 8:printf(The grade is B!n);break; case 7:printf(The grade is C!n);break; case 6:printf(The grade is D!n);break; default:printf(The grade is E!n); return 0; ,30,14.求100以内正整数的立方和,long CubeSum (int n) long su

11、m = 0; int i = 1; while (i = n) sum = sum + i*i*i; i+; return sum; ,31,15.写一个函数,取3个参数m,n,k输出m,m+k,m+2k,直至最后一个不大于n的数,void PrintNum (int m, int n, int k) while (m = n) printf (“%dn”, m); m = m + k; ,32,16.自定义函数double power(double x,int n),求出x的n次幂。,double Power (double x, int n) double exp = 1; while (

12、n = 1) exp *= x; n-; return exp; ,33,22.写一个程序打印1至100之间的被6或7整除的数;修改这个程序使得它之打出被6或7之一整除的数。,int main () int i = 0; while (i = 100) if (i % 6 = 0 ,34,第四章习题讲解,35,4.写函数计算1!+2!+k!,long SumFactor(int n) int i = 1; long f = 1, sum = 0; while (i = n) f = f * i; sum = sum + f; i+; return sum; ,36,9.用公式编程求圆周率的近似

13、值,#include #define PI 3.1415 double Pai(void) int n = 1; double sum = 0.0; while (fabs(PI-sqrt(6*sum) = 1e-4) sum = sum + 1.0 / (n * n); n+; printf(The number of terms are %d.n, n); return sqrt(6*sum); ,37,12.求利用公式反正弦函数的近似值,double asinh (double x) int i, n=10, sign=-1; double term, sum; term=x; sum=

14、x; for(i=1;i=n;i+) term=term*x*x*(2*i-1)/(2*i); sum+=sign*term/(2*i+1)*(2*i-1); sign=-sign; return sum; ,38,14.辗转相减求最大公约数,int gcd(int m,int n) if (mn) return gcd(n,m); else if (m=n) return m; else return gcd(m-n,n); ,int gcd1(int m, int n) int r,t; if (m n) t=m;m=n;n=t; if (n = 0) return m; for (r =

15、 m-n; r != 0; r = m-n) m = n; n = r; if (m n) t=m;m=n;n=t; return n; ,39,16.求水仙花数,void method1(void) int i,j,k; for (i=1;i=9;i+) for (j=0;j=10;j+) for(k=0;k=10;k+) if(i*100+j*10+k=i*i*i+j*j*j+k*k*k) printf(%d是水仙花数n,i*100+j*10+k); ,void method2(void) int i,m,n,l; for (i=100;i=999;i+) m = i/100; n = i

16、/10%10; l = i%10; if(i=m*m*m+n*n*n+l*l*l) printf(%d是水仙花数n,i); ,40,19.写程序读入一系列数,求最大数和次大数。,int tmax(void) int n, m, max1, max2; printf(Please input some integers.n); scanf(%d%d, ,41,21.求折线段的面积,double FigureArea(void) double y1, y2, area = 0.0; printf(Please input a series positive float number.n); if (scanf(%lf, ,42,补充题1:打印如下图案,1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1,void Figure(int n) int i, j; for (i = 1; i = 1;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 专业基础教材

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号