当前位置:首页 >> 其它考试 >>

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


第一章

C 语言概述

(1)C 程序是由函数构成的。 这使得程序容易实现模块化。 (2) C 语言本身没有输入输出语句。输入和输出的操作是由库函数 scanf 和 printf 等函数来完成 的。 (3)C 语言不能嵌套定义函数,但可以嵌套调用函数,也可以递归调用。

第三章 1. C 的数据类型
整型 int 单精度实型 基本类型 字符型

char

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

enum

struct union

联合类型 指针类型

2.变量命名的规定:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个 .变量命名的规定: 字符必须为字母或下划线。 52+10+1=63 09 年选 1 考题 不能用关键字作为标识符 关键字归纳(32 个)考题 07 年 1 常量类型:const (1 个) 数据类型名:int ,float,double,char,void (5 个) 数据类型的修饰符:unsigned,signed,short,long (4 个)

用户定义的数据类型:struct,union,enum,typedef (4 个) 变量的存储类型名:auto,static,register,extern 控制结构语句标识: if-else,switch-case-default-break,while-do-for-continue,goto,retrun(12 个) 求类型大小运算符:sizeof (1 个) 其余:volatile (1 个) (4 个)

1

3.运算符、优先级、结合性 .运算符、优先级、 1)最高级别 (1)小括号() (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)逗号运算符 (, ) 从左往右 ] ) (3)分量运算符(.->)

优先级中的例外:逻辑运算符中的短路问题,以及条件运算符的结合方向问题: 1)int a,b,c;a=b=c=1;++b&&++c||++a; 2) int a,b,c;a=b=c=1; ++b||++c||++a; 4)i=*p++; a=1,b=c=2; 考题 07 年 3,06 年 5,06 年 9

3) int a,b,c;a=b=c=1; c=(++a>0) ?5(++b>0)?6:7; c=5,a=2,b=1;

赋值语句注意点: 赋值语句注意点: 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;
2

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)条件运算符优先级高于赋值运算符 ,低于关系运算符和算术运算符。 (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()注意接收换行符。 例:输入 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);
3

但 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); printf(“b=%d,%o,%x,%u\n”,b,b,b,b); } 运行结果: a=-1,177777,ffff,65535 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”格式输入字符时,空格字符和“转义字符”都作为 有效字符输入 。 scanf(“%c%c”,&a,&b); 若输入为 a︼b;则 a 接收字符 a,b 接收空格符。 (4) 在输入数据时,遇以下情况认为该数据结束。 ① 遇空格,或按“回车”或“跳格”(Tab)键; ② 按指定的宽度结束,如“%3d”,只取3列; ③ 遇非法输入。 考题 06 年 6。 第五章 5.1 关系运算符和关系表达式 5.2 逻辑运算符和逻辑表达式 5.3 5.4 if 语句 switch 语句 (注意 8 或 16 进制前面无须补 0)

C 语言中真用 1 表示,假用 0 表示。int a=3,b=2; a<b<=0?
4

if

语句

说明: (1) if 语句中在 if 后面都有表达式,不能为语句。 (2) if 语句中,在每个 else 前面有一个分号,整个语句结束处有一个分号。 else 总是与它上面的,最近的,统一复合语句中的,未配对的 if 语句配对.考题 08 年选 10,07 年 17. 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 语句实现循环 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 语句中的应用。经常出现
5

在大题,考题 08 年 32。 5) 循环结束条件,结束时,变量的值。 6)循环中变量的步长。 考题 08 年 25,07 年 4 第七章 7.1 一维数组的定义和引用 7.2 二维数组的定义和引用 7.3 字符数组

注意点: 数组定义中其他常见的错误: 数组定义中其他常见的错误: 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], *(a+0), *a a+1,&a[1] a[1],*(a+1) a[1]+2, *(a+1)+2, &a[1][2] *(a[1]+2), *(*(a+1)+2), a[1][2]
6

含义

地 址

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

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

2008 2008 2012

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): 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 函数的递归调用 8.4 数组作为函数参数 8.5 局部变量和全局变量
7

8.6 变量的存储类别 注意点: 注意点: 1) 对子函数的调用在什么情况下会改变主函数中变量的值?(传值还是传址) a.一般变量作为实参和形参,或为数组元素,传数值,形参值的改变不会影响到实参。 b.实参和形参为数组名,若为二维数组,则要注意形参写法。传地址,理解为实参与形参共 用一个内存段,所以改变形参的值就会改变实参值。 c.实参和形参,其中一个为数组名,另一个为指向数组元素的指针。指针就指向了该数组。 通过对指针指向的内存空间值的修改就直接改变了数组的相应元素值。 d.实参和形参都是指针 考题 08 年 21,09 年 15,18 2)变量存储类型:auto,register,static,extern 作用域和变量存在时间。 函数内部变量 复合语句内部变量 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,%d\n”,x,y); } 2、main() { int a=2,i;
8

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; ++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
9

一定要熟悉,采用的都是二重 for 循环。 2)查找关键元素:二分查找法 注意查找范围的确定。 3)求两数的最大公约数,或求最小公倍数 考题 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 标识符 程序段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

第 10 章 1、 2、 3、 4、 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] ; int (*p) p) [n] ; int f() ; int ?*p() p() ; int (*p) ; p) () int **p; p;

