当前位置:首页 >> 院校资料 >>

福建专升本C语言复习指导


第一章 模块化。

C 语言概述

(1)C 程序是由函数构成的。 这使得程序容易实现 (2) C 语言本身没有输入输出语句。 输入和输出的操作 是由库函数 scanf 和 printf 等函数来完成的。 (3) 语言不能嵌套定义函数, C 但可以嵌套调用函数, 也可以递归调用。 第三章 1. C 的数据类型
整型 基本类型 字符型 int

char

单精度实型

实型(浮点型) 枚举类型 数组类型 数据类型 构造类型 结构类型

enum

双精度实型

struct union

联合类型 指针类型

2.变量命名的规定:C语言规定标识符只能由字母、 .变量命名的规定: 数字和下划线三种字符组成,且第一个字符必须为字 母或下划线。 52+10+1=63
1

09 年选 1 考题 不能用关键字作为标识符 关键字归纳(32 个)考题 07 年 1 常量类型:const (1 个) (4 (4 数据类型名:int ,float,double,char,void (5 个) 数据类型的修饰符:unsigned,signed,short,long 个) 用户定义的数据类型:struct,union,enum,typedef 个) 变量的存储类型名: auto,static,register,extern 控制结构语句标识: if-else,switch-case-default-break,while-do-for-continue,g oto,retrun(12 个) 求类型大小运算符:sizeof (1 个) 其余:volatile (1 个) (4 个)

3.运算符、优先级、结合性 .运算符、优先级、 1)最高级别 (1)小括号() (2)下标运算符( [ ] )

(3)分量运算符(.->) 2)单目
2

(1),++,--,-,注意++,--的位置 ! (2)强制类型转换运算符( (类型) ):转化后变量本 身类型没有变化,如 08 选 2 (3)指针运算符 (*和&) ,注意:[]符号 (4)求字节数运算符(sizeof)struct ,union 的 大小

3)双目 (1)算术运算符 (+ - * / %) ,/为求商运算,若两个数 都为整型,则值取整型,否则取浮点型,%运算数只 能为整形。考题 07 年 11,09 年 5 (2)关系运算符 (><==>=<=!=) 例 a<0<b 值为? (3)逻辑运算符 (!&& ||) 顺序问题。 (4)条件运算符 (?:(三目)结合性 ) (5)赋值运算符 (=及其扩展赋值运算符)a+=a*=a-3; 从右往左 (6)逗号运算符 (, ) 从左往右

优先级中的例外:逻辑运算符中的短路问题,以及条 件运算符的结合方向问题: 1)int a,b,c;a=b=c=1;++b&&++c||++a;
3

a=1,b=c=2;

2) int a,b,c;a=b=c=1; ++b||++c||++a; 年 5,06 年 9 3) int a,b,c;a=b=c=1; c=(++a>0)

考题 07 年 3,06

?5(++b>0)?6:7;

c=5,a=2,b=1; 4)i=*p++; 赋值语句注意点: 赋值语句注意点: 1) 左操作数必须是变量,不能是常量或表达式。 i=i-j=8;,在变量定义中不能赋值:int a=b=c=2; 考题:08 年选 4,07 年 10,07 年 20,06 年 1 2) 变量的初始化与赋值语句的区别。 int a,b,c;a=b=c=1;是正确的 int a=b=c=1;是错误的 3) 逗号运算特点,从左往右,表达式的值为最后一 项得到的值,如考题 08 选 6,07 年 13,06 年 10 int a,b,c;a=b=c=0; c=++a,b++; a=1,b=1,c=0

5)复合赋值语句,运算从右往左,如 a+=a-=a*a,考题 08 选 8,07 年 2,06 年 4,06 年 11 6)条件表达式执行顺序:先判断条件表达式 1,如果 成立,则执行表达式 2,否则执行表达式 3: (1)条件运算符优先级高于赋值运算符 ,低于关系运
4

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

注意点: 注意点: 1、 赋值语句是由赋值表达式加上一个分号构成。 有些场合:i++;也算赋值语句。 2、 字符数据的输入输出 :putchar(c) ,getchar()
5

