二级C语言分类模拟题541.docx

上传人:b****4 文档编号:5071036 上传时间:2022-12-13 格式:DOCX 页数:16 大小:24.33KB
下载 相关 举报
二级C语言分类模拟题541.docx_第1页
第1页 / 共16页
二级C语言分类模拟题541.docx_第2页
第2页 / 共16页
二级C语言分类模拟题541.docx_第3页
第3页 / 共16页
二级C语言分类模拟题541.docx_第4页
第4页 / 共16页
二级C语言分类模拟题541.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

二级C语言分类模拟题541.docx

《二级C语言分类模拟题541.docx》由会员分享,可在线阅读,更多相关《二级C语言分类模拟题541.docx(16页珍藏版)》请在冰豆网上搜索。

二级C语言分类模拟题541.docx

二级C语言分类模拟题541

二级C语言分类模拟题541

(总分:

60.00,做题时间:

90分钟)

一、选择题(总题数:

40,分数:

60.00)

1.在printf的格式字符中,e格式字符的作用是______。

(分数:

2.00)

 A.以十六进制无符号形式输出整数

 B.以带符号的十进制形式输出整数

 C.以指数形式输出实数 √

 D.以字符形式输出,且只输出一个字符

解析:

2.数据结构中,与所使用的计算机无关的是数据的______。

(分数:

2.50)

 A.存储结构

 B.物理结构

 C.逻辑结构 √

 D.线性结构

解析:

[解析]数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。

3.有两个关系R,S如下:

R

A

B

C

a

3

2

b

0

1

c

2

1

S

A

B

a

3

b

0

c

2

由关系R通过运算得到关系S,则所使用的运算为______。

(分数:

1.00)

 A.选择

 B.投影 √

 C.插入

 D.连接

解析:

[解析]投影运算是从关系模式中挑选若干属性组成新的关系,这是从列的角度进行的运算,相当于对关系进行垂直分解。

本题中,S是在原有关系R的内部进行的,是由R中原有的那些域的列所组成的关系,因此选择B。

4.以下不能正确定义二维数组的选项是______。

(分数:

2.00)

 A.inta[2][2]={{1},{2)};

 B.inta[][2]={1,2,3,4};

 C.inta[2][2]={{1},2,3}; √

 D.inta[2][]={{1,2),{3,4}};

解析:

5.有以下程序:

#inelude<stdio.h>

#include<string.h>

typedefstructStu{

charname[10];

chargender;

intscore;

}STU;

voidf(char*name,char*gender,int*score)

{strcpy(name,"Qian");

*gender="f";

*score=350;

}

main()

{STUa={"Zhao","m",290},b;

b=a;

f(b.name,&b.gender,&b.score);

printf("%s,%c,%d,",a.name,a.gender,a,score);

printf("%s,%c,%d/n",b.name,b.gender,b.score);

}

程序运行后的输出结果是______。

(分数:

1.00)

 A.Zhao,m,290,Qian,f,350 √

 B.Qian,in,290,Zhao,m,290

 C.Zhao,m,290,Zhao,m,290

 D.Zhao,m,290,Qian,m,290

解析:

[解析]main函数中,首先定义两个结构体stu类型的变量a,b,把a成员信息复制给b成员后,再调用函数f(),在f()函数中,利用指针重新对b成员信息进行赋值,分别输出a,b,成员信息,答案为A选项。

6.有如下程序:

#include<stdio.h>

voidconvert(charch)

