c语言 复习大纲.docx
《c语言 复习大纲.docx》由会员分享,可在线阅读,更多相关《c语言 复习大纲.docx(9页珍藏版)》请在冰豆网上搜索。

c语言复习大纲
☐第1章C语言概述
1.了解C语言的特点、C程序的构成、开发过程
2.熟悉常用的关键字,掌握标识符的命名规则;
☐第2章数据类型、运算符与表达式
数据的描述规则与操作规则
1.掌握基本的数据类型的存储方式及特点;
2.掌握变量及常量的特点和区别,熟悉不同类型的常量;
3.掌握常用运算符的用法及其优先级和结合性;
✧算术运算符及其表达式运算;
✧赋值运算符及复合赋值运算符;
✧自增和自减运算符;
✧其他运算符:
逗号;
✧数据类型的转换和混合运算规则
☐第3章 顺序结构
4.输入输出函数及格式控制
5.顺序结构程序设计举例
☐第4章 选择结构
6.关系运算符、逻辑运算符和条件运算符及其表达式;
理解构成逻辑条件的判断表达式和条件语句的应用;
7.用if语句实现选择结构
掌握if语句的形式和执行流程,if-else嵌套的表示与执行;
8.利用switch语句实现多分支选择结构
☐第5章 循环结构
9.理解两种循环结构,循环结构两要素:
循环体和循环条件;
10.掌握三种循环语句的语句形式及流程,循环控制的方法;
11.掌握多重循环,即循环嵌套的应用;
12.掌握break和continue转向语句跳出循环的方法;
13.结构化程序的特点
14.控制结构的综合应用
✧判断闰年,求方程根,数据排序,
✧累乘累加,级数逼近,求公约数,
✧判断素数,百鸡问题,字符图形
☐第6章 数组
1.理解数组存储特点,掌握一维数组和二维数组的定义、初始化和元素访问的方法;
2.理解数值数组和字符数组的区别
3.掌握向函数传递数组的方法,理解其实质;
4.掌握数组的基本应用,如排序与查找算法。
☐第7章 函数
1.理解函数的概念,掌握各种类型函数的定义方法;
2.理解函数原型的作用,掌握函数的声明方法;
3.掌握函数的调用方法:
嵌套调用和递归调用;
4.掌握传递数据的不同方式:
按值传递和按地址传递
5.理解各种变量的作用域与生命期的区别与特点:
自动和静态变量,全局变量和局部变量;
☐第8章指针
1.理解地址和指针的概念,学会指针变量的定义和初始化方法;
2.掌握指针运算符,学会用指针间接引用数据对象的方法;
3.理解指针与数组的联系,熟悉用其操作数组及其元素的方法;
4.掌握处理字符串的方法,使用并定义各种字符串函数
理解字符数组和字符指针存储字符串的区别
5.理解指针数组的意义,掌握其应用方法;
6.理解二级指针和用指针处理二维数组的方法;
7.掌握动态申请内存的函数用法。
☐第9章结构
1.理解结构体的特点,掌握结构体类型的定义方法;
2.掌握结构体类型变量的定义、初始化和使用方法;
3.掌握结构体类型数组的定义、初始化和使用方法;
4.理解结构体指针,向函数传递结构体对象的方法;
5.掌握单向链表的定义和基本操作方法。
☐考试时间100分钟,共100分
☐考试题型
一、选择题(20分,10题)基本概念,运行结果
二、填空题(20分,4小题)阅读程序,将其补充完整
三、问答题(15分,3小题)写出程序执行结果
四、改错题(15分,3小题)改正程序中的语法错误和逻辑错误
五、编程题(30分,3小题)程序设计
一、选择题(2分)
A.for
B.8f
C.h_1
D.a.cpp
1判断正确的c关键字与c标识符;
A.case
B.sizeOf
C.Do
D.swicth
2数组与指针的定义与赋值,以下正确的语句是。
A.chara[5]=“hello”,p=“world”;
B.chara[10]=”hello”,*p=“world!
”;
C.chara[10],*p;a=”hello”;p=a;
D.intn=10;chara[n]=”hello”,*p=a;
A.chara[2][]={“hello”,”world”},*p=a;
B.chara[][5]={”hello”,”world”},*p[5]=a;
C.chara[][]={”hello”,”world”},**p=a;
D.chara[2][5]={”hello”,”world”},*p=a[0];
3表达式与运算符
下列程序的输出结果是:
intfunc(inta,intb)
{intc=a+b;
returnc;
}
voidmain()
{intx=6,y=7,z=8,r;
r=func((x--,y--,x+y),z++);
printf(“%d\n”,r);
}
A.21
B.20
C.19
D.14
执行下列语句后,x的值为()。
Charx=’x’,y=‘y’;
x-=(‘y’!
=’Y’)+(5>3)+(y–x==1);
A.1B.3C.’t’D.以上答案均不是
判断char型变量是否为小写字母的正确表达式为()。
A.’a’<=c<=‘z’
B.(c>=a)&&(c<=z)
C.(‘a’>=c)||(‘z’<=c)
D.(c>=’a’)&&(c<=’z’)
5字符串库函数,以下程序输出的结果为()
voidmain()
{chara[20]=”country”;
charb[10]=”my”;
strcpy(a,b);
printf(“%d%s”,strlen(a));
}
A.20my
B.7myuntry
C.2my
D.无法执行
5。
下面程序输出的结果为()
#include
intsum(intap[])
{intm=0,i;
for(i=0;im+=*ap++;
returnm;
}
voidmain()
{inta[10]={1,2,3,4,5,6,7,8,9,10};
printf("sum=%d",sum(a));
}
A.55B.65C.10D.以上答案均不对
8.下面不正确的描述为。
A.调用函数时,实参可以是表达式
B.调用函数时,实参与形参可以共用内存单元
C.调用函数时,将为形参分配内存单元
D.调用函数时,实参与形参的类型必须一致
二、程序填空(20分)
1.
#include
intmax_grade(inta[],intsize);//求数组最大值
intmain()
{intgrade[10]={90,89,56,78,76,87,65,67,92,88};//数组初始化
intindex;//最大元素下标
①
printf("max=%d\n",grade[index]);
return0;
}
intmax_grade(inta[],intsize)
{
intmax=a[0],index=0,i;
for(i=1;i{
if(a[i]>max)
{②
③
}
}
④
}
①index=max_grade(grade,10);
②max=a[i];
③index=i;
④returnindex;
3.下面程序的功能是:
将无符号八进制数字字符串转换为十进制数,例如,输入的字符串是556,则输出的十进制整数为366。
请填空。
(每空2分,2个共4分)
#include
intmain()
{
char*p,s[6];
intn;
p=s;
gets(p);
n=*p-'0';
while(*(++p)!
='\0')
{
n=n*8+*p-'0';
}
printf("%d\n",n);
return0;
}
三、程序改错(15分)
//去除数组中重复元素,并按从小到大顺序输出
voidsort(int*a,intn)
{inti,j,*p;
for(i=0;i{for(j=i+1;jif(a[i]==a[j])
while(a[i]==a[n-1])n--;
swap(a[j],a[n-1]);//n--;
}
bublesort(a,n);
for(p=a;a
printf("%d",*a);
}
//将数组中最大值与最小值分别置于第一个和最后元素位置
voidfind(inta[],intn)
{intmax=100,min=0;
intn,m,i,j;
for(i=0;iif(*(a+i)>max)
max=*(a+i);
n=i;
if(*(a+i){
min=*(a+i);
m=i;
}
}
swap((a+n),(a+n));
swap(*(a+m),*a);
}
四.写出运行结果(15分)
五、程序设计题(30分)
1.编写函数,实现两个字符串的字符串比较
2.试编程序,找出1至99之间的全部同构数。
同构数是这样一组数:
它出现在平方数的右边。
例如:
5是25右边的数,25是625右边的数,5和25都是同构数。
(10分)