C_章节习题

上传人:微*** 文档编号:171401564 上传时间:2022-11-26 格式:DOCX 页数:56 大小:209.70KB
收藏 版权申诉 举报 下载
C_章节习题_第1页
第1页 / 共56页
C_章节习题_第2页
第2页 / 共56页
C_章节习题_第3页
第3页 / 共56页
资源描述:

《C_章节习题》由会员分享,可在线阅读,更多相关《C_章节习题(56页珍藏版)》请在装配图网上搜索。

1、第1章程序设计基本概念1 .以下叙述中正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行 C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晩,具有其他语言的一切优点2. C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B) if, switch, breakC) for,while,do-whileD) if, for,continue3 .下列叙述中正确的是A) C语言编译时不检查语法B) C语言的子程序有过程和函数两种 C语言的函数可以嵌套定义D) C语言的函数可以嵌套调用4 .以下叙述中正确的是A)构成C程

2、序的基本单位是函数B)可以在个函数中定义另一个函数 main 函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义5 .以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另个函数C) main 函数必须放在其他函数之前D) C函数定义的格式是K&R格式6 .个C语言程序是由A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成7 . C语言规定,在个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面可以任意D)必须在最后8 .以下叙述不正确的是A) 个C源程序可由一个或多个函数组成B) 个C源程序必须包含个m

3、ain函数 C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面9 . C语言程序的基本单位是A)程序行B)语句C)函数D)字符10 .以下说法错误的是A)个算法应包含有限个步骤B)在计算机上实现的算法是用来处理数据对象的算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现D)算法的目的是为了求解11 .下列选项中不是结构化程序基本结构的是A)顺序结构B)跳转分支结构选择结构D)循环结构填空题1.设y是血型,请写出y为奇数的关系表达式【I】2,用高级语言编写的程序称为【2】程序,它可以通过解释程序翻译一句执行句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后

4、执行。第2章C程序设计的初步知识选择题1 . c语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型整型、字符型、逻辑型D)字符型、实型、逻辑型2 .若变量已正确定义并赋值,以下符合C语言语法的表达式是A) a:=b+lB) a=b=c+2C) int 18.5%3D) a=a+7=c+b3 .下列可用于C语言用户标识符的组是A) void, define, WORDB) a3_b3,_123, CarC) For,-abc, IF CaseD) 2a, DO, sizeof4 . C语言中运算对象必须是整型的运算符是A)%= B)/ C)= D)=5 .若变量a,i已正确定

5、义,且i已正确赋值,合法的语句是A) a=lB)+i;C) a=a+=5;D) a=int (i);6.在C语言中,运算对象必须是整型数的运算符是7,若有定义:A) 2. 500000 0 3.500000A) % B)%和 D)* int a=7;float x=2.5,y=4.7;贝表达式x+a%3*(int)(x+y)%2/4的值是B) 2.750000D)0.000000B) main () int x, y, z;x=0, y=x+l;z=x+y;)D) main () int x, y, z;x=0;y=x+l;z=x+y,8.以下选项错误的是A) main () int x, y

6、, z;x=0;y=x-l;z=x+y;C) main () int x;int z;int y;x=0, y=x+l;z=x+y;9,在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A) a=20000+20000;B) a=4000*10;C) a=30000+10000;D) a=4000L*10L;10.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=I6,k=32)后,x的值为A)4B)16C)32D)5211.设有intx=ll;则表达式(x+*l/3)的值是A)3B)4C)11D)1212.下列数据中,不合法的C语言实型数据的是A)0.

7、123B)123e3C)2. Ie3.5D)789.013.设变量a是int型,f是float型,i是double型,则表达式10+a+i*f值的数据类型为A) intB) floatC) doubleD)不确定14 .设以下变量均为int类型,表达式的值不为7的是A)(x=y=6, x+y,x+1) B)(x=y=6, x+y, y+1)C)(x=6, x+1, y=6, x+y) D)(y=6, y+1, x=y, x+1)15 .若变量a是int类型,并执行了语句:a=,A,+1.6;,则正确的叙述是A) a的值是字符CB) a的值是浮点型不允许字符型和浮点型相加D) a的值是字符A的A

