全国计算机二级C语言考试真题及答案.docx
- 文档编号:9235752
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:22
- 大小:21.51KB
全国计算机二级C语言考试真题及答案.docx
《全国计算机二级C语言考试真题及答案.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言考试真题及答案.docx(22页珍藏版)》请在冰豆网上搜索。
全国计算机二级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。
现要执行该
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 语言 考试 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)