ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:23.02KB ,
资源ID:8478574      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8478574.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言复习资料.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言复习资料.docx

1、C语言复习资料C语言复习资料1简单的算术运算和表达式例3.7强制类型转换:#include main() int m = 5; printf(m/2=%dn, m/2); printf(float)(m/2)=%fn,(float)(m/2; printf(float)m/2= %fn, (float)m/2); printf(m = %dn, m);2选择控制结构 例5.4多分支控制的条件语句:从键盘任意输入a,b,c的值,编程并计算一元二次方程ax2+bx+c=的根(分a=0,,=,0 讨论)#include #include #include #define EPS 1e-6main()

2、 float a, b, c, disc, p, q; printf(Please enter the coefficients a,b,c:); scanf(%f,%f,%f, &a, &b, &c); if (fabs(a) = EPS) /* a=0时,输出不是二次方程 */ printf(It is not a quadratic equation!n); exit(0); disc = b * b - 4 * a * c; /* 计算判别式 */ p = - b / (2 * a); q = sqrt(fabs(disc) / (2 * a); if (fabs(disc) EPS)

3、 /* 判别式大于0时,输出两不等实根 */ printf(x1 = %.2f, x2 = %.2fn, p+q, p-q); else /* 判别式小于0时,输出两共轭复根 */ printf(x1 = %.2f+%.2fi, , p, q); printf(x2 = %.2f-%.2fin, p, q); return 0;3 循环控制结构例6.1 三种循环语句:前n项和的计算#include main() int i, n, sum; printf(Input n:); scanf(%d, &n); sum = 0; /* 累加和变量初始化为0 */ for (i=1; i=n; i+)

4、 sum = sum + i; /* 做累加运算 */ printf(sum = %dn, sum);#include main() int i, n, sum; printf(Input n:); scanf(%d, &n); sum = 0; /* 累加和变量初始化为0 */ i = 1; while (i = n) sum = sum + i; /* 做累加运算 */ i+; /* 累加计数器加1 */ printf(sum = %dn, sum);#include main() int i, n, sum; printf(Input n:); scanf(%d, &n); sum =

5、0; /* 累加求和变量初始化为0 */ i = 1; do sum = sum + i; /* 做累加运算 */ i+; /* 累加计数器加1 */ while (i = n); printf(sum = %dn, sum);例6.4 嵌套循环:前n项阶乘之和#include main() int i, j, n; long p, sum = 0; /* 累加求和变量sum初始化为0 */ printf(Input n:); scanf(%d, &n); for (i=1; i=n; i+) p = 1; /* 每次循环之前都要将累乘求积变量p赋值为1 */ for (j=1; j=i; j

6、+) p = p * j; /* 累乘求积 */ sum = sum + p; /* 累加求和 */ printf(1!+2!+%d! = %ldn, n, sum);例6.10 猜数游戏最终版:#include #include #include main() int magic, guess, counter = 0, ret; char reply; /* 保存用户输入的回答 */ srand(time(NULL); do magic = rand() % 100 + 1; do printf(Please guess a magic number:); ret = scanf(%d,

7、&guess); while (ret != 1) /* 若存在输入错误,则重新输入 */ while (getchar() != n); /* 清除输入缓冲区中的非法字符 */ printf(Please guess a magic number:); ret = scanf(%d, &guess); counter+; if (guess magic) printf(Wrong!Too big!n); else if (guess magic) printf(Wrong!Too small!n); else printf(Right!n); while (guess!=magic & co

8、unter10); /*猜不对且未超10次继续猜*/ printf(counter = %dn, counter); printf(Do you want to continue(Y/N or y/n)?); /*提示是否继续*/ scanf( %c, &reply); /* %c前有一个空格 */ while (reply=Y | reply=y); /* 输入Y或y则程序继续 */4 函数例7.4 函数调用 复用:组合数的计算#include unsigned long Fact(unsigned int n); int main() int m, k; unsigned long p;

