1、C语言复习提纲第一部分C语言基础1、 C语言是一个函数式语言,有且仅有一个叫MAIN的主函数,程序从MAIN中开始,在MAIN中结束。2、 C语言的特点。3、 C语言程序运行的方式。4、 C语言有32个关键字,34种运算符,9种控制语言,三种基本结构。5、 C语言的数据类型有哪几种,每一种类型的数据范围。6、 C语言的运算符的使用,优先级,结合律,含义等。7、 C语言中数据类型的转换规则。8、 C语言中数据表示形式。9、 C语言修饰符的含义及使用。10、 C语言的标识符的组成。11、 三种基本结构的语句和语法格式。12、 函数的定义格式。13、 模块化设计的要求。14、 C语言程序在内存中运行
2、的情况。15、 二种程序分析的方法。16、 实参和形参的关系。17、 实参向形参传递参数的规则。18、 变量的属性有哪几种,以及它们在程序中的用途。19、 C语言库函数的使用。20、 局部变量和全局变量的定义和作用范围。21、 数组的定义,含义和理解。22、 一维数组的定义和引用。23、 一维数组中常用算法(插入,删除,查询,排序等)24、 二维数组的理解,元素的引用。25、 二维数组中的常用算法。26、 字符串的定义和使用以及注意事项、库函数的使用等。27、 指针的含义28、 指针与变量之间的关系29、 指针与一维数组的关系。30、 指针与二维数组的关系,特别注意行指针,和列指针以及指向指针
3、的使用。31、 指针与函数之间的关系,以及返回指针值的函数。32、 结构体数据类型的定义和数据项元素的引用。第二部分相关复习题C语言复习题A一、 单项选择题1、 C语言提供的合法关键字是_。A、AUTO B、includeC、unsigned D、dafault2、 合法的C语言标识符是_。A、2a B、sumC、default D、a+b3、下面四个选项中,不是C语言整型常量的是 。 A、01 B、0x11 C、081 D、-327684、下面四个选项中正确的实型常量是 。 A、0x12 B、-12345.e-3 C、Ie0.5 D、e-55、若a为整型变量,则下面语句 。 a=-2L; p
4、rintf(“%dn”,a); A、赋值不合法 B、输出值为-2C、输出为不确定值 D、输出值为-26、在C语言中,要求参加运算的数必须是整数的运算符是 。 A、/ B、! C、% D、= =7、字符串“012012”在内存中占用的字节数是 个。 A、4 B、5 C、6 D、78、下列说法中,错误的是 。A、 变量的定义可以放在所有函数之外B、 变量的定义可以不放在本编译单位中,而放在其他编译单位中C、 变量的定义可以放在某个函数的函数头中D、 变量的定义可以放在某个复合语句的开头9、下列说法中,正确的是 。A、 自动型变量是分配在内存的数据区的B、 寄存器型变量是分配在内存的数据区中的C、
5、表态型变量是分配在内存的数据区中的D、 外部参照型变量是分配在内存的数据区中的10、在C语言中,一个int型数据在内存中占用2个字节,则int型数据的取值范围是 。 A、-128127 B、-3276832767 C、065536 D、0214748364711、下面不正确的字符串常量的 。 A、abc B、”1212” C、”0” D、” ”12、char型常量在内存中存放的是 。 A、ASCII代码值 B、BCD代码值 C、内码值 D、十进制代码值13、以下程序段 。int x=2,y=3;printf( xy ? ”*=%d” : “#y=%d”,x,y);A、输出控制格式错误 B、输出
6、为:*x=2C、输出为:#y=2 D、输出为:#y=314、以下程序的输出为 。int a,b,c;a=10;b=50;c=30;if (ab) a=b, b=c;c=a;printf(“a=%d,b=%d,c=%d”,a,b,c);A、a=10,b=50,c=10 B、a=10,b=30,c=10C、a=50,b=30,c=10 D、a=50,b=30,c=5015、在C语言中,当while语句构成的循环的条件为 时,结束循环。A、True B、非0 C、1 D、016、下列四个选项中,正确的数组定义是 。A、char 4a4 B、int I;scanf(“%d”,&I);char chI;
7、C、#define MAX 20 D、#define MAX 20.0Char aMAX int aMAX 17、合法的数组定义是 。A、int a=”string” B、int a5=0,1,2,3,4,5C、char a=”string” D、char a=0 1 2 3 4 518、设有说明:char *str10;则标识符的意义是: 。A、str是一个指向有10个元素的数组的指针B、str 是一个有10个元素的数组,数组元素的数据类型是指向char型的指针C、str是一个指向char型函数的指针D、str是具有10个指针元素的一维指针数组,每个元素都只能指向整型变量19、阅读下面程序:
8、#include int a =2,4,6,8;main( )int I; int *p=a;for (I=0; I4; I+) aI=*p+;printf(“%dn”,a2);上面程序的输出结果是 。A、6 B、8 C、4 D、220 在C语言中,如果对函数类型未加显示说明,则函数的隐含类型是 。A、int B、char C、void D、double21在C语言中,当函数调用时 。A、实参和形参共用存储单元B、实参和形参各占一个独立的存储单元C、由系统自动确定实参和形参是否共用存储单元D、可由用户指定实参和形参是否共用存储单元22、设有如下枚举型定义:enum color red=1, b
9、lack, white=10, green=100, blue;则枚举量blue的值为 。A、5 B、3C、101 D、1123、当说明一个结构体变量时系统分配给它的内存是 。A、 各成员所需内存量的总和B、 结构中第1个成员所需内存量C、 成员中占内存量最大者所需的容量D、 结构中最后一个成员所需内存量24、使用共用体union的目的是 。A、 将一组数据作为一个整体,以便与其中的成员共享同一存空间B、 将一组具有相同数据类型的数据作为一个整体,以便与其中的成员共享同一存储空间C、 将一组相关数据作为一个整体,以便程序中使用D、 将一具有相同数据类型的数据作为一个整体,以便程序中使用25、在
10、宏定义#define PI 301415926中,用宏名PI代替一个 。A、单精度数 B、双精度数C、常量 D、字符串 二 、 填空题1、C语言的函数体由 开始,用符号结束;函数体的前面是 部分, 其后是执行语句。 2、在内存中存储“A”要占用 个字节,存储A要占用 个字节。3、使用“putchar( )”函数时,程序的开头必须写的一条包含命令为 。4、下列是计算n!的值的程序,请填空。Main() int I,s,n; s=1; printf(“enter n: “); scanf(“%d”,&n); for (I=1;I=n;I+) ; printf(“s=%d”,s); 5、设有如下定义
11、:int a10; ,则数组元素a下标的上限为 ,下限为 。6、若自定义函数要求返回一个值,则应在该函数体中有一条 语句;若自定义函数要求不返回一个值,则应在该函数说明加一个类型说明符void。7、引用结构变量中成员的一般形式是 。三、程序分析题。阅读下列程序,将输出结果或功能写到各题右侧的空白处。1、 Main( ) int x1, x2, x3, x4;x1=x2=x3=x4=1;switch(x1) case 1: switch(x2) case 0: x3+; break; case 1: x4 - -; case 2: x3+, x4- -; printf(“%d%d”, x3 ,
12、x4); 2、 main ( ) int I; float f, sum; for (I=1, sum=0.0;I11;I+) scanf (“%f”,&f);sum=sum+f;printf (“average=%fn”, sum/10); 3、#include main ( ) int I,j,x=0;for (I=0; I2; I+) x+; for (j=0; j=3; j+) if (j%2) continue; x+; x+;printf (“x=%d”, x);4、#include void invert (char str )int I,j,k; for (I=0, j=str
13、len(str)-1; Ij;I+;j-) k=strI; strI=strj; strj=k;5、#include main ( ) int a =1,2,3,4,5,6, *p=a; *(p+3)+=2; printf (“%d, %d”, *p,*(p+3);四、程序设计题。 编写一函数求n!, n由键盘输入。(例:5!=5*4*3*2*1)C语言复习题B一、 单项选择题1、_是构成C语言的基本单位。 A、函数 B、子函数 C、过程 D、子过程2、合法的C语言标识符是A、2a B、sumC、default D、a+b3、不属于整型常量的是 。 A、10 B、0/0 C、0*10 D、4/
14、2.04、在C语言中,一个int型数据在内存中占用2个字节,则int型数据的取值范围是 。 A、-128127 B、-3276832767 C、065536 D、021474836475、下面不正确的字符串常量的 。 A、abc B、”1212” C、”0” D、” ”6、设a为整型变量,不能正确表达数学关系10a15的C语言表达式是 。 A、10a10&a15 D、!(a=15)7、char型常量在内存中存放的是 。 A、ASCII代码值 B、BCD代码值 C、内码值 D、十进制代码值8、下面的叙述不正确的是 。A、 在C程序中所用变量必须先定义后使用B、 在程序中,XYZ和xyz是两个不同
15、的变量C、 若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变D、 当输入数值型数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值9、下列说法中,正确的是 。E、 自动型变量是分配在内存的数据区的F、 寄存器型变量是分配在内存的数据区中的G、 表态型变量是分配在内存的数据区中的D、外部参照型变量是分配在内存的数据区中的10、下述程序的输出结果是 。 int x=1;y=+x;z=x+;printf(“%d,%d,%d”,x,y,z);A、3,2,2 B、3,2,3C、2,2,2 D、2,2,111、在C语言中,要求参加运算的数必须是整数的运算符是 。 A、
16、/ B、! C、% D、= =12、设ch是char型变量,其值为A,则下面表达式的值是 。 A、A B、a C、z D、Z 13、两次运行下面程序,分别输入6和5,请问输出结果分别是 。main ( ) int x ; scanf (“%d”, &x); if (x- -5) printf (“%d”, x); else printf (“%d”,x+); A、5 5 B、6 6 C、6 4 D、5 414、C语言程序的三种基本结构是 。A、 顺序,选择,循环B、 递归,循环,转移C、 嵌套,递归,顺序D、 循环,转移,顺序 15、以下程序的输出为 。int a,b,c;a=10;b=50;
17、c=30;if (ab) a=b, b=c;c=a;printf(“a=%d,b=%d,c=%d”,a,b,c);A、a=10,b=50,c=10 B、a=10,b=30,c=10C、a=50,b=30,c=10 D、a=50,b=30,c=5016、下列关于字符数组与字符串的说法中正确的是 。A、字符数组中存放的一定是一个字符串。B、所有的字符数组都可以被当作字符串处理。C、对存放字符串的字符数组可以像一般数组一样对数组中的单个元素进行操作。D、一个字符数组可以认为就是一个字符串。17、合法的数组定义是 。A、int a=”string” B、int a5=0,1,2,3,4,5C、char
18、 a=”string” D、char a=0 1 2 3 4 518、在宏定义#define PI 301415926中,用宏名PI代替一个 。A、单精度数 B、双精度数C、常量 D、字符串19、使用共用体union的目的是 。A、将一组数据作为一个整体,以便与其中的成员共享同一存空间B、将一组具有相同数据类型的数据作为一个整体,以便与其中的成员共享同一存储空间C、将一组相关数据作为一个整体,以便程序中使用D、一具有相同数据类型的数据作为一个整体,以便程序中使用20、当说明一个结构体变量时系统分配给它的内存是 。A、各成员所需内存量的总和B、结构中第1个成员所需内存量C、成员中占内存量最大者所
19、需的容量D、结构中最后一个成员所需内存量21、设有如下枚举型定义:enum color red=1, black, white=10, green=100, blue;则枚举量blue的值为 。A、5 B、3C、101 D、1122、在C语言中,当函数调用时 。A、实参和形参共用存储单元B、实参和形参各占一个独立的存储单元C、由系统自动确定实参和形参是否共用存储单元D、可由用户指定实参和形参是否共用存储单元23、在C语言中,如果对函数类型未加显示说明,则函数的隐含类型是 。A、int B、char C、void D、double24、阅读下面程序:#include int a =2,4,6,8
20、;main( )int I; int *p=a;for (I=0; I4; I+) aI=*p+;printf(“%dn”,a2);上面程序的输出结果是 。A、6 B、8 C、4 D、225、设有说明:char *str10;则标识符的意义是: 。A、str是一个指向有10个元素的数组的指针B、str 是一个有10个元素的数组,数组元素的数据类型是指向char型的指针C、str是一个指向char型函数的指针D、str是具有10个指针元素的一维指针数组,每个元素都只能指向整型变量 二 、 填空题1、C程序是由函数构成的,其中有且只能有 个主函数。C语言程序的执行总是由 函数开始,并且在主函数结束
21、。2、C语言中的运算符大都直接采用 上的符号。3、符号常量的定义方法是 。4、下列程序的主要功能是求出所有3位数中能被8整除余7,或者被7整除余8的所有整数,请填写程序中缺少的语句成分。 Main ( ) int k=100; doif printf (“%dn”,k); while (k+999); 5、下列是计算n!的值的程序,请填空。Main() int I,s,n; s=1; printf(“enter n: “); scanf(“%d”,&n); for (I=1;I=n;I+) ; printf(“s=%d”,s); 6、二维数组的元素在内存中是先按 ,后按 的次序排列的。7、引用
22、结构变量中成员的一般形式是 。8、若自定义函数要求返回一个值,则应在该函数体中有一条 语句;若自定义函数要求不返回一个值,则应在该函数说明加一个类型说明符void。 三、程序分析题。阅读下列程序,将输出结果或功能写到各题右侧的空白处1、main() long sum=0,I;I=1;While (I51) Sum+=I+; Printf(“%d”,sum);2、#include main ( ) int I,j,x=0;for (I=0; I2; I+) x+; for (j=0; j=3; j+) if (j%2) continue; x+; x+;printf (“x=%d”, x);3、
23、#include main()int a=0,b=1,c=2; switch (a) case 0:switch (b) case 1:printf (“ # ”); break; case 0:printf (“ * ”);break; case 1:switch (c= =2) case 1:printf (“&”);break; case 0:printf(“!”); preak;4、#include main ( ) int a =1,2,3,4,5,6, *p=a; *(p+3)+=2; printf (“%d, %d”, *p,*(p+3);5、findmax (int s ,in
24、t t)int k,p; for (p=0,k=p;psk) k=p; return k;四、程序设计题。1、求100以内的所有素数,并按10个一行进行打印。2、从键盘上输入十个元素,求它们的最值。3、 编写程序,对输入两个正整数m和n,求出它们的最大公约数和最小公倍数。4、输入年月日,求这一天是该年的第多少天5、打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。6、一个数恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3而6=1+2+3,因此6是完数。编程找出求1000以内的所有完全数。7、题目:将一个正整数分解质因数。例如:输入9
25、0,打印出90=2*3*3*5。8、题目:求s=a+aa+aaa+aaaa+aa.a的值,其中a是一个数字。例如2+22+222+2222+22222(此时9、数组元素的查询(顺序查询和折半查询)10、数组元素的排序(插入排序、冒泡排序、选择排序)第三部分试题题型一、 选择题1、 C语言标识符命名规则2、 合法的运算表达式3、 字符常量4、 条件表达式5、 赋值表达式6、 求解表达式的结果7、 与IF语句等价的表达式8、 正确的输入格式9、 给出一段程序求解它的值10、 函数的隐含类型是什么11、 数组元素正确的引用12、 实参与形参的关系13、 三种基本结构14、 实参与形参的关系15、 不合法的表达式是什么16、 指针与变量的关系17、 变量的作用域18、 指针与变量的关系19、 指针与数组的关系20、 指针与数组的关系二、填空题1、C语言的概述2、赋值表达式的书写形式3、C语言的基本内容包括哪些4、求解表达式的结果5、通过语言描述写出表达式的形式6、数组元素的引用7、指针与数组的关系8、二维数组中数组元素与指针的关系9、数组的描述10、C语言程序在内存中运行的空间11、C语言标识符的组成12、字符与字符串的关系
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1