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语...