C语言程序设计复习提纲
题型与分数分布
单项选择题(每小题1分,共10分)
例:0618是( D )
A、字符型常量 B、整型常量 C、浮点型常量 D、非法常量
多项选择题(每小题2分,共10分)
例:设有说明:int a=1,b=3,c=0;下面表达式的值为1(对于逻辑表达式代表非0)的有
( B、C、D )。
A、++a+c B、(b>a)&&(a>c) C、(a=0)||(b=10) D、!a&&b||a
填空题(每空1分,共10分)
例:设有说明:
unsigned x=0;
int i=017;
( 7 )1、i>>=1
判断改错题 (每小题2分,共10分)
判断下面各题是否正确,如果有错,请改正。
例:int *p=&x,x;
解:错误。正确形式为:int x,*p=&x;
简答题(每小题4分,共20分)
例:请写一个C表达式,用短整型变量u的高字节为结果的高字节,用短整型变量v的高字节为结果的低字节拼成一个两字节的整数作为结果。
解:所求表达式为:u&0xff00|(v&0xff00)>>8
阅读程序并写出程序的运行结果(每小题2分,共20分)
例:#include "stdio.h"
int f1(int);
int main(void)
{
int k=0;
while(++k,10-f1(k)) ;
return 0;
}
int f1(int k)
{
static long s=0;
s+=k;
printf("k=%d,s=%ld\n",k,s);
return s;
}
请写出程序的运行结果:
解:程序的运行结果如下:
k=1,s=1
k=2,s=3
k=3,s=6
k=4,s=10
完善程序(每空2分,共20分)
例:下面是一个求字符串长度的函数的部分程序。请在①处开始的下划线处填入合适内容来完善该程序。
int f1(char *s)
{
char *t=s;
while( ① )
t++;
return (t-s);
}
① *t
复习提纲和复习范围
第1章
了解二进制数、八进制数、十六进制数、原码、反码和补码的定义、掌握二进制数、八进制数、十六进制数、原码、反码和补码的表示方法;掌握整数和字符的内存存储形式;熟练掌握不同进制数之间的相互转化。
第2章
掌握标识符、各种类型常量的表示,包括转义序列的作用,整常量的前缀及后缀等。
掌握运算符与各种表达式;熟练掌握包括位运算、以及与数组、指针、结构、嵌套结构相关的各种表达式计算,以及表达式书写。
熟练掌握各种运算符的优先级、结合性。
第3章
5、了解基本的标准输入与输出的概念;掌握字符串的输入/输出(gets,puts)。
6、熟练掌握单个字符的输入/输出(getchar,putchar);熟练掌握格式输入/输出(scanf,printf),包括%c,%d,%s,%f%x的用法。
第4章
7、了解C语句的分类;掌握各种语句的语法、语义以及使用。
8、熟练掌握流程控制中的复合语句、if语句、switch语句、while语句、for语句、do-while、break语句的使用。掌握continue语句的使用。
9、熟练掌握多重循环,以及单重循环、多重循环涉及的各种基本算法(如打擂台,求素数,字符金字塔等)。
第5章
10、理解函数的定义;掌握声明和调用,尤其是函数调用过程中指针参数的传递。
11、掌握变量的存储类型。外部变量的作用域和缺省初值、区分外部变量的声明和定义
12、熟练掌握static变量的特性、使用方法。
13、掌握递归函数与递归调用,递归的执行过程,递归算法的特点。
第6章
14、了解编译预处理的概念。
15、理解assert宏。
16、掌握简单宏定义;熟练掌握带参数的宏定义。
第8章
17、理解数组的概念,数组的存储结构;掌握数组元素的运算。
18、熟练掌握一维数组的声明、初始化及使用;熟练掌握一维数组作为函数参数的使用方法。
19、熟练掌握字符数组的声明、初始化、使用;
20、熟练掌握字符串操作各种函数,数字串与数之间转换的各种函数的设计、使用。
21、理解多维数组的说明、初始化、使用、存储结构。
22、熟练掌握字符数组、二维数组作为函数参数的使用方法。
23、熟练掌握二分查找、选择法排序、冒泡法排序的算法,函数设计与调用。
第9章
24、理解地址、变量的地址、以及指针的概念。
25、掌握基本类型指针的声明、初始化;指针的算术运算和赋值运算;了解指针的关系运算。
26、熟练掌握指针作为函数的参数。
27、熟练掌握数组的指针表示。尤其是一维数组元素、多维数组元素的指针表示。
28、掌握指针数组的声明、初始化