含义 定义整型变量i 定义整型变量i p为指向整型数据的指针变量 定义整型数组a,它有n 定义整型数组a,它有n个元素 a,它有 定义指针数组p,它由n 定义指针数组p,它由n个指向整型数据的指针元 p,它由 素组成 p为指向含n个元素的一维数组的指针变量 为指向含n f为带回整型函数值的函数 p为带回一个指针的函数,该指针指向整型数据 为带回一个指针的函数,

p为指向函数的指针,该函数返回一个整型值 为指向函数的指针, p是一个指针变量,它指向一个指向整型数据的指 是一个指针变量, 针变量

注意点: 1)*p++ 与*++p 区别: 例:int a[5]={1,2,3,4,5},*p=a; 求*p++ **++p 和(*p)++**++p 31,32,34 2)指针本身值改变不影响原指向单元内容。如:int a,b,*p,*q; p=&a;q=&b;区别:*p=*q 和 p=q; 3,2 09 年 29, 考题 07 年 19,06 年 14,07 年 33,06 年 31,33,06 年 14,06 年 15,24,26,27

第 11 章
11

结构体的定义,对结构体元素的访问,或通过指针访问。 一、结构体变量如何定义? 1、struct 结构体名 、 { 成员表列 } ; struct 结构体名 变量名表列; 2、struct 结构体名 、 { 成员表列 }变量名表列; 3、struct 、 { 成员表列 }变量名表列; 4、typedef struct { 成员表列 }结构体名; 例:typedef struct { double a; char b[10]; }stu; stu struct { }; stuct stu student1,student2; student1,student2; stu 相当于 stuct stu stu 类型 stu

double a; char b[10];

typedef struct { double a; char b[10]; }stu; stu student1,student2;

12

typedef struct { }; stu double a; char b[10];

stu

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′,18,87.5,″103 BeijingRoad″} , ″ ′ , , ″ , , ″ ′ , , ″ ; {10102,″Zhang Fun″,′M′,19,99,″130 Shanghai Road″}}; 三、对结构体数组元素访问 1)通过变量名+.+成员名 2)通过指向结构体数组的指针+-----〉+成员名 struct student { }; 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 章 考核点: 1)文本文件和二进制文件占用空间大小 2)文件的使用方式: b------二进制文件 +-------读写 w------新建一个文件 d-------追加,即把指针移到文件末尾
13

int ID; char name[];

考题 08 年 29,06 年 7 3)几个重要的文件操作函数 了解功能,参数,返回值。 分类 打开文件 关闭文件 文件定位 函数名 fopen() fclose() fseek() rewind() ftell() 文件状态 feof() ferror() clearerr() 分类 文件读写 函数名 功能 打开文件 关闭文件 改变文件位置指针的位置 使文件位置指针重新至于文件开头 返回文件位置指针的当前值 若到文件末尾,函数值为真 若对文件操作出错,函数值为真 使 ferror 和 feof()函数值置零 功能

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

14


相关文章:
2017年福建专升本大学语文超强复习资料
2017年福建专升本大学语文超强复习资料_其它考试_资格考试/认证_教育专区。作者...“雄浑豪放,语言通畅自然” 辛弃疾《水龙吟.登建康赏心亭》创作风格多样,以“...
2012年福建专升本C语言考试大纲
2012年福建专升本数据库考... 2页 5财富值 福建专升本C语言复习指导 26页 5...掌握 C 程序的基本结构; 3. 掌握 TURBO C 环境下 C 程序的上机步骤。 第...
2016年福建专升本试题答案
2016 年福建专升本考试试题答案+920085687=真品阅读...(8 分) 第Ⅱ卷 表达题 五、语言文字运用(20 分...“由是观之”则是对前文的总结,这样可以排除 C ...
专升本c语言上机笔记
专升本c语言上机笔记_其它考试_资格考试/认证_教育专区。第一部分:能够熟练使用一种 c 程序集成环境对 c 程序集成环境对 c 程序进行编辑、编译、 连接和运行。 ...
2009福建专升本C语言试题
福建专升本C语言复习指导 26页 5财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 2009福建专升本C语言试题 隐藏>> ...
专升本C语言历年考试题及答案8[1]
专升本 C 语言历年考试题及答案 江西财经大学 2005 年 专升本选拔考试《C 语言程序设计》试卷 (考试时间 120 分钟,总分 100 分) 一、用C语言描述下列命题(共 ...
福建专升本语文课后习题答案归纳
福建专升本语文课后习题答案归纳_文学_高等教育_教育专区。语文课后习题答案归纳 ...4、简析本篇运用白描手法,通过对人物肖像、语言、动作的传神描写来刻画人物的...
2007福建专升本真题C语言含答案
〈= 若变量已正确定义并赋值,下面符合 语言语法的表达式是___ ___。 10. ...07~11年福建专升本计科类... 72页 4下载券 福建专升本C语言复习指导... 26...
2008福建专升本真题C语言含答案
2008福建专升本真题C语言含答案_理学_高等教育_教育专区。福建专升本历年真题及答案...福建专升本C语言复习指导... 26页 2下载券喜欢此文档的还喜欢 ...
2014《C语言程序设计》专升本练习题
2014《C语言程序设计》专升本练习题_研究生入学考试_高等教育_教育专区。《C ...在 C 语言程序中,在函数内部定义的变量称为__D___。 A.全局变量 B.全程变量...
更多相关标签: