福建专升本C语言复习考试_第1页
福建专升本C语言复习考试_第2页
福建专升本C语言复习考试_第3页
福建专升本C语言复习考试_第4页
福建专升本C语言复习考试_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上第一章 C语言概述(1)C程序是由函数构成的。 这使得程序容易实现模块化。 (2) C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。(3)C语言不能嵌套定义函数,但可以嵌套调用函数,也可以递归调用。第二章 算法算法特点: 有穷性:包含有限的操作步骤。 确定性:算法中的每一个步骤都应当是确定的。 有零个或多个输入:输入是指在执行算法时需要从外界取得必要的信息。 有一个或多个输出:算法的目的是为了求解,“解” 就是输出。 有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果 。程序设计结构: 顺序结构、选择结构、循环

2、结构程序结构表示N-S图 2010年7,30. 2011.4第三章1 C的数据类型基本类型整型 int字符型 char数据类型构造类型枚举类型 enum数组类型结构类型 struct联合类型 union单精度实型 双精度实型 double指针类型实型(浮点型)2010年292变量命名的规定:语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。 52+10+1=6309年选1考题,2011.1不能用关键字作为标识符关键字归纳(32个)考题07年1常量类型:const (1个)数据类型名:int ,float,double,char,void (5个)数据类型的修饰

3、符:unsigned,signed,short,long (4个)用户定义的数据类型:struct,union,enum,typedef (4个)变量的存储类型名:auto,static,register,extern (4个)控制结构语句标识:if-else,switch-case-default-break,while-do-for-continue,goto,retrun(12个)求类型大小运算符:sizeof (1个)其余:volatile (1个) 3运算符、优先级、结合性1)最高级别(1)小括号()(2)下标运算符()(3)分量运算符(->)2)单目(1)!,+,-,-,注意

4、+,-的位置,2011.3(2)强制类型转换运算符( (类型) ):转化后变量本身类型没有变化,如08选2,2011.7 (3)指针运算符 (*和),注意:符号(4)求字节数运算符()struct ,union的大小3)双目(1)算术运算符 (+ - * / %),/为求商运算,若两个数都为整型,则值取整型,否则取浮点型,%运算数只能为整形。考题07年11,09年5,2011.2,36(2)关系运算符 (!) 例a<0<b值为?(3)逻辑运算符 (! |) 顺序问题。(4)条件运算符 (?:)(三目)结合性(5)赋值运算符 (及其扩展赋值运算符)a+=a*=a-3; 从右往左(6)

5、逗号运算符 (,) 从左往右2010年4,2011.8优先级中的例外:逻辑运算符中的短路问题,以及条件运算符的结合方向问题:1)int a,b,c;a=b=c=1;+b&&+c|+a; a=1,b=c=2;2) int a,b,c;a=b=c=1; +b|+c|+a; 考题07年3,06年5,06年93) int a,b,c;a=b=c=1; c=(+a>0) ?5(+b>0)?6:7; c=5,a=2,b=1;2010年54)i=*p+; 赋值语句注意点:1) 左操作数必须是变量,不能是常量或表达式。i=i-j=8;,在变量定义中不能赋值:int a=b=c=2;

6、考题:08年选4,07年10,07年20,06年12) 变量的初始化与赋值语句的区别。 int a,b,c;a=b=c=1;是正确的 int a=b=c=1;是错误的 2010年33) 逗号运算特点,从左往右,表达式的值为最后一项得到的值,如考题08选6,07年13,06年10int a,b,c;a=b=c=0;c=+a,b+; a=1,b=1,c=05)复合赋值语句,运算从右往左,如a+=a-=a*a,考题08选8,07年2,06年4,06年116)条件表达式执行顺序:先判断条件表达式1,如果成立,则执行表达式2,否则执行表达式3:(1)条件运算符优先级高于赋值运算符 ,低于关系运算符和算术

