C语言复习大纲

发布 2021-05-13 06:13:28 阅读 4501

2008c语言复习大纲。

类型:1.简答题(24)

2.阅读程序(22), 比较简单,得分题,注意变量、指针的每次变化;

3.改错(16)(包括书写错误,和逻辑错误)

4.程序设计(22)

5.程序填空(16)

1.表达式计算:

常用函数:log (x),log 10(x ) pow(x,y) ,sqrt(x),abs(x),fabs(x) 串的函数:strcpy(串1,串2) ,strcmp( 串1,串2) ,strlen(串)

运算符级别和次序,注意++,

2.if语句嵌套和非嵌套,条件运算符 , 表达式1?表达式2:表达式3

例1:if (a>=b) if (c!=d) x++;else x+=3; (03年考题)

看成if(a>=b)

if(c!=d)

x++;逻辑是?)

else x+=3;(逻辑是?)

写成 if(a>=b&&c!=d) x++

if(a>=b&&c==d)x+=3;

例2:if (a>b) else x=3;(04年考题)

看成:if(a>b)

x=1 ; 逻辑?)

if (c>d)

x=2 ;(逻辑?)

else x=3 ;(逻辑?)

改成。if(a>b) x=1;

else x=3;

if(a>b&&c>d) x=2;

3.循环语句的三种格式(先当while() 后当do…..while(),for; 循环嵌套等;(*号图形例题)

结合switch (表达式)

case 常量:break ;

default :

4.数组的定义和赋值(一维,二维)

5.函数。函数格式:类型函数名(参数)

。。函数体 ;

return 表达式 ;}

数的拆分问题:

num1 , num2

main()

int num1=369,num2=98;

int x1,x2,x3,y1,y2;

x1=num1%10;

x2=(num1)/10%10;

x3=(num1)/100%10;

printf(" %d %d %d",x1,x2,x3);

y1=num2%10;

y2=num2/10%10;

printf(" %d %d",y1,y2);

6.指针的定义和引用;

int x,*p, a[10] ,q ; 指针与变量,指针与指针,指针与数组,指针与字符串,指针作参数等关系)

7.改错问题,一般注意,指数表示,scanf ( 变量) ,数据类型问题,整型向实型1.0/3,参数传递保持类型(4个问题),变量的初始问题,sum=0,1(累加,连乘),数组{} 判定等于用(= 逻辑错误(缺少关键语句,缺少条件判定)

例2判断m是否素数。绝对素数?(37)

我们采用的算法是这样的:让m被2到m 除,如果m能被2~m 之中任何一个整数整除,则提前结束循环,此时i必然小于或等于k(即m);如果m不能被2~k(即m)之间的任一整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,然后才终止循环。在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2~k之间任一整数整除过,因此输出“是素数”。

程序如下:#include <>

main()

例3求100~200间的全部素数。

include <>

main()

if(n%10==0) printf("");

printf ("n");

例输入50个同学,5门课程考试成绩,1) 计算每个学生的平均分;

2) 计算每门课程的平均分;

3) 按每个学生平均分数,排序成绩;(二种方式);

4) 找出所有分数中最高分数对应的学生号和课程号;

分析步骤:分段设计各个功能:

输入模块;各统计模块;

void input(int a[m][n]) 输入二维数组的数据。

void **er_student(int a[m][n],float v1[m]);计算每个学生的平均分数;

void **er_course(int a[m][n],float v2[n]);计算每门课程的平均分;

int max_course(int a[m][n], int *i ,int *j) 参数对应的学生号和课程号,函数返回成绩;

void sort_course( float a[m] ,float b[m][2 ]

#include “

#define m 50

#define n 5

void input(int a[m][n])

int i,j ;

for ( i=0;ifor(j=0;j scanf ( d “ a[i][j])

void **er_student ( int a[m][n], float v1[m] )

void **er_course ( int a[m][n] ,float v2[n])

int i , j ;

for (j =0; j

int max_course ( int a[m][n], int *p, int *q )

int i , j ;

int max= -1 ;

for ( i=0; ifor( j=0 ; jif ( a[i][j]>max)

return max ;

void sort_course( float a[m] ,float b[m][ 2 ]

先理解题意:排序好以后,能否记住原先学号?假如只重新整理一下数据,产生由高到低,就是排序算法,前面介绍了很多,冒泡,选择法,插入法等(第一种,自己去想想很简单);假如排序好,还能记住原先的学号,则要用二维数组了(第二种);

int i , j , t ;

for ( i =0 ; i

可以在这里直接打印,也可以拉出去,再编一个打印函数 ;

for ( i=0 ; i printf ( f % d” b[i][0] ,b[i][1] )

谈谈主函数以及调用问题:

main (

int a[m] [n] ,b [m][n] ,c[m] [n]; 思考假如a放期中成绩,b 放期末成绩,c放总评成绩。

float vv1[m] ;存放每个学生平均成绩。

float vv2[n] ;存放每门课程平均成绩。

float px[m][2] ;存放排序好的成绩和学号;

int max_course , r , s ; 对应最高分数 ,学号,课程号。

input(a) ;通过调用,可以获得一个数组的数据 ;

如何打印a的数据 ?

**er_student ( a , vv1 ) 通过调用,获得什么?

如何打印 vv1的数据 ?

**er_course (a , vv2) ;通过调用,获得什么?

如何打印 vv2的数据 ?

mcourse= max_course (a , r, &s ) 返回后,a , mcourse , r ,s 是什么?

如何打印 a , mcourse , r ,s 的数据 ?

sort_course( vv1 , px )

复习大纲c语言

一 基本概念。1.标识符的合法定义 能够判别定义的变量名 函数名是否合法。2.书写规则,语句的写法,注释语句的写法 3.逗号运算符的使用方法,注意与赋值运算的优先级 4.数学表达式的c语言书写 5.掌握四则混合运算。1 的运动优先级。2 整数除法与实数除法的区别 3 运算对操作数的要求 4 运算中隐...

C语言复习大纲

c语言考试说明 c语言复习范围包括课本知识和实验。考试题型包括选择 填空 程序填空和编程题。选择 填空涉及以下所列的所有知识点以及课后习题。程序填空主要涉及到分支结构编程 多分支switch结构 循环结构编程 自定义函数编程 有关一维数组的简单编程 有关指针的简单应用等等。编程题范围主要包括 1 选...

C语言复习大纲

第一部分基础知识。1.二进制与十进制之间的相互转换。第二部分算法。2.流程图的符号及流程图画法。第三部分数据类型 运算符与表达式。1.标识符定义。2.常量与变量。3.字符常量 字符串常量 字符串结束符。4.运算符与表达式,5.printf函数和scanf函数,格式字符 d,f,s,c,第四部分 c语...