{

if(eh<"X")convert(ch+1);

printf("%c",ch);

main()

{

convert("W");

printf("/n");

}

程序运行后的输出结果是______。

(分数:

1.00)

 A.YZ

 B.VW

 C.XY

 D.XW √

解析:

[解析]在main函数中,执行convert("W")函数,因为‘W’比‘X’小,满足if语句,再执行convert(ch+1);此时ch="X",不满足条件,输出X,完成后,返回上一次convert中,输出上次ch="W",因此答案为D选项。

7.有以下程序:

#include<stdio.h>

intsum(int*array,intlen)

{

if(len==1)

returnarray[1];

else

returnarray[1]+sum(array+1,len-1);

}

main()

{

intarray[5]={0,9,1,2},res;

res=sum(array,3);

printf("%d/n",res);

}

程序运行后的输出结果是______。

(分数:

1.00)

 A.27

 B.11

 C.8

 D.12 √

解析:

[解析]main()函数先定义一个数组array,调用sum(array,3)函数,此时函数形参array指向数组首地址,形参len的值为3,在sum函数中,array[1]指向数组中的元素9,sum函数调用3次,完成的功能是将数组array[1]+array[2]+array[3]累加后返还给输出,累加后的值为12。

因此,答案为D选项。

8.以下对联合类型叙述正确的是______。

(分数:

2.00)

 A.可以对联合变量名直接赋值

 B.使用联合变量的目的是为了节省内存 √

 C.任何一个联合变量可以同时引用联合中的不同成员

 D.联合类型定义中不能同时出现结构类型的成员

解析:

9.若定义:

inta=511,*b=&a;,则printf("%d/n",*b);的输出结果为______。

(分数:

0.50)

 A.无确定值

 B.a的地址

 C.512

 D.511 √

解析:

10.以下程序段的执行结果为______。

#definePLUS(X,Y)X+Y

main()

{intx=1,y=2,z=3,sum;

sum=PLUS(x+y,z)*PLUS(y,z);

printf("SUM=%d",sum);

}

(分数:

1.00)

 A.SUM=9

 B.SUM=12 √

 C.SUM=18

 D.SUM=28

解析:

[解析]表达式sum=PLUS(x+y,z)*PLUS(y,z)用带参的宏替换为sum=x+y+z*y+z,sum的值为12。

11.以下程序的输出结果是______。

#include<stdio.h>

main()

{inta=4,b=3,c=2,d=1;

printf("%d",a<b?

a:

d<c?

d:

b);}

(分数:

2.00)

 A.1 √

 B.3

 C.2

 D.4

解析:

12.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定.这属于算法的______。

(分数:

2.00)

 A.正当性

 B.可行性

 C.确定性 √

 D.有穷性

解析:

[解析]算法具有5个特性:

有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。

13.设有某函数的说明为:

int*func(inta[10],intn);

则下列叙述中,正确的是______。

(分数:

1.00)

 A.形参a对应的实参只能是数组名

 B.说明中的a[10]写成a[]或*a效果完全一样 √

 C.func的函数体中不能对a进行移动指针(如a++)的操作

 D.只有指向10个整数内存单元的指针,才能作为实参传给a

解析:

[解析]本题重点考查返回指针值的函数的相关知识。

返回指针值的函数,一般定义形式为:

类型名*函数名(参数列表)。

fune函数被定义为指针型函数,它的一个形参为整型数组a,形参a对应的实参可以是数组名和指针,A、D错误。

实参传递给形参a的是地址值,实参和形参指向同一段内存单元,在fune函数体内对形参a进行移动指针操作,可以改变实参的值,C错误。

14.对长度为n的线性表作快速排序,在最坏情况下,比较次数为______。

(分数:

1.00)

 A..n

 B.n-1

 C.n(n-1)

 D.n(n-1)/2 √

解析:

[解析]快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较(n-1)+(n-2)+…+1=n(n-1)/2,故选D。

15.在执行完下面的C语句段之后,则B的值是______。

chara="A";

intb;

B=((34&&56)&&(a<"b"));

(分数:

2.00)

 A.0

 B.1 √

 C.TRUE

 D.FALSE

解析:

16.以下各选项中的代码段执行后,变量y的值不为1的是______。

(分数:

1.00)

 A.intx=5,y=0;if(5)y=1;

 B.intx=5,y=0;if(x)y=1;

 C.intx=10,y=0;if(x=y)y=1; √

 D.intx=5,y=10;if(x=y)y=1;

解析:

[解析]选项A的if条件表达式5的值为真,执行y=1,y的值为1;选项B的if条件表达式x的值为5,也是真,执行y=1,y的值为1;选项C的if条件表达式x=y是赋值语句,将y的值0赋给x,表达式的值为0,if语句不执行,y值为0;选项D的if条件表达式x=y是赋值语句,将y的值10赋给x,表达式的值为10,执行y=1,y的值为1。

故本题答案为C选项。

17.以下程序的输出结果是______。

main()

{chara[]="programming",b[]="language";

char*p1,*p2;

inti;

p1=a;p2=b;

for(i=0;i<7;i++)

if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));

}