7、运算符。 (2)条件运算符的结合方向为“自右至左”。 int a=1,b=2,c=3 例d=-a?b+:+c; a=0,b=2,c=4,d=4 06年8,17,09年47)常量识别:判断是整型或长整型,还是浮点型数据等,考题08年选1,长整形一般情况下要加L.8)数制的识别转化,(08进制,0x-16进制),考题08年选3如果是转义字符:276,x7f,如果是输出语句printf(“%d,%o,%x”);注意int变量如果没有赋初值,则为不确定值。2011.15第四章4.1 赋值表达式,赋值语句4.2 数据输入输出4.3 字符数据的输入输出4.4 格式输入与输出注意点:1、 赋值语句是由赋值表

8、达式加上一个分号构成。有些场合:i+;也算赋值语句。2、 字符数据的输入输出 :putchar(c),getchar()注意接收换行符。例:输入a<回车> 程序: C1=getchar();c2=getchar();则c1接收字符a,c2接收换行符。考题08年30。3、 字符串输入输出:printf(“%s”,str); scanf(“%s”,str);gets(str);puts(str);gets(str),puts(str)参数只能为一个变量。06年64、 printf(格式控制,输出表列)%d:以带符号的十进制形式输出整数%u:以无符号十进制形式输出整数%s:输出字符串,可

9、以指定从数组的某个位置开始输出字符,如: char a=a,b,c,d,e,f,printf(“%s”,a+2); 但a+;是错误的, char *p=a;p+呢?考题08年22,09年27,30,2010年9#include<stdio.h>void main()unsigned int a=65535;int b=-2;printf(“a=%d,%o,%x,%un”,a,a,a,a);printf(“b=%d,%o,%x,%un”,b,b,b,b);运行结果:a=-1,ffff,65535 (注意8或16进制前面无须补0)b=-2,fffe,65534如int a=32800,

10、printf(“%d,%u”,a,a); 32768: 00000B 考题08年20,06年296、scanf函数时应注意的问题 :(1) scanf函数中的“格式控制”后面应当是变量地址或指针,而不应是变量名。 char a,b;scanf(“%c”,&a); scanf(“%s,b);考题08年13(2) 如果在“格式控制”字符串中除了格式说明以外还有其他字符, 则在输入数据时在对应位置应输入与这些字符相同的字符。 int a,b; scanf(“%d,%d”,&a,&b) 考题07年21,2010年9(3) 在用“”格式输入字符时,空格字符和“转义字符”都作为 有

11、效字符输入 。 scanf(“%c%c”,&a,&b); 若输入为ab;则a接收字符a,b接收空格符。(4) 在输入数据时,遇以下情况认为该数据结束。 遇空格,或按“回车”或“跳格”(Tab)键; 按指定的宽度结束,如“”,只取列; 遇非法输入。考题06年6,2011.9第五章5.1 关系运算符和关系表达式5.2 逻辑运算符和逻辑表达式5.3 if语句5.4 switch语句 C语言中真用1表示,假用0表示。int a=3,b=2; a<b<=0? if 语句说明:(1) if语句中在if后面都有表达式,不能为语句。(2) if语句中,在每个else前面有一个分号,

12、整个语句结束处有一个分号。else总是与它上面的,最近的,统一复合语句中的,未配对的if语句配对.考题08年选10,07年17.2010年8switch 语句:1) break:只退出当前层的switch循环for()switch() case : break;。考题08年选122) default位置问题 不管在哪里,只要未找到匹配项,则就从default处开始往下执行,直到遇到break。 Switch( n ) case 1: case 2:defaut: case 3:09年6,2011.193)switch( )括号内是变量,case 后面跟的是常量表达式,但不可以是带小数点的常量。

13、第6章6.1 用while语句实现循环6.2 用do-while语句实现循环6.3 用for 语句实现循环 6.4 循环的嵌套6.5 break语句和continue语句区别 09年12,2010年14注意点:1)while(!0) 条件为真?假int b =0; while(b-<0); 退出时b的值?2010年112)do-while循环后面不要忘记分号;3) for语句执行顺序先执行第一个语句,然后判断第二个语句,如果成立则执行循环体语句,然后执行第三个语句。int i; for(i=0;i+<3;i+);退出时i的值?注意:第二个语句要执行完。4)break与continu