注意接收换行符。 例:输入 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 年 6 4、 printf(格式控制,输出表列) %d:以带符号的十进制形式输出整数 %u:以无符号十进制形式输出整数 %s:输出字符串, 可以指定从数组的某个位置开始输出 字符,如: char a[]={‘a’,’b’,’c’,’d’,’e’,’f’},printf(“%s”,a+2); 但 a++;是错误的, char *p=a;p++呢? 考题 08 年 22,09 年 27,30 #include<stdio.h> void main() { unsigned int a=65535;int b=-2; printf(“a=%d,%o,%x,%u\n”,a,a,a,a);
6

printf(“b=%d,%o,%x,%u\n”,b,b,b,b); } 运行结果: a=-1,177777,ffff,65535 无须补 0) b=-2,177776,fffe,65534 如 int a=32800,printf(“%d,%u”,a,a); 32768: 1000000000000000B 考题 08 年 20,06 年 29 6、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 (3) 在用“%c”格式输入字符时,空格字符和“转义字 符”都作为
7

(注意 8 或 16 进制前面

有效字符输入 。 scanf(“%c%c”,&a,&b); a,b 接收空格符。 (4) 在输入数据时,遇以下情况认为该数据结束。 ① 遇空格,或按“回车”或“跳格”(Tab)键; ② 按指定的宽度结束,如“%3d”,只取3列; ③ 遇非法输入。 考题 06 年 6。 第五章 5.1 关系运算符和关系表达式 5.2 逻辑运算符和逻辑表达式 5.3 5.4 if 语句 switch 语句 若输入为 ab;则 a 接收字符

C 语言中真用 1 表示,假用 0 表示。int a=3,b=2; a<b<=0? if 语句 说明: (1) if 语句中在 if 后面都有表达式,不能为语句。 (2) if 语句中,在每个 else 前面有一个分号,整个语句 结束处有一个分号。 else 总是与它上面的,最近的,统一复合语句中的, 未配对的 if 语句配对.考题 08 年选 10,07 年 17.
8

switch 语句: 语句: 1) break:只退出当前层的 switch 循环 for() {switch() {case : break;} }。考题 08 年选 12 2) default 位置问题 不管在哪里,只要未找到匹配项,则就从 default 处开始往下执行,直到遇到 break。 Switch( n ) {case 1: case 2: defaut: case 3: } 09 年 6 3)switch( )括号内是变量,case 后面跟的是常量 表达式,但不可以是带小数点的常量。 第6章 6.1 用 while 语句实现循环 6.2 用 do-while 语句实现循环 6.3 用 for 语句实现循环
9

6.4 循环的嵌套 6.5 break 语句和 continue 语句区别 09 年 12 注意点: 1)while(!0) 条件为真?假 int b =0; while(b--<0); 退出时 b 的值? 2)do-while 循环后面不要忘记分号‘; ’ 3) for 语句执行顺序 先执行第一个语句,然后判断第二个语句,如果成立 则执行循环体语句,然后执行第三个语句。 int i; for(i=0;i++<3;i++);退出时 i 的值? 注意:第二个语句要执行完。 4)break 与 continue 区别,break 在外层为 for 循环, 内层为 switch 语句中的应用。经常出现在大题,考题 08 年 32。 5) 循环结束条件,结束时,变量的值。 6)循环中变量的步长。 考题 08 年 25,07 年 4 第七章 7.1 一维数组的定义和引用 7.2 二维数组的定义和引用 7.3 字符数组 注意点:
10

数组定义中其他常见的错误: 数组定义中其他常见的错误: float a[0]; /* 数组大小为 0 没有意义 */ int k, a[k]; /* 不能用变量说明数组大小 不能用变量说明数组大小*/ 09 年 9 数组引用:数组名[下标] 下标可以是整型常量或整型表达式,变量。 二维数组定义和初始化注意:09 年 13 1) 不能省却第二维 2) 第一维大小可通过第二维推算 int a[][3]={1,2,3,4,5,6,7,8}考题 08 年 16 3) 可只对部分元素赋值 int a[][3]={0}; 考题 08 年 18,07 年 14 设数组 a 的首地址为 2000。
表 示 形 式 a 含义 地 址

