首页 > 全部 > 二级C语言 > 二级C语言选择题专项强化真题试卷19

二级C语言选择题专项强化真题试卷19

本单篇文档共8099字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 真题试卷 1150人下载
价格: 1.20 原价:¥8.80
收藏

二级C语言选择题专项强化真题试卷19

选择题

1.以下叙述中正确的是( )。(C)

A. 不同函数的形式参数不能使用相同名称的标识符

B. 用户自己定义的函数只能调用库函数

C. 实用的C语言源程序总是由一个或多个函数组成

D. 在C语言的函数内部,可以定义局部嵌套函数

解析:一个C程序可以有一个或多个程序文件,所以也可以有一个或多个函数,选项C正确;除了main函数不能被其他函数调用之外,用户自定义函数可以调用其他任意函数,选项B错误;函数是一个独立的模块,不同函数之间的定义相互没有影响,所以标识符可以相同,选项A错误;函数体内部只可以调用但是不可以定义其他函数,选项D错误;答案选C。

2.以下叙述中正确的是( )。(A)

A. 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上

B. 在使用scanf函数输入整数或实数时,输入数据之间只能用空格来分隔

C. 在printf函数中,各个输出项只能是变量

D. 使用printf函数无法输出百分号%

解析:scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上,所以A选项正确。scanf()的格式控制串可以使用其他非空自字符,如逗号,但在输入时必须输入这些字符以保证匹配,所以B选项错误。printf函数可以输出常量,也可以输出变量,所以C选项错误。printf函数可以通过printf(“%%”)来输出百分号%,所以D选项错误。

3.有以下程序:

#include<stdio.h>

main()

{

int x=1,y=0;

if(!x)y++;

else if(x==0)

y+=2:

else y+=3;

printf(\\(D)

A. 0

B. 2

C. 1

D. 3

解析:本题考查条件分支结构和C语言中条件成立与否的判定方式。在C语言中,变量值为零则表示假,非零则表示真。因此,if(!x)与else if(x=—0)均不成立,程序执行else语句,即y+=3。得到答案为D。

4.以下叙述中正确的是( )。(D)

A. 局部变量不能被说明为static

B. 只有全局变量才有自己的作用域,函数中的局部变量没有作用域

C. 只有在函数内部定义的变量才是局部变量

D. 只要是用户定义的标识符,都有一个有效的作用域

解析:本题考查局部变量和全局变量作用域。A选项错误,因为可以定义静态局部变量。B选项中局部变量也有作用域;C选项中,函数内部定义的也可能是全局变量。故D选项正确。

5.有以下程序:

#include<stdio.h>

main()

{

int x,y,z;

x=y=1;

z=x++;y++;++y;

printf(\\(C)

A. 2 3 2

B. 2 3 3

C. 2 3 1

D. 2 2 1

解析:考查逗号表达式。逗号表达式的计算过程是分别计算所有表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。x=y=1;将x、y初始化为1,逗号表达式z=x++,y++,++y;中先计算z=x++,得到x=2,z=1,计算y++,得y=2,再计算++y,得y=3。所以最终结果为x=2,y=3,z=1,答案选C。

6.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是( )。(A)

A. (E==0)

B. (E>0||E<0)

C. (!E==0)

D. (E!=0)

解析:E为0,while条件为假,而E为0,(E==0)为真,所以选择A。

7.设有定义语句:

float a[10],x;

则以下叙述中正确的是( )。(A)

A. 语句a=&x;是非法的

B. 表达式a+1是非法的

C. 三个表达式a[1]、*(a+1)、*&a[1]表示的意思完全不同

D. 表达式*&a[1]是非法的,应该写成*(&(a[1]))

解析:数组名表示该数组的首地址,是一个地址常量,不能对它重新赋值,A正确。但是可以把数组名看做一个指针常量,则表达式a+1表示的是数组中第二个元素的地址,选项B错。表达式a[1]、*(a+1)、*&a[1]都指的是数组a中第二个元素的值,选项C错。口运算符的优先级高于*、&,取值*和取址&运算符优先级相等,同一优先级的运算符,运算次序由结合方向所决定,*&a[1]在运算符优先级和结合性上没有问题,并且取值*和取址&运算符互逆,*&a[1]和a[1]等价,相当于求得数组a第二个元素的值,选项D错。答案选A。

8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。(C)

A. 一对一

B. 一对多

C. 多对多

D. 多对一

解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。

9.以下叙述中错误的是( )。(B)

A. 用户定义的函数中可以没有return语句

B. 用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

C. 用户定义的函数中若没有return语句,则应当定义函数为void类型

D. 函数的return语句中可以没有表达式

解析:本题重点考察函数返回值的相关知识,函数的值只能通过return语句返回主调函数,在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。因此B选项正确。

10.有以下程序:

#include<stdio.h>

void fun(int*s,int n1,int n2)

{

int i,j,t;

i=n1;j=n2;

while(i<j)

{

t=s[i];s[i]:s[j];s[j]=t;i++;j–;

}

}

main( )

{

int a[10]={1,2,3,4,5,6,7,8,9,0},k;

fun(a,0,3);fun(a,4,9);fun(a,0,9);

for(k=0;k<10;k++)

pfintf(\\(B)

A. 4321098765

B. 5678901234

C. 0987654321

D. 0987651234

解析:该程序首先给一维数组赋值,然后三次调用fun函数,其中fun(a,0,3);功能是将一维数组中第1个元素和第4个元素互换,第2个元素和第3个元素互换;其中fun(a,4,9);功能是将一维数组中第5个元素和第10个元素互换,第6个和第9个元素互换,第7个元素和第8个元素互换;其中fun(a,0,9);功能是将将一维数组中第1个元素和第10个元素互换,第2个元素和第9个

本文档预览:3600字符,共8099字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
二级C语言选择题专项强化真题试卷19

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号