全国计算机二级C语言考试真题及答案.docx

上传人:b****8 文档编号:9235752 上传时间:2023-02-03 格式:DOCX 页数:22 大小:21.51KB
下载 相关 举报
全国计算机二级C语言考试真题及答案.docx_第1页
第1页 / 共22页
全国计算机二级C语言考试真题及答案.docx_第2页
第2页 / 共22页
全国计算机二级C语言考试真题及答案.docx_第3页
第3页 / 共22页
全国计算机二级C语言考试真题及答案.docx_第4页
第4页 / 共22页
全国计算机二级C语言考试真题及答案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

全国计算机二级C语言考试真题及答案.docx

《全国计算机二级C语言考试真题及答案.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言考试真题及答案.docx(22页珍藏版)》请在冰豆网上搜索。

全国计算机二级C语言考试真题及答案.docx

全国计算机二级C语言考试真题及答案

2003年4月全国计算机二级C语言考试真题及答案

一、选择题(

(1)~(40)每小题1分,(41)~(55)每小题2分,共60分)

下列各题A、B、C、D.四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)用8位无符号二进制数能表示的十进制数为

A.127

B.128

C.255

D.256

(2)在64位高档微机中,一个字长所占的二进制位数为

A.8

B.16

C.32

D.64

(3)在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住

A.Alt键

B.Esc键

C.Shift键

D.Ctrl键

(4)在Windows菜单中,暗淡(灰色)的命令项表示该命令

A.暂时不能用

B.正在执行

C.包含下一层菜单

D.包含对话框

(5)在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为

A.TYPE

B.TYPE/H