(分数:

2.00)

 A.gm

 B.rg

 C.or

 D.ga √

解析:

18.有以下程序:

#include<stdio.h>

#defineSUB(X,Y)(X+1)*Y

main()

{inta=3,b=4;

printf("%d/n",SUB(a++,b++));

}

程序运行后的输出结果是______。

(分数:

5.00)

 A.25

 B.20

 C.12

 D.16 √

解析:

[解析]本题考查宏定义。

宏定义只是做简单的替换,++运算符是先使用后自增1,所以语句SUB(a++,b++)=(a+++1)*b++(a+++1)*b++=(3+1)*4=16,选项D正确。

19.关于程序设计基本概念,以下叙述错误的是______。

(分数:

1.00)

 A.计算机可以直接执行由任意高级语言编写的程序 √

 B.高级语言都有与之对应的编译程序或解释程序

 C.用任何一种计算机高级语言都可以把算法转换为程序

 D.结构化算法可以解决任何复杂的问题

解析:

[解析]计算机只能识别机器语言,不能直接识别由高级语言编写的程序,故答案为A选项。

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

(分数:

1.00)

 A.预处理命令行必须位于C源程序的起始位置

 B.在C语言巾,预处理命令行都以"#"开头 √

 C.每个C程序必须在开头包含预处理命令行;#include<stdio.h>

 D.C语言的预处理不能实现宏定义和条件编译的功能

解析:

[解析]预处理命令行可以出现在C源程序的任何位置,故选项A不正确。

#include<stdio.h>预处理命令行的意思是将stdio.h头文件插入源程序中该行命令所在的位置,表示我们将在后续行中用到stdio.h头文件中定义的函数或类型,若程序中没有用到这些函数或类型就可以不用包含此头文件,故选项C不正确。

C提供的预处理功能主要有:

宏定义、文件包含和条件编译三种功能,故选项D不正确。

在C语言中,预处理命令行都以”#”开头,故应该选择B。

21.有如下程序:

#include<stdio.h>

main()

{

inti,*ptr;

intarray[5]={5,3,1};

for(ptr=array,i=0;i<5;i++,ptr++)

{

if(*ptr==0)

putchar("X");

else

putchar("A"+*ptr);

}

printf("/n");

}

程序运行后的输出结果是______。

(分数:

1.00)

 A.FDBXX √

 B.FFFXX

 C.FDBBB

 D.ABCDE

解析:

[解析]在对数组进行初始化时,如果对数组的全部元素赋以初值,定义时可以不指定数组长度,如果被定义数组的长度与初值个数不同,则数组长度不能省略;如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值,则array={5,3,1,0,0}。

程序执行过程为:

执行for循环,将数组首地址赋给指针ptr,依次遍历每一个元素,如果数组元素为0则输出‘X’,如果不为0则按照字母表输出字符‘A’后第array[i]个字符。

程序运行后的输出结果为:

FDBXX,故A选项正确。

22.若有定义语句:

int(*p)[M];其中的标识符p是

(分数:

1.00)

 A.M个指向整型变量的指针

 B.指向M个整型变量的函数指针

 C.一个行指针,它指向具有M个整型元素的一维数组 √

 D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量

解析:

23.有以下程序:

#include<studio.h>