二维数组名, 指向一维数组 a[0] 2000 , 即 0 行首地址

a[0], *(a+0), *a

0 行 0 列元素地址

2000

a+1,&a[1] 1 行首地址 a[1],*(a+1) a[1]+2, *(a+1)+2,
11

2008 2008 2012

1 行 0 列元素 a[1][0]的地址 1 行 2 列元素 a[1][2] 的地址

&a[1][2]

*(a[1]+2), *(*(a+1)+2), a[1][2]

1 行 2 列元素 a[1] [2]的值

元素值为 13

1)字符数组和字符串的区别 定义方面、长度区别,还有 strlen()函数求值。 2)定义和赋值错误例子: char b[10];b=”hello!”; 考题 07 年 8 3)字符数组的输入输出可以有两种方法: ) char a[]; a.逐个字符输入输出。用格式符“%c”输入或输出 一个字符。 scanf(“%c”,&a[i]); b.将整个字符串一次性输入或输出。用“%s”格式 符,意思是对字符串的输入输出。 scanf(“%s”,a); 字符串处理函数 1) scanf(″%s″,str); 2) printf(″%s″,str); 3) puts (str):
12

4) gets(str); 注意: puts 和 gets 函数只能输入或输出一个字符串, 用 不能写成 puts(str1,str2) 或 gets(str1,str2) 09 年 10 其他字符串操作函数: strcat(字符数组 1,字符数组 2) strcpy(字符数组 1,字符串 2) 复制时连同字符串后面的′\0′一起复制到字符数 组1中 strlen 函数 strlen 是测试字符串长度的函数。 函数的值为字符串中 的实际长度(不包括′\0′在内)。 strcmp(str1,str2)考题 08 年 17

第8章 8.1 函数参数和函数的值 8.2 函数的调用 8.3 函数的递归调用
13

8.4 数组作为函数参数 8.5 局部变量和全局变量 8.6 变量的存储类别 注意点: 注意点: 1) 对子函数的调用在什么情况下会改变主函数中变 量的值?(传值还是传址) a.一般变量作为实参和形参,或为数组元素,传数值, 形参值的改变不会影响到实参。 b.实参和形参为数组名,若为二维数组,则要注意形 参写法。 传地址, 理解为实参与形参共用一个内存段, 所以改变形参的值就会改变实参值。 c.实参和形参,其中一个为数组名,另一个为指向数 组元素的指针。指针就指向了该数组。通过对指针指 向的内存空间值的修改就直接改变了数组的相应元素 值。 d.实参和形参都是指针 考题 08 年 21,09 年 15,18 2)变量存储类型:auto,register,static,extern 作用域和 变量存在时间。 函数内部变量 复合语句内部变量 static 申明的函数内部变量
14

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,%d\n”,x,y); }
15

2、main() { int a=2,i; for(i=0;i<3;i++) printf(“%4d”,f(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=%d\n”,i,j,x); } fun(int i,int j) {int x=7; printf(“i=%d;j=%d;x=%d\n”,i,j,x); } 4、main() { int a=1,b=2,c=3;
16

++a; c+=++b; { int b=4,c; c=b*3; a+=c; printf(“first:%d,%d,%d\n”,a,b,c); a+=c; printf(“second:%d,%d,%d\n”,a,b,c); } printf(“third:%d,%d,%d\n”,a,b,c); } 变量有优先取近原则。 见书 P197,考题 08 年 24,09 年 16 变量归纳 P197 典型算法:基本上出现在大题中。 典型算法:基本上出现在大题中。 算法 1)排序:冒泡和选择排序,或只对部分元素排序,考 题 07 年 27 一定要熟悉,采用的都是二重 for 循环。 2)查找关键元素:二分查找法 注意查找范围的确定。 3)求两数的最大公约数,或求最小公倍数
17

考题 06