C.TYPE/*

D.TYPE/?

(6)下列选项中,能作为合法DOS文件名的是

A.ANP/A.DAT

B.ABCCOM

C.ECD.BASIC

D.XY+Z.TXT

(7)下列叙述中正确的是

A.在Windows环境下,化的窗口是不能移动的

B.在Windows环境下,应用程序窗口小化后,该应用程序暂停执行

C.在Windows环境下,只有小化的窗口才能关闭

D.在Windows环境下,不能关闭化的窗口

(8)在Windows环境下,工具栏中的复制按钮是

A.打印机图标

B.剪刀标志

C.复制标志

D.粘贴标志

(9)在Windows98环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按

A.Ctrl+PrintScreen键

B.Alt+PrintScree键

C.Shift+PrintScreen键

D.PrintScreen键

(10)目前,计算机病毒扩散快的途径是

A.通过软件复制

B.通过网络传播

C.通过磁盘考贝

D.运行游戏软件

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

A.C语言比其他语言高级

B.C语言可以不用编译就能被计算机识别执行

C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D.C语言出现的晚,具有其他语言的一切优点

(12)C语言中用于结构化程序设计的三种基本结构是

A.顺序结构、选择结构、循环结构

B.if、switch、break

C.for、while、do-while

D.if、for、continue

(13)在一个C程序中

A.main函数必须出现在所有函数之前

B.main函数可以在任何地方出现

C.main函数必须出现在所有函数之后

D.main函

(14)下列叙述中正确的是

A.C语言中既有逻辑类型也有集合类型

B.C语言中没有逻辑类型但有集合类型

C.C语言中有逻辑类型但没有集合类型

D.C语言中既没有逻辑类型也没有集合类型

(15)下列关于C语言用户标识符的叙述中正确的是

A.用户标识符中可以出现在下划线和中划线(减号)

B.用户标识符中不可以出现中划线,但可以出现下划线

C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D.用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头

(16)若有以下程序段(n所赋的是八进制数)

intm=32767,n=032767

printf("%d,%o/n",m,n);

执行后输出结果是

A.32767,32767

B.32767,032767

C.32767,77777

D.32767,077777

(17)下列关于单目运算符++、--的叙述中正确的是

A.它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D.它们的运算对象可以是char型变量、int型变量和float型变量

(18)若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

printf("%X\n",m);

执行后输出结果是

A.0X0

B.0x0

C.0

D.0XABC

(19)有以下程序段

intm=0,n=0;charc='a';

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:

10A10<回车>,则输出结果是:

A.10,A,10

B.10,a,10

C.10,a,0

D.10,A,0

(20)有以下程序

main()

{inti;

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

switch(i)

{case1:

printf("%d",i);

case2:

printf("%d",i);

default:

printf("%d",i);

}

}

执行后输出结果是

A.011122

B.012

C.012020

D.120

(21)有以下程序

main()

{inti=1,j=1,k=2;

if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);

}

执行后输出结果是

A.1,1,2

B.2,2,1

C.2,2,2

D.2,2,3

(22)有以下程序

main()

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

if(a>b>

C.

printf("%d\n",

D.;

elseif((c-1>=

D.==1)

printf("%d\n",d+1);

else

printf("%d\n",d+2)

}

执行后输出结果是

A.2

B.3

C.4

D.编译时有错,无结果

(23)有以下程序

main()

{intp[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2){k=k+p[i];i++;}

printf("%d\n",k);

}

执行后输出结果是

A.58

B.56

C.45

D.24

(24)有以下程序

main()

{inti=0,s=0;

do{

if(i%2){i++;continue;}

i++;

s+=i;

}while(i<7);

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

}

执行后输出结果是

A.16

B.12

C.28

D.21

(25)有以下程序

main()

{inti=10,j=1;

printf("%d,%d\n",i--,++j);

}

执行后输出结果是

A.9,2

B.10,2

C.9,1

D.10,1

(26)有以下程序

main()

{chara,b,c,*d;

a='\';b='\xbc';

c='\0xab';d="\017";

print("%c%c%c\n",a,b,c,*

D.;

}

编译时出现错误,以下叙述中正确的是

A.程序中只有a='\';语句不正确

B.b='\xbc';语句不正确

C.d="\0127";语句不正确

D.a='\';和c='\0xab';语句都不正确

(27)有以下程序

intfl(intx,inty)

{returnx>y?

x:

y;}

intf2(intx,inty)

{returnx>y?

y:

x;}

main()

{inta=4,b=3,c=5,d,e,f;

d=f1(a,

B.;d=f1(d,

C.;

e=f2(a,

B.;e=f2(e,

C.;

f=a+b+c-d-e;

printf("%d,%d,%d\n",d,f,e);

}

执行后输出结果是

A.3,4,5

B.5,3,4

C.5,4,3

D.3,5,4

(28)有如下程序

voidf(intx,inty)

{intt;

if(x

}

main()

{inta=4,b=3,c=5;

f(a,

B.;f(a,

C.;f(b,

C.;

printf("%d,%d,%d\n",a,b,

C.;

}

执行后输出结果是

A.3,4,5

B.5,3,4

C.5,4,3

D.4,3,5

(29)若有以下定义和语句

#include

inta=4,b=3,*p,*q,*w;

p=&a;q=&b;w=q;q=NULL;

则以下选项中错误的语句是

A.*q=0;

B.w=p;

C.*p=a;

D.*p=*w;

(30)有以下程序

int*f(int*x,int*y)

{if(*x<*y)

returnx;

else

returny;

}

main()

{inta=7,b=8,*p,*q,*r};

}

执行后输出结果是

A.7,8,8

B.7,8,7

C.8,7,7

D.8,7,8

(31)有以下程序

main()

{char*s[]={"one","two","three"},*p;

p=s[1];

printf("%c,%s\n",*(p+1),s[0]);

}

执行后输出结果是

A.n,two

B.t,oneC)w,one

D.o,two

(32)有以下程序

main()

{intx[8]={8,7,6,5,0,0},*s;

s=x+3

printf("%d\n",s[2]);

}

执行后输出结果是

A.随机值

B.0

C.5

D.6

(33)以下能正确定义数组并正确赋初值的语句是

A.intN=5,b[N][N];

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

C.intc[2][]={{1,2},{3,4}};

D.intd[3][2]={{1,2},{34}};

(34)有以下程序

main()

{intm[][3]={1,4,7,2,5,8,3,6,9};

inti,j,k=2;

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

{printf("%d",m[k][i]);}

}

执行后输出结果是

A.456

B.258

C.369

D.789

(35)以下函数的功能是:

通过键盘输入数据,为数组中的所有元素赋值。

#defineN10

voidarrin(intx[N])

{inti=0;

while(i

scanf("%d",);

}

在下划线处应填入的是

A.x+i

B.&x[i+1]

C.x+(i++)D)&x[++i]

(36)有以下程序

main()

{chars[]="\n123\\";

printf("%d,%d\n",strlen(s),sizeof(s));

}

执行后输出结果是

A.赋初值的字符串有错

B.6,7

C.5,6

D.6,6

(37)阅读以下函数

fun(char*s1,char*s2)

{inti=0;

while(s1[i]==s2[i]&&s2[i]!

='\0')i++;

return(s1[i]==&&s2{i}!

=='\0');

}

此函数的功能是

A.将s2所指字符串赋给s1

B.比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0

C.比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

D.比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0

(38)以下叙述中正确的是

A.全局变量的作用域一定比局部变量的作用域范围大

B.静态(stati

C.类别变量的生存期贯穿于整个程序的运行期间

C.函数的形参都属于全局变量

D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值

(39)设有如下说明

typedefstruct

{intn;charc;doublex;}STD;

则以下选项中,能正确定义结构体数组并赋初值的语句是

A.STDtt[2]={{1,'A',62},{2,'B',75}};

B.STDtt[2]={1,"A",62},2,"B",75};

C.structtt[2]={{1,'A'},{2,'B'}};

D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};

(40)有以下程序

main()

{union{unsignedintn;

unsignedcharc;

}u1;

ul.c=`A`;

printf("%c\n",u1.n);

}

执行后输出结果是

A.产生语法错

B.随机值

C.A

D.65

(41)有以下程序

main()

{charstr[]="xyz",*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)puts(ps);

}

执行后的输出结果是

A.yz

B.z

C.z

D.x

xyzyzyzxy

xyzxyz

 

(42)有以下程序

main()

{inta[][3]={{1,2,3},{4,5,0}},{*pa}[3],i;

pa=a;

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

if(i<2)pa[1][i]=pa[1][i]-1;

elsepa[1][i]=1;

printf("%d\n",a[0][1]+a[1][1]+a[1][2]);

}

执行后输出结果是

A.7

B.6

C.8

D.无确定值

(43)有以下程序

voidfun(int*a,inti,intj)

{intt;

if(i

{t=a[i];a[i]=a[j];a[j]=t;

fun(a,++i,--j);

}

}

main()

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

fun(a,0,5)

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

printf("%d",a[i]);

}

执行后的输出结果是

A.654321

B.432156

C.456123

D.123456

(44)有以下程序

main(intarge,char*argv[])

{intn,i=0;

while(arv[1][i]!

='\0'

{n=fun();i++;}

printf(%d\n",n*arg

C.;

}

intfun()

{staticints=0;

s+=1;

returns;

}

假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行

exam123<回车>

则运行结果为

A.6

B.8

C.3D)4

(45)以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

A.main()

B.main

{int*p;{int*p;

fun(p);fun(&p);

}

}

intfun(int*p)intfun(int**p)

{ints;p=&s;}{ints;*p=&s;}

C.#include

D.#include

main()main()

{int*p;{int*p;

fun(&p);fun(p);

}}

intfun(int**p)intfun(int*p)

{*p=(int*)malloc

(2);}{p=(int*)malloc(sizeo(int));}

(46)若要说明一个类型名STP,使得定义语句STPs等价于char*s,以下选项中正确的是

A.typedefSTPchar*s;

B.typedef*charSTP;

C.typedefstp*char;

D.typedefchar*STP;

(47)设有如下定义

structss

{charname[10];

intage;

charsex;

}std[3],*p=std;

下面各输入语句中错误的是

A.scanf("%d",&(*p).age);

B.scanf("%s",&std.name);

C.scanf("%c",&std[0].sex)

D.scanf("%c",&(p->sex));

(48)设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是

A.10101001

B.10101000

C.11111101

D.01010101

(49)以下叙述中不正确的是

A.C语言中的文本文件以ASCⅡ码形式存储数据

B.C语言中对二进制文件的访问速度比文本文件快

C.C语言中,随机读写方式不适用于文本文件

D.C语言中,顺序读写方式不适用于二进制文件

(50)以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。

#include

main()

{FILE*fout;charch;

fout=fopen('abc.txt','w');

ch=fgetc(stdin);

while(ch!

='#')

{fputc(ch,fout);

ch=fgetc(stdin);

}

fclose(fout);

}

出错的原因是

A.函数fopen调用形式错误

B.输入文件没有关闭

C.函数fgetc调用形式错误

D.文件指针stdin没有定义

(42)有以下程序

main()

{inta[][3]={{1,2,3},{4,5,0}},{*pa}[3],i;

pa=a;

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

if(i<2)pa[1][i]=pa[1][i]-1;

elsepa[1][i]=1;

printf("%d\n",a[0][1]+a[1][1]+a[1][2]);

}

执行后输出结果是

A.7

B.6

C.8

D.无确定值

(43)有以下程序

voidfun(int*a,inti,intj)

{intt;

if(i

{t=a[i];a[i]=a[j];a[j]=t;

fun(a,++i,--j);

}

}

main()

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

fun(a,0,5)

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

printf("%d",a[i]);

}

执行后的输出结果是

A.654321

B.432156

C.456123

D.123456

(44)有以下程序

main(intarge,char*argv[])

{intn,i=0;

while(arv[1][i]!

='\0'

{n=fun();i++;}

printf(%d\n",n*argc);

}

intfun()

{staticints=0;

s+=1;

returns;

}

假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行

exam123<回车>

则运行结果为

A.6

B.8

C.3

D.4

(45)以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

A)main()B)main

{int*p;{int*p;

fun(p);fun(&p);

}

}

intfun(int*p)intfun(int**p)

{ints;p=&s;}{ints;*p=&s;}

C)#include D)#include

main()main()

{int*p;{int*p;

fun(&p);fun(p);

}}

intfun(int**p)intfun(int*p)

{*p=(int*)malloc

(2);}{p=(int*)malloc(sizeo(int));}

(46)若要说明一个类型名STP,使得定义语句STPs等价于char*s,以下选项中正确的是

A.typedefSTPchar*s;

B.typedef*charSTP;

C.typedefstp*char;

D.typedefchar*STP;

(47)设有如下定义

structss

{charname[10];

intage;

charsex;

}std[3],*p=std;

下面各输入语句中错误的是

A.scanf("%d",&(*p).age);

B.scanf("%s",&std.name);

C.scanf("%c",&std[0].sex)

D.scanf("%c",&(p->sex));

(48)设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是

A.10101001

B.10101000

C)11111101

D.01010101

(49)以下叙述中不正确的是

A.C语言中的文本文件以ASCⅡ码形式存储数据

B.C语言中对二进制文件的访问速度比文本文件快

C.C语言中,随机读写方式不适用于文本文件

D.C语言中,顺序读写方式不适用于二进制文件

(50)以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。

#include

main()

{FILE*fout;charch;

fout=fopen('abc.txt','w');

ch=fgetc(stdin);

while(ch!

='#')

{fputc(ch,fout);

ch=fgetc(stdin);

}

fclose(fout);

}

出错的原因是

A.函数fopen调用形式错误

B.输入文件没有关闭

C.函数fgetc调用形式错误

D.文件指针stdin没有定义

二、填空题(每空2分,共20分)

请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分。

(1)用十六进制绘存储器中的字节地址进行编号,若地址编号从000到FFFF,则该存诸器的容量为【1】KB。

(2)假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。

若使用COPY命令,则完整的命令为【2】。

(3)E-mail地址由用户和域名两部分组成,这两部分的分隔符为【3】。

(4)假设在当前盘当前目录下有一个可执行程序USER.EXE。

现要执行该

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

当前位置:首页 > 农林牧渔 > 林学

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

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