9、do printf(Input m,k (m=k0):); scanf(%d,%d, &m, &k); while (mk|m=0|k0); p = Fact(m) / (Fact(k) * Fact(m-k); printf(p = %lun, p);return 0;/* 函数功能:用迭代法计算无符号整型变量n的阶乘 */unsigned long Fact(unsigned int n)unsigned int i; unsigned long result = 1; for (i=2; i=n; i+) result *= i; return result;例7.6 函数的递归调用和递

10、归函数: Fibonacci(斐波那契)数列#include long Fib(int a);int main() int n, i, x; printf(Input n:); scanf(%d,&n); for (i=1; i=n; i+) x = Fib(i); /* 调用递归函数Fib()计算Fibonacci数列的第n项 */ printf(Fib(%d)=%dn, i, x); return 0;/* 函数功能:用递归法计算Fibonacci数列中的第n项的值 */long Fib(int n) if (n = 0) return 0; /* 基线情况 */ else if (n =

11、 1) return 1; /* 基线情况 */ else return (Fib(n-1) + Fib(n-2); /* 一般情况 */ 5 数组例8.5 向函数传递一维数组:从键盘输入某班学生某门课的成绩(已知每班人数最多不超过40人,具体人数由键盘输入),试编程计算其平均分#include #define N 40int Average(int score, int n); /* Average()函数原型 */void ReadScore(int score, int n); /* ReadScore()函数原型 */int main() int scoreN, aver, n; pr

12、intf(Input n:); scanf(%d, &n); ReadScore(score, n); /* 数组名作为函数实参调用函数ReadScore() */ aver = Average(score, n); /* 数组名作为函数实参调用函数Average() */ printf(Average score is %dn,aver); return 0;/* 函数功能: 计算n个学生成绩的平均分 */int Average(int score, int n) /* Average()函数定义 */ int i, sum = 0; for (i=0; in; i+) sum += sco

13、rei; return sum / n;/* 函数功能:输入n个学生的某门课成绩 */void ReadScore(int score, int n) /* ReadScore()函数定义 */ int i; printf(Input score:); for (i=0; in; i+) scanf(%d, &scorei); 例8.8 交换法排序:从键盘输入某班学生某门课的成绩(已知每班人数最多不超过40人),当输入为负值时,表示输入结束,试编程将分数按从高到低的顺序进行排序输出。用函数编程实现排序功能#include #define N 40int ReadScore(int score)

14、; /* ReadScore()函数原型 */void DataSort(int score, int n); /* DataSort()原函数型 */ void PrintScore(int score, int n); /* PrintScore()函数原型 */int main() int scoreN, n; n = ReadScore(score); /*调用函数ReadScore()输入成绩,返回学生人数*/ printf(Total students are %dn, n); DataSort(score, n); /* 调用函数DataSort()进行成绩排序 */ print

15、f(Sorted scores:); PrintScore(score, n); /* 调用函数Printscore()输出成绩排序结果 */ return 0;/* 函数功能:输入学生某门课的成绩,当输入负值时,结束输入,返回学生人数 */int ReadScore(int score) /* ReadScore()函数定义 */ int i = -1; /* i初始化为-1,可保证循环体内i增1后数组下标从0开始 */ do i+; printf(Input score:); scanf(%d, &scorei); while (scorei = 0); /* 输入负值时结束成绩输入 */

16、 return i; /* 返回学生人数 */* 函数功能:按交换法将数组score的元素值元素按从高到低排序 */void DataSort(int score, int n) /* DataSort()函数定义 */ int i, j, temp; for (i=0; in-1; i+) for (j=i+1; j scorei) /* 按数组score的元素值从高到低排序 */ temp = scorej; scorej = scorei; scorei = temp; /* 函数功能: 打印学生成绩 */void PrintScore(int score, int n) /* Prin

17、tScore()函数定义 */ int i; for (i=0; in; i+) printf(%4d, scorei); printf(n);例8.8 选择法排序(题目同上)#include #define N 40int ReadScore(int score); /* ReadScore()函数原型 */void DataSort(int score, int n); /* DataSort()原函数型 */ void PrintScore(int score, int n); /* PrintScore()函数原型 */int main() int scoreN, n; n = Rea

18、dScore(score); /*调用函数ReadScore()输入成绩,返回学生人数*/ printf(Total students are %dn, n); DataSort(score, n); /* 调用函数DataSort()进行成绩排序 */ printf(Sorted scores:); PrintScore(score, n); /* 调用函数Printscore()输出成绩排序结果 */ return 0;/* 函数功能:输入学生某门课的成绩,当输入负值时,结束输入,返回学生人数 */int ReadScore(int score) /* ReadScore()函数定义 */

19、 int i = -1; /* i初始化为-1,可保证循环体内i增1后数组下标从0开始 */ do i+; printf(Input score:); scanf(%d, &scorei); while (scorei = 0); /* 输入负值时结束成绩输入 */ return i; /* 返回学生人数 */* 函数功能:按选择法将数组score的元素值元素按从高到低排序 */void DataSort(int score, int n) int i, j, k, temp; for (i=0; in-1; i+) k = i; for (j=i+1; j scorek) /* 按数组sco

20、re的元素值从高到低排序 */ k = j; /* 记录最大数下标位置 */ if (k != i) /* 若最大数所在的下标位置不在下标位置i */ temp = scorek; scorek = scorei; scorei = temp; /* 函数功能: 打印学生成绩 */void PrintScore(int score, int n) /* PrintScore()函数定义 */ int i; for (i=0; in; i+) printf(%4d, scorei); printf(n);例8.9 在上题基础上同时输入学号并一同输出排序#include #define N 40i

21、nt ReadScore(int score, long num); /*ReadScore()函数原型*/void DataSort(int score, long num, int n); /*DataSort()原函数型*/ void PrintScore(int score, long num, int n);/*PrintScore()函数原型*/int main() int scoreN, n; long numN; n = ReadScore(score, num); /* 输入成绩和学号,返回学生总数 */ printf(Total students are %dn, n);

22、DataSort(score, num, n); /* 成绩排序 */ printf(Sorted scores:n); PrintScore(score, num, n); /* 输出成绩排序结果 */ return 0;/* 函数功能:输入学生的学号及其某门课成绩,当输入负值时,结束输入,返回学生人数 */int ReadScore(int score, long num) /* ReadScore()函数定义 */ int i = -1; /* i初始化为-1,可保证循环体内i增1后数组下标从0开始 */ do i+; printf(Input students ID and score

23、:); scanf(%ld%d, &numi, &scorei); /* 以长整型格式输入学号 */ while (numi 0 & scorei = 0); /* 输入负值时结束成绩输入 */ return i; /* 返回学生总数 */* 函数功能:按选择法将数组score的元素值按从高到低排序 */void DataSort(int score, long num, int n) /*DataSort()函数定义*/ int i, j, k, temp1; long temp2; for (i=0; in-1; i+) k = i; for (j=i+1; j scorek) /* 按数

24、组score的元素值从高到低排序 */ k = j; /* 记录最大数下标位置 */ if (k != i) /* 若最大数不在下标位置i */ /* 交换成绩 */ temp1 = scorek; scorek = scorei; scorei = temp1; /* 交换学号 */ temp2 = numk; numk = numi; numi = temp2; /* 函数功能:打印学生学号和成绩 */void PrintScore(int score, long num, int n) /*PrintScore()函数定义*/ int i; for (i=0; in; i+) print

25、f(%10ld%4dn, numi, scorei); /* 以长整型格式打印学号 */ 例8.10 线性查找(或称顺序查找):从键盘输入某班学生某门课的成绩(已知每班人数最多不超过40人),同时输入学生的学号,当输入为负值时,表示输入结束,试编程从键盘输入任意一个学号,查找该学生的成绩#include #define N 40int ReadScore(int score, long num); /*ReadScore()函数原型*/void DataSort(int score, long num, int n); /*DataSort()原函数型*/ void PrintScore(in

26、t score, long num, int n);/*PrintScore()函数原型*/int main() int scoreN, n; long numN; n = ReadScore(score, num); /* 输入成绩和学号,返回学生总数 */ printf(Total students are %dn, n); DataSort(score, num, n); /* 成绩排序 */ printf(Sorted scores:n); PrintScore(score, num, n); /* 输出成绩排序结果 */ return 0;/* 函数功能:输入学生的学号及其某门课成绩,当输入负值时,结束输入,返回学生人数 */int ReadScore(int score, long num) /* ReadScore()函数定义 */ int i = -1; /* i初始化为-1,可保证循环体内i增1后数组下标从0开始 */ do i+; printf(Input students ID and score:); scanf(%ld%d, &numi, &scorei); /* 以长整型格式输入学号 */ while (numi 0 & scorei = 0); /* 输入负值时结束

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1