1、C程序设计课程复习资料C程序设计 复习资料一、填空(每空 2 分,共 20 分)1. 在程序中从变量中取值,实际上是通过变量名找到相应的,从其中读取数据。( )内存地址,存储单元2. C语言规定只能由字母、数字和三种字符组成。( )标识符,下划线3. 将一个字符常量放到一个字符变量中,是将该字符的放到存储单元中。( )相应的ASCII码4. 在使用C语言时,要用预编译命令将有关的”头文件包括到用户的源文件中。( )库函数,#include5. 在printf(“%10. 4s”,“Chinese”)中,%10. 4s指定输出数据,但只输出字符串中。( )域宽为10,前4个字符6. printf
2、(“%7. 2f”,123. 456)中,%7. 2f指定输出数据,其中有。( )域宽为7,2位小数7. break语句可以使流程跳出,还可以用来跳出。( )switch结构,循环体8. continue语句只结束,而不是终止的执行。( )本次循环,整个循环9. 在定义数组时,数组长度必须用括起来;在对全部数组元素赋初值时,可以不指定。( )方括号,数组长度10. 在定义函数时,函数说明部分包括、和函数名以及函数参数、参数类型。( )函数类型,函数属性11. 形式参数是函数名后面括弧中的变量名,实际参数是函数名后面括弧中的变量名。( )函数定义时,函数调用时12. 局部变量只在有效,全局变量的
3、有效范围为。( )本函数范围内,从定义变量的位置开始到本文件结束13. 变量从角度可分为局部变量和全局变量,而静态存储变量和动静态存储变量是从角度来分的。( )作用域(即空间),生存期(即值存在的时间)14. C语言把文件看作是一个,根据数据的组织形式文件可分为。( )字符流(或字节流),ASCII文件和二进制文件15. C语言编译系统在给出逻辑运算结果时,以,以。( )数值1代表”真”,0代表”假”16. C语言编译系统在判断一个量是否为“真”时,是将认作为“真”。( )一个非零的数值17. 使用全局变量,降低了函数的和程序的。( )通用性,清晰性18. 只有和可作为寄存器变量。( )形式参
4、数,局部自动变量19. 在调用一个函数的过程中又出现调用该函数本身,称为。( )直接或间接地,函数的递归调用20. 实参变量对形参变量的数据传递是,即。( )值传递,单向传递21. C程序是由构成的,这种特点容易实现程序的。( )函数,模块化(或结构化)22. 函数的是通过函数中的获得的。( )返回值,return语句23. 一个C程序总是从开始执行的;每个的最后必须有一个分号。( )main函数,语句和数据定义24. 用数组名作函数参数,在调用函数时是把传递给形参。( )数组的首地址25. 一个好的、有使用价值的源程序都应当加上必要的,以增加程序的。( )注释,可读性26. 表达式(a=3*
5、5,a*4),a+5的值为。( )2027. 在C语言中,要求对所有用到的变量作,即“先定义,后使用”。 ( )强制类型定义28. C规定以字符0作为。( )字符串结束标志29. 一个unsigned型变量在内存中分配的字节数和比特数为,最小取值范围为。( )2和16,06553530. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3的值为。10231. 表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3)值的数据类型为。( )整型或int型32. 若a是int型变量,则计算表达式a=25/3%3后a的值为。( )233. 若x和n均
6、是int型变量,且x和n的初值均为5,则计算表达式x+=n+后x的值为,n的值为( )10,634. 当a=3,b=2,c=1时,表达式f=abc的值是。( )035. 假设m是一个三位数,从左到右用a,b,c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是。( )b*100+a*10+c36. 若s是int型变量,且s=6,则下面表达式s%2+(s+1)%2的值是。( )137. 若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式(x+y)%2+(int)a/(int)b的值为。( )138. 若有以下定义int m=5,y=2;,则计算表达式y+
7、=y-=m*=y后的y值是。( )-1639. 在C语言中的实型变量分为两种类型,它们是。( )单精度,双精度40. 当a=5,b=4,c=2时,表达式ab!=c的值是。( )141. 假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为。( )942. 在一个C源程序中,注释部分两侧的分界符分别为和。( )/*,*/43. 在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为_;一个double型数据在内存中所占的字节数为。( )4,844. 若x和n均是整型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为。( )0
8、45. 若有定义:char c=010;则变量c中包含的字符个数为。( )-146. 若有定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值(float)(a+b)/2+(int)x%(int)y为。( )3.547. 若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为。( )-6048. 若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为。( )649. 若x和a均是int型变量,则计算表达式 x=(a=4,6*2)后的x值为,计算表达式x=a=4,6*2后的x值为。( )12,450. 若a为整型变量,则
9、下面表达式(a=4*5,a*2),a+6的值为。( )2651. 若有定义:int b=7;float a=2.5,c=4.7;则下面表达式a+(int)(b/3*(int)(a+c)/2)%4的值为。( )5.5二、选择(每题 2 分,共 20 分)1. 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )AA) 2.500000 B) 2.750000 C) 3.500000 D) 0.0000002. 下面正确的字符常量是( )CA) c B) C) W D) 3. putchar函数可以向终端输出一个( )DA) 整
10、型变量表达式值 B) 实型变量值C) 字符串 D) 字符或字符型变量值4. 下面四个选项中,均是合法转义字符的选项是( )AA) n B) 017 C) 018 f xab D) 0 101 xlf5. 以下程序的输出结果是( )Cmain() printf(n*s1=%15s*,chinabeijing); printf(n*s2=%-15s*,chi);A) *s1=chinabeijing * (换行) *s2=*chi*B) *s1=chinabeijing * (换行) *s2=chi *C) *s1=* chinabeijing* (换行) *s2= chi*D) *s1= chi
11、nabeijing* (换行) *s2=chi *6. C语言中的标识符第一个字符( )CA) 必须为字母 B) 必须为下划线C) 必须为字母或下划线 D) 字母,数字和下划线中任一字符7. 下列四个选项中,均是C语言关键字的选项是( )BA) auto enum include B) switch typedef continueC) signed union scanf D) if struct type8. 执行以下程序后,a,b的值分别为( )Cmain()int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1=&m; b=(-*p1)/(*p2)+7; printf(
12、a=%dn,a); printf(b=%dn,b); A) -1,5 B) 1,6 C) 0,7 D) 4,109. 若有说明语句:char c=72;则变量c( )AA) 包含1个字符 B) 包含2个字符C) 包含3个字符 D) 说明不合法,c的值不确定10. 若以下变量均是整型,且num=sum=7;则计算表达式sum=num+,sum+,+num后sum的值为( )BA) 7 B) 8 C) 9 D) 1011. 在C语言中,要求运算数必须是整型的运算符是( )DA) / B) + C) != D) %12. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=A+6
13、-3;后,c2中的值为( )BA) D B) 68 C) 不确定的值 D) C13. 若x,i,j和k都是int型变量,则计算下面表达式x=(i=4,j=16,k=32)后,x的值为 ( )CA) 4 B) 16 C) 32 D) 5214. 关于建立函数的目的,以下正确的说法是( )BA) 提高程序的执行效率 B) 提高程序的可读性C) 减少程序的篇幅 D) 减少程序文件所占内存15. 以下对一维整型数组a的正确说明是( )DA) int a(10); B) int n=10,an;C) int n; scanf(%d,&n); int an; D) #define SIZE 10 (换行)
14、 int aSIZE;16. 在执行完以下C语句后,B的值是( )Bchar Z=A;int B;B=(241&15)&(Z|A);A) 0 B) 1 C) TRUE D) FALSE17. 若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数( )DA) 没有返回值 B) 返回若干个系统默认值C) 能返回一个用户所希望的值 D) 返回一个不确定的值18. 以下正确的说法是:在C语言中( )AA) 实参和与其对应的形参各占用独立的存储单元B) 实参和与其对应的形参共占用一个存储单元C) 只有当实参和与其对应的形参同名时才共占用存储单元D) 形参是虚拟的,不占用存储单元19.
15、以下正确的函数定义形式是( )BA) double fun(int x,int y) B) double fun(int x;int y)C) double fun(int x,int y); D) double fun(int x,y);20. 下列四组选项中,均不是C语言关键字的选项是( )AA) define IF type B) getc char printfC) include scanf case D) while go pow21. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式( )BA) 从左起输出该字符串,右补空
16、格B) 按原字符长从左向右全部输出C) 右对齐输出该字串,左补空格D) 输出错误信息22. 系统的标准输入文件是指( )AA) 键盘 B) 显示器 C) 软盘 D) 硬盘23. 以下运算符中优先级最低的是( )CA) & B) & C) | D) |24. 当说明一个结构体变量时系统分配给它的内存是( )AA) 各成员所需内存量的总和B) 结构中第一个成员所需内存量C) 成员中占内存量最大者所需的容量D) 结构中最后一个成员所需内存量25. 以下正确的叙述是( )DA) 在C程序中,每行中只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中
17、,无论是整数还是实数,都能被准确无误地表示D) 在C程序中,%是只能用于整数运算的运算符26. 在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为( )AA) charintlong int=floatdoubleB) char=intlong int=floatdoubleC) charintlong int=float=doubleD) char=int=long int=floatdouble27. 一个C语言程序是由( )BA) 一个主程序和若干子程序组成 B) 函数组成C) 若干过程组成 D) 若干子程序组成28. C语言规定,在一个源程序中,main函数的
18、位置( )CA) 必须在最开始 B) 必须在系统调用的库函数的后面C) 可以任意 D) 必须在最后29. 以下叙述正确的是( )CA) 在C程序中,main函数必须位于程序的最前面B) C程序的每行中只能写一条语句C) C语言本身没有输入输出语句D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误30. 若执行fopen函数时发生错误,则函数的返回值是( )AA) 地址值 B) 0 C) 1 D) EOF31. 在16位IBM-PC机上使用C语言,若有如下定义struct data int i; char ch; double f; b;则结构变量b占用内存的字节数是( )DA) 1
19、B) 2 C) 8 D) 1132. 假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是( )BA) 7 B) 8 C) 6 D) 233. 一个C程序的执行是从( )AA) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束34. 以下能对二维数组a进行正确初始化的语句是( )BA) int a2=1,0,1,5,2,3; B) int a3=1,2,3,4,5,6;C) int a24=1,2,3
20、,4,5,6;D) int a3=1,0,1,1,1;35. 在位运算中,操作数每右移一位,其结果相当于( )BA) 操作数乘以2 B) 操作数除以2 C) 操作数乘以4 D) 操作数除以436. 在位运算中,操作数每左移一位,其结果相当于( )AA) 操作数乘以2 B) 操作数除以2 C) 操作数除以4 D) 操作数乘以4 37. 设有以下语句:char x=3,y=6,z;z=xy2;则z的二进制值是( )AA) 00010100 B) 00011011 C) 00011100 D) 0001100038. 下面程序段的运行结果是( )Cint n=0;while(n+61. 若a=1,b
21、=2则 a|b的值是( )DA) 0 B) 1 C) 2 D) 3 三、简答(每题 6 分,共 30 分)1. P97简述条件表达式的一般形式,用流程图说明其运算规则。 1一般格式:表达式1?表达式2:表达式3 2运算规则:如果“表达式1”的值为非0(即逻辑真),则运算结果等于“表达式2”的值;否则,运算结果等于“表达式3”的值。2. P110简述for语句的一般形式,用流程图说明其运算规则。1一般格式: for(表达式1;表达式2;表达式3)循环体2for语句的执行过程(1)求解表达式1。(2)求解表达式2。如果其值非0,执行(3);否则,转至(4)。(3)执行循环体语句组,并求解表达式3,
22、然后转向(2)。(4)执行for语句的下一条语句。3. P122简要说明一维数组的定义。定义形式:数据类型 数组名常量表达式 如:int a10; float x5; 说明:(1) 数组名,与变量名一样,必须遵循标识符命名规则。(2) 常量表达式必须用方括号括起来,指的是数组的元素个数(又称数组长度),常量表达式可以包括常量和符号常量,不能包含变量;(3) 数组元素的下标,是元素相对于数组起始地址的偏移量,所以从0开始顺序编号。(4) 数组名中存放的是一个地址常量,它代表整个数组的首地址。(5) 同一数组中的所有元素,按其下标的顺序占用一段连续的存储单元。4. (P146)简要说明函数的形参和
23、实参。在定义函数时函数名后括弧中的参数称为形参,在主调函数中调用一个函数时函数名后括弧中的参数称为实参。说明:(1) 形参变量只有在被调用时,才分配内存单元;调用结束时,即刻释放所分配的内存单元。(2) 实参可以是常量、变量、表达式、函数等。(3) 实参与形参的类型应相同或赋值兼容;(4) 实参对形参的数据传送是单向的,即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。(5) 实参和形参占用不同的内存单元,即使同名也互不影响。5. (P151)举例说明函数的调用方式。在语言中,可以用以下几种方式调用函数:(1) 函数语句,如printstar();,C语言中的函数可以只进行某些操作而不返回函数值,这时的函数调用可作为一条独立的语句。(2) 函数表达式,如c=2*max(a,b);,函数作为表达式的一项,出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。(3) 函数实参,如printf(“%d”,max(a,b);,函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。6. (P151)函数调用需要具备哪些条件?(1) 被调用的函数必须是已经存在的函数(库函数或用户自己定义的函数);(2) 如果使用库函数,一般还应该在
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1