年 37 两数乘积=两数的最大公约数*两数的最小公倍数 4) 求数组中下标为奇数或偶数的元素之和或之积, 最 大值,平均值等,考题 06 年 36,09 年 35,33 5)求自然数的阶乘,考题 07 年 18,07 年 35(递归 算法) 注意出口点 6)求素数,考题 06 年 32,09 年 36 7)求数列(Fibonacci) :第三个数开始,依次为前两 个数之和。采用递归法。 8)将字符串大小写转化 考题 08 年 37 记住大小写 ASCAL 码 9)字符串的比较或逆转。考题 08 年 35,09 年 31 10)统计数组中各字符的个数,考题 07 年 37,06 年 35,09 年 34 11)将字符数组中某个或某些指定的元素删除。09 年 32 第9章 主要考核点: #define 标示符 字符串 字符串 #define 宏名(参数表) (1)#ifdef 标识符
18

程序段1 #else 程序段2 #endif (2)#ifndef 标识符 程序段1 #else 程序段2 #endif (3) #if 表达式 程序段1 #else 程序段2 #endif 考题 08 年 27,07 年 24,07 年 32,06 年 18 第 10 章 1、 指针含义 2、 指针赋值,类型一致 3、 &与*运算,[]运算符 4、 指向数组元素的指针 定义,访问,可以通过下标法,或者指针的取值
19

运算*。 5、 用数组名和指针作函数参数 6、 指向字符串的指针,对元素访问,特别是指针的偏 移操作。 注意数组名是常量,不能做相加操作。 7、 指向一维数组元素的指针和指向二维数组一行元 素的指针定义和访问 int a[m][n] ;定义 int *p 和 int (*p)[n]区 别,如何访问,如果作为函数参数,如何?

定义 int i; int p; int*p; int a[n]; [ ] int *p[n] p[n] ;

含义 定义整型变量i 定义整型变量i p为指向整型数据的指针变量 定义整型数组a,它有n 定义整型数组a,它有n个元素 a,它有 定义指针数组p, 它由n 定义指针数组p,它由n个指向整型数据的 p, 它由 指针元素组成

为指向含n int (*p) p) [n] p 为指向含 n 个元素的一维数组的指针变 ; 量 int f() ; int *p() p() ; f为带回整型函数值的函数 该指针指向整型 p为带回一个指针的函数, 为带回一个指针的函数, 数据

20

int (*p) ; p) ()

该函数返回一个整型 p为指向函数的指针, 为指向函数的指针, 值

int **p; p;

p是一个指针变量, 是一个指针变量,它指向一个指向整型数 据的指针变量

注意点: 1)*p++ 与*++p 区别: 例:int a[5]={1,2,3,4,5},*p=a; 求*p++ **++p 和(*p)++**++p 年 14,06 年 15,24,26,27 3,2 考题 07 年 19,06 年 14,07 年 33,06 年 31,33,06 09 年 29,31,32,34

2)指针本身值改变不影响原指向单元内容。如:int a,b,*p,*q; p=&a;q=&b;区别:*p=*q 和 p=q;

第 11 章 结构体的定义,对结构体元素的访问,或通过指针访 问。 一、结构体变量如何定义? 1、struct 、 { 成员表列
21

结构体名

} ; struct 结构体名 { 成员表列 }变量名表列; 3、struct 、 { 成员表列 }变量名表列; 4、typedef struct { 成员表列 }结构体名; 例:typedef { double char }stu; stu student1,student2; stu 相当于 stuct stu 类型 a; struct stu 变量名表列; 2、struct 、 结构体名

b[10];

struct {

stu a;
22

double

char }; stuct

b[10];

stu

student1,student2;

typedef {

struct a;

double char }stu; stu

b[10];

student1,student2;

typedef {

struct a;

stu

double char }; stu

b[10];

student1,student2;

二、结构体数组定义、赋值 struct student {int num;char name[20];char sex;int age; float score;char addr[30]; }; struct student stu 2] [ ] ={{10101, LiLin″, M′, = , ″ ″ ′ ′
23

18,87.5,″103 BeijingRoad″}{ , {10102,″Zhang , ″ , , Fun″,′M′,19,99,″130 Shanghai Road″}}; ″ ′ , , ″ ; 三、对结构体数组元素访问 1)通过变量名+.+成员名 2)通过指向结构体数组的指针+-----〉+成员名 struct student { int ID; char name[]; }; struct student st1[]={{1,”chen”},{2,”guo”}},*p=st1; 对 元 素 的 访 问 :

