计算机二级C语言笔试322Word文档下载推荐.docx

上传人:b****6 文档编号:21000371 上传时间:2023-01-26 格式:DOCX 页数:26 大小:26.34KB
下载 相关 举报
计算机二级C语言笔试322Word文档下载推荐.docx_第1页
第1页 / 共26页
计算机二级C语言笔试322Word文档下载推荐.docx_第2页
第2页 / 共26页
计算机二级C语言笔试322Word文档下载推荐.docx_第3页
第3页 / 共26页
计算机二级C语言笔试322Word文档下载推荐.docx_第4页
第4页 / 共26页
计算机二级C语言笔试322Word文档下载推荐.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

计算机二级C语言笔试322Word文档下载推荐.docx

《计算机二级C语言笔试322Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言笔试322Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。

计算机二级C语言笔试322Word文档下载推荐.docx

④软件实现:

把软件设计转换成计算机可以接受的程序代码。

即完成源程序的编码,编写用户手册、操作手册等面向用户的文档,编写单元测试计划。

⑤软件测试:

在设计测试用例的基础上,检验软件的各个组成部分,编写测试分析报告。

⑥运行和维护:

将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。

第6题:

数据流图中方框表示的是

A.数据流

B.存储文件

C.控制流

D.源,潭

数据流图是描述数据处理过程的工具,它从数据传递和加工的角度,来刻画数据流从输入到输出的变化过程。

数据流图中的主要图形元素有:

圆形表示加工,箭头表示数据流,双杠表示存储文件,方框表示源、潭。

第7题:

下列对于软件测试的描述中正确的是

A.软件测试的主要目的是发现程序中的错误

B.软件测试的目的是证明程序是否正确

C.软件测试的目的是使程序运行结果正确

D.软件测试是为了证明软件中没有错误

软件测试的目标是发现软件中的错误。

第8题:

数据库、数据库系统和数据库管理系统之间的关系是

A.数据库包括数据库系统和数据库管理系统

B.数据库系统包括数据库和数据库管理系统

C.数据库管理系统包括数据库和数据库系统

D.三者没有明显的包含关系

B

数据库系统有数据库、数据库管理系统、数据库管理员、硬件平台、软件平台5部分构成。

第9题:

设有图书(图书编号,书名,第一作者,出版社)、读者(借书证号,姓名,单位,职称)和借阅(借书证号,图书编号,借书日期,还书日期)三张表,则表借阅的关键字(键或码)为

A.借书证号,图书编号

B.图书编号,借书日期

C.借书日期,还书日期

D.借书证号,借书日期

在二维表中凡能唯一标识元组的最小属性集称为关键字,关键字具有标识元组、建立元组间联系等重要作用。

此题中,借书证号,图书编号是表借阅的主键,借书证号、图书编号分别是外键,借书证号是读者表的主关键字,图书编号是图书表的主关键字。

第10题:

有三个关系R、S和T如下:

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

A.并

B.自然连接

C.笛卡儿积

D.交

在关系运算中,交的定义如下:

设R1和R2为参加运算的两个关系,它们具有相同的度n,且相对应的属性值取自同一个域,则为交运算,结果仍为度等于n的关系,其中,交运算的结果既属于R1,又属于R2。

第11题:

A.每个C语言程序文件中都必须要有一个main()函数

B.在C语言程序中main()函数的位置是固定的

C.C语言程序中所有函数之间都可以相互调用,与函数所在位置无关

D.在C语言程序的函数中不能定义另一个函数

main函数是C语言程序的主函数,可以出现在程序中的任何位置。

函数是C语言程序的基本模块,函数内部可以再定义其他函数。

但函数间可相互调用,被调用的既可以是C语言提供的库函数,也可以是用户自定义的函数。

第12题:

以下合法的十六进制数是

A.0x

B.0x4de

C.0x1h

D.0x77

考查十六进制数的表示方法。