8、SCII值加上116 .设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A) n=(n*100+0.5)/100.0B) m=n*100+0.5, n=m/100.0C) n=n*100+0.5/100.0D) n=(n/100+0.5)*100.017 .下面四个选项中,均是不正确的8进制数或16进制数的选项是A)0160x8f018B)Oabc017OxaC)010-0x110x16D)0al27ff-12318 .以下选项中,与k=n+完全等价的表达式是A) k=n,n=n+lB) n=n+l,k=nC) k=+nD)

9、k+=n+l19 .以下叙述正确的是A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符20 . C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母B)必须为下划线必须为字母或下划线D)可以是字母,数字和下划线中任一字符21 .已知各变量的类型说明如下:int k, a, b;unsigned long w=5;double x=l.42;则以下不符合C语言语法的表达式是A) x%(-3)B) w+=-2C) k

10、=(a=2, b=3, a+b)D) a+=a-=(b=4)*(a=3)22 .若有以下定义,则能使值为3的表达式是int k=7,x=12;A) x%=(k%=5)B) x%=(k-k%5)C) x%=k-k%5D)(x%=k)-(k%=5)23.下面四个选项中,均是合法整型常量的选项是A)160-Oxffff011B)-Oxcdf01aOxeC)-019860120668D)-0x48a2e5Ox24.假定x和y为double型,则表达式x=2,y=x+3/2的值是A)3.500000C)2.000000B)3D)3.00000025.以下变量x, y, z均为double类型且已正确赋值

11、,不能正确表示数学式子x+y+z的C语言表达式是A) x/y*zC) x/y*l/zB) x*(1/(y*z)D) x/y/z26.若变量已正确定义并赋值,下面符合C语言语法的表达式是A) m :=5C) float 8%5B) c=b=a=lD) x+5=y+227.已知int k, m=l;执行语句k=一m+;后,k的值是A)-1B)0C)1D)228.已知int m;float k;正确的语句是A)(int k)%mC) int (k%m)B) int (k)%mD)(int) k%m29.下面各选项中,均是C语言标识符的选项组是A)33 we autoC)433e elseB)_23

12、me _3ewD) ER -DF 3230.已知int k;float m=-3;执行语句k=m%2;后,变量k的值是A)-1B)0C)1D)语句有错误31,不能进行+和一运算的数据类型为A)指针填空题B)整型长整型D)常量1 .设int a=5,b=6,表达式(+a=b-)?+a:-b的值是【1】2 .定义inta=5,b;,则执行表达式b=+a*-a之后,变量b的值为【2】3 .以下程序的输出结果是【3】include stdio. hmain () int a=065;printf (%dn,a);第3章顺序结构选择题1 .若变量已正确说明为float型,要通过语句scanf (%f%f

13、%f ,&a,&b,&c);给2赋予10.0, b赋予22.0, c 赋予33.0,下列不正确的输入形式是A) 10(回车22回车33回车B) 10.0,22.0,33.0回车C) 10.0回车22.033.0回车D) 1022回车33回车2 .若执行下述程序时,若从键盘输入6和8时,结果为main () int a, b, s;scanf (&a,&b);s=aif (ab)s=b;s*-s;printf (*%d*, s);A)36B)64C)48D)以上都不对3 .下列程序段的输出结果是:int a=1234;float b=123.456;double c=12345.54321;pr

14、intf (%2d,%2. lf,%2. lf”,a,b, c);A)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.54 .以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值5 .下列程序的输出结果是main () double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf

15、(%dn, d*y);A)3B)3.2C)0D)3.076 .以下程序段的输出结果是int a=1234;printf (%2dn”, a);A)12B)34C) 1234D)提示出错、无结果7.已有定义int a=-2;和输出语句printf (鱷81x”, a);以下正确的叙述是A)整型变量的输出形式只有%d-种B)场是格式符的种,它可以适用于任何种类型的数据版是格式符的种,其变量的值按十六进制输出,但%81x是错误的D) %81x不是错误的格式符,其中数字8规定了输出字段的宽度8 .以下程序的输出结果是 main () int a=21, b=ll;printf (%d n,.a+H,-

16、b+a);A)30B)31C)32D)339 .若变量已正确说明为int类型,要通过语句scanf (d%d%d”,&a,&b,&c);给a赋值3, b赋值5, c赋值8,不正确的输入形式是A)3回车)B)3,5,8回车5回车8回车)C)3回车)D)35回车)58回车8回车)10. x, y, z被定义为int型变量,若从键盘给x, y, z输入数据,正确的输入语句是 A) INPUT x、 y、 z;B) scanf (*%d%d%d*,&x,&y,&z);C) scanf (%d%d%d”, x, y, z);D) read&x,&y,&z);11 .设x、y均为整型变量,且x=10y=3

17、,则以下语句的输出结果是 printf (*%d,%dn*, x,y);A)10,3B)9,3C)9,2D)10,212 .下面程序的输出结果为main () int a, b;b=(a=3*5, a*4, a*5);printf (%d, b);A)60 B)75 C)65D)无确定值13.c语言中,系统的标准输入文件是指A)键盘B)显示器C)软盘D)硬盘14.已知i, j, k为int型变量,若从键盘输入:1,2,3回车,使i的值为1, j的值为2, k的值为3,以下选项中正确的输入语句是A)scanf C%2d,%2d,%2d*, i, j, k);B)scanf (*%d %d %d”

18、,&i,&j,&k);C)scanf C%d,%d,%d,&i,&j,&k);D)scanf (i=%d, j=%d, k=%d,&i,&j,&k);15.下列程序运行的结果是main ()float x;int i;x=3.6;i=(int) x;printf (*x=%f, i=%d ”, x, i);)A) x=3.600000, i=3B) x=3.6, i=3C) x=3, i=3D) x=3.600000, i=3.00000016 .已知int k=10, m=3,n;则下列语句输出结果是 printf (%dn, n=(k%m, k/m);A)2B)3C)4D)517 .已知i

19、nt ajfloat b;所用的scanf调用语句格式为:scanf (a%d, b二%f”,&a,&b );为了将数据3和25.08分别赋给x和y,正确的输入应当是A) 3,25.08B) a=3, b=25.08C) a/3, b=25.08D) a/3b=25.08填空题1 .以下程序的输出结果是|0int a=1234;printf (2dn,a);2 .以下程序的输出结果是20main ()int a=0;a+=(a=8);printf (dn,a);第4章选择结构D) a=2, b=2D) 2,2,3D) 1. 000000D) -1D) 10选择题:1.有如下程序: main (

20、) int x=l, a=0, b=0; switch (x) case 0: b+;case 1: a+; case 2: a+;b+; printf (*a=%d, b=%d n*, a, b);)该程序的输出结果是A) a=2, b=lB) a=l, b=lC) a=l, b=02 .有以下程序 main () int i=l, j=l, k=2;if (j+|k+)&i+) printf (*%d,%d,%dn*, i, j, k);执行后输出结果是A)1,1,2B)2,2,1C)2,2,23 .有如下程序 main () float x=2.0, y;if (x0.0) y=0.0;

21、else if (x12?x+10:x-12|; printf (%d n*, y);A)0B)22C)126 .在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。在求逻辑值时,用表示逻辑表达式值为“真”,乂用表示逻辑表达式值为“假”。A)10 B)01 C)非非 D)117 .若已定义:int a=25,b=14,c=19;以下三H运算符(?:)所构成语句的执行后av=25&b-=2&c|printf(*a=%d,b=%d,c=%dnn,a,b,c)|printf (n#a=%d,b=%d,c=%dnH, a,b,c):程序输出的结果是A)*a=25, b=13

22、, c=19B)*a=26, b=14, c=19C)# a=25, b=13, c=19D)# a=25, b=14, c=198 .有如下程序 main () float x=2.0, y;if (x10.0) y=l.0/x;else y=l.0; printf (%fn, y);该程序的输出结果是A)0.000000B)0.250000C)0.500000D)1.0000009 .以下4个选项中,不能看做一条语句的是A);B) a=5, b=2.5, c=3.6;C) if (a=10 or a=10 &aB) a=0|a=10 II a=0C) (exp=l)D) (exp!=l)C

