软件专业课-C语言练习册_第1页
软件专业课-C语言练习册_第2页
软件专业课-C语言练习册_第3页
软件专业课-C语言练习册_第4页
软件专业课-C语言练习册_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE C语言专业课资料习题集汇总精通教育计算机组编第一章程序设计的基本概念由C语言编写的代码程序A.可直接执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行C语言源程序的扩展名为A.objB.cC.exeD.cppC语言处理系统必须执行的步骤依次为 、链接。在C语言中对源程序进行编译生成的目标文件的扩展名是 。C程序设计的三种基本结构是:选择结构、循环结构和 。一个C语言程序的基本组成单位是 。一个C语言源程序由若干个 组成。一个C源程序至少应该有一个 函数。一个C语言程序的执行起点是 。()C语言程序通过编译、运行后,其结果都是正确的。()C语言每个语句必须以“;”结束。(

2、)构成C程序的基本单位是函数。()C语言中所有函数的执行都是从主函数开始的。第二章C程序设计的初步知识(1)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A.大写字母B.中划线C.数字字符D.下划线(2)下列选项中,不能用作标识符的是A._1234_B._1_2C.int_2_D.2_int_(3)以下选项中合法的用户标识符是A.longB._2TestC.3DmaxD.A.dat(4)以下不能定义为用户标识符的是A.MainB._0C._intD.sizeof(5)下列定义变量的语句错误的是A.int_int;B.doubleint_;C.charFor;D.floatUS$;以

3、下选项中不合法的标识符是A.printB.forC.&aD._00(7)以下不合法的用户标识符是Aj2_KEYB.DoubleC.4dD._8_(8)以下C语言用户标识符,不合法的是A._1B.AaBcC.a_bD.a-b在C语言中,最简单的数据类型包括A整型、字符型、逻辑型B整型、实型、字符型C整型、逻辑型、日期型D整型、日期型、通用型(1)在C语言中,整型数据分为A.二进制、八进制、十进制B.二进制、十进制、十六进制C.八进制、十进制、十六进制D.二进制、八进制、十进制、十六进制(2)C源程序不能表示的进制为A.八进制B.二进制C.十六进制D.十进制(1)在C语言中,合法的实型常数是A.5

4、E2.0B.E-3C.2E0D.1.3E(2)在C语言中,合法的实型常数是A.1.2E0.5B.3.14159EC.5E-3D.E15(3)以下选项中,不能作为合法常量的是A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0(4)以下不合法的数值常量是A.011B.le1C.8.0E0.5D.0 xabcd(5)以下选项中,能用作数据常量的是A.o115B.0118C.1.5e1.5D.115(6)以下选项中,合法的一组C语言数值常量是A.028B.12.C.177D.0 x8A.5e-3OXa234e1.510,000-0 xf4.5e0Oabc3.e5(1)在C

5、语言中,非法的字符常量是A.tB.17C.nD.xaa(2)以下不合法的字符常量是A.018B.C.D.xcc(3)以下选项不属于字符常量的是A.CB.CC.xCCD.072(4)以下选项中,非法的字符常量是A.101B.65C.xffD.019在C语言中,运算对象必须为整型的运算符是ABC+=D%在C语言中,以下关于运算符叙述错误的是A.在C语言中,逗号运算符的优先级最低B.在C语言中,赋值运算符自右向左运算C.在C语言中,+、-、*、/、%是算术运算符,可用于整型和实型数的运算D.在C语言中,+、-运算符可以改变变量的值在C语言中,以下非法的表达式是A.0=x0;D.k=i=j;(1)表达