十六进制数以0x开头,后面跟着若干位0~9和a~f的数,所以正确答案为B)。

第13题:

已知大写字母A的ASCII码的值是65,小写字母a的ASCII码的值是97,以下不能将变量c中的大写字母转换为对应小写字母的语句是

A.c=(c-´

)%26+´

B.c=c+32

C.c=c-´

D.c=(´

+c)%26-´

无论大小写,字母间的间隔都相等,所以´

,因此´

,选项A)、C)正确。

从题述可知,´

=97-65=32,所以´

+32,选项B)正确。

第14题:

若变量已正确定义并赋值,以下符合C语言语法的表达式是

A.a:

=b+1

B.a=b=c+2

C.int18.5%3

D.a=a+7=c+b

选项A)中包含一个不合法的运算符“:

=”;

选项C)应改为(int)18.5%3;

选项D)可理解为两个表达式:

a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。

因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:

b=c+2和a=b。

第15题:

设变量a是int型,f是float型,i是double型,则表达式10+´

+i*f值的数据类型为

A.int

B.float

C.double

D.不确定

根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。

第16题:

有以下程序:

#include〈stdio.h〉

main()

{

chalc1=´

,c2=´

;

c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

}

当运行时输入:

a〈回车〉后,以下叙述正确的是

A.变量c1被赋予字符a,c2被赋予回车符

B.程序将等待用户输入第2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2

D.变量c1被赋予字符a,c2中将无确定值

本题考查的是输入输出函数。

函数getchar()的作用是从终端(或系统隐含指定的输入设备)输入一个字符,且只能接受一个字符(回车符也算是一个字符)。

故本题中变量c1被赋予字符a,c2被赋予回车符。

第17题:

下列程序的输出结果是

#include"

stdio.h"

{inti,a=0,b=0;

for(i=1;

i〈10;

i++)

{if(i%2==0)

{a++;

continue;

b++;

printf("

a=%d,b=%d"

a,b);

A.a=4,b=4

B.a=4,b=5

C.a=5,b=4

D.a=5,b=5

continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。

当能被2整除时,a就会增加1,之后执行continue语句,直接执行到for循环体的结尾,进行i++,判断循环条件。

第18题:

设变量a、b、c、d和y都已正确定义并赋值。

若有以下if语句:

if(a〈b)

if(c==d)y=0;

elsey=1;

该语句所表示的含义是

A.

B.

C.

D.

本题考查if语句的使用。

整个语句都是以a〈b为假设的,在a〈b的情况下,如果c=d,则y=0;

否则y=1。

所以答案为选项C)。

第19题:

若a是数值类型,则逻辑表达式(a==1)||(a!

=1)的值是

A.0

B.1

C.2

D.不知道a的值,不能确定

当a=1时,(a==1)||(a!

=1)为真;

当a!

=1时,(a==1)||(a!

=1)也为真,故正确答案为B)。

第20题:

#include〈stdio.h〉

{ints;

scaIlf("

%d"

&s);

while(s〉0)

{switch(s)

{case1:

printf("

s+5);

case2:

s+4).break;

case3:

s+3);

default:

s+1)Ibreak;

scanf("

,&s);

运行时,若输入123450〈回车〉,则输出结果是

A.6566456

B.66656

C.66666

D.6666656

switch语句执行完一个case后面的语句后,流程控制转移到下一个case语句继续执行,遇到break会跳出本次循环。

本题中输入1时会输出65,输入2时会输出6,输入3时会输出64,输入4时会输出5,输入5时会输出6,在输入0时不满足循环条件,程序执行结束。

第21题:

有如下程序:

inta[10]={11,12,13,14,15,16,17,18,19,20};

int*p=&a[3],b;

b=p[5];

则b的值是

A.15

B.16

C.18

D.19

p=&a[3]将指针指向数组a的第4个元素,p[5]指向数组a的第9个元素,而a[8]=19,所以b=19。

第22题:

以下程序的输出结果是

Fun(intx,inty)

{return(x+y);

}

{inta=1,b=2,c=3,sum;

sum=Fun((a++,b++,a+b),c++);

sum);

A.9

B.8

C.7

D.6

逗号表达式a++,b++,a+b先计算a++,a=2;

再计算b++,b=3;

表达式的值就是a+b的值,为5。

表达式c++的值是c递增前的值,为3。

所以fun((a++,b++,a+b),c++)等价于fun(5,3),返回值为5+3=8。

第23题:

{inti=5;

do

{if(i%3==1)

if(i%5==2)

{printf("

%%d"

i);

break;

i++;

}while(i!

=0);

\n"

);

程序的运行结果是

A.*7

B.*3*5

C.*5

D.*2*6

整个程序中只有对i增加的语句而没有对i减少的语句,所以2、3都不可能出现,选项B)和D)错误。