23、)非的数D) -1C) 3D) 4C) 3D) 1则以下表达式中能完全等价于表达式(exp)的是11 .有如下程序 main () int a=2, b=-l, c=2;if (ab)if (b0) c=0;else c+;printf (%dn, c);该程序的输出结果是A)0 B)1 C)2 D)312 .设x, y和z都是int型变量,且x=3, y=4, z=5,则下面表达式中,值为的表达式是A) x&yB) x=yC) x1+y&y-zD)!(xb)&(n=cd)后n的值是A)1B)216 .设x,y,t均为int型变量,执行语句:x=y=3;t=+x|+y;完成后,y的值为A)不确

24、定B)417 .若执行下面的程序时,从键盘上输入5和2,则输出结果是main () int a, b, k;scanf (*%d,%d ”,&a,&b);k=a;if (ab) k=a%b;else k=b%a;printf (%d n , k);A)5B)3C)2D)018.请阅读以下程序:main () int a=5, b=0, c=0;if (a=b+c) printf (* n) else printf ($n);以上程序A)有语法错不能通过编译B)可以通过编译但不能通过连接C)输出*D)输出$19.当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是A) m=k=nB)(m

25、=k)&(n=k)C)(m=k) II (n=k)D)(k=m)&(n=k)20.下列程序的运行结果是#include stdio. h main () int x=9, y=5, z=8;if (xy)if (yy) if (xz)printf (%d, x) else printf (知,y) printf (%dn, z);第5章循环结构选择题1 .已知int t=0;while (t=l)则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1循环控制表达式不合法D)以上说法都不对2 .有如下程序: main () int n=9; while (n6)n; printf

26、 (刎,n);)该程序的输出结果是D) 9876A)987B)876C)87653,在下列选项中,没有构成死循环的是A) int i=100;B) for (;:);while (1)i=i%100+l;if (i100) break;)C) int k=10000;D) int s=36;dok+;while(k10000); while (s)s;4 .设有以下程序段 int x=0, s=0; while (!x!=0) s+=+x; printf (%d, s);则A)运行程序段后输出B)运行程序段后输出1程序段中的控制表达式是非法的D)程序段执行无限次5 .以下程序段的描述,正确的是

27、 x=T;do x=x*x;while (!x);A)是死循环B)循环执行两次循环执行次D)有语法错误6 .在下述程序中,判断ij共执行的次数是 main () int i=0, j=10, k=2, s=0; for (;)i+=k;if (ij) printf (*%d s); break;) s+=i;A)4B)7C)5D)67.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。#include main () int i=0,j, k;doi+;k=316-13*i;while ();j=k/U;printf C316=13*%d+ll*%d,

28、i, j);A) k/11B) k%llC) k/ll=OD) k%ll=O8 .下面程序的运行结果是#include main () int y=10;doy-;while (-y); printf (%dn”,y);)A)-1B)1C)8D)09 .下面程序的运行结果是#include main () int a=l, b=10; dob一=a;a+;while (b0);b0成立循环继续,b。不成立循环结束然后b自减1printf (*a=%d, b=%d n*, a, b);A) a=3, b=llB) a=2, b=8C) a=l, b=-lD) a=4, b=910.有如程序 ma

29、in () int x=23;do printf (%d”,x-); while (!x);)该程序的执行结果是A)321B)23不输出任何内容D)陷入死循环11.执行语句for (i=l;i+4;):后变量i的值是A)3B)4C)5D)不定12.有一堆零件(100到200之间),如果分成4个零件组的若干组,则多2个零件:若分成7个零件一组,则多3个零件:若分成9个零件组,则多5个零件。下面程序是求这堆零件总数,请选择填空。#include main () int i;for (i=100;i200;i+)if (i-2)%4=0)if (!(i-3)%7)if ()printf (d”, i

30、);A) i%9=5B) i%9!=5C)(i-5)%9!二D)(i-5)%9=013 .设有程序段int k=10;while (k=0) k=k-l;则下面描述中正确的是A) while循环执行10次B)循环是无限循环循环体语句次也不执行D)循环体语句执行次14 .对表达式for (表达式1;表达式3)可理解为A) for (表达式1;0;表达式3)B) for (表达式1;1;表达式3)C) for (表达式1;表达式1;表达式3)D) for (表达式1;表达式3;表达式3)15 .以下程序的输出结果是main () int a, i;a=0;for (i=l;i5;i+) switc

31、h (i) case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;)printf (%dn, a);)A)31B)13C)10D)2016 .若有如下语句int x=3;do printf (%d n”, x-=2);while (!(-x);则上面程序段A)输出的是1B)输出的是1和一2C)输出的是3和D)是死循环17 .下面程序的功能是将从键盘输入的对数,由小到大排序输出,当输入对相等数时结束循环,请选择填空。#include main () int a, b, t;scanf (%d%d”,&a,&b);while ()if (ab)t=a

32、;a=b;b=t;printf (*%d,%d n*, a, b);scanf (%d%d”,&a,&b);A)!a=bB) a!=bC) a=bD) a=b18 .下面有关for循环的正确描述是A) for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判断表达式在for循环中,不能用break语句跳出循环体D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来19 .以下程序的输出结果是main () int i, j, x=0;for (i=0;i2;i+) X-H-;for (j=0;j3;j+)if (j%2) continue:printf

33、(x=%dn”,x);)A) x=4B) x=8C) x=6D) x=1220 .设有以下程序段int x=0, s=0:while (!x!=0) s+=+x;printf (%d”, s);则A)运行程序段后输出。B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次21 .对下I , II两个语句描述正确的是I . while (1) II. for (:)B) !是无限循环II错误D)以上答案都错A)都是无限循环 I循环一次,II错误22 .以下描述中正确的是A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句8) do-whi

34、Ie循环由do开始,用while结朿,在while (表达式)后面不能写分号在do-while循环体中,是先执行次循环,再进行判断D) do-while循环中,根据情况可以省略while23.卜列说法正确的是int i, X:for (i=0, x=0;i=9&x!=876; i+) scanf (紀,x);A)最多的执行10次 B)最多执行9次是无限循环D)循环体次也不执行24 . C语后中while和dowhile循环的主要区别是A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件更严格C) do-while允许从外部转到循环体内D

35、) do-while的循环体不能是复合语句25 .现有定义定t k=1;则执行语句while (+k4);后,k的值为A)4B)526.以下程序的运行结果为#include stdio. hmain () int m, n;for (m二, n=10;m2;m一一) k=0:for (n=m;nl;n-)k=k+m*n;)printf (飞fn”, k);)A)5.000000C)25.00000028.下列程序的输出结果是#include stdio. hmain ()int i, a=0, b=0;for (i=l;i10;i+) if (i%2=0)a+;continue;)b+;pri

36、ntf (a=%d, b=%d”, a, b);A) a=4, b=4C) a=5, b=4C)6D)8C)9,7D)7,9B)15.000000D)35.000000B) a=4, b=5D) a=5, b=5第6章字符型数据选择题1 .有说明语句:charc=72;则变量cA)包含1个字符 B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定2在C语言中,退格符是A)nB)tC)fD)b3,字符型数据在机器中是用ASCH码表示的,字符“5”和“7”在机器中表示为A)10100011和01110111B)01000101和01100011C)00110101和00110111D)01

37、100101和011001114.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是#include main () char c;int v0=l, vl=0, v2=0;do switch (c=getchar () case a:case A: case 1 e:case E: case i:case I: case :case O: case u:case U:vl+=l; default:v0+=l;v2+=l;while (c!=n);printf (*vO=%d, vl=%d, v2=%dn*, vO, vl, v2);)A) v0=7,vl=

38、4,v2=7B) v0=8,vl=4,v2=8C) v0=ll,vl=4,v2=llD) v0=13,vl=4, v2=125 .有如下程序段int a=14, b=15, x;char c=, A;x=(a&b)&(c B);执行该程序段后,x的值为 A) tureB) falseC)0D)16 .若变量c为char类型,能正确判断出c为小写字母的表达式是A) a=c= a) I I (cz)C) ( a=c)D) (c= a)&(cz)7在C语言中,char型数据在内存中的存储形式是A)补码B)反码C)原码D) ASCII码8.以下程序的输出结果是main () char c二,z;pri

39、ntf (%c”, c-25);A) aB) ZC) z-25D) y9.下列选项可以正确表示字符型常量的是A)rC)897”填空题B)公D)2961.如下语句printf (%cn, B+40);在执行后的输出结果是1】2.下列程序的输出结果是2】。maim () charb =Helloyou;b 5=0;printf (%sn,b);)填空题1 .若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为个函数的实参函数调用可以出现在表达式中D)函数调用可以作为个函数的形参2 .有以下程序float fun (int x,int y

40、) return (x+y); main () int a=2, b=5, c=8;printf (%3. Ofn”, fun (int) fun (a+c, b), a-c);程序运行后的输出结果是A)编译出错B)9C) 21D)9.03.以下说法正确的是A) C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main 函数中定义 C语言程序总是从main 函数开始执行D) C语言程序中的main 函数必须放在程序的开始部分4,在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是 A)地址传递 B)单.向值传递由实参传形参,再由形参传实参D)传递方式由用

41、户指定5 .以下正确的说法是A)定义函数时,形参的类型说明可以放在函数体内8) return后边的值不能为表达式如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参类型不一致,以实参类型为准6 .有以下程序 int f (int n) if (n=l) return 1;else return f (n-l)+1;main () int i,j=0;for (i=l;i3;i+) j+=f (i); printf (*%dn*, j);程序运行后的输出结果是A)4B)32D)17 .若有以下程序#include void f (int n);main () void f (i

42、nt n);f (5);)void f (int n) printf (%dn, n);则以下叙述中不正确的是A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f 对于以上程序,编译时系统会提示出错信息:提示对f函数看复说明D)函数f无返回值,所以可用void将其类型定义为无返回值型8 . C语言允许函数类型缺省定义,此时函数值隐含的类型是A) floatB) intC) longD) double9 .以下程序有语法错误,有关错误原因的正确说法是main () int G=5, k;void pr

43、t_char ();k=prt_char (G);A)语句void prt-char ();有错,它是函数调用语句,不能用void说明B)变量名不能使価大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线10 .以下叙述中不正确的是A)在不同的函数中可以使用相同的名字的变量B)函数中的形式参数是局部变量在个函数内定义的变量只在本函数范围内有效D)在个函数内的复合语句中定义的变量在本函数范围内有效11 .以下正确的说法是A)用户若需调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义系统根本不允许用户重新定义标准库函数D)用户若需调用标准

44、库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用12.以下正确的函数头定义形式是A) double fun (intx, inty)B) double fun (intx; inty)C) double fun (intx, inty)D) double fun (intX, y):13.有以下程序fun (int x,int y,int z) z=x*y;main () int a=4, b=2, c=6;fun (a, b, c);printf (%d”, c);程序运行后的输出结果是A)16 B)6 C)8 D)1214,下列函数的运行结果是main ()

45、 int i=2, p;int j, k;j=i;k=+i;P=f (j.k);printf (刎,p);)int f (int a, int b) int c;if (ab) c=l;else if (a=b) c=0;else c=-l;return (c);A) -1 B)1 C)2 D)编译出错,无法运行15.以下对C语言函数的有关描述中,正确的是A)在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参B) C函数既可以嵌套定义又可以递归调用函数必须有返回值,否则不能使用函数D)函数必须有返回值,返回值类型不定、16 .有以下程序:void fun (int a,int

46、 b,int c)a-456, b=567, c=678;main () int x=10, y=20, z=30;fun (x, y, z);printf (%d,%d,%d n, x, y, z);输出结果是A)30,20,10B)10,20,30C)456,567,678D)678,567,45617 .有以下函数:fun (char *p)return p;该函数的返回值是A)无确切值B)形参p中存放的地址值C)个临时存储单元的地址D)形参p自身的地址值18 .以下不正确的说法是C语言规定:A)实参可以是常量,变量或表达式B)形参可以是常量,变量或表达式实参可以为任何类型D)形参应与其

47、对应的实参类型致19 .以程序的输出结果是long fun ( int n) long s;if (n=lI|n=2) s=2;else s=n-fun (n-l);return s;main () printf (%ldn”, fun (3);A) 1 B)2 C)3 D)420 .以下所列的各函数首部中,正确的是A) void play (var :Integer, var b:Integer)B) void play (int a, b)C) void play (int a, int b)D) Sub play (a as integer, b as integer)21 .下面函数调

48、用语句含有实参的个数为func (expl, exp2),(exp3, exp4,exp5);A)1 B)2 C)4 D)522 .设有如下函数fun (float x)printf (n%d”,x*x);则函数的类型是A)与参数x的类型相同B)是void是int型D)无法确定23 . C语言规定,函数返回值的类型是由A) return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定24 .下面对C语言的描述中,正确的是A)函数一定有返回值,否则无法使用函数B) C语言函数既可以嵌套定义又可以递归调用C)在C语言中

49、,调用函数时,只能将实参的值传递给形参D) C语言程序中有调用关系的所有函数都必须放在同一源程序文件中25 .阅读下面程序段,则执行后的结果为include stdio. hmain ()int m=4, n=2, k;k=fun (m, n);printf (%dn, k);fun (int m, int n)(return (m*m*nrn*n*n);A)64B)8C)56D)026 .阅读下面程序段,则执行后输出的结果是include stdio. hmain ()(char fun (char, int);char a二A;int b=13;a=fun (a, b);putchar (

50、a);)char fun (char a, int b) char k;k=a+b;return k;A) AB) MC) ND) L27.编写求两个双精度数之和的函数,选项中正确的是A) double add (double a,double b)double s;s=a+b;return s;B ) double add (double a,b)double s;s=a+b;return (s);C) double add (double a double b)double s;s=a+b;returns;D) double add (a,b)double a,b,s;s=a+b;retu

51、rn (s);)填空题1 .阅读下面程序,则程序的执行结果为1include stdio. hmain ()(int a=30, b=20, z;z=fun (a+b, a-b);printf (%dn, z);)fun (int a, int b) int z;z=a/b;return z;)2 .函数fun的功能是:根据以下公式求p的值,结果由函数值返回。m与n为两个正数且要求mn。例如:m=12, n=8时,运行结果应该是495.000000。请在题目的空白处填写适当的程序语句,将该程序补充完整。#include #include float fun (int m, int n) int

52、 i;double p=l.0;for (i=l;i=m;i+)2;for (i=l;i=n;i+)3;for (i=l;i=m-n;i+) p=p/i; return p;main () clrscr ();printf (p二%f n”, fun (12,8);选择题1,若有语句int *point,a=4;和A) a, point, *&aC) *&point, *point, &apoint二&a;下面均代表地址的组选项是B)&*a,&a,*pointD)&a,&*point, point2 .以下程序的输出结果是#include void prt (int *x, int *y, i

53、nt *z)printf (*%d,%d,%dn*,+*x,+*y,*(z+); main () int a=10, b=40, c=20;prt (&a,&b,&c);prt (&a,&b,&c);)A)11,42,31B)11,41,2012,22,4112,42,20C)11,21,40D)11,41,2111,21,2112,42,223 .有以下函数char fun (char *p)return p;该函数的返回值是A)无确切的值B)形参p中存放的地址值C)个临时存储单元的地址D)形参p自身的地址值4 .若说明int*p,n;则通过语句scanf能够正确读入数据的程序段是A) p=&n;scanf (%d,&p);B) p=&n;scanf (%d,*p);C) scanf (*%d*,n);D) p=&n;scanf (%d”, p);5 .设有定义:int n=0,*p=&n,*q=&p,则下列选项中正确的赋值语句是A) p=l;B)*q=2;C) q=p;D)*p=5;6 .下列程序的输出结果是int b=2;int fu

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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