c语言期末考试及答案讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言考试模拟试卷

1.若有定义:char c;int d;程序运行时输入:c=1,d=2<回车>,能把字符1输入给变量c、整数2输入给变量d的输入语句是

A、scanf("c=%d d=%d",&c,&d);

B、scanf("c=%c d=%d",&c,&d);

C、scanf("c=%d,d=%d",&c,&d);

D、scanf("c=%c,d=%d",&c,&d);

【答案】D

【解析】scanf()函数中,%d对应的参数是整数型地址,%c对应参数为char 型地址,C,A选项错误;如果输入地址有多个,应该用逗号隔开,B选项错误,故答案为D选项。

2.以下叙述错误的是

A、在进行模块化程序设计的时候,应首先完成每个模块的编写调试,再集中考虑主程序中的算法

B、同一程序各模块可由一组人员同时进行编写调试,可提高编写程序的效率

C、模块化的程序设计是采用自顶向下、逐步细化的原则

D、程序的每个模块都可通过三种基本结构实现

【答案】A

【解析】结构化程序设计把一个复杂问题的求解过程分阶段进行,需要保证自顶向下、逐步细化、模块化设计、结构化编码。进行模块化设计时,首先设计框架,并定义和调试好各个模块之间的输入输出关系,然后完成各个模块的编写调试后

再集中编译,模块化的程序设计采用自顶向下、逐步细化的原则,A选项叙述错误,C选项叙述正确。各个模块可以由不同人员同时进行编写调试,提高编写程序的效率,B选项叙述正确。结构化程序主要由3种基本控制结构组成,顺序结构、选择结构、循环结构,这三种基本结构可以解决任何复杂的问题,D选项叙述正确。故选择A选项。

3.设有定义:int a=0,b=1,c=1;

以下选项中,表达式值与其它三个不同的是

A、b=a==c

B、a=b=c

C、a=c==b

D、c=a!=c

【答案】A

【解析】赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型相同才能实现赋值。成功实现赋值后以左值为返回值。逻辑表达式成立则返回1,不成立返回0。A选项逻辑表达式a==c不成立(0),则

b=0,表达式值为0。B选项中将c赋值给b,b=1,再将b赋给a,a=1,表达式值为1。C选项逻辑表达式c==b成立(1),则a=1,表达式值为1。D选项逻辑表达式a!=c成立(1),则c=1,表达式值为1。A选项与其他选项不同,A选项正确。

4.设有两行定义语句:

int scanf;

float case;

则以下叙述正确的是

A、第2行语句不合法

B、两行定义语句都合法

C、第1行语句不合法

D、两行定义语句都不合法

【答案】A

【解析】合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头。关键字是指被C语言保留的,不能用作其他用途的一些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。预定义标识符是系统已经有过定义的标识符,用户可以重新定义,可以作为变量名。scanf为库函数名,属于预定义标识符,可以被用户重定义,所以第一行语句合法。case为关键字,是选择结构switch语句中的关键字,不可被用户重定义,所以第二行语句不合法。A选项正确。

5.设有定义:double x=2.12;,以下不能完整输出变量x值的语句是

A、printf("x=%5.0f\n",x);

B、printf("x=%f\n",x);

C、printf("x=%lf\n",x);

D、printf("x=%0.5f\n",x);

【答案】A

【解析】float类型变量有效位数为6~7位,double类型变量有效位数为15~16位。printf函数控制字符%f输出float类型,%lf输出double类型。对于float或double型数据,在指定数据输出宽度的同时,也可以指定小数位的位数,格式为%m.nf,表示数据输出总的宽度为m位,其中小数部分占n位。当数据的小数位多于指定宽度n时,截去右边多余的小数,并对截去的第一位小数做四舍五入处理;而当数据的小数位少于指定宽度n时,在小数的右边补零;当m小于有效位数时,整数部分输出所有有效数字并且自动对齐,小数部分按照n指定位数输出。A选项按照float格式输出数据,宽度为5位,保留小数0位,输出为2,不能完整输出x,选择A选项。B选项按照float格式输出数据,输出为2.120000。C 选项按照double格式输出数据,输出为2.120000。D选项按照float格式输出数据,保留小数位数为5,输出为2.12000。

6.设有定义:int a,b;float x,y;,则以下选项中对语句所作的注释叙述错误的是

A、scanf("%d%d%f",&a,&b);/*多余的格式符%f完全不起作用*/

B、scanf("%d%d",&a,&b,&x);/*多余的输入项不能获得输入数据*/

C、scanf("%d%f%d",&a,&b,&x);/*输入项与格式符类型不匹配,变量b和x得不到正确的输入数据*/

D、scanf("Input:%d%d",&a,&b);/*格式串中允许加入格式符以外的字符串*/

【答案】A

【解析】A选项中%f是起作用的,程序从键盘正确的读入前两个数据并且保存在

指定的地址,读入第三个数据后,将其放入缓冲区,然后寻找应该存放的地址,因为没有找到,程序会发生错误而中断,A选项注释错误,所以选择A选项。B 选项由于scanf接收数据只有两个,所以变量x得不到赋值,注释正确。C选项scanf会按照float类型读取输入的第二个数据并且保存为int类型,由于两种类型的存储形式与所占内存单元均不同,所以b得不到正确的赋值,注释正确。在使用scanf函数时,如果除了格式说明字符和附加格式字符外,还有其他字符,则在输入数据时要求按一一对应的位置原样输入这些字符,故D选项注释正确。

7.若有以下程序

#include

main()

{int a=1,b=2,c=3,d=4;

if((a=2)&&(b=1))c=2;

if((c==3)||(d=-1))a=5;

printf("%d,%d,%d,%d\n",a,b,c,d);

}

则程序的输出结果是

A、2,2,2,4

B、2,1,2,-1

C、5,1,2,-1

D、1,2,3,4

【答案】C

相关文档
最新文档