二级C语言笔试真题及答案.docx
- 文档编号:23011297
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:24
- 大小:30.17KB
二级C语言笔试真题及答案.docx
《二级C语言笔试真题及答案.docx》由会员分享,可在线阅读,更多相关《二级C语言笔试真题及答案.docx(24页珍藏版)》请在冰豆网上搜索。
二级C语言笔试真题及答案
2003年4月二级C语言笔试真题及答案
(考试时间120分钟,满分100分)
一、选择题(
(1)~(40)每小题1分,(41)~(55)每小题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
用8位无符号二进制数能表示的最大十进制数为
A)127B)128C)255D)256
在64位高档微机中,一个字长所占的二进制位数为
A)8B)16C)32D)64
在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住
A)Alt键B)Esc键C)Shift键D)Ctrl键
在Windows菜单中,暗淡(灰色)的命令项表示该命令
A)暂时不能用B)正在执行C)包含下一层菜单D)包含对话框
在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为
A)TYPEB)TYPE/HC)TYPE/*D)TYPE/?
下列选项中,能作为合法DOS文件名的是
A)ANP/A.DATB)ABCCOMC)ECD.BASICD)XY+Z.TXT
下列叙述中正确的是
A)在Windows环境下,最大化的窗口是不能移动的
B)在Windows环境下,应用程序窗口最小化后,该应用程序暂停执行
C)在Windows环境下,只有最小化的窗口才能关闭
D)在Windows环境下,不能关闭最大化的窗口
在Windows环境下,工具栏中的复制按钮是
A)B)C)D)
在Windows98环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按
A)Ctrl+PrintScreen键B)Alt+PrintScree键
C)Shift+PrintScreen键D)PrintScreen键
目前,计算机病毒扩散最快的途径是
A)通过软件复制B)通过网络传播
C)通过磁盘考贝D)运行游戏软件
以下叙述中正确的是
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)C语言出现的最晚,具有其他语言的一切优点
C语言中用于结构化程序设计的三种基本结构是
A)顺序结构、选择结构、循环结构B)if、switch、break
C)for、while、do-whileD)if、for、continue
在一个C程序中
A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置
下列叙述中正确的是
A)C语言中既有逻辑类型也有集合类型
B)C语言中没有逻辑类型但有集合类型
C)C语言中有逻辑类型但没有集合类型
D)C语言中既没有逻辑类型也没有集合类型
下列关于C语言用户标识符的叙述中正确的是
用户标识符中可以出现在下划线和中划线(减号)
用户标识符中不可以出现中划线,但可以出现下划线
用户标识符中可以出现下划线,但不可以放在用户标识符的开头
用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头
若有以下程序段(n所赋的是八进制数)
intm=32767,n=032767
printf("%d,%o/n",m,n);
执行后输出结果是
A)32767,32767B)32767,032767
C)32767,77777D)32767,077777
下列关于单目运算符++、--的叙述中正确的是
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%X\n",m);
执行后输出结果是
A)0X0B)0x0C)0D)0XABC
有以下程序段
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,10B)10,a,10C)10,a,0D)10,A,0
有以下程序
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
执行后输出结果是
A)011122B)012C)012020D)120
有以下程序
main()
{inti=1,j=1,k=2;
if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);
}
执行后输出结果是
A)1,1,2B)2,2,1C)2,2,2D)2,2,3
有以下程序
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)2B)3C)4D)编译时有错,无结果
有以下程序
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)58B)56C)45D)24
有以下程序
main()
{inti=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);
}
执行后输出结果是
A)16B)12C)28D)21
有以下程序
main()
{inti=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后输出结果是
A)9,2B)10,2C)9,1D)10,1
有以下程序
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’;语句都不正确
有以下程序
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,5B)5,3,4C)5,4,3D)3,5,4
有如下程序
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,5B)5,3,4C)5,4,3D)4,3,5 若有以下定义和语句 #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; 有以下程序 int*f(int*x,int*y) {if(*x<*y) returnx; else returny; } main() {inta=7,b=8,*p,*q,*r}; } 执行后输出结果是 A)7,8,8B)7,8,7C)8,7,7D)8,7,8 有以下程序 main() {char*s[]={"one","two","three"},*p; p=s[1]; printf("%c,%s\n",*(p+1),s[0]); } 执行后输出结果是 A)n,twoB)t,oneC)w,oneD)o,two 有以下程序 main() {intx[8]={8,7,6,5,0,0},*s; s=x+3 printf("%d\n",s[2]); } 执行后输出结果是 A)随机值B)0C)5D)6 以下能正确定义数组并正确赋初值的语句是 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}}; 有以下程序 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)456B)258C)369D)789 以下函数的功能是: 通过键盘输入数据,为数组中的所有元素赋值。 #defineN10 voidarrin(intx[N]) {inti=0; while(i scanf("%d",); } 在下划线处应填入的是 A)x+iB)&x[i+1]C)x+(i++)D)&x[++i] 有以下程序 main() {chars[]="\n123\\"; printf("%d,%d\n",strlen(s),sizeof(s));} 执行后输出结果是 A)赋初值的字符串有错B)6,7C)5,6D)6,6 阅读以下函数 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 以下叙述中正确的是 A)全局变量的作用域一定比局部变量的作用域范围大 B)静态(static)类别变量的生存期贯穿于整个程序的运行期间 C)函数的形参都属于全局变量 D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值 设有如下说明 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}}; 有以下程序 main() {union{unsignedintn; unsignedcharc; }u1; ul.c=`A`; printf("%c\n",u1.n); } 执行后输出结果是 A)产生语法错B)随机值C)AD)65 有以下程序 main() {charstr[]="xyz",*ps=str; while(*ps)ps++; for(ps--;ps-str>=0;ps--)puts(ps); } 执行后的输出结果是 A)yzB)zC)zD)x xyzyzyzxy xyzxyz 有以下程序 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)7B)6C)8D)无确定值 有以下程序 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)654321B)432156C)456123D)123456 有以下程序 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)6B)8C)3D)4 以下程序段中,能够通过调用函数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 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));} 若要说明一个类型名STP,使得定义语句STPs等价于char*s,以下选项中正确的是 A)typedefSTPchar*s;B)typedef*charSTP; C)typedefstp*char;D)typedefchar*STP; 设有如下定义 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)); 设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是 A)10101001B)10101000C)11111101D)01010101 以下叙述中不正确的是 A)C语言中的文本文件以ASCⅡ码形式存储数据 B)C语言中对二进制文件的访问速度比文本文件快 C)C语言中,随机读写方式不适用于文本文件 D)C语言中,顺序读写方式不适用于二进制文件 以下程序企图把从终端输入的字符输出到名为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。 假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。 若使用COPY命令,则完整的命令为【2】。 E-mail地址由用户和域名两部分组成,这两部分的分隔符为【3】。 假设在当前盘当前目录下有一个可执行程序USER.EXE。 现要执行该程序,并要求在执行过程中将显示输出的结果信息存入当前盘当前目录的文件OUT.DAT中,则完整的DOS命令为【4】。 在DOS环境下,表示打印机的设备文件名为【5】。 若有语句 inti=-19,j=i%4; printf("%d\n",j); 则输出结果是 【6】 。 若有程序 main() {inti,j; scanf("i=%d,j=%d";&i,&j); printf("i=%d,j=%d\n",i,j); } 要求给i赋10,给j赋20,则应该从键盘输入 【7】 。 若有以下程序 main() {intp,a=5; if(p=a! =0) printf("%d\n",p); else printf("%d\n",p+2); } 执行后输出结果是 【8】 。 若有以下程序 main() {inta=4,b=3,c=5,t=0; if(a if(a printf("%d%d%d\n",a,b,c); } 执行后输出结果是【9】。 若有以下程序 main() {inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; inti,j,s=0; for(i=0;i<4;i++) {for(j=0;j<4;j++) {if(a[i][j]<0)continue; if(a[i][j]==0)break; s+=a[i][j]; } } printf("%d\n",s); } 执行后输出的结果是 【10】 。 若有以下程序 main() {chara; a='H'-'A'+'0'; print("%c\n",a); } 执行后的输出结果是【11】。 若有以下程序 intf(intx,inty) {return(y-x)*x;} main() {inta=3,b=4,c=5,d; d=f(f(3,4),f(3,5)); printf("%d\n",d); } 执行后输出的结果是【12】。 函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下 1 11 121 1331 14641 … 其构成规律是: 第0列元素和主对角线无素均为1 其余元素为其左上方和正上方元素之和 数据的个数每行递增1 请将程序补充完整。 #defintN6 voidYangHui(int*[N][N]) {inti,j; x[0][0]=1 for(i=1;i {x[i][0]=【13】=1; for(j=1;j x[i][j]=【14】; } } 以下函数的功能是删除字符串s中的所有数字字符。 请填空。 voiddele(char*s) {intn=0,i; for(i=0,s[i];i++) if(【15】) s[n++]=s[i]; s[n]=【16】; } 设函数findbig已定义为求3个数中的最大值。 以下程序将利用函数指针调用findbig函数。 请填空。 main() {intfindbig(int,int,int); int(*f)(),x,yz,z,big; f=【17】; scanf("%d%d%d",&x,&y,&z); big=(*f)(x,y,z); printf("bing=%d\n",big); } 以下程序的输出结果是【18】。 #defintMCRA(m)2*m #defineMCRB(n,m)2*MCRA(n)+m main() {inti=2,j=3; printf("%d\n",MCRB(j,MCRA(i))); } 设有以下定义 structs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 笔试 答案