st1[0].ID,st1[0].name,p->ID,p->name,(*p).ID,(*p).name 用指针访问时要注意运算符的优先级: ++p->ID,p->ID++,(++p)->ID,(p++)->ID *p->ID 什么意思? 共用体:考核占用的空间大小 枚举类型变量不能把数字直接赋值给它。 考题 08 年 28,07 年 26,07 年 34,06 年 19,28,30, 09 年 21 第 13 章 考核点:
24

1)文本文件和二进制文件占用空间大小 2)文件的使用方式: b------二进制文件 +-------读写 w------新建一个文件 d-------追加,即把指针移到文件末尾 考题 08 年 29,06 年 7 3)几个重要的文件操作函数 了解功能,参数,返回值。
分类 函数名 功能 打开文件 关闭文件 改变文件位置指针的位置 使文件位置指针重新至于文件开头 返回文件位置指针的当前值 若到文件末尾,函数值为真 若对文件操作出错,函数值为真 使 ferror 和 feof()函数值置零 功能

打开文件 fopen() 关闭文件 fclose() 文件定位 fseek() rewind() ftell() 文件状态 feof() ferror() clearerr() 分类 函数名

文件读写

fgetc(),getc()从指定文件取得一个字符 fputc(),putc()把字符输出到指定文件 fgets()从指定文件读取字符串
25

fputs()把字符串输出到指定文件 getw()从指定文件读取一个字(int 型) putw()把一个字输出到指定文件 fread()从指定文件中读取数据项 fwrite()把数据项写到指定文件中 fscanf()从指定文件按格式输入数据 fprintf()按指定格式将数据写到指定文件中

26


相关文章:
2012年福建专升本C语言考试大纲
2012年福建专升本数据库考... 2页 5财富值 福建专升本C语言复习指导 26页 5...掌握 C 程序的基本结构; 3. 掌握 TURBO C 环境下 C 程序的上机步骤。 第...
专升本c语言上机笔记
专升本c语言上机笔记_其它考试_资格考试/认证_教育专区。第一部分:能够熟练使用一种 c 程序集成环境对 c 程序集成环境对 c 程序进行编辑、编译、 连接和运行。 ...
专升本C语言复习题
专转本 C 语言复习题 一、专转本 C 语言复习题 2 数学表达式 1、编写程序,其功能是:计算并输出下列多项式的值: S ? 1 ? 2 ? 3 ? ? n , 将结 果...
2009福建专升本C语言试题
福建专升本C语言复习指导 26页 5财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 2009福建专升本C语言试题 隐藏>> ...
2017年福建专升本大学语文超强复习资料
2017年福建专升本大学语文超强复习资料_其它考试_资格考试/认证_教育专区。作者...“雄浑豪放,语言通畅自然” 辛弃疾《水龙吟.登建康赏心亭》创作风格多样,以“...
2007福建专升本真题C语言含答案
〈= 若变量已正确定义并赋值,下面符合 语言语法的表达式是___ ___。 10. ...07~11年福建专升本计科类... 72页 4下载券 福建专升本C语言复习指导... 26...
2010福建专升本真题C语言含答案
2010福建专升本真题C语言含答案_理学_高等教育_教育专区。福建专升本历年真题及答案...2014小学教师资格考试《... 2014年幼儿园教师资格考... 2014教师资格中学教育知...
2006福建专升本真题C语言含答案
福建专升本C语言复习指导 26页 5财富值喜欢此文档的还喜欢 2008福建专升本真题C...福建专升本历年真题及答案C语言 计算机科学类 第一部分福建专升本历年真题及答案C...
2016年福建专升本试题答案
2016 年福建专升本考试试题答案+920085687=真品阅读...C.仓廪在古代是指储藏谷物的仓库,它是专为灾荒之...(8 分) 第Ⅱ卷 表达题 五、语言文字运用(20 分...
山东专升本C语言典型案例100题
山东专升本C语言典型案例100题_计算机软件及应用_IT/计算机_专业资料。2013 年高职...011 B. le1 C. 8.0E0.5 D. 2 2013 年高职升本计算机基础复习材料—C...
更多相关标签: