C语言复习资料.docx
《C语言复习资料.docx》由会员分享,可在线阅读,更多相关《C语言复习资料.docx(35页珍藏版)》请在三一办公上搜索。
1、C语言复习资料C语言复习资料 1简单的算术运算和表达式 例3.7强制类型转换: #include main 2选择控制结构 例5.4多分支控制的条件语句:从键盘任意输入a,b,c的值,编程并计算一元二次方程ax2+bx+c=的根 #include #include #include #define EPS 1e-6 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); float a, b,
2、 c, disc, p, q; 1 */ printf(Please enter the coefficients a,b,c:); scanf(%f,%f,%f, &a, &b, &c); if (fabs(a) = EPS) /* a=0时,输出不是二次方程 */ disc = b * b - 4 * a * c; /* 计算判别式 */ p = - b / (2 * a); q = sqrt(fabs(disc) / (2 * a); if (fabs(disc) EPS) /* 判别式大于0时,输出两不等实根 printf(x1 = x2 = %.2fn, p); printf(It
3、is not a quadratic equation!n); exit(0); else /* 判别式小于0时,输出两共轭2 printf(x1 = %.2f, x2 = %.2fn, p+q, p-q); 复根 */ 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
4、*/ for (i=1; i=n; i+) printf(sum = %dn, sum); 3 sum = sum + i; /* 做累加运算 */ #include main #include main int i, n, sum; printf(Input n:); scanf(%d, &n); sum = 0; /* 累加和变量初始化为0 */ i = 1; while (i = n) printf(sum = %dn, sum); sum = sum + i; /* 做累加运算 */ i+; /* 累加计数器加1 */ int i, n, sum; printf(Input n:);
5、scanf(%d, &n); 4 sum = 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赋
6、值为1 */ for (j=1; j=i; j+) 5 sum = sum + p; /* 累加求和 */ p = p * j; /* 累乘求积 */ 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 num
7、ber:); ret = scanf(%d, &guess); 6 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); w
8、hile (guess!=magic & counter10); /*猜不对且未超10次继续猜*/ */ */ 7 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
9、int m, k; unsigned long p; 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) 8 unsigned int i; unsigned long result = 1; for (i=2; i=n; i+) result *
10、= i; return result; 例7.6 函数的递归调用和递归函数: 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项 */ 9 printf(Fib(%d)=%dn, i, x); return 0; /* 函数功能:用递归法计算Fibonacci数列中的第n项的值 */ long Fib(int n) 5 数组 例8.5 向函数传
11、递一维数组:从键盘输入某班学生某门课的成绩,试编程计算其平均分 #include #define N 40 int Average(int score, int n); /* Average函数原型 */ void ReadScore(int score, int n); /* ReadScore函数原型 */ int main if (n = 0) return 0; /* 基线情况 */ else if (n = 1) return 1; /* 基线情况 */ else return (Fib(n-1) + Fib(n-2); /* 一般情况 */ int scoreN, aver, n;
12、 printf(Input n:); scanf(%d, &n); ReadScore(score, n); /* 数组名作为函数实参调用函数10 ReadScore */ aver = Average(score, n); /* 数组名作为函数实参调用函数Average */ /* 函数功能: 计算n个学生成绩的平均分 */ int Average(int score, int n) /* Average函数定义 */ /* 函数功能:输入n个学生的某门课成绩 */ void ReadScore(int score, int n) /* ReadScore函数定义 */ printf(Ave
13、rage score is %dn,aver); return 0; int i, sum = 0; for (i=0; in; i+) return sum / n; sum += scorei; int i; printf(Input score:); for (i=0; in; i+) 11 scanf(%d, &scorei); 例8.8 交换法排序:从键盘输入某班学生某门课的成绩,当输入为负值时,表示输入结束,试编程将分数按从高到低的顺序进行排序输出。用函数编程实现排序功能 #include #define N 40 int ReadScore(int score); /* Read
14、Score函数原型 */ 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进行成绩排序 printf(Sorted scores:);
15、PrintScore(score, n); /* 调用函数Printscore输出成绩排序12 结果 */ /* 函数功能:输入学生某门课的成绩,当输入负值时,结束输入,返回学生人数 */ int ReadScore(int score) /* ReadScore函数定义 */ int i = -1; /* i初始化为-1,可保证循环体内i增1后数组下标从0return 0; 开始 */ /* 函数功能:按交换法将数组score的元素值元素按从高到低排序 */ void DataSort(int score, int n) /* DataSort函数定义 */ do i+; printf(In
16、put score:); scanf(%d, &scorei); while (scorei = 0); /* 输入负值时结束成绩输入 */ return i; /* 返回学生人数 */ int i, j, temp; for (i=0; in-1; i+) 13 for (j=i+1; j scorei) /* 按数组score的元素值从高到低排序 */ /* 函数功能: 打印学生成绩 */ void PrintScore(int score, int n) /* PrintScore函数定义 */ 14 temp = scorej; scorej = scorei; scorei = te
17、mp; int i; for (i=0; in; i+) printf(n); printf(%4d, scorei); 例8.8 选择法排序 #include #define N 40 int ReadScore(int score); /* ReadScore函数原型 */ void DataSort(int score, int n); /* DataSort原函数型 */ void PrintScore(int score, int n); /* PrintScore函数原型 */ int main int scoreN, n; n = ReadScore(score); /*调用函数
18、ReadScore输入成绩,返回学生人数*/ */ printf(Sorted scores:); PrintScore(score, n); /* 调用函数Printscore输出成绩排序printf(Total students are %dn, n); DataSort(score, n); /* 调用函数DataSort进行成绩排序 结果 */ /* 函数功能:输入学生某门课的成绩,当输入负值时,结束输入,返回学生人数 */ int ReadScore(int score) /* ReadScore函数定义 */ 15 return 0; int i = -1; /* i初始化为-1,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习资料
链接地址:https://www.31ppt.com/p-3155211.html