14、e区别,break在外层为for循环,内层为switch语句中的应用。经常出现在大题,考题08年32。5) 循环结束条件,结束时,变量的值。6)循环中变量的步长。考题08年25,07年4第七章7.1 一维数组的定义和引用7.2 二维数组的定义和引用7.3 字符数组注意点:数组定义中其他常见的错误:float a0;/* 数组大小为0没有意义 */ int k, ak; /* 不能用变量说明数组大小*/ 09年9 数组引用:数组名下标下标可以是整型常量或整型表达式,变量。2010年12二维数组定义和初始化注意:09年13,2010年131) 不能省却第二维2) 第一维大小可通过第二维推算int

15、a3=1,2,3,4,5,6,7,8考题08年163) 可只对部分元素赋值int a3=0; 考题08年18,07年14设数组a的首地址为2000。表 示 形 式含义地 址a 二维数组名,指向一维数组a0,即0行首地址2000a0,*(a+0),*a0行0列元素地址2000a+1,&a11行首地址2008a1,*(a+1)1行0列元素a10的地址2008a1+2,*(a+1)+2,&a121行2列元素a12 的地址2012*(a1+2),*(*(a+1)+2),a121行2列元素a12的值元素值为131)字符数组和字符串的区别 定义方面、长度区别,还有strlen()函数求值。

16、2)定义和赋值错误例子:char b10;b=”hello!”;考题07年8,2010年153)字符数组的输入输出可以有两种方法: char a;a.逐个字符输入输出。用格式符“%c”输入或输出一个字符。scanf(“%c”,&ai);b.将整个字符串一次性输入或输出。用“%s”格式符,意思是对字符串的输入输出。 scanf(“%s”,a);字符串处理函数 1) scanf(%s,str);2) printf(%s,str);3) puts (str):4) gets(str);注意:用puts和gets函数只能输入或输出一个字符串,不能写成puts(str1,str2)或 gets(

17、str1,str2) 09年10其他字符串操作函数:strcat(字符数组1,字符数组2)2010年16strcpy(字符数组1,字符串2) 复制时连同字符串后面的0一起复制到字符数组1中strlen函数 strlen是测试字符串长度的函数。函数的值为字符串中的实际长度(不包括0在内)。strcmp(str1,str2)考题08年172011.6,2011.10,2011.13,2011.14第8章 8.1函数参数和函数的值 8.2 函数的调用 8.3函数的递归调用 8.4数组作为函数参数 8.5 局部变量和全局变量 8.6变量的存储类别 注意点:1) 对子函数的调用在什么情况下会改变主函数中

18、变量的值?(传值还是传址) a.一般变量作为实参和形参,或为数组元素,传数值,形参值的改变不会影响到实参。b.实参和形参为数组名,若为二维数组,则要注意形参写法。传地址,理解为实参与形参共用一个内存段,所以改变形参的值就会改变实参值。c.实参和形参,其中一个为数组名,另一个为指向数组元素的指针。指针就指向了该数组。通过对指针指向的内存空间值的修改就直接改变了数组的相应元素值。d.实参和形参都是指针考题08年21,09年15,18,2010年17,19,21,、22,2011.18,31,32,342)变量存储类型:auto,register,static,extern作用域和变量存在时间。 函

19、数内部变量 复合语句内部变量 static申明的函数内部变量 extern申明的函数外部变量 共用的全局变量指该变量在内存中只开辟唯一的空间,所以任何能访问到该变量的函数对该变量值的修改都将影响到其它函数。例:1、#include <stdio.h>void num()extern int x,y;int a=15,b=10;x=a-b;y=a+b;int x,y;main()int a=7,b=5;x=a+b;y=a-b;num();printf(“%d,%dn”,x,y);2、main() int a=2,i;for(i=0;i<3;i+) printf(“%4d”,f(

