计算机二级c语言题库及答案Word文件下载.docx

上传人:b****3 文档编号:8213172 上传时间:2023-05-10 格式:DOCX 页数:16 大小:24.32KB
下载 相关 举报
计算机二级c语言题库及答案Word文件下载.docx_第1页
第1页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第2页
第2页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第3页
第3页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第4页
第4页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第5页
第5页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第6页
第6页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第7页
第7页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第8页
第8页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第9页
第9页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第10页
第10页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第11页
第11页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第12页
第12页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第13页
第13页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第14页
第14页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第15页
第15页 / 共16页
计算机二级c语言题库及答案Word文件下载.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机二级c语言题库及答案Word文件下载.docx

《计算机二级c语言题库及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机二级c语言题库及答案Word文件下载.docx(16页珍藏版)》请在冰点文库上搜索。

计算机二级c语言题库及答案Word文件下载.docx

m联系。

6.右两个关系R和S如下:

则由关系R得到关系S的操作是( 

A.自然连接 

B.并 

C.选择 

D.投影 

6.C。

【解析】选择:

是在数据表中给予一定的条件进行筛选数据。

投影:

是把表中的某几个属性的数据选择出来。

连接:

有自然连接、外连接,内连接等,连接主要用于多表之间的数据查询。

并:

与数学中的并是一样的。

两张表进行并操作,要求它们的属性个数相同并且需要相容。

7.数据字典(DD)所定义的对象都包含于( 

A.软件结构图 

B.方框图 

C.数据流图(DFD图) 

D.程序流程图 

7.C。

【解析】数据字典(DD)是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

8.软件需求规格说明书的作用不包括( 

A.软件设计的依据 

B.软件可行性研究的依据 

C.软件验收的依据 

D.用户与开发人员对软件要做什么的共同理解 

8.B。

【解析】《软件可行性分析报告》是软件可行性研究的依据。

9.下面属于黑盒测试方法的是( 

A.边界值分析 

B.路径覆盖 

C.语句覆盖 

D.逻辑覆盖 

9.A。

【解析】黑盒测试方法主要有等价类划分、边界值分析、因果图、错误推测等。

白盒测试的主要方法有逻辑驱动、路径测试等,主要用于软件验证。

10.下面不属于软件设计阶段任务的是( 

A.制订软件确认测试计划 

B.数据库设计 

C.软件总体设计 

D.算法设计 

10.A。

【解析】软件设计阶段的主要任务包括丙个:

一是进行软件系统的可行性分析,确定软件系统的建设是否值得,能否建成。

二是进行软件的系统分析,了解用户的需求,定义应用功能,详细估算开发成本和开发周期。

11.以下叙述中正确的是( 

A.在C语言程序中,main函数必须放在其他函数的最前面 

B. 

B.每个后缀为C的C语言源程序都可以单独进行编译 

C.在C语言程序中,只有main函数才可单独进行编译 

D.每个后缀为.C的C语言源程序都应该包含一个main函数 

11.B。

【解析】C语言是一种成功的系统描述语言,具有良好的移植性,每个后缀为.C的C语言源程序都可以单独进行编译。

12.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是( 

A.预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义 

B.用户标识符可以由字母和数字任意顺序组成 

C.在标识符中大写字母和小写字母被认为是相同的字符 

D.关键字可用做用户标识符,但失去原有含义 

12.A。

【解析】用户标识符不能以数字开头,C语言中标识符是区分大小写的,关键字不能用做用户标识符。

13.以下选项中表示一个合法的常量是(说明:

符号口表示空格)( 

A.9口9口9 

B.0Xab 

C.123E0.2 

D.2.7e 

13.B。

【解析】当用指数形式表示浮点数据时,E的前后都要有数据,并且E的后面数要为整数。

14.C语言主要是借助以下哪个功能来实现程序模块化?

( 

) 

A.定义函数 

C.定义常量和外部变量 

D. 

C.三种基本结构语句

E. 

D.丰富的数据类型 

14.A。

【解析】C语言是由函数组成的,函数是C语言的基本单位。

所以可以说C语言主要是借助定义函数来实现程序模块化。

15.以下叙述中错误的是( 

A.非零的数值型常量有正值和负值的区分 

B.常量是在程序运行过程中值不能被改变的量 

C. 

C.定义符号常量必须用类型名来设定常量的类型 

D.用符号名表示的常量叫符号常量 

15.C。

【解析】在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。

符号常量在使用之前必须先定义,其一般形式为:

#define标识符常量。

16.若有定义和语句:

int 

a,b;

scanf("

%d,%d"

,&

a,&

b);

以下选项中的输人数据,不能把值3赋给变量a、5赋给变量b的是( 

A.3,5, 

B.3,5,4 

C.3,5 

D.3,5 

16.C。

【解析】在输入3和5之间除逗号外不能有其他字符。

17.C语言中char类型数据占字节数为( 

A.3 

B.4 

C.1 

D.2 

17.C。

【解析】Char类型数据占1个字节。

18.下列关系表达式中,结果为“假”的是( 

A.(3+4)>

B.(3!

=4)>

C.3<

=4‖3 

D.(3<

4)=1 

18.B。

【解析】在一个表达式中,括号的优先级高,先计算3 

!

=4,为真即是l,1>

2为假。

19.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是( 

A.switch(a+9) 

{case 

cl:

y=a-b;

case 

c2:

y=a+b;

B.switch 

a*b 

l0:

x=a+b;

default:

C.switch(a+b) 

{casel:

case3:

break;

case0:

case4:

D.switch(a*a+b*b) 

{default:

3:

2:

19.D。

【解析】选项A,当cl和c2相等时,不成立;

选项B,a*b要用括号括起来;

选项C,case与后面的数字用空格隔开。

20.有以下程序:

#include 

main() 

main()

a=-2,b=0;

while(a++&

&

++b);

printf("

%d,%d\n"

,a,b);

程序运行后的输出结果是( 

A.1,3 

B.0,2 

C.0,3 

D.1,2 

20.D。

【解析】输出的结果是:

-1,1 

0,2 

1,2 

21.设有定义:

x=o,* 

P;

,立刻执行以下语句,正确的语句是( 

A.p=x;

B.* 

p=x;

C.D=NULL;

D.* 

p=NULL;

21.C。

【解析】如果没有把P指向一个指定的值,*P是不能被赋值的。

定义指针变量不赋初始值时默认为null。

22.下列叙述中正确的是( 

A.可以用关系运算符比较字符串的大小 

B.空字符串不占用内存,其内存空间大小是0 

C.C.两个连续的单引号是合法的字符常量 

D.D.两个连续的双引号是合法的字符串常量 

22.D。

【解析】比较两个字符串大小用函数strcomp(S,t),空字符串有结束符,所以也要占用字节,两个双引号表示的是空字符串。

23.有以下程序:

rhar 

a=’H’;

a=(a>

=’A’&

a<

=’2’)?

(a-’A’+’a’):

a;

%c\n"

,a);

A.A 

B.a 

C.H 

D.h 

23.D。

【解析】多元运算符问号前面表达式为真,所以(a-’A’+’a’)赋值给a,括号里的运算是把大写字母变成小写字母,所以答案应为选项D。

24.有以下程序:

f(int 

x);

{

a,b=0;

for(a=0;

3;

a++) 

b=b+f(a);

putchar(’A’+b);

x) 

return 

xl;

A.ABE 

B.BDI

C.BCF

D.BCD 

24.B。

【解析】第一次循环时,b=1,输出结果为B;

第二次循环时,b=3,输出结果为D;

第三次循环时,b=8,输出结果为I。

25.设有定义:

x[2][3];

,则以下关于二维数组X的叙述错误的是( 

A.x[0]可看做是由3个整型元素组成的一维数组 

B.x[0]和x[l]是数组名,分别代表不同的地址常量 

C.数组X包含6个元素 

D.可以用语句x[o]=0;

为数组所有元素赋初值0 

25.D。

【解析】x[0]是不能赋值的。

26.设变量P是指针变量,语句P=NULL;

是给指针变量赋NULL值,它等价于( 

A.p="

"

;

B.p="

0"

C.p=0;

D.p="

26.C。

【解析】在C语言中null等价于数字0。

27.有以下程序:

a[]={10,20,30,40},*p=a,j;

for(i=0;

i<

=3;

i++){a[i]=*P;

p++;

oAd\n"

,a[2]);

A.30 

B.40 

C.10 

D.20 

27.A。

【解析】For循环结束后,数组a的值并没有变化,由于数组是由0开始,所以a[2]的值是30。

28.有以下程序:

#define 

void 

fun(int 

a[][N],int 

b[]) 

i,j;

for(j=i;

x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;

fun(x,y);

程序运行后的输出结果是(,)。

A.2,4,8,

B.3,6,9,

C.3,5,7, 

D.1,3,5, 

28.B。

【解析】Fun函数功能是把数组a的每一行的最大值赋给b,a的第一行的最大值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9。

29.有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数):

{char 

a[10]="

abc"

,b[10]="

012"

,c[10]="

xyz"

strcpy(a+1,b+2);

puts(strcat(a,c+1));

A.al2xyz 

B.12yz

C.a2yz 

D.bc2yz 

29.C。

【解析】第一次执行字符串的复制函数a的值是a2,第二次执行的是字符串的连接函数,所以运行结果为a2yz。

30.以下选项中,合法的是( 

A.char 

str3[]={’d’,’e’,’b’,’u’,’g’,’\0’};

B.char 

str4;

str4="

hello 

world"

C.char 

name[10];

name="

china"

D.char 

strl[5]="

pass"

,str2[6];

str2=strl;

30.A。

【解析】选项B不能把一个字符串赋值给一个字符变量,选项c和D犯了同样的错误是把字符串赋给了数组名。

31.有以下程序:

char*s="

[2]34"

k=0,a=0;

whil(s[k+1]!

=’\o’) 

k++;

if(k%2=o){a=a+(s[k]-’0’+1);

continue;

a=a+(s[k]-’0’);

k=%d 

a=%d\n"

,k,a);

A.k=6 

a=11

B.k=3 

a=14 

C.k=4 

a=12 

D.k=5 

a=15 

31.C。

【解析】输出结果:

k=1 

a=2 

k=2 

a=4 

k=3 

a=7 

k=4 

32.有以下程序:

char 

a[5][10]={"

one"

,"

tw0"

three"

four"

five"

};

t:

、 

4;

i++) 

for(j=i+1;

j<

5;

j++) 

if(a[i][O]>

a[j][0]) 

{t=a[i][O];

a[i][O]=a[j][O];

a[j][O]=t;

puts(a[1]);

A.fwo 

.fix 

C..two 

D..owo 

32.A。

【解析】For循环完成的功能是把二维数组a的第一列的字母按从小到大排序,其他列的字母不变。

33.有以下程序:

a=1,b=2:

funl(int 

a,int 

b) 

{printf( 

%d%d"

fun2() 

a=3;

b=4;

funl(5,6);

fun2();

%d%d\n"

A.1 

B.5 

C.5 

D.3 

33.B。

【解析】Funl是输出局部变量的值,fun2是把全局变量的值改成3和4,所以输出的结果是5634。

34.有以下程序:

func(int 

n) 

static 

num=1);

num=num+n;

%d"

,num);

{funo(3);

func(4);

n"

);

A.4 

B.3 

C.3 

D.4 

34.A。

【解析】第一调用func函数时输出4,第二次调用func函数时num的值并不会释放,仍然是上次修改后的值4,第二次调用结果为8,所以输出结果是4 

8。

35.有以下程序:

fun(int*pl,int*p2,int*s) 

s=(int*)malloc(sizeof(int));

*s=*pl+*p2;

free(s);

{int 

a=1,b=40,*q=&

fun(&

b,q);

%d\n"

,*q);

A.42 

B.0 

D.41 

35.C。

【解析】Fun函数功能是新开辟内存空间存放a和b的地址,q的地址并没有变化,所以应该还是指向地址a。

36.有以下程序:

struct 

STU

name[9];

sex;

score[2];

f(struct 

STU 

a[]) 

b={"

Zhao"

,’m’,85,90);

a[1]=b;

{struct 

c[2]={{"

Qian"

,’f’,95,92},{"

Sun"

,’m’ 

98,99}};

f(c);

printf(”%s,%c,%d,%d,¨

,c[o].name,c[o].sex,c[o].score[o],c[o].score[1]);

%s,%c,%d,%d\n"

,c[1].name,c[1].sex,c[1].score[o],c[1].score 

[1]);

A.Zhao,m,85,90,Sun,m,98,99

Zhao,m,85,90,Qian,f,95,92 

C..Qian,f,95,92,Sun,m,98,99 

.Qian,f,95,92,Zhao,m,85,90 

36.D。

【解析】F函数是为结构体数组的第二个数赋值,数组的第一个数没有变化,所以正确答案应选D。

37.以下叙述中错误的是( 

A.可以用typedef说明的新类型名来定义变量 

B.typedef说明的新类型名必须使用大写字母,否则会出编译错误 

C.用typedef可以为基本数据类型说明一个新名称 

D.用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名 

37.B。

【解析】用typedef说明的类型不是必须用大写,而是习惯上用大写。

38.以下叙述中错误的是( 

A.函数的返回值类型不能是结构体类型,只能是简单类型 

B.函数可以返回指向结构体变量的指针 

C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员 

D.只要类型相同,结构体变量之间可以整体赋值 

38.A。

【解析】函数返回值类型可以是简单类型和结构体类型。

39.若有定义语句int 

b=2;

,则表达式(b<

<

2)/(3‖b)的值是( 

A.4

B.8 

C.0

39.B。

【解析】2的二进制数为010,移两位后的二进制数为01000,转成十制数为8,(3||2)为真即1,8/ 

1=8,所以结果为8。

40.有以下程序:

FILE*fp;

i,a[6]={1,2,3,4,5,6};

fp=fopen("

d2.dat"

w+"

for=(i=o;

6;

,i++)fpintf(fp,"

,a[i]);

rewind(fp);

i%6;

i++)fscanf(fp,"

a[5-i]);

fclose(fp);

i++)printf("

%d,"

A.4,5,6,1,2,3, 

B.1,2,3,3,2,1, 

C.1,2,3,4,5,6,

D.6,5,4,3,2,1, 

40.D。

【解析】这个是对文件的操作,把数组的数写到文件里,然后再从文件里倒序读出。

所以输出结果为6,5,4,3,2,1。

二、基本操作题(共18分) 

str是一个由数字和字母字符组成的字符串,由变量num传人字符串长度。

请补充函数proc(),该函数的功能是:

把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。

例如,str="

abcl23de45f967"

,结果为:

l234567。

注意:

部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

试题程序:

80 

bb[M];

proc(char 

str[],int 

bb[],int 

num) 

i,n=0;

if( 

【1】 

bb[n]=【2】 

n++;

【3】 

str[M];

num=0,n,i;

Enter 

string:

\n"

gets(str);

while(str[num]) 

num++:

n=proc(str,bb,num);

\nbb="

【1】str[i]>

=’0’&

str[i]<

=’9’【2】str

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2