而1=5时第一个if语句的表达式为假,所以选项C)也错误。

第24题:

以下函数按每行8个输出数组中的数据:

voidfun(int*w,intn)

{inti;

for(i=0;

i〈n;

{______

w[i]);

下划线处应填入的语句是

A.if(i/8==0)printf("

B.if(i/8==0)continue;

C.if(i%8==O)printf("

D.if(i%8==0)continue;

在C语言循环语句中,continue用来跳出当次循环,因此B)项和D)项不正确。

if(i/8==0)是指当i除以8的得数等于0,即i的值小于8时,打印换行,因此A)项也不正确。

if(i%8==0)是指当i除以8的余数等于0,即当间隔8个数时,打印换行,因此选项C)正确。

第25题:

以下数组定义中错误的是

A.intx[][3]={0};

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

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

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

二维数组的初始化有以下几种形式:

①分行进行初始化;

②不分行进行初始化;

③部分数组元素进行初始化;

④省略第一维的定义,不省略第二维的定义。

选项B)等号右边分了3行,大于等号左边数组的行数2。

第26题:

#include〈string.h〉

{charp[]={´

´

},q[10]={´

};

%d%d\n"

strlen(p),strlen(q));

以下叙述中正确的是

A.在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3

B.由于p数组中没有字符串结束符,长度不能确定;

但q数组中字符长度为3

C.由于q数组中没有字符串结束符,长度不能确定;

但p数组中字符长度为3

D.由于p和q数组中没有字符串结束符,故长度都不能确定

本题考查的是库函数的调用。

strlen()是计算以"

\0"

结束的字符串的长度函数,函数的值为字符串的实际长度,不包括"

题中"

q[10]={´

,´

}"

虽然给出了数组大小,即数组实际分配的存储空间,但此字符串只占用前3个存储单元,其余存储单元系统自动加上"

,故数组q的长度为3;

由于p数组中没有字符串结束符,故字符串的长度不能确定。

第27题:

若有以下程序:

inta[]={1,3,5,7};

int*p=a;

i〈4;

i++)a[i]=*p;

%d\n"

a[2]);

上面程序的输出结果是

A.5

B.7

C.l

D.3

在C语言中,数组元素下标是从0开始的;

指针变量p指向数组的首地址。

for循环语句中,指针变量p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为1。

第28题:

若有定义语句:

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

则下面对m数组元素的引用中错误的是

A.m[--i]

B.m[2*2]

C.m[m[0]]

D.m[m[i]]

数组m下标从0~4计算,共5个元素,选项C)中m[0]=5,则m[m[0]]为m[5]中,超出了数组m的下标范围。

因此正确答案为C)。

第29题:

设有以下说明语句:

typedefstruct

{intn;

charch[8];

}PER;

则下面叙述中正确的是

A.PER是结构体变量名

B.PER是结构体类型名

C.typedefstruct是结构体类型

D.struct是结构体类型名

本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

第30题:

intfun(intn)

{if(n==1)return1;

else

return(n+fun(n-1));

{intx;

&x);

x=fun(x);

printf("

x)

执行程序时,给变量x输入10,程序的输出结果是

A.54

B.55

C.65

D.45

本题考查的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,执行结果为1+2+3+4+5+6+7+8+9+10=55。

第31题:

sub(int*s,inty)

{staticintt=3;

y=s[t];

t--;

{inta[]={1,2,3,4},i,x=0;

i〈4;

i++){

sub(a,x);

x);

A.1234

B.4321

C.OOOO

D.4444

本题的考查点是函数的形参和实参的关系。

x作为函数sub()的实参时,函数对x值的改变没有返回主函数,并没能使得x的值变化,所以在打印时,x的值始终是0。

第32题:

#defineF(x,y)(x)*(y)

inta=3,b=4;

F(a++,b++));

程序运行后的输出结果是

A.12

B.15

C.16

D.20

本题的考查点是带参数的宏定义。

本题的程序中就定义了一个带参数的宏,对F(a++,b++)进行展开后,宏的返回值为12,注意a++,b++都是先使用变量值,再自增。

第33题:

以下程序运行时,若从键盘输入102030〈回车〉,输出的结果是

{inti=0,j=0,k=0;

%d%*d%d"

&i,&j,&k);

%d%d%d\n"

i,j,k);

A.10200

B.102030

C.10300

D.10030

根据scanf()函数附加的格式说明字符,可知%后的“*”是附加说明符,用来表示跳过它相应的数据,所以本题中忽略第2个数据的输入,则i=10,j=30,k的值不变,还是0,所以输出结果是10300。

第34题:

{char*a[]={"

abcd"

"

ef"

gh"

ijk"

inti;

i++)printf("

%c"

,*a[i]);

A.aegi

B.dfhk

C.abcd

D.abcdefghijk

a为一个指针数组,其中的每个元素都是一个指针。

该程序的功能是分别打印4个字符串的首字母,因此本题答案为A)。

第35题:

以下程序执行后的输出结果是

fun(intx,inty)

{staticintm=0,i=2;

i+=m+1;

m=i+x+y;

returnm;

{intj=1,m=1,k;

k=fun(j,m);

%d,"

k);

A.5,5

B.5,11

C.11,11

D.11,5

maln函数中的局部变量m与fun函数中的静态局部变量m同名,因此main访问的是其局部变量m,所以main中的两次函数调用,实际上都是调用fun(1,1)。

第一次调用时,i=i+(m+1)=2+(0+1)=3,m=i+x+y=3+1+1=5。

第二次调用时,i=i+(m+1)=3+(5+1)=9,m=i+x+y=9+1+1=11。

所以程序输出5,11。

第36题:

阅读下面程序,则执行后的结果是

stdio,h"

{charstr[]="

tomeetme"

*p;

for(p=str;

p〈str+7;

p+=2)putchar(*p);

A.tomeetme

B.tmem

C.oete

D.tome

存放字符串的字符数组的名字就是这个字符串的首地址。

本题的功能是对字符串“tomeetme”进行选择式输出,从第一个字母开始,每输出一个字符即跳过一个。

第37题:

{charch[]="

uvwxyz"

*pc;

pc=ch;

%c\n"

,*(pc+5));

A.z

B.0

C.元素ch[5]的地址

D.字符y的地址

本题考查的是指向数组的指针。

本题中定义了一个字符串数组和指针,并将指针pc指向该数组的首地址,执行输出语句“printf("

%c\n"

,%(pc+5));

”。

语句中的*(pc+5)指的就是pc[5]的值,所以最后输出的结果为z。

第38题:

设有定义:

structcomplex

{intreal,unreal;

}data1={1,8},data2;

则以下赋值语句中错误的是

A.data2=da

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

当前位置:首页 > 人文社科 > 哲学历史

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

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