C语言程序设计练习题.docx
- 文档编号:5403708
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:9
- 大小:21.02KB
C语言程序设计练习题.docx
《C语言程序设计练习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题.docx(9页珍藏版)》请在冰豆网上搜索。
C语言程序设计练习题
(考试时间:
120分钟,满分100分)
一、选择题(
(1)-(40)题每题1分,(41)-(50)题每题2分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(l)在计算机系统中,一个字节的二进制位数为
A)16B)8C)4D)由CPU的型号决定
(2)存储16×16点阵的一个汉字信息,需要的字节数为
A)32B)64C)128D)256
(3)英文大写字母B的ASCII码为42H,英文小写字母b的ASCII码为
A)43HB)84HC)74HD)62H
(4)下列计算机语言中,CPU能直接识别的是
A)自然语言B)高级语言C)汇编语言D)机器语言
(5)在计算机领域中,所谓"裸机"是指
A)单片机B)单板机
C)不安装任何软件的计算机D)只安装操作系统的计算机
(6)下列带有通配符的文件名中,能代表文件ABCDEF.DAT的是
A)A*.*B)?
F.*C)*.?
D)AB?
.*
(7)下列DOS命令中,执行时不会发生错误的是
A)TYPE*.TXTB)DIR*.TXT
C)RENEAST.TXTA:
b.TXTD)COPY*.TXT>CON
(8)设当前盘为C盘,C盘的当前目录为\A\B\C。
下列DOS命令中能正确执行的是
A)MD\B)MDA:
\C)MD\A\BD)CDC:
(9)为了将C:
USER中的文件FILE.TXT同名复制到A盘根目录下,下列DOS命令中能正确执行的是
A)TYPEC:
\USER\FILE.TXT>A:
\FILE.TXT
B)TYPEC:
\USER\FILE.TXTA:
\FILE.TXT
C)COPYC:
\USER\FILE.TXT>A:
\FILE.TXT
D)COPYC:
\USER\FILE.TXT
(10)在Windows下,当一个应用程序窗口被最小化后,该应用程序
A)终止运行B)暂停运行C)继续在后台运行D)继续在前台运行
(11)在Windows环境下,下列操作中与剪贴板无关的是
A)剪切B)复制C)粘贴D)删除
(12)在Windows环境下,实现窗口移动的操作是
A)用鼠标拖动窗口中的标题栏B)用鼠标拖动窗口中的控制按钮
C)用鼠标拖动窗口中的边框D)用鼠标拖动窗口中的任何部位
(13)一台计算机连入计算机网络后,该计算机
A)运行速度会加快B)可以共享网络中的资源
C)内存容量变大D)运行精度会提高
(14)不能作为计算机网络中传输介质的是
A)微波B)光纤C)光盘D)双绞线
(15)下列各项中,不属于多媒体硬件的是
A)声卡B)光盘驱动器C)显示器D)多媒体制作工具
(16)在C语言中,合法的长整型常数是
A)OLB)4962710C)324562&D)216D
(17)以下有4组用户标识符,其中合法的一组是
A)ForB)4dC)f2_G3D)WORD
-subDOIFvoid
CaseSizeabcdefine
(18)以下选项中合法的字符常量是
A)"B"B)'\010'C)68D)D
(19)假定x和y为double型,则表达式x=2,y=x+3/2的值是
A)3.500000B)3C)2.000000D)3.000000
(20)以下合法的赋值语句是
A)x=y=100B)d--;C)x+y;D)c=int(a+b);
(21)设正x、y均为整型变量,且x=10y=3,则以下语句的输出结果是
pprintf("%d,%d\n",x--,--y);
A)10,3B)9.3C)9.2D)10.2
(22)x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是
A)INPUTx、y、z;B)scanf("%d%d%d",&x,&y,&z);
C)scanf("%d%d%d",x,y,z);D)read("%d%d%d",&x,&y,&z);
(23)以下程序的输出结果是
main()
{inta=3;
printf("%d\n",(a+a-=a*a));
}
A)-6B)12C)0D)-12
(24)设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为
A)0B)1C)2D)3
(25)阅读以下程序:
main()
{intx;
scanf("%d",&x);
if(x--<5)printf("%d"'x);
elseprintf("%d"'x++);
}
程序运行后,如果从键盘上输人5,则输出结果是
A)3B)4C)5D)6
(26)假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4;
m=(w w;x;m=(m m;y;m=(m m;z; 则该程序运行后,m的值是it A)4B)3C)2D)2 (27)t为int类型,进人下面的循环之前,t的值为0 while(t=l) {……} 则以下叙述中正确的是 A)循环控制表达式的值为0B)循环控制表达式的值为1 C)循环控制表达式不合法D)以上说法都不对 (28)以下程序的输出结果是 main() {intnum=0; while(num<=2) {num++;printf("%d\n",num); } A}1B}1C}1D}l 222 33 4 (29)以下各选项企图说明一种新的类型名,其中正确的是 A}typedefv1int;B}typedefv2=int; C}typedefv1intv3;D}typedefv4: int; (30)在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 A}地址传递B}单向值传递 C}由实参传给形参,再由形参传回实参D}传递方式由用户指定 (31)以下函数值的类型是 fun(floatx) {floaty; y=3*x-4; returny; } A}intB}不确定C}voidD}float (32)设有以下函数: f(inta) {intb=0; staticintc=3; b++;c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是 main() {inta=2,i; for(i=0;i<3;i++)printf("%d\n",f(a)); } A}7B}7C}7D}7 89107 911137 (33)以下程序的输出结果是 main() {charc='z'; printf("%c",c-25); } A}aB}ZC}z-25D}y (34)以下选项中,非法的字符常量是 A}'\t'B}'\17'C}"n"D}'\xaa' (35)若有说明: inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是 A}i=*p;B}p*=*&j;C}i=&j;D}i=**p; (36)以下定义语句中,错误的是 A}inta[]={1,2};B}char*a[3]; C}chars[10]="test";D)intn=5,a[n]; (37)假定int类型变量占用两个字节,其有定义: intx[10]={0,2,4};,则数组x在内存中所占字节数是 A)3B)6C)10D)20 (38)以下程序的输出结果是 main() {inti,a[10]; for(i=9;i>=0;i--)a[i]=10-i; printf("%d%d%d",a[2],a[5],a[8]); } A)258B)741C)852D)369 (39)以下数组定义中不正确的是 A)inta[2][3]; B)intb[][3]={0,1,2,3}; C)intc[100][100]={0}; D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}}; (40)以下程序的输出结果是 main() {inta[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]; } A)0650B)1470C)5430D)输出值不定 (41)以下程序的输出结果是 main() {charst[20]="hello\0\t\\\"; printf(%d%d\n",strlen(st),sizeof(st)); } A)99B)520C)1320D)2020 (42)以下选项中,不能正确赋值的是 A)chars1[10];s1="Ctest"; B)chars2[]={'C','t','e','s','t'}; C)chars3[20]="Ctest"; D)char*s4="Ctest\n" (43)以下程序的输出结果是 amovep(intp,int(a)[3],intn) {inti,j; for(i=0;i<;i++) for(j=0;j } main() {int*p,a[3][3]={{1,3,5},{2,4,6}}; p=(int*)malloc(100); amovep(p,a,3); printf("%d%d\n",p[2],p[5]);free(p); } A)56B)25C)34D)程序错误 (44)以下程序的输出结果是 structHAR {intx,y;structHAR*p;}h[2]; main() {h[0],x=1;h[0];y=2; h[1],x=3;h[1];y=4; h[0],p=&h[1],p=h; printf("%d%d\n",(h[0],p)->x,(h[1],p)->y); } A)12B)23C)14D)32 (45)以下程序的输出结果是 main() {inta,b; for(a=1,b=1;a<=100;a++) {if(b>=10)break; if(b%3==1) {b+=3;continue;} } printf("%d\n",a); } A)101B)6C)5D)4 (46)以下程序的输出结果是 unionmyun {struct {intx,y,z;}u; intk; }a; main() {a.u.x=4;a.u.y=5;a.u.z=6; a.k=0; printf(%d\n",a.u.x); } A)4B)5C)6D)0 (47)以下程序的输出结果是 inta,b; voidfun() {a=100;b=200;} main() {inta=5,b=7; fun(); printf("%d%d\n",a,b); } A)100200B)57C)200100D)75 (48)以下程序的输出结果是 #defineM(x,y,z)x*y+z main() {inta=1,b=2,c=3; printf("%d\n",M(a+b,b+c,c+a)); } A)19B)17C)15D)12 (49)整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是 A)x||yB)x|yC)x&yD)x^y (50)下面的程序执行后,文件testt.t中的内容是 #include voidfun(char*fname.,char*st) {FILE*myf;inti; myf=fopen(fname,"w"); for(i=0;i fclose(myf); } main() {fun("test","newworld";fun("test","hello,"0;) A)hello,B)newworldhello,C)newworldD)hello,rld 二、填空题(每空2分,共40分) 请将每一个空的正确答案写在答题卡【l】至【20】序号的横线上,答在试卷上不得分。 (l)为了将当前盘当前目录中的所有文本文件(扩展名为.TXT)的内容打印输出,正确的单条DOS命令为【l】。 (2)设当前盘为C盘。 为了在A盘的当前自录\USER下建立一个新的子目录X,正确的DOS命令为【2】。 (3)在XCOPY、COPY、TIME三个DOS命令中,属于外部命令的是【3】。 (4)在32位的计算机中,一个字长等于【4】个字节。 (5)计算机网络分为局域网和广域网,因特网属于【5】。 (6)语句: x++;? ++x;x=x+1;? x=l+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)【6】。 (7)设y是int型变量,请写出判断y为奇效的关系表达【7】。 (8)以下程序运行后的输出结果是【8】。 main() {inti=10,j=0; do {j=j+i;i-; while(i>2); printf("%d\n",j); } (9)设有以下程序: main() {intn1,n2; scanf("%d",&n2); while(n2! =0) {n1=n2%10; n2=n2/10; printf("%d",n1); } } 程序运行后,如果从键盘上输入1298;则输出结果为【9】。 (10)以下程序输出的最后一个值是【10】。 intff(intn) {staticintf=l; f=f*n; returnf; } main() {inti; for(I=1;I<=5;I++printf("%d\n",ff(i)); ) (11)以下函数的功能是: 求x的y次方,请填空。 doublefun(doublex,inty) {inti; doublez; for(i=1,z=x;i returnz; } (12)设有以下程序: main() {inta,b,k=4,m=6,*p1=&k,*p2=&m; a=pl==&m; b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b); } 执行该程序后,a的值为【12】,b的值为【13】。 (13)若已定义: inta[10],i;,以下fun函数的功能是: 在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。 请填空。 fun(inta[]) {inti; for(i=1;i<=10;i++)【14】=i; for(i=0;i<5;i++)【15】=a[i]; } (14)以下程序运行后的输出结果是【16】。 main() {chars[]="9876",*p; for(p=s;p } (15)若有定义语句: chars[100],d[100];intj=0,i=0;,且s中已赋字符串,请填空以实现字符串拷贝。 (注: 不得使用逗号表达式) while([i]){d[j]=【17】;j++;} d[j]=0; (16)以下程序段用于构成一个简单的单向链表,请填空。 structSTRU {intx,y; floatrate; 【18】p; }a,b; a.x=0;a.y=0;a.rate=0;a.p=&b; b.x=0;b.y=0;b.rate=0;b.p=NULL; (l7)若有如下结构体说明: structSTRU {inta,b;charc;doubled: structSTRUp1,p2; }; 请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型 【19】t[20]; (18)以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。 FILE*myf;lingf1; myf=【20】("test.t","rb"); fseek(myf,0,SEEK_END);f1=ftel(myf); fclose(myf); printf("%d\n",f1); 全国计算机等级考试二级C笔试参考答案 一、选择题( (1)-(40)题每题1分,(41)-(50)题每题2分,共60分) (1)B (2)A(3)D(4)D(5)C(6)A(7)B(8)D(9)A(10)C (11)D(12)A(13)B(14)C(15)D(16)A(17)C(18)B(19)D(20)B (21)D(22)B(23)D(24)C(25)B(26)D(27)B(28)B(29)C(30)B (31)A(32)A(33)A(34)C(35)B(36)D(37)D(38)C(39)D(40)A (41)B(42)A(43)A(44)D(45)D(46)D(47)B(48)D(49)D(50)A 二、填空题(每空2分,共40分) (1)COPY*.TXTPRN或XCOPY*.TXTPRN (2)MDA: \USER\XMDA: X (3)XCOPY (4)4 (5)广域网 (6)X+=1; (7)(Y%2)==1 (8)52 (9)8921 (10)120 (11)x (12)0 (13)7 (14)a[i-1] (15)a[9-i] (16)9876 876 (17)s[i++] (18)structSTRU* (19)structSTRU (20)fopen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 练习题