欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    经典计算机C语言习题集.pdf

    • 资源ID:89659736       资源大小:10.16MB        全文页数:130页
    • 资源格式: PDF        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    经典计算机C语言习题集.pdf

    第一部分:选择题(每题2 分,2 0 题/套,共 4 0 分).1一、概 述.1二、语法基础.2三、控制结构.9四、数 组.1 5六、指 针.2 9七、结构体和共用体.3 5八、链 表.4 0九、枚举、自定义类型和位运算.4 7第二部分:改错题(每题1 0 分,2 题/套,共 2 0 分).5 4第 2 套.5 6第 3 套.5 7第 4 套.5 9第 6 套.6 1第 7 套.6 2第 8 套.6 4第 9 套.6 5第 1 0 套.6 6第 1 1 套.6 7第 1 2 套.6 9第三部分:填空题(每题1 0 分,每套抽2 题,共 2 0 分).7 0第 1 套.7 1第 2 套.7 2第 3 套.7 4第 4 套.7 56 8 0第 7 套.8 2第 8 套.8 5第 9 套.8 8第 1 0 套.9 0第 1 1 套.9 2第 1 2 套.9 4第四部分:编程题(每题1 0 分,2 题/套,共 2 0 分).9 6第 1 套第 2 套.9 6.9 8第 5 套第 6 套第 7 套第 8 套1 0 21 0 41 0 51 0 7第 1 2 套.1 1 3第五部分:参考答案.1 1 4一、二三必选改填编择错空程.1 1 4.1 1 6.1 1 8第一部分:选 择 题(每题2分,20题/套,共40分)一、标述1.在 c 语言中,合法的字符常量是(D).“A”A.字 B.A C.ABC D.x41 n2.下面叙述正确的是(B)oA.程序中必须包含有输入语句 B.变量按所定义的类型存放数据C.main函数必须位于文件的开头 D.每行只能写一条语句3.错误的叙述是(D)。A.一 个 C 语言源程序可由一个或多个函数组成B.若一条语句较长,也可分写在下一行上C.C 程序必须包含一个main()函数D.构 成 C 语言源程序的基本单元是算术表达式4.(A)是关于C 语言数据类型的正确叙述。A.变量必须先定义后使用 B.C,枚举类型不是基本类型 D.5.main()函数的位置(B)。A.必须在自定义函数前面 B.C.必须位于程序的最前面 D.6.C 语言函数体由(C)括起来。A.B.()C.7.(A)是不正确的叙述。A.注释说明只能位于一条语句的后面C.C 源程序可由一个或多个函数组成8.一 个 C 语言源程序是由(B)。A.一个主程序和若干子程序组成C.若干过程组成 D.9.结构化程序设计的三种基本结构是A.函数结构、判断结构、选择结构C.顺序结构、选择结构、循环结构10.C 源程序的调试是指对源程序进行A.录 入 与 编 辑 B.查错与编译 C.11.C 语言中,可将一系列语句置于(A.一对尖括号 ”之间 B.不允许使用空类型数组并不是构造类型可以在自定义函数后面必须在自定义函数后面D.B.C 源程序的基本组成单元是函数D.每条语句最后必须有一个分号B.函数组成若干子程序组成(C)oB.平行结构、嵌套结构、函数结构D.判断结构、嵌套结构、循环结构(C).查错与排错 D.连接与运行C)从而构成复合语句。一对圆括号“()”之间-1-c.一对花括号”之间 D.一对方框号”之间12.构 成 C 源程序的基本单位是(D)。A.语句 B.变量 C.运算符 D.函数13.以下叙述中正确的是(AA.C 源程序中注释部分可以出现在程序中任意合适的地方B.一对花括号”1 只能作为函数体的定界符C.C 源程序编译时注释部分的错误将被发现D.构 成 C 源程序的基本单位是函数,所有函数名都可以由用户命名二、将饮基砒14.C 语言的下列运算符中,优先级最高的运算符是(A)oA.+B.+=C.I ID.!=15.A.(D)为正确的用户标识符。struct B.5f C._f0.6D._for16.A.C 语言基本数据类型包括(B整型、实型、逻辑型 B.整型、实型、字符型C.整型、字符型、逻辑型 D.整型、实型、字符串型17.A.(A)为合法的常量。XX.XXE-+XX52686L B.E-7 C.1.2E-2.11 D.E1218.A.(C)为正确的变量名。-kl5 B.int C.k_5D.k.jeep19.A.(D)为正确的字符常量。B.24m C.cD.M*20.A.(C)为非法的字符串常量。B.s C.efgD.2662”21.C 语言整型数据在内存中的代码是用(C)表示的。A.原码 B.反码 C.补码D.BCD 码22.A.以下选项中,合法的实型常数是(B)E-3 B.2E1 C.1E.5D.1.5E23.下 列 C 语言合法的数据类型关键字是(B)A.Double B.unsigned C.IntegerD.Char24.TurboC中,int型数据占用的字节数(B)。A.B.C.D.由用户自己定义为 2 个字节是任意的等于所用计算机的字长-2-25.IhrboC 中,基本数据类型存储空间长度的排列顺序是(A)。A.B.C.D.26.A.charintlongchar=intlongcharintIongchar=int=longintfloatdoubleintfloatdoubleint=float=doubleintfloat5)printf(M%dnH,a);else printf(H%dnM,a);A.7 B.4 C.5 D.65 4.若已定义float x;要从键盘输入数据36.582给变量x,则应选用(B)语句。A.scanf(n%2.3f&x);B.scanf(M%6f&x);C.scanf(H%6.3fM,&x);D.scanf(n%5.3fH,&x);5 5.若已定义double y;拟从键盘输入一个值赋给变量y,则正确的函数调用是(C)。A.scanf(M%dH,&y);B.scanf(H%7.2fH,&y);C.scanf(n%lfM,&y);D.scanf(n%ldn,&y);5 6.已有定义char s;使 用 scanf()函数输入一个字符给变量s,不正确的函数调用是(D)oA.scanf(n%cn,&s);B.scanf(M%dH,&s);C.scanf(n%uM,&s);D.scanf(n%lfM,&s);57.函数putchar()的功能是向终端输出(AA.一个字符 B.多个字符C.一个关系表达式 D.一个实型变量值58.若 已 定 义 int a=U;执行以下语句后的输出结果是(B)。printf(a=%d,a=%o,a=%xn,a,a,a);A.a=ll,a=ll,a=b B.a=ll,a=13,a=bC*a=ll,a=13,a=c D.a=ll,a=12,a=135 9.若有定义 int m=4321,n=123,k=21;语句 printf4d+%3d+%2dm,n,k);执行后的输出结果是(C)。A.4321432143211231231232121 B.432112321C.4321+123+21 D.432+123+0216 0.已有如下定义和输入语句,charcl,c2;int x;scanf(n%c%d%cn,&cl,&x,&c2);若要求x、c l、c2的值分别为9、k,和I T,正确的数据输入是(A)。A.K9H B.K 9 H C.K9 H D.9KH61.以下程序段的运行结果是(A)oint a=l;printf(M%d,%d,%dn”,a,+a,a+);A.3,3,1 B.1,2,2 C.1,2,3 D.3,2,162.以下程序的运行结果是(D)ovoid main()int a=65;char c=A;printf(M%d+%c=%dn*a,c,a+c);A.A+A=AA B.65+A=65A C.65+65=130 D.65+A=13063.若已定义:intx=7;floaty=7.0;以下语句中能输出正确值的是(B)。A.printf(n%d%dn,x,y);B.printf(n%d%.3f”,x,y);C.printf(n%.3f%3fH,x,y);D.printf(n%3f%dH,x,y);64.putchar函数可以向终端输出一个(AA.字符或字符型变量值 B.整型变量表达式值C.实型变量值 D.字符串6 5.若已定义:int a=6;float b=1.5;要求输出形式为:6*130=9.00,应选用的正确输出语句是(BA.printf(M%d*%f=%fa,b,a*b);C.printf(H%d*%d=%.2fM,a,b,a*b);66.有以下程序:B.print*”%d*%.2f=%.2fa,b,a*b);D.printf(n%.2f*%.2f=%.2fH,a,b,a*b);main()int c;while(c=getchar()!=247 c:2 66switch(c2)c:4 8case 0:c:7 9case 1:putchar(c+4);case 2:putchar(c+4);break;-6-case 3:putchar(c+3);default:putchar(c+2);break;printf(HnH);)当输入:247 回车,程序的输出结果是(B)。A.689 B.6689 C.66778 D.6688767.若已定义int x=5,y=9,z;语 句 z=x=y;运行后z 的 值 为(CA.1 B.t C.0 D.f68.判定逻辑值为“真”的最准确叙述是(D)。A.1 B.大 于 0 的数 C.非 0 的整数 D.非 0 的数69.若已定义int x=-16,y=-12,z;语句片xv=y;运行后z 的 值 为(B)。A.t.B.1 C.f D.070.能正确表示数学关系式100WsV300的表达式为(C)oA.(s=100)&(s300)B.100=s=100)&(s=100)and(s=bllb=cc-blla+b&(b*c-a-c)D.(b*c-a-c)&(b*c-a-b)若已定义:intx=4,y=2,z=0;则表达式(xyv=y)ll(y=z)的 值 是(A)。1 B.0 C.2 D.4若有定义:inta=3,b=2,c=l,k;则表达式k=abc的 值 是(A 定A.0 B.1 C.2 D.377.以下运算符中优先级最高的是(D)oA.x)II(b=yz);A.0 B.1 C.-1 D.679.以下程序运行后,a 的 值 是(C)omain()-7-int a,b;for(a=l,b=l;a=20)break;2.a=2,b=4b+3=7if(b%3=l)b+=3;continue;3.a=3,b=7b+3=10b-=5;4.a=4,b=10b+3=13)5.a=5 b=13b=166.a=6 b=16b=197.a=7 b=19b=228.a=8 b=22breakA.80.A.C.81.A.82.A.83.A.84.A.85.A.101 B.100已定义 double k=3.6;k=double(-3.6)k=k*(-1.0)=-3.6C.8 D.7则正确的赋值表达式是(D)oB.k%3D.k+=k-=(k=1.2)*(k=3)已 定 义 charc=fA;则正确的赋值表达式是(B)。c=028 B.c=(c+)%4 C.c+l=66 D.c+=127-已 定 义 intm=,A,;则正确的表达式是(C)o2*m=m+B.m=int(-3.2)C.m%3 D.m=m-m=m-5设已定义float a=2.0,b=3.0;使 a 值 为 5.0的表达式是(A)。a+=b B.a*=b+2.0 C.a/=b+2.0 D.a-=b+2.0若已定义int m=7;float k=5.5;则表达式k+m%2/4的 值 为(D)o6.375 B.6.75 C.5.75 D.5.5若已定义 int a=3,b=3,x=l,y=2;表 达 式(a=yx)&(x=ba)的 值 是(B)。6 B.1 C.9 D.0a=yx a=l x=ba86.若有定义:int a=2,b=3;float x=5;则表达式x*b/a的 值 是(B)。A.7.5 B.7 C.6 D.587.若有定义:int x=8;float y=130;char 则表达式 x+z%(int)y 的 值 是(C)o 已知A 的 ASCII码的十进制值为65A.运行时产生错误信息 B.8 C.73 D,8.588.若已定义:int m=7,n=4;float x=3.0,y=8.0,k;则执行语句 k=m/2+n*x/y;后,变量 k的 值 是(C)oA.3 B.4 C.4.5 D.589.若有定义:float x=2,y=4,h=3;下列表达式中与(x+y)*h/2.0计算结果不相符的是(C)。A.(x+y)*h/2 B.(x+y)*h*l/2 C.(l/2)*(x+y)*h D.h/2*(x+y)90.表达式2+sqrt(16.0)/4结果的数据类型是(A)。A.Double B.int C.char D.void91.若有定义:inta=4,b=5,c=6;则表达式(L0*a+b)/c的 值 是(A)。A.1.5 B.1 C.4 D.4.5三,控制辂构9 2.以下程序段的运行结果是(D)oint x=3;doprint*%3d,x-=2);while(!(-x);A.1,B.30,C.死循环l .x=3 输出 1 lx=02.x=0 输出-2 0循环结束93.以下程序运行时,若从键盘输入6,则输出结果是(A)ovoid main()int x;scanf(M%dH,&x);if(x-6)printf(H%dn,;elseprintf(H%dnH,-x);)A.4 B.594.以下程序的运行结果是(x=6条 件 假,执行elsex=5先 减 1,再输出x 4C.6C)oD.3void main()int m,n=l,t=l;if(t=0)条 件 假,执 行 elsem=n=0?7:3;n=0 真 m=7printf(n%dnH,m);-9-A.3 B.-l C.7 D.19 5.对于整型变量a,赋值语句a=(a%3=0?l:0);(若 a 能被c 整除则a=L 否则a=0)与(D)语句不等价。A.if(a%3=0)a=l;else a=0;B.if(a%3!=0)a=0;else a=l;C.if(a%3)a=0;else a=l;D.if(a%3)a=l;else a=0;96.以下程序运行的结果是(B)。void main()int x,y,z,a;x=y=z=l;a=15;if(1x)条件假,执行ekea-;else if(y)条件真if(z)条件真a=3;a=3elsea+=4;printf(M%dnH,a);)A.15 B.3 C.19 D.1497.若已定义inta=l,b=2,g 3;则执行以下程序段后变量a,b,t 的值分别为(Aif(a6)printf(M%dnH,a+2);elseprintf(,%dn,a+3);)A.运行时产生错误信息 B.9 C.8 D.61 0 2.若有定义:int x=10,y=8,a;则执行语句a=(-x=y)?x:y);后,变 量 a 的值是(A)。A.8 B.9 C.10 D.O1 0 3.若有定义:inta=2,b=3,c=l;则以下程序段的运行结果是(D)。if(ab)if(ac)-11-printf(H%d”,a);elseprintf(M%d n,b);printf(M%d n,c);A.3 1 B.2 1 C.3 D.1104.以下条件语句中(其中s i 和 s2分别表示C 语言的语句),(D)与其他三条语句不等价。A.if(a)s i;else s2;B.if(a=0)s2;else si;C.if(a!=0)s i;else s2;D.if(a=0)s i;else s2;105.下列程序段中,非死循环的是(A)。A.int100;while(l)i=i%100+1;if(i=100)break;)B.int k=0;do+k;while(k=0);C.int s=10;while(+s%2+s%2)s+;D.for(;)106.若已定义int a;不会产生死循环的语句是(CA.for(;a+=2);B.for(a=10;a-);C.for(;(a=getchar()!=n;);D.while(-l)a+;107.在循环语句的循环体中,break语句的作用是(B)。A.继续执行break语句之后的循环体各语句B.提前结束循环,接着执行该循环后续的语句C.结束本次循环D.暂停程序的运行1 0 8.以下程序段运行后,循环体中的n+=3;语句运行的次数为(A)oint iJ,n=0;for(i=l;i=3;i+)for(j=l;j=i;j+)n+=3;printf(M%dnn,n);-12-A.6 次 B.9 次 C.12次 D.1 次1.i=l(j=D2.i=2 0=1 j=2)3.i=3(j=l j=2 j=3)109.dowhile循环与while循环的主要区别是(D)。A.while循环体至少无条件执行一次,而 dowhile循环体可能都不执行B.do-w hile循环体中可使用continue语句,while循环体中不允许出现continue语句C.dowhile循环体中可使用break语句,while循环体中不允许出现break语句D.do-w hile循环体至少无条件执行一次,而 while循环体可能都不执行110.以下程序段运行后,循环体运行的次数为(A)oint i=8,a=0;for(;i8;i+)a+=i;A.0 次 B.1 次 C.8 次 D.无限111.以下程序段运行后变量a 的 值 为(C)oint i=l,a=0;for(;i3;i+)continue;a+=i;)A.6 B.3 C.0 D.5112.有以下程序:void main()int i;for(i=l;i=3;i+)switch(i)case 1:printf(H%dn,i);break;case 2:printf(M%dM,i);default:printf(H%dn,i);)执行后输出结果是(A).A.1223 B.1 C.111223 D.1231.i=l 输 出 12.i=2 输出 223.i=3 输出3113.以下程序的运行结果是(C)o-13-void main()int s=0,i=0;whiie(i 8)i+;if(i%2=0)continue;s+=i;s=l+3+5+7)printf(H%dnH,s);B.36 B.7 C.16113.以下程序的运行结果是(B)o114.void main()ints=0,i=0;while(i=l;i)for(j=i;j=3y+)k+=i*j;)printf(M%dnH,k);)A.19 B.29 C.6D.251.i=3(j=3 k=3*3=9)2.i=2(j=23.i=l(j=lk=9+2*2=13 j=3k=19+Pl=20 j=2k=13+2*3=19)k=20+1*2=22 j=3 k=22+1*3=25)1 1 7.以下程序运行时,循环体的执行次数是(C)。void main()int ij;for(i=OJ=l;i=j+l;i=i+2J-)printf(M%3dM,i);A.3 B.2 C.1 D.01.0=2 i=2 j=02.2=10、核俶118.设已定义chars=NameAddress023n;,则字符串所占的字节数是(B)。A.19 B.16 C.18 D.14119.数组元素下标的数据类型为(A)oA.整型常量、字符型常量或整型表达式B.字符串常量C.实型常量或实型表达式D.任何类型的表达式120.(B)是正确的数组定义。A.int n=10,xn;B.int x10;C.int N=10;int xN;D.int n;scanf(M%dn,&n);int xn;121.若已定义intarr10;则不能正确引用arr数组元素的是(D)。-15-A.arrO B.arrl C.arr10-l D.arr7+3122.若已定义intx4=2,l,3;则元素xl的 值 为(C)。A.0 B.2 C.1 D.3123.以下程序段运行后,xl的 值 为(B)。int x5=5,43,1);xl=x3+x2+2-x3-l;A.6 B.0 C.1 D.5124.(A)是合法的数组定义。A.char str=48,49,50,512,53;B.int a5=0,l,2,3,4,5;C.int a=Hstringn;D.char str=6string,;1 2 5.若有以下程序:void main()chars10=MajskdlM,r10;r=s;printf(n%snH,r);(D)5);for(i=0;i6;i+)则A.B.CD.12printf(H%dA.71098 114B.71098 112C.51098 H2D.51098 114127.下面程序段的运行结果是(A)oint m=5,8,7,6,9,2)4=1;for(i=0;i6;i+)if(i%2!=0)-16-mi+=10;for(i=0;i=0;i-)ai=ai*j;j=.j*3;)for(i=0;i=0;j-)-17-Pic(3j,pic(i+2*j,*);putchar(n);)pic(int len,char c)int k;for(k=1;k=Ien;k+)putchar(c);)A.*B.*C.辛*D.*132.以下程序段执行后输出的结果是(D)int a4=l,23,4,5,6,7,8,9,10,ll,12);printf(%dn,al2);A.2 B.3 C.6 D.7133.以下程序段执行后p 的 值 是(A).int a33=3,2,132,l,3,2,l;int j,k,p=l;for(j=0;i2;i+)for(k=j;k4;k+)p*=ajk;A.108 B.18 C.12 D.2134.不能对二维数组a 进行正确初始化的语句是(A)A.int a32=l,2,3,4,6;B.int a32=1,2,3,4,5;-18-c.mt a2=l,2,3,4,5,6;D.int a32=l,2,3,4,5;135.若有定义:血现34=1,2,0,345;则 421的 值 为(B)。A.3 B.4 C.0 D.1136.若有定义:inta3;则表达式&a l-a的 值 为(C)。A.7 B.8 C.9 D.10137.以下程序段运行后sum的 值 为(D)oint k=0,sum=0;int a34=123,4,5,6,7,8,9,10,11,12;for(;k3;k+)sum+=akk+l;A.9 B.18 C.19 D.21138.若有定义int a 网;则合法引用数组元素的是(A)。A.a0l/2 B.a2l C.a23 D.al3139.在以下数组定义中,错误的是(A)。A.int a2=l,23,4,5);B.int a2=0,l;C.int a22=1,2,3);D.int a2=l,23,4;若定义 皿 叩 4=1,2,3,4,5,6,7,8;则表达式就%0301)的 值 为(B).1140A.B.CD.234以下程序段运行后s 的 值 是(C)int a33=l,23,4,5,l,2,3,4);int ij,s=l;for(i=0;i3;i+)for(j=i+l;j0*;printf(n%sH,strO);A.abedB.abC.abcdOD.abcdOf147.有如下定义:charstr10=National”;则分配给数组str的存储空间是(B)个字节。A.11B.10C.9D.8148.以下程序段运行后输出结果是(C)ochar a口=“country”;char b口=game;strcpy(a,b);-20-printf(H%cu,a3);A.nB.uC.eD.m149.以下程序段运行后输出结果是(A)char s=HinfoOmisH;printf(H%d,strlen(s);A.4B.5C.8D.9150.以下程序段运行后a 的 值 为(D)oint a=2;char sl=npassionH,s2=sl;a=strcmp(sl,s2);A.-1B.2C.1D.0151.以下对C 语言字符数组描述中,错误的是(B)。A.可以用strlen函数计算字符数组中字符串的长度B.可以在赋值语句中通过赋值运算符“二”对字符数组整体赋值C.存放在字符数组中的字符串,以 为(T作为该字符串结束标志D.字符数组可以存放字符串或字符152.以下程序段运行后,屏幕的输出结果是(B)。char str80;strcpy(str/,computern);printf(,%dstrlen(str);A.7B.8C.9D.80153.若有定义:charstrl6=nABCDEn,*ps,*str2=nFEDCBAn;(C)是错误的。A.strcpy(str2,strl);B.表达式strcmp(strl,str2)的值小于0C.strl=str2;D.表达式strlen(strl)的值为5154.已有定义char strl15=ncomputernstr215;-21-则语句用法正确的是(C)。A.str2=strl;B.str2=nscienceM;C.scanf(M%sn,str2);D.printf(n%sn,&strl);1 5 5.设已定义:char strl20=nHello,str220=Hworld!u;若要形成字符串“Helloworld!”,正确语句是(B)。A.strcpy(strl,str2);B.strcat(strl,str2);C.strcpy(str2,strl);D.strcat(str2,strl);1 5 6.若有字符数组a80和 b 80,则以下输入语句正确的是(C)A.gets(a,b)B.scanf(H%c%cM,&a,&b);C.scanf(H%s%s*a,b)D.gets(naM),gets(MbM);157.设有下列语句:char strl=nstringM,str28,*str3,*str4=MstringM;则(A)是对库函数stirpy的不正确调用。此函数用来复制字符串。A.strcpy(str3,MHELLO3n);B.strcpy(str2,nHELLO2n);C.strcpy(strl,nHELLOr,);D.strcpy(str4,nHELLO4n);158.用数组名作为函数的实参时,错误的说法是(B)。A.定义形参数组时,元素的个数必须与实参相同B.可以使用数组名作为形参C.实参传递给形参的值是数组的首地址D.可以使用指针变量作为形参159.以下程序的运行结果是(Dint fun(int a44)int i;for(i=0;i4;i+)printf(n%2dH,ai2);printf(nnn);-22-main()int a44=l,l,2,2,l,9,0,0,2,4,0,0,0,93);fun(a);A.1905B.2 0 0 0C.2 0 0 8D.2 0 0 91 6 0.自定义函数中若缺省函数值类型,则隐含的类型是(A)。A.intB.longC.floatD.double161.以下程序运行后输出结果是(C)o#include int fun(int a,int b)return(a-b);)main()(int x=5,y=3,k;k=fun(x,y);printf(n%d-%d=%dnH,x,y,k);)A.0B.x-y=2C.5-3=2D.2162.以下程序运行后输出结果是(D#include int a=2,b=3,c=5;int fun(int a,int b)int c;c=ab?a:b;return(c);-23-main()int a=6;printfC11%dH,fun(fun(a,b),c);)A.5B.3,5C.6,5D.61 6 3.以下程序运行后输出结果是(C)ovoid fun(int i)int m=2;m=i+;printf(n%d”,m);)main()int m=7,n=5;fun(n);printf(n%dn,m);)A.5 5B.6 6C.5 7D.6 7164.若有函数定义:int func()static int m=0;return m+;)以下程序段运行后屏幕输出为(C).int i;for(i=l;i=4;i+)func();printf(H%dH,func();A.0B.1C.4-24-D.5165.下面程序的输出结果是(B)。#include int num=10;func()int num=4;return+num;)void inainO printf(n%dnn,func();)A.4B.5C.10D.11166.下列关于C 语言函数的描述中,错误的是(A)。A.函数的定义可以嵌套,但函数的调用不可以嵌套B.凡不加类型说明的函数,其返回值默认为整型C.函数的返回值可以通过函数中的ivturn语句获得D.可以定义有参函数,也可以定义无参函数167.以下程序的运行结果是(B)。func(int a,int b)int c;c=(ab)?(a-b):(a+b);return(c);)main()int x=7,y=3;printf(H%dn*,func(x,y);A.3B.4C.7D.10168.以下程序运行结果是(B)ovoid main()int max(float a,float b);float x,y;-25-x=-4.6;y=-3.7;z=max(x,y);printf(n%dnn,z);)int max(float a,float b)float c;if(ab)c=a;elsec=b;return(c);)A.-3.7B.-3C.-4.6D.-4169.下面函数调用语句含有实参的个数为(A)otemp(a,b,c),(x,y)A.2B.3C.4D.51 7 0.以下程序的运行结果是(C)ofun3(int x)static int a=3;a+=x;return a;)main()int k=2,m=l,n;n=fun3(k);n=fun3(m);prlntf(n%dnH,n);)A.3B.4C.6-26-D.9171.以下程序运行后输出结果是(D)0#define F(m,n)m*nmain()int x=5,y=3,al,a2;al=F(x+y,x-y);a2=F(x-y,x+y);printf(%d,%dn,al,a2);A.16,16B.16,-16C.-7,17D.17,-7172.以下叙述正确的是(CA.编译预处理命令行必须以分号结束B,程序中使用带参数的宏时,参数类型要与宏定义时一致C.宏展开不占用运行时间,只占用编译时间D.宏名只能包含大写字母和数字字符173.以下叙述正确的是(B)oA.一个源程序只能有一个编译预处理命令行B.编译预处理命令行都必须以“#“开头C.#define PRICE=30”定义了与 30等价的符号常量PRICED.使用带参数的宏定义时,应该说明每个参数的数据类型174.以下叙述错误的是(D).A.编译预处理命令行都必须以#号开始B.宏名可以用小写字母表示C.使用预处理命令”#include 文件名”时,编译系统只在指定的系统目录下查找该文件D.宏定义只能放在main。函数之前1 7 5.若有定义:#define N 3+2,则表达式N*2的 值 为(B).A.5B.7C.10D.01 7 6.以下程序运行后输出结果是(B).#define MIN(m,n)mn?m:nmain()int a=3,b=5,c;-27-c=2*MIN(a,b);printf(n%du,c);)A.3B.5C.6D.10177.下列#inchide命令中,正确的是(A)。A.#include nmath.hnB.#include math.hC.#include(math.h)D.#include math.h)178.下面程序的输出结果是(C)o#include#define MON 1#define TUE 2*MON#define WED 3*TUEvoid main()printf(M%dn n,WED-TUE);2345)下面错误的叙述是(A)o预处理命令行必须位于C 源程序的起始位置在 C 语言中,预处理命令行都以“犷开头C 程序在开头可以不包含预处理命令行:#include C 语言的预处理可以实现宏定义和条件编译的功能以下程序的运行结果是(B)。#define MUL(r)r*rmain()int a=2,b=3,c;c=MUL(a+b)*2;printf(H%dc);)A.10A.B.CD.17A.B.CD.18B.14-28-C.36D.501 8 1.下面程序的运行结果是(C)o#def1ne N 10#define K(x)x*x#define T(x)(x*x)main()int a,b;a=9%K(N);b=9%T(N);printf(,%d,%dnM,a,b);)A.9,9B.9,90C.90,9D.90,90182.以下在任何情况下计算平方数时都不会引起二义性的宏定义是(C)。A.#define XPF(x)x*xB.#define XPF(x)(x)*(x)C.#define XPF(x)(x*x)D.#define XPF(x)(x)*(x)仇,泰针183.下程序的运行结果是(A)ovoid ast(int x,int y,int*cp,int*dp)*cp=x+y;*dp=x-y;)main()int a=4,b=3,c,d;ast(a,b,&c,&d);printf(M%d,%dnM,c,d);A.7,1B.1,7C.7,1D.c、d 未赋值,编译出错-29-184.有以下语句:int a5=0,l,23,4,5,i;int*p=a;设 0W iV 5,对 a 数组元素不正确的引用是(C)。A.*(&ai)B.ap-aC.*(*(a+i)D pi185.若有定义int*pl,*p2;则错误的表达式是(A)。A.pl+p2B.pl-p2C.plp2D.pl=p2186.以下叙述错误的是(D)。A.存放地址的变量称为指针变量B.NULL可以赋值给任何类型的指针变量C.一个指针变量只能指向类型相同的变量D.两个相同类型的指针变量可以作加减运算1 8 7.以下程序段运行后,表达式*(p+4)的 值 为(B)。char a=china;char*p;P=a;A.nB.ac.存放H 的地址D.存放置的地址1 8 8.以下程序段运行后,表达式*(p+)的 值 为(Achar a5=nworkn;char*p=a;A.wB.存放、的地址C.oD.存放少的地址1 8 9.若有定义:int*p,k=4;p=&k;以下均代表地址的是(C)。A.k,pB.&k,&p-30-C.&k,pD.k,*p1 9 0.若有定义:double*q,p;则能给输入项读入数据的正确程序段是(B)。A.q=&p;scanf(H%lfn,*q);B.q=&p;scanf(n%lfM,q);C.*q=&p;scanf(,%lfn,q);D.*q=&p;scanf(,%lf,*q);191.若已定义:int q=5;对 int*p=&q;和 p=&q;这两条语句理解错误的是(C)。A.是对p 定义时初始化,使 p 指向q;而是将q 的地址赋给pB.和中的&q含义相同,都表示给指针变量赋值C.是对p 定义时初始化,使 p 指向q;而是将q 的值赋给p 所指向的变量D.和的执行结果都是把q 的地址赋给p192.下面语句错误的是(A)。A.int*p;*p=20;B.char*s=,abcdef,;printf(H%sns);C.char*str=nabcdefn;str+;D.char*str;str=nabcdefH;

    注意事项

    本文(经典计算机C语言习题集.pdf)为本站会员(奔***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开