#defineF(X,Y)(X)*(Y)

main()

{

inta=3,b=4;

printf("%d/n",F(a++,b++));

}

(分数:

1.00)

 A.12 √

 B.15

 C.16

 D.20

解析:

[解析]本题考核的知识点是宏与自增运算符的综合运用.在程序中先用表达式将宏替换掉,则输出语句中的表达式为(a++)*(b++),而a++的值为3,b++的值为4。

因此最后的值为3*4=12。

所以,4个选项中选项A符合题意。

24.设有以下程序段:

structperson

{

floatweight;

charsex;

charname[10];

}rec,*ptr;

ptr=&rec;

从键盘读入字符串给结构体变量rec的name成员,错误的输入语句是______。

(分数:

1.00)

 A.scanf("%s",rec->name); √

 B.scanf("%s",rec.name);

 C.scanf("%s",(*ptr).name);

 D.scanf("%s",ptr->name);

解析:

[解析]题中声明了—个结构类型person的同时,定义了2个结构变量,一个为rec,另一个为指针变量ptr。

A选项中,rec是一个结构体变量,结构体变量访问结构成员的方式应该为:

"rec.成员名",这里用法错误,答案为A选项。

25.以下叙述中错误的是______。

(分数:

1.00)

 A.C语言编写的函数源程序,其文件名后缀可以是C

 B.C语言编写的函数都可以作为一个独立的源程序文件

 C.C语言编写的每个函数都可以进行独立的编译并执行 √

 D.一个C语言程序只能有一个主函数

解析:

[解析]函数是指预先定义功能块,其目的是提高程序的重用性。

在C语言中函数的源程序,后缀名可以为C。

C语言所编写的函数都可以是一个独立的源文件。

一个C语言程序只能有一个主函数。

C语言中编写的函数不是每个都可以独立地编译和执行的,因为C语言中程序的开始为主函数,如果程序中没有主函数则无法进行编译和执行。

26.字符串"//"ABCDEF"/"的长度是____。

(分数:

1.00)

 A.15

 B.10 √

 C.7

 D.8

解析:

[解析]本题涉及字符串最基本两个概念:

①字符串的长度是指字符串中字符的个数,但不包括字符串结束符:

②以反斜杠“/”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“1”连同后面的字符为一个长度。

27.有以下程序:

#include<stdio.h>

intfun()

{

staticintx=1;

x+=1;

returnX;

}

main()

{

iti,s=1;

for(i=1;i<=5;i++)s+=fun();

printf("%d/n",s);

}

程序运行后的输出结果是______。

(分数:

1.00)

 A.120

 B.11

 C.6

 D.21 √

解析:

[解析]fun函数中的变量x为静态局部变量,占用固定的内存单元,下一次调用时仍可以保留上次调用时的直。

也就是说,如果多次调用fun函数,x的定义只在第一次调用时有效,从第二次调用开始,x的定义相当于不存在,直接使用上次x的值。

fun函数被调用了5次,每次调用后的返回值累加到s上。

5次调用后,x的值为6,s的值为1+2+3+4+5+6=21,因此D选项正确。

28.C语言程序的执行是______。

(分数:

2.00)

 A.从程序的主函数开始,到程序的主函数结束 √

 B.从程序的主函数开始,到程序的最后一个函数结束

 C.从程序的第一个函数开始,到程序的最后一个函数结束

 D.从程序的第一个函数开始,到程序的主函数结束

解析:

29.以下选项中,能够正确利用随机函数rand(),产生一个英文字母的表达式是______。

(分数:

1.00)

 A.rand()%2==0?

rand()%"A":

rand()%"a"

 B.rand()%26+"A"||rand()%26+"a"

 C.rand()%26+"A"&&rand()%26+"a"

 D.rand()%2==0?

rand()%26+"A":

rand()%26+"a" √

解析:

[解析]rand()函数是产生随机数的函数,它可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX是stdlib.h中定义的一个整数。

