《C语言程序设计复习大纲20081225》由会员分享,可在线阅读,更多相关《C语言程序设计复习大纲20081225(49页珍藏版)》请在金锄头文库上搜索。
1、各位同学各位同学圣诞节快乐!圣诞节快乐!期末取得好成绩!期末取得好成绩!2021/6/1611. 基本要求u熟练掌握C 语言的基本知识u具备基本的C程序设计能力,能熟练地阅读、理解和编制简短的C程序。C语言程序设计总复习语言程序设计总复习2021/6/1622. 基本内容u2.1 数据的定义u2.2 运算及流程控制u2.3 程序结构和函数u2.4 常用算法2021/6/1632.1 数据的定义数据的定义包括数据类型和存储类别1、基本类型基本类型指整型、实型和字符型(主要是int, float, double, char;还包括long, unsigned, short)2021/6/164(1
2、) 常量熟练掌握各种表示形式的整数、实数、和字符(串)常量,符号常量的定义和使用。包括整数的十进制、八进制和十六进制的表示形式、长整型常量的表示形式,实数的浮点表示法和科学记数法,字符的转义序列(2) 变量熟练掌握变量的定义和初始化2021/6/1652、构造类型构造类型包括数组和结构(1) 数组熟练掌握一维和二维数组的定义和初始化,数组元素的引用。包括一维字符数组和字符串,二维字符数组和字符串数组2021/6/166数组定义为 int a32=1, 2, 3, 4, 5, 6,数组元素 的值为6。不正确的赋值或赋初值的方式是_。A、char str=string; B、char str7=s
3、, t, r, i, n, g;C、char str10;str=string;D、char str7=s, t, r, i, n, g, 0;表达式strcmp(“box”, “boss”) 的值是一个_.A、正数 B、负数 C、0 D、不确定的数a212021/6/167#include int a34=1,2,3,4,5,6,7,8,9,10,11,12; void main() int s,k; for(s=0,k=0; k3; k+) s+=akk; printf(%d-,s); for(s=0,k=0; k3; k+) s+=ak3-k; printf(%d-,s); 18-21-
4、2021/6/1683、指针(1) 熟练掌握指针和地址的概念(2) 熟练掌握指针变量的定义和初始化(3) 熟练掌握通过指针引用指向实体9aint *pa, a;pa=&a;printf(%d,%d, *pa, a);printf(%x,%x, pa, &a);pa20002021/6/169若变量已正确定义并且指针p已经指向某个变量x,则(*p)+相当于_。A、p+ B、x+ C、*(p+) D、&x+若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, _是正确的。A、p2=p1; B、p2=*p1; C、p2=&p1; D、p2=*p1;2021/6/1610下列语句定义pf为
5、指向float类型变量f的指针,_是正确的。A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f;对于如下说明,语法和语义都正确的赋值是_。int c, *s, a =1, 3, 5;A、c=*s; B、 s0=a0; C、s=&a1; D、 c=a;2021/6/16114、构造类型和指针类型的混合定义及应用(1) 熟练掌握指针、数组和地址间的关系int c =1, 3, 5;int *k=c+1;printf(%d, *+k);char str =hellotworldn;printf
6、(%cn, *(str+10);5d2021/6/1612(2) 熟练掌握指针数组写出下列程序段的输出结果。char *st =one,two,three,four;printf(%sn,*(st+3)+1);our2021/6/16135、变量的存储类别、作用域和生存期(1) 掌握变量的存储类别auto 自动型、static 静态型、extern 外部参照型(2) 掌握全局变量和局部变量注意区分:自动局部变量和静态局部变量、全局变量和静态全局变量、外部变量2021/6/1614C语言中,形参的缺省的存储类说明是_。A、auto B、static C、register D、extern 202
7、1/6/1615对于以下函数f,计算f(f(2)的值。 int f(int x) static int k=0; x+=k+; return x; 32021/6/16162.2 运算及流程控制1、基本运算熟练掌握运算符的功能熟练掌握运算符的优先级、结合性和目数熟练掌握隐式类型转换和强制类型转换2、表达式熟练掌握各类表达式的组成规则和计算过程2021/6/1617若变量已正确定义且 k 的值是 4,计算表达式 ( j = k-) 后,j和k的值分别是_。已知字符 a 的ASCII码为 97 ,执行下列语句的输出是_。printf (%d, %c, b, b-1 ) ; 4和398,a2021/
8、6/1618判断i和j至少有一个值为非0的表达式是_。A、 i!=0 & j!=0 B、i | j C、!(i=0 | j=0) D、i&j2021/6/1619若x是单精度实型变量,表达式 (x = 10/4) 的值是_ 。A、2.5 B、 2.0 C、 3 D、 2写出下列程序段的输出结果。float x1, x2;x1=3/2;x2=x1/2;printf(%d, %.1f, (int)x1, x2) ;1, 0.52021/6/1620下列运算符中,优先级最低的是_。A、* B、!= C、+ D、=算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_。A、算术运算、赋
9、值运算、关系运算 B、关系运算、赋值运算、算术运算C、算术运算、关系运算、赋值运算D、关系运算、算术运算、赋值运算2021/6/16213、语句(1) 熟练掌握表达式语句、空语句、复合语句;(2) 熟练掌握简单控制语句 break、continue、return(3) 熟练掌握选择控制语句 if、switch(4) 熟练掌握重复控制语句 for、while、dowhile2021/6/1622C 语言程序的三种基本结构是顺序结构、选择结构和_结构。A、循环 B、递归 C、转移 D、嵌套2021/6/1623写出下列程序段的输出结果。 char c,k; c=b; k=4; switch(c)
10、case a: k=1; case b: k=2; case c: k=3; printf(%dn,k);32021/6/1624写出下列程序段的输出结果。int k, x;for (k=0, x=0; k=9&x!=10; k+) x+=2;printf (%d, %d, k, x) ;5,102021/6/1625输入12345#后,写出下列程序的输出结果。void main() char c; for(c=getchar(); getchar()!=#; c=getchar() putchar(c); int k ; char *s = “ABC”;for( k=10; k != 0;
11、k- ) ;printf ( %d, k );while( *s+ ) putchar( *s );1,30 B C2021/6/16262.3 程序结构和函数1、程序结构熟练掌握main函数与其他函数之间的关系包括标准库函数和自定义函数2021/6/16272、函数的定义(1) 熟练掌握函数的定义格式(2) 熟练掌握函数的参数(形式参数和实在参数)及参数传递,包括指针作为函数的参数(3) 熟练掌握函数的返回值2021/6/1628要调用数学函数时,在#include命令行中应包含_。A、 ”stdio.h” B、 ”string.h” C、 ”math.h” D、 ”ctype.h”在C语言
12、程序中,若对函数类型未加显式说明,则函数的隐含类型是 .int2021/6/1629int z;void p(int *x, int y) +*x; y-; z=*x+y+z; printf(%d, %d, %d#, *x, y, z);void main() int x=1, y=5, z=9; p(&x, y); printf(%d, %d, %d#, x, y, z); 2,4,6# 2,5,9#2021/6/16303、函数的调用(1) 函数调用的一般格式(2) 掌握函数的嵌套调用和递归调用2021/6/1631 int f(int k) return (k0)?1:f(k-2)+2)
13、; 52021/6/1632输入m和n(mn0)后,计算下列表达式的值并输出。 m! n!(m-n)!要求将计算阶乘的运算写成函数fact(n),函数返回值的类型为float。2021/6/1633#include float fact(int k);void main() int m,n; scanf(%d%d,&m,&n); printf(%fn,fact(m)/fact(n)/fact(m-n); 2021/6/1634float fact(int k) float y=1; int i; for(i=2;i0); D) if(b=0) m=1;n=2;2021/6/1640运行结果:6
14、,11输入: 6 ,11swap(int *p1, int *p2) int *p; p=p1; p1=p2; p2=p;main() int a,b; int *pointer_1,*pointer_2; scanf(%d,%d,&a,&b); pointer_1=&a; pointer_2=&b; if(amax) max=if(arrijmax) max= ; ; return max; return max; in j=A&*s=Z s+ z=strnum(ch) main()char ch=“2aCH45G”;int z; ;printf(“z=%d”,z);2021/6/16462
15、.4 常用算法 1、书上例题弄清楚 (选择,循环结构,数组,函数,指针等章节) 2、累加求和、求积 3、选择排序(选择排序、冒泡排序) 4、求最小值、最大值,包括用函数编写 5、字符串数据的处理,包括统计字母,数字和其他字符的个数等2021/6/1647课堂练习题1. 对10个数进行排序 程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,以次类推,即用第二个元素与后8个进行比较,并进行交换。2. 将一个数组逆序输出。 程序分析:用第一个与最后一个交换。 3.求100之内的素数4.求1+2!+3!+.+20!的和 程序分析:此程序只是把累加变成了累乘。5.一维数组内放10个学生成绩,求平均成绩(编写average函数),并在主函数中返回平均成绩。2021/6/1648 结束语结束语若有不当之处,请指正,谢谢!若有不当之处,请指正,谢谢!