20、a);f(int a) int b=0;static int c=3;b+; c+;return(a+b+c);3、main()int i=2,x=5,j=7;fun(j,6);printf(“i=%d;j=%d;x=%dn”,i,j,x);fun(int i,int j)int x=7;printf(“i=%d;j=%d;x=%dn”,i,j,x);4、main()int a=1,b=2,c=3;+a;c+=+b;int b=4,c;c=b*3;a+=c;printf(“first:%d,%d,%dn”,a,b,c);a+=c;printf(“second:%d,%d,%dn”,a,b,c)

21、;printf(“third:%d,%d,%dn”,a,b,c);变量有优先取近原则。见书P197,考题08年24,09年16,2011.33变量归纳P197典型算法:基本上出现在大题中。1)排序:冒泡和选择排序,或只对部分元素排序,考题07年27 一定要熟悉,采用的都是二重for循环。2)查找关键元素:二分查找法 注意查找范围的确定。3)求两数的最大公约数,或求最小公倍数 考题06年37 两数乘积=两数的最大公约数*两数的最小公倍数4)求数组中下标为奇数或偶数的元素之和或之积,最大值,平均值等,考题06年36,09年35,335)求自然数的阶乘,考题07年18,07年35(递归算法),201

22、1.21 注意出口点6)求素数,考题06年32,09年367)求数列(Fibonacci):第三个数开始,依次为前两个数之和。采用递归法。8)将字符串大小写转化 考题08年37 记住大小写ASCAL码9)字符串的比较或逆转。考题08年35,09年3110)统计数组中各字符的个数,考题07年37,06年35,09年3411)将字符数组中某个或某些指定的元素删除。09年32第9章主要考核点:#define 标示符 字符串define 宏名(参数表) 字符串 (1)ifdef 标识符 程序段else 程序段endif(2)ifndef 标识符 程序段else 程序段endif(3) if 表达式 程

23、序段else 程序段endif考题08年27,07年24,07年32,06年18,2010年26,2011.16第10章1、 指针含义2、 指针赋值,类型一致3、 &与*运算,运算符4、 指向数组元素的指针定义,访问,可以通过下标法,或者指针的取值运算*。5、 用数组名和指针作函数参数6、 指向字符串的指针,对元素访问,特别是指针的偏移操作。注意数组名是常量,不能做相加操作。7、 指向一维数组元素的指针和指向二维数组一行元素的指针定义和访问int amn ;定义int *p 和 int (*p)n区别,如何访问,如果作为函数参数,如何?定义含义 ;定义整型变量*;为指向整型数据的指针变

24、量int an;定义整型数组,它有个元素 *;定义指针数组,它由个指向整型数据的指针元素组成 (*);为指向含个元素的一维数组的指针变量 ();为带回整型函数值的函数 *();为带回一个指针的函数,该指针指向整型数据 (*)();为指向函数的指针,该函数返回一个整型值 *;是一个指针变量,它指向一个指向整型数据的指针变量注意点:1)*p+ 与*+p区别:例:int a5=1,2,3,4,5,*p=a; 求*p+ *+p和(*p)+*+p 3,2考题07年19,06年14,07年33,06年31,33,06年14,06年15,24,26,27 09年29,31,32,34,2010年11,21,

25、22,2011.24,25,26,282)指针本身值改变不影响原指向单元内容。如:int a,b,*p,*q;p=&a;q=&b;区别:*p=*q 和p=q;第11章结构体的定义,对结构体元素的访问,或通过指针访问。一、结构体变量如何定义?1、struct结构体名 成员表列 ; struct结构体名 变量名表列;2、struct结构体名 成员表列 变量名表列; 3、struct 成员表列 变量名表列;4、typedef struct成员表列结构体名;例:typedef struct stu double a; char b10; stu; stu student1,studen

26、t2; stu相当于stuct stu类型 struct stu double a; char b10; ; stuct stu student1,student2; typedef struct double a; char b10; stu; stu student1,student2; typedef struct stu double a; char b10; ; stu student1,student2; 二、结构体数组定义、赋值struct studentint num;char name20;char sex;int age; float score;char addr30; ;struct student stu210101,LiLin,M,18,87.5,103 BeijingRoad,10102,Zhang Fun,M,19,99,130 Shanghai Road;三、对结构体数组元素访问1)通过变量名+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论