C语言考试要点.docx
《C语言考试要点.docx》由会员分享,可在线阅读,更多相关《C语言考试要点.docx(14页珍藏版)》请在冰点文库上搜索。
C语言考试要点
C语言考试要点
颜色说明:
红色为我认为的重点;图片和红色黄底色的为老师PPT中的重点(也就是重重点);黑色字为定义
考试题型(大致如下):
选择题20道每题1分
填空题10道20空每空1分
判断题20道每题1分
程序分析题6道每题4分
简答题8道每题2分
第1章C语言概述
1.3C语言程序特点
C语言是一种简洁明了,功能强大,移植性好的结构化程序设计语言。
理解C语言程序是函数串
一个程序可以由一个或多个文件组成,文件由函数组成,一个文件可以由一个或多个函数组成。
1.4标准设备的I/O
键盘输入函数:
getchar()、gets()、scanf()
获取一个字符的读写getchar()
获取一个字符串的读写gets()
标准格式输入函数scanf()
屏幕输出函数:
putchar()、puts()、printf()
输出一个字符的写函数putchar()
输出一个字符串的写函数puts()
标准格式输出函数printf()
特别是scanf()函数和printf()函数的功能和用法
scanf()功能:
从键盘上按所指定的格式读取数据,并用数据给指定的变量赋值。
格式:
intscanf(“<控制串>”,<参数表>)
例如:
scanf(“%d%d”,&a,&b);
printf()功能:
将该函数参数表中的若干个表达式的值,按其指定的格式和顺序逐一显示在屏幕上。
格式:
intprintf(“<控制串>”,<参数表>)
第2章常量和变量
2.2类型(数据类型和存储类)变量和函数具有存储类
数据类型的种类:
基本数据类型和构造数据类型
存储类的种类、不同存储类变量的特点(P34表2.3)
2.3常量(简单理解为程序运行过程中,不能被改变的量,也就是说常量的值不变)
2.4变量(简单来说就是值可以改变的量,也就是说变量的值可被改变)
变量三要素:
名字、类型和值的具体规则
变量的定义格式和作用域
1.变量的定义格式:
在C语言中,要求对所有用到的变量,必须先定义、后使用;
且称在定义变量的同时进行赋初值的操作为变量初始化。
(1)变量定义的一般格式
[存储类型]数据类型变量名[,变量名2……];
例如,floatradius,length,area;
(2)变量初始化的一般格式
[存储类型]数据类型变量名[=初值][,变量名2[=初值2]……];
例如,floatradius=2.5,length,area;
2.作用域:
标识符的作用域规则:
(1)对大多数标识符来讲,定义和说明是一回事,而对于外部类变量和函数来讲,定义和说明是两回事
(2)不同的标识符具有不同的围:
整个程序:
外部类变量和外部函数
一个文件:
外部静态类变量和宏名
函数体:
自动类变量和部静态类变量及语句标号
程序段:
自动类变量和部静态类变量
(3)作用域是标示符可见的围,可见指可以访问,可以进行存取操作;不可见指不可以访问,不能进行任何操作
变量的值有两种:
变量值,变量的地址值
第3章运算符和表达式
3.1运算符功能:
算术、关系、逻辑、三目、赋值以及单目运算符++、--、*、&等
++(--)增(减)1运算符,优先级别为2
*取容运算符,优先级别为2
&&逻辑与运算符,优先级别为11
3.2运算符的优先级和结合性
++--只能作用在变量上,例如:
++(a+b)是错的
3.3表达式的值和类型
逻辑表达式求值、赋值表达式求值、条件表达式求值
第4章预处理功能
简单宏定义命令定义符号常量
文件包含命令的应用,在程序分析题目中
第5章语句
复合语句是由两条或两条以上的语句用花括号({})括起来的语句序列
分程序是指含有说明语句的复合语句
5.2分支语句if、switch(跳出switch语句时使用break)
5.3循环语句while、do-while、for
5.4转向语句break(break不能用于循环语句和switch语句之外的任何其它语句之中。
)continue(continue只能用在循环体中)
掌握上述语句的功能、格式及用法,用于程序分析题目
总结:
掌握3种循环语句和2种开关语句的特点和用法。
第6章数组
定义数组时必须指定数组名,数组类型
6.1一、二维数组的定义格式及数组元素的下标表示方法
数组属于构造类型。
数组:
是具有一定顺序关系的若干数目固定、类型相同变量构成的有序集合
元素:
组成数组的变量,用数组名和下标确定,每个数组元素都具有该数组的类型
6.2数组的初始化和赋值
数组初始化使用初始值表
数组赋值是对数组的各个元素赋值
数组的运算是指数组各个元素的运算
6.3字符数组和字符串
字符数组可以存放字符,也可以存放字符串。
可以直接用字符串常量给字符数组初始化
第7章指针
*p=a等价于*p=&a[0]
7.1、7.2指针的概念
指针的定义格式、初始化和运算
给指针赋值要求类型相同和级别一致的地址值
掌握指针的值和类型
指针仅有4种运算
一个指针可以加或减去一个整型数的运算
在一定条件下,两个指针可以进行相减运算
在一定条件下,两个指针可以进行比较运算
7.3一、二维数组元素的指针表示
一维数组指针表示:
已知inta[5];数组a的各个元素地址值和元素值的指针表示为
a+i和*(a+i)
二维数组指针表示:
已知intb[5][3];数组b的各个元素的地址值和元素值的指针表示为
*(b+i)+j和*(*(b+i)+j)
例题:
8_000.c
7.4指向一维数组的指针和指针数组
掌握它们在定义上和应用上的区别
指向数组元素的指针和指向数组的指针的区别
7.5字符指针的特点
第8章函数
8.1、
函数定义格式分为函数头和函数体
函数说明两种:
简单说明法、原型说明法
8.2函数的概念
函数的定义格式
函数的说明方法
函数的形参和实参
函数的返回值
8.3函数的调用
传值、传址调用的方法及特点
8.4一级指针作函数参数实现传址调用
第9章结构
9.1、9.2结构变量的概念
结构是一种构造数据类型,具有结构类型的变量叫结构变量
结构类型和结构变量的定义格式、结构变量的初始化和赋值及运算
结构变量的成员表示方法
9.3结构数组的应用
第10章文件操作ppt上面红色标识的部分为重点
10.1文件概念
文件指针、标准文件和一般文件
10.2标准文件的读/写函数
对一个字符的、对一个字符串的和格式的
10.3一般文件的操作
打开/关闭函数
读/写函数(对一个字符的、对一个字符串的、对一个数据块的和格式的)、
文本文件及二进制文件的操作
一个文件指针指向某个文件就意味着该指针指向该文件的存缓冲区的首地址
一个文件指针指向某个文件就意味着该指针指向该文件的存缓冲区的首地址
输出一个字符的写函数putchar()
gets,一个参数用来存放读取字符串的字符数组,键盘读取时以换行符作为结束符
fopen函数
fgetc()读函数
C语言程序分析举例:
1
#include
voidmain()
{intx,y,z;
x=y=z=1;
++x&&--y&&++z;
printf("%d,%d,%d\n",x,y,z);
--x||++y||++z;
printf("%d,%d,%d\n",x,y,z);
x=y=z=1;
--x&&++y||++z;
printf("%d,%d,%d\n",x,y,z);
++x||--y&&--z;
printf("%d,%d,%d\n",x,y,z);
}
2
voidmain()
{inti=-1,j=2,k;
do{
k=++i&&--j;
i++;
}while(k);
printf("%d,%d\n",i,j);
}
3
voidmain(){
intm=1,n=0,i,j;
i=j=2;
switch(m){
case1:
switch(n){
case0:
++i;break;
case1:
j++;break;
}
case2:
i++,j++;break;
}
printf("%d,%d\n",i,j);
}
4
voidmain(){
charstr[]="ABCDEFG";
char*p=&str[6];
for(;p>=str;p--)
printf("%c",*p+1);
printf("\n");
}
5
voidf1(int*a){
intb=3;
b*=*a;
printf("%d,%d\n",++*a,b);
}
intf2(){
intx=5;
f1(&x);
returnx++;
}
voidmain(){
intm=5;
m+=f2();
printf("%d\n",--m);
}
6
#include
#include
structmonth
{
intnumber_of_day;
charname[10];
};
voidmain()
{
inti;
charm[10];
structmonthmonths[12]={{31,"jan"},{28,"feb"},{31,"mar"},
{30,"apr"},{31,"may"},{30,"jue"},
{31,"jul"},{31,"aug"},{30,"sep"},
{31,"oct"},{30,"nov"},{31,"dec"}};
printf("Entermonth'sname(3characters):
");
scanf("%s",m);
for(i=0;i<12;i++)
{
if(strcmp(m,months[i].name)==0)
{
printf("%s:
%d\n",m,months[i].number_of_day);
break;
}
}
}
#include
#include
chars[][10]={"if","else","while","break","continue"};
inta[]={3,5,6,6,9};
voidmain()
{
inti;
chars1[5][10];
FILE*fp;
fp=fopen("file1.txt","w");
if(fp==NULL)
{
printf("filecannotbeopen!
\n");
exit
(1);
}
for(i=0;i<5;i++)
{
fputs(s[i],fp);
}
fclose(fp);
fp=fopen("file1.txt","r");
if(fp==NULL)
{
printf("filecannotbeopen!
\n");
exit
(2);
}
for(i=0;i<5;i++)
fgets(s1[i],a[i],fp);
for(i=0;i<5;i++)
printf("%s\n",s1[i]);
fclose(fp);
}