通常如果我们需要随机0~N-1之间的一个随机数,需要使用rand()的结果对N求模即可。

选项A中,rand()%2只有两个值0或1,所以当rand()%2的结果为0时,整个表达式的值是rand()%"A",这里"A"要转换成ASCII码值65,所以结果为0~64之间的一个随机数,当rand()%2的结果为1时,整个表达式的值是rand()%"a","a"的ASCII码值为97,所以结果是0~96之间的一个随机数,可见选项A错误;逻辑或运算符||或逻辑与运算符&&的结果都只能是0或非0,所以选项B、C也是错误的;选项D中,如果rand()%2的结果为0,那么整个表达式的值为rand()%26+"A",0~25之间任一个数与"A"的和都是一个大写字母;如果rand()%2的值为1,整个表达式的值为:

rand()%26+"a",0~25之间任一个数与"a"的和都是一个小写字母,所以选项D正确;本题答案为D。

30.以下定义数组的语句中错误的是______。

(分数:

2.00)

 A.intnum[2][4]={{1,2},{3,4},{5,6}} √

 B.intnum[][3]={{1,2},3,4,5,6);

 C.intnum[]={1,2,3,4,5,6};

 D.intnum[][4]={1,2,3,4,5,6};

解析:

[解析]intnum[2][4]定义2行4列数组,赋值给num数组3行错误。

所以选择A。

31.下面程序的运行结果是______。

#include<stdio.h>

#include<string.h>

main()

{char*s1="abDuj";

char*s2="ABdUG";

intt;

t=strcmp(s1,s2);

printf("%d",t);

}

(分数:

2.00)

 A.正数 √

 B.负数

 C..零

 D.不确定的值

解析:

32.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为

(分数:

1.00)

 A.0 √

 B.1

 C.-1

 D.一个非0值

解析:

[解析]文件尾测试函数feof()的应用,读取文件时,当文件中的数据全部读完后,文件位置指针将位于文件的结尾。

此时如果读数据,将会出现错误。

为了保证读写数据的正确性,需要进行文件尾测试,文件尾测试使用函数feof(),它的功能是测试fp指向的文件是否到达文件尾。

若到达文件尾,返回值为非0,否则返回值为0。

在本题中fP指向的某文件还没有到了文件尾,因此返回0。

33.设x=011050,则x=x&01252的值是______。

(分数:

1.00)

 A.0000001000101000 √

 B.1111110100011001

 C.0000001011100010

 D.1100000000101000

解析:

[解析]本题主要考查按位与运算,x=011050的二进制形式为00010010000101000,01252的二进制形式为0000001010101010,两者相与得0000001000101000。

34.函数调用strcat(strcpy(str1,str2),str3)的功能是______。

(分数:

2.50)

 A.将字符串str1复制到字符串str2中后再连接到字符串str3之后

 B.将字符串str1连接到字符串str2之后再复制到字符串str3之后

 C.将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后 √

 D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中

解析:

[解析]strcat(s1,s2)函数的功能是把s2字符串连接到s1字符串末尾,strcpy(s1,s2)是把s2字符串复制到s1字符串,要保证s1的容量。

35.有三个关系R,S和T如下:

R

A

B

C

a

1

2

b

2

1

c

3

1

S

A

B

C

d

3

2

T

A

B

C

a

1

2

b

2

1

c

3

1

d

3

2

其中关系T由关系R和S通过某种操作得到,该操作为______。

(分数:

2.00)

 A.选择

 B.投影

 C..交

 D..并 √

解析:

[解析]在关系T中包含了关系R与S中的所有元组,所以进行的是并的运算,答案为D。

36.下面说明不正确的是

(分数:

2.00)

 A.chara[10]="china";

 B.chara[10],*p=a;p="china"

 C.char*a;a="china";

 D.chara[10],*p;p=a="china" √

解析:

[解析]C语言中操作一个字符串常量的方法有:

①把字符串常量存放在一

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1