6、式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8(2)若有定义语句:intx=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为A.1.9B.1C.2D.2.4(1)设有语句:inta=3;则执行了语句a+=a-=a*a;变量a的值是A.3B.0C.9D.-12(2)设有语句:intx=10;则执行了语句x+=x-=x-x;变量x的值是A.10B.20C.40D.30(3)设有语句:inta=0;则执行语句a+=(a=8);变量a的值是A.0B.8C.16D.24以下程序的输出结果是main()inti=10,j=1;printf(%d,%dn,i

7、-,+j);A.9,2B.10,2C.9,1D.10,1main()inta=12,b=12;printf(%d%dn,-a,+b);A.1010B.1212C.1110D.1113main()intx=023;printf(%dn,-x);A.17B.18C.23D.24以下程序的输出结果是main()intx=100,y=200;printf(%dn,(x,y);A.200B.100C.100200D)200100以下程序的输出结果是main()intx=10,y=3,z;printf(%dn,z=(x%y,x/y);A.1B.0C.4D.3intk=0;,以下选项的四个表达式中与其他三个

8、表达式的值不相同的是A.k+B.k+=1C.+kD.k+1以下程序的输出结果是(1)main()intk=11;printf(k=%d,k=%o,k=%xn,k,k,k);A.k=11,k=12,k=11B.k=11,k=13,k=13C.k=11,k=013,k=0 xbD.k=11,k=13,k=b(2)main()intk=17;printf(%d,%o,%xn,k,k,k);A.17,021,0 x11B.17,17,17C.17,0 x11,021D.17,21,11以下程序main()intm=0256,n=256;printf(%o%on,m,n);程序运行后的输出结果是A.02

9、560400B.0256256C.256400D.400400已知在ASCII码中,字母A的序号为65,以下程序的输出结果是main()charc1=A,c2=Y;printf(%d,%dn,c1,c2);A.65,90B.A,YC.65,89D.因输出格式不合法,输出错误信息已知在ASCII码中,字母A的序号为65,以下程序的输出结果是main()charch1,ch2;ch1=A+5-3;ch2=A+6-3;printf(%d,%cn,ch1,ch2);A.67,DB.B,CC.C,DD.不确定的值以下程序的输出结果是main()charx=f;printf(%cn,A+(x-a+1);A

10、.GB.HC.ID.J以下程序的输出结果是main()charc=z;printf(%c,c-25);A.aB.ZC.z-25D.yC语言标识符的第一个字符必须为下划线或者 。在C语言中,整型常量的书写形式包括:八进制、十进制和 进制。在C语言中,运算符的操作数必须是整型的是 。有语句inti=-19,j=i%4;printf(%dn,j);则输出结果是 。设x和y均为int型变量,且x=1,y=2,则以下表达式1.0+x/y的值 。设intx=7,y=3,则表达式x%y+x/y的值是 。请写出数学式a/bc的C语言表达式 。设inta=9,b=6,c;,执行语句c=a/b+0.8;后c的值是

11、 。设charw;intx;floaty;doublez;,则表达式w*x+z-y的值的类型是 。设inta;floatb;charc;longd;doublee;,则表达式a/c-b+d-e值的类型是 。设inti;floatf=3.14;,执行i=(int)f;后,变量i的值是 。设floatx=23.65;,则执行语句printf(%dn,(int)(x+0.5);后输出结果是 。若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为 。设inta=37;,则执行语句a+=a%=9;后,变量a的值是 。设intj=5;,则执行语句j+=j-=j*j;后,变量j的值

12、是 。设inta=2;,则执行a+=a*=15;后,变量a的值是 。以下程序运行后的输出结果是 。main()inta=0,b=0,c=0;c=(a+=a-=5),(a=b,b+3);printf(%d,%d,%dn,a,b,c);执行语句y=10;x=y+;后变量x的值为 。设intx=011;printf(%dn,+x);后的输出结果是 。设inta=010,b=10;则语句printf(%d,%dn,a+,-b);的结果为 。设intx=14;,则表达式x+%-5的值为 。利用运算符-,下列两条语句b=5+a;a-=1;可以仅由一条语句实现,这条语句是 。在C语言中,优先级最低的运算符是

13、 。若x、i、j和k都是int型变量,则计算下面表达式x=(i=4,j=16,k=32)后,x的值为 。若a是int型变量,则表达式(a=4*5,a*2),a+6的值为 。设inta,b;,表达式a=2,b=5,b+,a+b的值是 。在C语言中,假设所有变量均为整型,则表达式(a=3,b=7,a+,a+b)的值是 。设inta,b,c;则执行a=(b=3,c=5,b=10);后变量a的值是 。若定义了inta=1;,则执行printf(%dn,(a=a+4,a+5),a+6);语句的输出结果是 。()C程序中,%是只能用于整数运算的运算符。()在C程序中,APH和aph是两个不同的变量。()x

14、=(i=4,j=16,k=32);x的结果是32。()常量-1按无符号整型输出是,现实65535。()print可以作为变量名使用。()intIf=0;会出现编译错误。()变量一旦被说明,则该变量被分配存储空间。第三章顺序结构有以下程序main()inta=666,b=888;printf(%dn,a,b);程序运行后的输出结果是A.错误信息B.666C.888D.666,888设有如下程序段,则以下叙述中正确的是main()intx=2002,y=2003;printf(%dn,(x,y);A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出B.运行时产生出错信息C.输出值为2002

15、D.输出值为2003以下程序的输出结果是main()inta=1234;printf(%2dn,a);A.12B.34C.1234D.提示出错,无结果运行时从键盘上输入9876543210(表示回车),则该程序的输出结果是main()inta;floatb,c;scanf(%2d%3f%4f,&a,&b,&c);printf(a=%d,b=%f,c=%fn,a,b,c);A.a=98,b=765,c=4321B.a=10,b=432,c=8765C.a=98,b=765.000000,c=4321.000000D.a=98,b=765.0,c=4321.0(1)设变量均已正确定义,若要通过sc

16、anf(%d%c%d%c,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:代表空格字符)A.10X20YB.10X20YC.10XD.10X20Y20Y(2)若有定义:inta,b;,通过语句scanf(%d,%d,&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是()A.35B.3,5C.3;5D.35(1)以下程序运行后的输出结果是 。main()inta=10;printf(%d,%o,%xn,a,a,a);(2)以下程序运行后的输出结果是 。main()inta,b,c;a=25;b=0

17、25;c=Ox25;printf(%d%d%dn,a,b,c);(3)以下程序运行后的输出结果是 。main()inta=1,b=2;a=a+b;b=a-b;a=a-b;printf(%d,%dn,a,b);(4)设整型变量a和b中的值分别为7和9,要求按一下格式输出a和b的值:a=7b=9请完成输出语句:printf( ,a,b);(1)有程序如下,要求给i赋10,给j赋20,则应该从键盘输入 。main()inti,j;scanf(i=%d,j=%d,&i,&j);printf(i=%d,j=%d,i,j);(2)输入123456,则输出结果是 。main()inta,b;scanf(%2

18、d%2d,&a,&b);printf(%d,%dn,a,b);对应scanf(a=%d,b=%d,&a,&b);语句的输入a为3,b为7的键盘输入格式是 。不用第三个变量,将变量a和b的值进行互换的操作是 。()语句scanf(%5.2f,&a);是非法的。()语句printf(%d,3)的输出结果是51。()常量-1按无符号整型输出是,现实65535。()C语言本身未提供输入输出语句,但可通过输入输出函数来实现数据的输入输出。()当输入数据时,必须指明变量的地址。第四章选择结构以下程序的输出结果是main()inta=3,b=4;printf(%dn,a=y)&(y=z)B.(x=y)AND

19、(y=z)C.(x=y=z)D.(x=y)&(y=z)能正确表示a10或a0的关系表达式是A.a=10ora=10|a=10|a=10&ab)&(n=cd);后n的值为A.1B.2C.3D.4以下程序的输出结果是#includemain()inta=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(%d,%dn,k,m);A.0,0B.0,1C.1,0D.1,1设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为A.1B.2C.3D.4设intx=-1;执行表达式+x|+x|+x|+x,x的值是A.0B.1C.2D.4设a=1,b=2,

20、c=3,d=4,则表达式ab?a:cd?a:d的结果是A.4B.3C.2D.1设w、x、y、z、m均为int型变量,则以下程序段执行后,m的值w=1;x=2;y=3;z=4;m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;A.4B.3C.2D.1若有条件表达式(exp)?a+:b-,则以下表达式中能完全等价于表达式(exp)的是A.(exp=0)B.(exp!=0)C.(exp=1)D.(exp!=1)以下程序的输出结果是#includemain()inta=2,b=-1,c=2;if(ab)if(bb)if(bc)printf(%d,d+1);elseprintf(%d,+

21、d+1);printf(%dn,d);程序运行后的输出结果是A.2B.3C.43D.44以下程序段的输出结果是main()intx=1,y=2,z=3;if(xy)if(yz)printf(%d,+z);elseprintf(%d,+y);printf(%dn,x+);A.331B.41C.2D.1若执行以下程序时从键盘上输入9,则输出结果是main()intn;scanf(%d,&n);if(n+5)printf(%d,x);elseprintf(%dn,x-);A.7和5B.6和3C.7和4D.6和4已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是if(xy)z=x;

22、x=y;y=z;A.x=l0,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=20下面的程序的输出结果是main()intx=3,y=0,z=0;if(x=y+z)printf(*);elseprintf(#);A.有语法错误不能通过编译B.输出*C.可以通过编译,但是不能通过连接D.输出#以下程序的输出结果是main()inta=5,b=4,c=3,d=2;if(abc)printf(%dn,d);elseif(c-1=d)=1)printf(%dn,d+1);elseprintf(%dn,d+2);A.2B.3C.4D.5若运行

23、时从键盘上输入2.0(表示回车),则下面程序的输出结果是main()floatx,y;scanf(%f,&x);if(x0.0)y=0.0;elseif(x5.0)&(x!=2.0)y=1.0/(x+2.0);elseif(x0);的输出结果是 。执行printf(%dn,1+!2+(3b)&(c=1)后c的值是 。设inta=-3,b=7,c=-1;则执行(a=0)&(a=a%b3|-b4;后变量c的值为 。设a、b、c为整型变量,若a的值为1,b的值为2,则执行c=a+|b+;语句后,变量b的值为 。设inty;执行表达式(y=4)|(y=5)|(y=6)后,y的值是 。设intm=0;,

24、执行表达式m|(m=2)|(m=3)|(m=4)后,m的值是 。设inta=0,b=0,c=2,d=4;,则执行(c=a=b)|(d=b=a);后变量d的值是 。设inta=1,b=2,m=2,n=2;,执行表达式(m=a=0?x:-x;后y的值是 。设inta=1,b=2,c=3,d=4,f;,执行语句f=(a!=b)?c+:d+;后f的值是 。设intx=1,y=3,z;,执行z=xy?+x:y+;后,z的值是 。()7&3+12的值是15。()运算符的优先级依次为(由高到低):!(非)、关系运算符、算术运算符、&和|、赋值运算符。()if(a=0)i=1;是合法的C语句。【程序】#inc

25、ludemain()inti,j,k,a=3,b=2;i=(-a=b+)?-a:+b;j=a+;k=b;printf(i=%d,j=%d,k=%dn,i,j,k);【运行结果】【程序】#includemain()inta=1,b=3,c=5,d=4,x;if(ab)if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;elsex=6;elsex=7;printf(x=%dn,x);【运行结果】【程序】#includemain()intx=0,y=1;switch(x)case0:switch(y)case1:printf(*1*n);break;case2:printf(

26、*2*n);break;case1:printf(*3*n);break;【运行结果】【程序】#includemain()intx=2,y=4;switch(x)case2:switch(y)case4:printf(firstn);break;case8:printf(secondn);break;case4:printf(thirdn);break;【运行结果】程序运行时,输入A#includemain()charn;scanf(%c,&n);switch(n)casea:caseA:printf(nverygood);caseb:caseB:printf(ngood);casec:cas

27、eC:cased:caseD:printf(npass);casee:caseE:printf(nwarn);default:printf(nerror);【运行结果】第五章循环结构以下循环的输出结果是intn=10;while(n7)n-;printf(%dn,n);A.10B.9C.10D.99898878776以下程序的输出结果是main()intnum=0;while(numbc)t=a;a=b;b=t;c+;printf(%d,%d,%d,a,b,c);A.2,3,0B.3,2,0C.3,2,-1D.2,3,-1当执行以下程序段时:x=-1;dox=x*x;while(!x);A循环

28、体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误有以下程序段,则此处do-while循环的结束条件是intn=0,p;doscanf(%d,&p);n+;while(p!=12345&n3);A.p的值不等于12345并且n的值小于3B.p的值等于12345并且n的值大于等于3C.p的值不等于12345或者n的值小于3D.p的值等于12345或者n的值大于等于3若有以下程序,结果正确的是main()intx=3;doprintf(%dn,x-=2);while(!(-x);A.输出的是1B.输出的是1和-2C.输出的是3和0D.是死循环若要使程序的输出值为2,则应

29、该从键盘给n输入的值是main()ints=0,a=1,n;scanf(%d,&n);dos+=1;a=a-2;while(a!=n);printf(%dn,s);A.-1B.-3C.-5D.0以下程序的输出结果是#includemain()inta,b,t;for(a=3,b=0;!a=b;a-,b+)if(ab)t=a;a=b;b=t;printf(%d,%dn,a,b);A.4,1B.1,4C.4,-1D.-1,4执行语句:for(i=1;i+8;y=+i)printf(%d%d,x-,y);A.10192B.9876C.10990D.101091设j为int型变量,则下面for循环语句

30、的执行结果是for(j=10;j3;j-)if(j%3)j-;-j;-j;printf(%d,j);A.63B.74C.62D.73以下程序的输出结果是#includemain()inti=0,s=0;doif(i%2)i+;continue;i+;s+=i;while(i7);printf(%dn,s);A.16B.12C.28D.21以下程序的输出结果是#includemaininta,b;for(a=1,b=1;a=10)break;if(b%3=1)b+=3;continue;printf(%dn,a);A.101B.6C.5D.4以下程序的输出结果是#includemain()int

31、i;for(i=1;i=5;i+)if(i%2)printf(*);elsecontinue;printf(#);printf($n);A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$有以下程序,程序执行后输出结果是#includemain()inti,n=0;for(i=2;i5;i+)doif(i%3)continue;n+;while(!i);n+;printf(n=%dn,n);A.n=5B.n=2C.n=3D.n=4C语言的三种循环语句是 、 、 。设for(k=0;k0;i-);后,变量i的值是 。()for(表达式1;表达式3)可理解为for(表达式1;1;表达式

32、3)。()break,return所起的作用是一样的,都是跳出循环。()for(;)S中的语句S必执行无穷多次。【程序】#includemain()inta,s,n,count;a=2;s=0;n=1;count=1;while(count=4)n=n*a;s=s+n;+count;printf(s=%dn,s);【运行结果】【程序】#includemain()inta=1,b=10;dob-=a;a+;while(b-0);printf(a=%d,b=%dn,a,b);【运行结果】【程序】#includemain()inti=10,j=0;doj=j+i;i-;while(i2);print

33、f(%dn,j);【运行结果】有以下程序:程序运行时,从键盘输入:01main()chark;inti;for(i=1;i3;i+)scanf(%c,&k);switch(k)case0:printf(anothern);case1:printf(numbern);【运行结果】【程序】#includemain()inti;for(i=0;i3;i+)switch(i)case1:printf(%d,i);case2:printf(%d,i);default:printf(%d,i);【运行结果】【程序】#includemain()inta=0,i;for(i=1;i5;i+)switch(i)

34、case0:case3:a+=2;case1:case2:a+=3;default:a+=5;printf(%dn,a);【运行结果】【程序】#includemain()intk,s;for(k=1,s=0;kk)break;elses+=k;printf(%d,%d),k,s);【运行结果】【程序】#includemain()inti,j,x=0;for(i=0;i2;i+)x+;for(j=0;j3;j+)if(j%2)continue;x+;x+;printf(x=%dn,x);【运行结果】【程序】程序运行时输入6514#includemain()intm,n;scanf(%d%d,&m

35、,&n);while(m!=n)while(mn)m-=n;while(nm)n-=m;printf(m=%d,n=%dn,m,n);【运行结果】第六章函数以下叙述中正确的是A.在C程序中,主函数必须位于程序的最前面B.在C程序中,一行只能写一条语句C.C程序的基本结构是程序行D.C语句是完成某种程序功能的最小单位C语言规定,在一个C程序中,主函数的位置A.必须在开始B.必须在最后C.可以任意D.必须在系统调用的库后一个C语言程序由A.若干过程组成B.若干子程序组成C.若干程序段组成D.若干函数组成以下叙述中正确的是A.构成C程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main(

36、)函数必须放在其它函数之前D.所有被调用函数一定要在调用之前进行定义以下说法中正确的是A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分在C语言中,以下正确的说法是A.实参和与其对应的形参各占用独立的存储单元B.实参和与其对应的形参共占用一个存储单元C.只有当实参和与其对应的形参同名时才共占用相同的存储单元D.形参是虚拟的,不占用存储单元在C语言中,以下不正确的说法是A.实参可以是常量,变量或表达式B.形参可以是常量,变量或表达式C.实参可以为任意

37、类型D.如果形参和实参的类型不一致,以形参类型为准C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是A.地址传递B.值传递C.有实参传给形参,再由形参传给实参D.由用户指定传递方式在C语言中,以下函数值的类型是fun(floatx)floaty;y=3*x4;returny;A.intB.autoC.voidD.floatC语言规定,函数返回值的类型是由()决定的。A.return语句中的表达式类型B.调用该函数时的主调函数类型C.调用该函数时由系统临时D.在定义函数时所指定的函数类型有如下函数调用语句:fun(rec1,rec2+rec3,(rec4,rec5);在该函数调用语

38、句中,含有的实参个数是A)2B)3C)4D)5以下程序段的输出结果是#includeintfun(intx,inty)return(x+y);main()inta=1,b=2,c=3,sum;sum=fun(a+,b+,a+b),c+);printf(%dn,sum);A.6B.7C.8D.9C语言规定,程序中各函数之间A.既允许直接递归调用也允许间接递归调用B.不允许直接递归调用也不允许间接递归调用C.允许直接递归调用不允许间接递归调用D.不允许直接递归调用允许间接递归调用以下程序的输出结果是#includelongfun(intn)longs;if(n=1|n=2)s=2;elses=n-

39、fun(n-1);returns;main()printf(%ldn,fun(3);A.1B.2C.3D.4以下程序的输出结果是#includelongfib(intn)if(n2)return(fib(n-1)+fib(n-2);elsereturn(2);main()printf(%ldn,fib(3);A.2B.4C.6D.8以下程序的输出结果是#includeintf(intx)inty;if(x=0|x=1)return(3);elsey=x*x-f(x-2);returny;main()printf(%dn,f(3);A.0B.9C.6D.8已知一个函数的定义如下:doublefu

40、n(intx,doubley)则该函数正确的函数原型声明为:A.doublefun(intx,doubley)B.fun(intx,doubley)C.doublefun(int,double);D.fun(x,y);以下正确的描述是A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用均不可以嵌套D.函数的定义和函数的调用均可以嵌套已知函数定义:voiddothat(intn,doublex),其函数声明的写法为 。C语言函数返回类型的默认定义类型是 。函数的实参传递到形参有两种方式: 和 。在一个函数内部直接或间接调用该函数成

41、为函数 的调用方式。可以将被调函数中获得的值返回给主调函数的语句是 。C语言规定简单变量做实参的时候,它和对应形参之间的数据传递方式是 。若函数调用语句为fun(a,b,fun(a+b,a-b,b);,则函数fun的参数个数是 。若函数调用语句为func(rec1,rec2+rec3,(rec4,rec5);则含有的实参个数是 。()unsigned和void在C中都是保留的。()在C语言中,除了main函数外,任何函数都可以递归调用。()所有被调用的函数一定要在调用之前进行定义。()C语言中所有函数的执行都是从主函数开始的。()C语言所有函数的执行都是从主函数开始。()函数只能调用其他函数,

42、不能调用自身。()主函数只能调用其他函数,不能调用自身。()C程序中有调用关系的所有函数必须放在同一个源程序文件中。()通过return语句,函数可以带回一个或者一个以上的返回值。【程序】#includevoidechonum(inti,intj)intt;t=i;i=j;j=t;printf(i=%d,j=%dn,i,j);main()inti=1,j=2;echonum(i,j);printf(i=%d,j=%dn,i,j);【运行结果】【程序】#includeintfun(intx)intp;if(x=0|x=1)p=3;elsep=x-fun(x-2);returnp;main()pr

43、intf(%dn,fun(7);【运行结果】【程序】#includeintpower(intx,intn)intp;if(n0)p=power(x,n-1)*x;elsep=1;return(p);main()intx=2,n=3;printf(%dn,power(x,n);【运行结果】第七章数组在C语言中,引用数组元素时,其数组下标的数据类型允许是A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达在C语言中,一维数组的定义方式为:类型说明符数组名A.常量表达式B.整型表达式C.整型常量或整型表达式D.整型常量以下错误的数组定义形式是A.inta10B.inta3+2;C.i

44、nta3*3;D.inta3.2;以下正确的数组定义形式是A.intn;scanf(%d,&n);intan;B.inta1.10;C.inta3.2;D.#defineN10intaN;以下对一维整型数组a的正确说明是A.inta(l0);B.intn=l0,an;C.intn;D.#defineSIZE10scanf(%d,&n);intan;intaSIZE;以下程序的输出结果是main()inti,a10;for(i=9;i=0;i-)ai=10-i;printf(%d%d%d,a2,a5,a8);A.258B.741C.852D.369以下程序的输出结果是main()inti,k,a

45、10,p3;k=5;for(i=0;i10;i+)ai=i;for(i=0;i3;i+)pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;printf(%dn,k);A.20B.21C.22D.23以下程序的输出结果是main()intp7=11,13,14,15,16,17,18,i=0,k=0;while(i7&pi%2)k=k+pi;i+;printf(%dn,k);A.58B.56C.45D.24下列二维数组初始化语句中正确且与语句floata3=0,3,8,0,9等价于A.floata2=0,3,8,0,9;B.floata3=0,3,8,0,9,0;C.float

46、a3=0,3,8,0,9,0;D.floata2=0,3,8,0,9,0;下列二维数组初始化语句中,正确的是A.inta3=8,0,7,0,3,1,2,5;B.inta=9,3,1,8,4,2,3,5,7;C.floata23=1,2,3,4,5,6;D.floata3=1,2,3,4,5,6,7,8,9;以下能正确定义二维数组的是A.inta3;B.inta3=2*3;C.inta3=;D.inta23=1,2,3,4;以下数组定义中不正确的是A.inta23;B.intb3=0,1,2,3;C.intc100100=0;D.intd3=1,2,1,2,3,1,2,3,4;以下不能正确定义二

47、维数组的选项是A.inta22=1,2;B.inta2=1,2,3,4;C.inta22=1,2,3;D.inta2=1,2,3,4;若有说明inta54,则对数组元素的正确引用是A.a3+12*2B.a(2+1)(0)C.a2+2,3D.a2*23若有说明:inta34,则对a数组元素的正确引用是A.a24B.a1,3C.a1+10D.a(2)(1)以下程序的输出结果是main()inta44=1,3,5,2,4,6,3,5,7;printf(%d%d%d%dn,a03,a12,a21,a30);A.0650B.1470C.5430D.输出值不定定义如下变量和数组:inti,x33=1,2,

48、3,4,5,6,7,8,9;则下面语句的输出结果是for(i=0;i3;i+)printf(%d,xi2-i);A.159B.147C.357D.369以下程序的输出结果是#includemain()intm3=1,4,7,2,5,8,3,6,9;inti,j,k=2;for(i=0;i3;i+)printf(%d,mki);A.456B.258C.369D.789设inta10;则数组a的首元素是 。在C语言中,有语句“inta=0,1,2,3;”,则数组a的长度是 。在C语言中,有语句“charch10;”,则数组ch所占字节数为 。若有C语句:inta3=1,2,3,4,5,6,7,8;

49、则数组a第一维的大小为 。在C语言中,声明一个2行3列的二维整型数组a的语句是“ ;”。设doubley45;,则数组y中元素的个数是 。设inta4=l,2,3,4,5,6,7;,则a13的值是 。设inta34=1,2,5,3,2,4,7,9,3,6,5,8;则表达式a12+a23的值是 。()二维数组a34可分解为三个一维数组a0、a1、a2,这三个一维数组都有4个元素。()charstr10;是错误的说明语句。【程序】#includemain()inta33=1,2,3,4,5,6,7,8,9,i,j;for(i=0;i3;i+)for(j=0;j3;j+)if(i=j)printf(

50、%d,aii);【运行结果】【程序】#includemain()inti,j,row,column,m;intarray33=100,200,300,28,72,-30,-850,2,6;m=array00;for(i=0;i3;i+)for(j=0;j3;j+)if(arrayijm)m=arrayij;row=i;column=j;printf(%d,%d,%dn,m,row,column);【运行结果】第八章指针以下程序段执行后,a的值为int*p,a=10,b=1;p=&a;a=*p+b;A.12B.11C.10D.13执行如下一段程序后,ab值为int*var,ab;ab=100;v

51、ar=&ab;ab=*var+10;A.120B.110C.100D.90程序的输出结果是若inta=511,*b=&a;则printf(%dn,*b);A.无确定值B.a的地址C.512D.511分析下面程序,程序的输出结果是main()int*p1,*p2,*p,a=5,b=8;p1=&a;p2=&b;if(ab)p=p1;p1=p2;p2=p;printf(%d,%d,*p1,*p2);printf(%d,%d,a,b);A.8,55,8B.5,88,5C.5,85,8D.8,58,5有以下程序main()inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r

52、;printf(%d,%d,%d,%dn,*p,*q,a,b);程序运行后的输出结果是A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7以下定义语句中正确的是A.chara=Ab=B;B.floata=b=10.0;C.inta=10,*b=&a;D.float*a,b=&a;若有说明语句:inta,b,c,*d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是A.scanf(%d%d%d,&a,&b,d);B.scanf(%d%d%d,&a,&b,&d);C.scanf(%d%d%d,a,b,d);D.scanf(%d%d%d,a,b,*d);设有定义:i

53、nta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是A.scanf(%d,pa);B.scanf(%d,a);C.scanf(%d,&pa);D.scanf(%d,*pa);若有以下定义和语句:inta10=1,2,3,4,5,6,7,8,9,10,*p=a;则不能表示a数组元素的表达式是A.*pB.a10C.*aD.ap-a若已定义:inta9,*p=a;并在以后的语句中未改变p的值,不能表示a1地址的表达式是A.p+1B.a+1C.a+D.+p设有以下语句inta10=0,1,2,3,4,5,6,7,8,9,*p=a;则_不是对a数组元素的正确引用,其中(0i10)A.ap

54、-aB.*(&ai)C.piD.*(*(a+i)有以下程序段,b中的值是inta10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;A.5B.6C.8D.9以下程序的输出结果是main()inta=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(%dn,*p+9);A.0B.1C.10D.9以下程序的输出结果是main()inta10=1,2,3,4,5,6,7,8,9,10,*p=a;printf(%dn,*(p+2);A.3B.4C.1D.2以下程序的输出结果是main()intx8=8,7,6,5,0,0,*s;s=x+3;printf(%dn

55、,s2);A.随机值B.0C.5D.6若有以下说明:inta10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为6的表达式是A.*p+6B.*(p+6)C.*p+=5D.p+5以下程序的输出结果是main()inti,x33=9,8,7,6,5,4,3,2,1,*p=&x11;for(i=0;i4;i+=2)printf(%d,pi);A.52B.51C.53D.97以下执行程序段后,m的值为inta23=1,2,3,4,5,6;intm,*p;p=&a00;m=(*p)*(*(p+2)*(*(p+4);A.15B.14C.13D.12设有说明int(*ptr)m;其中标识符pt

56、r是A.m个指向整型变量的指针B.指向m个整型变量的函数指针C.一个指向具有m个整型元素的一维数组的指针D.具有m个指针元素的一维指针数组,每个元素都只能指向整型量若有定义int*p3;则以下叙述中正确的是A.定义了一个基类型为int的指针变量p,该变量具有三个指针B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C.定义了一个名为*p的整型数组,该数组含有三个int类型元素D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素以下程序的输出结果是voidprtv(int*x)printf(%dn,+*x);main()inta=25;prt

57、v(&a);A.23B.24C.25D.26以下程序的输出结果是voidfun(intx,inty,int*cp,int*dp)*cp=x+y;*dp=x-y;main()inta,b,c,d;a=30;b=50;fun(a,b,&c,&d);printf(%d,%dn,c,d);A.50,30B.30,50C.80,-20D.80,20以下程序的输出结果是int*f(int*x,int*y)if(*x*y)returnx;elsereturny;main()inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf(%d,%d,%dn,*p,*q,*r);A.

58、7,8,8B.7,8,7C.8,7,7D.8,7,8数组名作为函数调用的实参,传递给形参的是A.数组的首地址B.数组的第一个元素的值C.数组中全部元素的值D.数组元素的个数在C语言的函数中A.必须有形参B.形参必须是变量名C.可以有也可以没有形参D.数组名不能作形参以下程序的输出结果是#includeintf(intb,intm,intn)inti,s=0;for(i=m;in;i=i+2)s=s+bi;returns;main()intx,a=1,2,3,4,5,6,7,8,9;x=f(a,3,7);printf(%dn,x);A10B.18C.8D.15变量的指针,其含义的指该变量的 。设

59、inta=10,*p=&a;,则执行printf(%dn,*p+a);的结果是 。printf(%dn,NULL);的结果为 。设inta,*p=&a;,通过指针变量p为a输入值的scanf语句是 。设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。scanf(%d, );printf(%dn, );设inta10=1,2,3;则*(a+3)的值是 。设inta5=l,3,5,7,9,*p=&a2;,则+(*p)的值是 。若有如下定义语句:inta4=10,20,30,40,*p=&a2;则*p的值为 。设inta32=2,4,6,8,10;则*(a

60、2+1)的值是 。设ints32=1,2,3,4,5,6,(*p)2=s;,则*(*(p+1)+1)的值是 。在C语言中,当调用函数时,实参是一个数组名,则函数传送的是数组的 。()C语言中的所有变量都不能存放地址。()指针就是地址,因此一个变量的指针就是该变量的地址。()inti,*p=&i;是正确的C说明语句。()语句int*p;*p=0;存在着潜在的危险。()语句int*p;p=0;是错误的。()函数调用时,若形参和实参均为地址量,则形参与实参结合的传递方式为双向传递。()int*p3;定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针。()C语言函数的返回值只能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论