C语言练习习题(谭浩强第四版)..附有答案_第1页
C语言练习习题(谭浩强第四版)..附有答案_第2页
C语言练习习题(谭浩强第四版)..附有答案_第3页
C语言练习习题(谭浩强第四版)..附有答案_第4页
C语言练习习题(谭浩强第四版)..附有答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、1一、选择题一、选择题1 1、 一个一个 C C 程序由若干个程序由若干个 C C 函数组成,各个函数在文件中的位置顺序为:(函数组成,各个函数在文件中的位置顺序为:()A A、 任意任意 B B、 第一个函数必须是主函数,其他函数任意第一个函数必须是主函数,其他函数任意C C、 必须完全按照执行的顺序排列必须完全按照执行的顺序排列D D、 其他函数可以任意,主函数必须在最后其他函数可以任意,主函数必须在最后2 2、 下列四个叙述中,正确的是:(下列四个叙述中,正确的是:()A A、 C C 程序中的所有字母都必须小写程序中的所有字母都必须小写B B、 C C 程序中的关键字必须小写,其他标示

2、符不区分大小写程序中的关键字必须小写,其他标示符不区分大小写C C、 C C 程序中的所有字母都不区分大小写程序中的所有字母都不区分大小写D D、 C C 语言中的所有关键字必须小写语言中的所有关键字必须小写3 3、 下列四个叙述中,错误的是:(下列四个叙述中,错误的是:()A A、 一个一个 C C 源程序必须有且只能有一个主函数源程序必须有且只能有一个主函数B B、 一个一个 C C 源程序可以有多个函数源程序可以有多个函数C C、 在在 C C 源程序中注释说明必须位于语句之后源程序中注释说明必须位于语句之后D D、 C C 源程序的基本结构是函数源程序的基本结构是函数4 4、 下面不是

3、下面不是 C C 语言合法标识符的是:(语言合法标识符的是:()A A、abcabc B B、5n5n C C、_4m_4m D D、x3x35 5、 以下叙述不正确的是:(以下叙述不正确的是:()A.A.分号是分号是 C C 语句的必要组成部分语句的必要组成部分B.B.C C 程序的注释可以写在语句的后面程序的注释可以写在语句的后面C.C.函数是函数是 C C 程序的基本单位程序的基本单位D.D.主函数的名字不一定非用主函数的名字不一定非用 mainmain 来表示来表示6 6、 C C 语言中允许的基本数据类型包括:(语言中允许的基本数据类型包括:()A.A. 整型、实型、逻辑型整型、实型

4、、逻辑型 B.B. 整型、实型、字符型整型、实型、字符型C.C. 整型、字符型、逻辑型整型、字符型、逻辑型 D.D. 整型、实型、逻辑型、字符型整型、实型、逻辑型、字符型7 7、 C C 语言中能用八进制表示的数据类型为:(语言中能用八进制表示的数据类型为:()A A、字符型、整型、字符型、整型 B B、整形、实型、整形、实型C C、字符型、实型、双精度型、字符型、实型、双精度型 D D、字符型、整型、实型、双精度型、字符型、整型、实型、双精度型8 8、 下列属于下列属于 C C 语言合法的字符常数是:(语言合法的字符常数是:()A A、 9797 B B、 ”A”A” C C、 tt D D

5、、 ”0”0”9 9、 在在 C C 语言(语言(VCVC 环境)中,环境)中,5 5 种基本数据类型的存储空间长度的排列顺序为:(种基本数据类型的存储空间长度的排列顺序为:() A A、charint=longcharint=long intint =floatdouble=floatdoubleB B、char=intlongchar=intlong intint =floatdouble=floatdoubleC C、charintlongcharintlong int=float=doubleint=float=doubleD D、char=int=longchar=int=long

6、intint =floatdouble=floatdouble1010、若有以下定义语句若有以下定义语句 charchar c1=b,c1=b, c2=e;c2=e; 2 printf(“%d,%cn”,c2-c1,c2-a+A);printf(“%d,%cn”,c2-c1,c2-a+A);则输出结果是:(则输出结果是:() A A、2 2,M M B B、3 3,E E C C、2 2,E E D D、输出项与相应的格式控制不一致,输出结果不确定、输出项与相应的格式控制不一致,输出结果不确定1111、以下合法的赋值语句是:(以下合法的赋值语句是:() A A、x=y=100 x=y=100

7、B B、d-;d-; C C、x x + + y y D D、c c = = int(a+b);int(a+b);1212、在以下一组运算符中,优先级最高的是:(在以下一组运算符中,优先级最高的是:() A A、=10a=10 oror a=0a=0 B B、a=10a=0a=0 C C、a=10a=10 | a=0a=10a=10 & a=0a=01414、下列只有当整数下列只有当整数 x x 为奇数时,其值为为奇数时,其值为“真真”的表达式是:(的表达式是:() A A、x%2=0 x%2=0 B B、!(x%2=0)!(x%2=0) C C、(x-x/2*2)=0(x-x/2*2

8、)=0 D D、!(x%2)!(x%2)1515、设设 a a 为整型变量,不能正确表达数学关系为整型变量,不能正确表达数学关系 10a1510a15 的的 C C 语言表达式是:(语言表达式是:() A A、1 1 00 a a 1515 B B、!(a=10!(a=15)a=15) C C、a10a10 & a15a15 D D、!(a=10)!(a=15)!(a=15)1616、已知已知 x=43,x=43, ch=Ach=A ,y=0y=0;则表达式则表达式(x=y&ch=y&ch8)if(a8)D D #include#include 3737、以下所列语句中

9、,合法的语句是:以下所列语句中,合法的语句是:( ( ) )A Aa=1a=1,b=2b=2 B B+a;+a; C Ca=a+1=5a=a+1=5 D Dy=int(a)y=int(a);二、判断题二、判断题1.1.( ( T T )C)C 语言是严格区分大写和小写的,因此主函数不能写成语言是严格区分大写和小写的,因此主函数不能写成 main()main()以外的其他形式。以外的其他形式。2.2.( ( F F )C)C 语言程序是从源文件的第一条语句开始执行的。语言程序是从源文件的第一条语句开始执行的。3.3.( ( F F )C)C 语言对其数据在内存中所占用的实际字节数是有明确规定的。

10、语言对其数据在内存中所占用的实际字节数是有明确规定的。4.4.( ( F F )C)C 语言中语言中/*.*/*.*/之间的注释内容是不能跨行的。之间的注释内容是不能跨行的。5.5.( ( F F )C)C 语言中多个以语言中多个以“;”“;”结束的语句不能放在同一行。结束的语句不能放在同一行。6.6.( ( F F ) )变量说明语句变量说明语句 intint a=b=c=23;a=b=c=23;是正确的。是正确的。7.7.( ( F F ) )字符型数据不可以和整数数据一起进行算术运算。字符型数据不可以和整数数据一起进行算术运算。8.8.( ( T T )C)C 语言中强制类型转换不会改变

11、原变量的原有数据类型。语言中强制类型转换不会改变原变量的原有数据类型。9.9.( ( F F ) )表达式表达式 j=-i+j=-i+和和 j=-(i+)j=-(i+)不相等不相等10.10. ( ( T T ) )程序段:程序段:i=8,j=10;printf(%d,%d,%d,%dn,i,j,+i,j+);i=8,j=10;printf(%d,%d,%d,%dn,i,j,+i,j+);其结果其结果 9,10,9,10.9,10,9,10.11.11. ( ( F F )C)C 语言中放在语言中放在“”“”之间的内容都被视为字符串的一个构成部分,都可以在屏幕上之间的内容都被视为字符串的一个构

12、成部分,都可以在屏幕上原样显示。原样显示。12.12. ( ( T T ) )计算机程序的执行过程实际上是对程序所表达的数据进行处理的过程。计算机程序的执行过程实际上是对程序所表达的数据进行处理的过程。13.13. ( ( T T ) )目前程序设计的理念已经从目前程序设计的理念已经从“面向过程的程序设计面向过程的程序设计”向向“面向对象的程序设计面向对象的程序设计”方面转变。方面转变。14.14. ( ( T T ) )有人曾提出:计算机程序算法数据结构。有人曾提出:计算机程序算法数据结构。15.15. ( ( T T ) )在程序设计中提到的算法就是在程序设计中提到的算法就是“解决问题的方

13、法和步骤解决问题的方法和步骤”16.16. ( ( T T ) )在程序设计中提到的数据结构就是在程序设计中提到的数据结构就是“程序处理的对象的表示方法程序处理的对象的表示方法”17.17. ( ( T T ) )计算机程序的算法就是解决计算机程序的算法就是解决“做什么做什么”和和“怎么做怎么做”的问题。的问题。18.18. ( ( T T ) )结构化程序设计的基本理念是:将一个较大的问题细分成若干个较小问题的组合。结构化程序设计的基本理念是:将一个较大的问题细分成若干个较小问题的组合。19.19. ( ( F F )C)C 程序的执行是从程序的第一行开始,一直到程序的最后一行结束。程序的执

14、行是从程序的第一行开始,一直到程序的最后一行结束。20.20. ( ( T T )C)C 程序的执行是从主函数的第一行开始,一直到主函数的最后一行结束。程序的执行是从主函数的第一行开始,一直到主函数的最后一行结束。21.21. ( (T T) )设设 x x、t t 均为均为 intint 型变量,则执行语句型变量,则执行语句xx = = 10;t10;t = = x x & x x 10;10;后,后,t t 的值为的值为 0 0 22.22. ( ( T T ) )若若 a a 和和 b b 类型相同类型相同, ,在计算了赋值表达式在计算了赋值表达式 a=ba=b 后后 b b 中

15、的值将放入中的值将放入 a a 中中, ,而而 b b 中的值中的值不变不变 23.23. ( ( T T ) )在在 C C 程序中程序中,%,%是只能用于整数运算的运算符是只能用于整数运算的运算符24.24. ( ( T T ) )在在 C C 语言中,逻辑语言中,逻辑“真真”等价于不等于等价于不等于 0 0 的数的数25.25. ( ( F F ) )C C 语言中字符型、整型、实型都能用八进制表示语言中字符型、整型、实型都能用八进制表示526.26. ( ( T T ) )变量的三要素是:变量名、变量类型、变量的值。变量的三要素是:变量名、变量类型、变量的值。书上必会的题:课后题:第三

16、章书上必会的题:课后题:第三章 P83P834 4,6 6,7 7一、一、 选择题选择题1.1. 以下说法正确的是(以下说法正确的是( ) 。A A)C C 语言程序总是从第一个的函数开始执行语言程序总是从第一个的函数开始执行 B B)在)在 C C 语言程序中,要调用函数必须在语言程序中,要调用函数必须在 mainmain()函数中定义()函数中定义 C C)C C 语言程序总是从语言程序总是从 mainmain()函数开始执行()函数开始执行 D D)C C 语言程序中的语言程序中的 mainmain()函数必须放()函数必须放在程序的开始部分在程序的开始部分 2.2. 算法是指为解决某个

17、特定问题而采取的确定且有限的步骤,下面不属于算法的五个特算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是(性的是( ) 。 A A)有零个输入或多个输入)有零个输入或多个输入 B B)高效性)高效性 C C)有穷性)有穷性 D D)确定性)确定性 3.3. C C 语言中用于结构化程序设计的语言中用于结构化程序设计的 3 3 种基本结构是种基本结构是 A A)顺序结构、选择结构、循环结构)顺序结构、选择结构、循环结构 B B)if,switch,breakif,switch,break C C)for,while,do-whilefor,while,do-whi

18、le D D)if,for,continueif,for,continue4.4. 一个一个 C C 程序的执行是从(程序的执行是从( )。A A)main()main()函数开始,直到函数开始,直到 main()main()函数结束函数结束 B B)第一个函数开始,直到最后一个函数结束第一个函数开始,直到最后一个函数结束C C)第一个语句开始,直到最后一个语句结束第一个语句开始,直到最后一个语句结束 D D)main()main()函数开始,直到最后一个函数结束函数开始,直到最后一个函数结束5.5. 组成组成 C C 程序的基本单位是程序的基本单位是( )。A A)函数函数 B B)标识符标

19、识符C C)表达式表达式D D)语句语句6.6. 若有语句若有语句 scanfscanf(“%d%d”“%d%d”,&a&a,&b&b);要使变量);要使变量 a a,b b 分别得到分别得到 1212 和和 3434;正确的输;正确的输入形式为入形式为( )。A A)1212 3434 B B)1212, ,3434 C C)12341234 D D)1212:3434 7.7. C C 语言中最简单的数据类型包括语言中最简单的数据类型包括( )。A A)整型、实型、逻辑型)整型、实型、逻辑型 B B)整型、实型、字符型)整型、实型、字符型 C C)整型、字符

20、型、逻辑型)整型、字符型、逻辑型 D D)字符型、实型、逻辑型)字符型、实型、逻辑型8.8. C C 语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( )。A A)必须为字母)必须为字母 B B)必须为下划线)必须为下划线C C)必须为字母或下划线)必须为字母或下划线 D D)可以是字母,数字和下划线中任一字符)可以是字母,数字和下划线中任一字符9.9. 下列可用于下列可用于 C C 语言用户标识符的一组是语言用户标识符的一组是( )。6A A)void,void, define,define, WORDWORD

21、 B B)a3_b3,a3_b3, _123,Car_123,CarC C)For,For, -abc,-abc, IFIF CaseCase D D)2a,2a, DO,DO, sizeofsizeof10.10. C C 语言中运算对象必须是整型的运算符是语言中运算对象必须是整型的运算符是( )。A A)%=%=B B)/ / C C)= = D D)=10a=10 oror a=0a=0|a=0|a=10a=10 &a=0&a=10a=10a=017.17. 若变量若变量 c c 为为 charchar 类型,能正确判断出类型,能正确判断出 c c 为小写字母的表达式是为

22、小写字母的表达式是A A)a=c=za=c=ac=a)|(c=zc=z)C C) (a=ca=cz=c) D D) (c=ac=a)&(c=zc12x+10:x-12;y=x12x+10:x-12;printfprintf(%d%dn,yn,y); ; A A)0 0 B B)2222 C C)1212 D D)101019.19. 已知已知 charchar ch=Cch=C;则以下表达式的值是;则以下表达式的值是 ch=ch=(ch=Ach=A & ch=Zch30b:c;a30b:c; switchswitch(d d) casecase 3030 : : printfp

23、rintf(%d,a%d,a); ; casecase 4040 : : printfprintf(%d,b%d,b); ; casecase 5050 : : printfprintf(%d,c%d,c); ; defaultdefault : : printfprintf(#);则输出的结果是则输出的结果是A A)40,50,40,50, B B)50,#50,# C C)40,#40,# D D)40,50,#40,50,#二、二、 填空题填空题1. 用高级语言编写的程序称为(用高级语言编写的程序称为(源源)程序,它可以通过解释程序翻译一句执行一句的方)程序,它可以通过解释程序翻译一句执

24、行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。2. C C 语言中的标识符只能由字母、下划线和(语言中的标识符只能由字母、下划线和( 数字数字 ) 组成。组成。C C 语言源程序注释符号有两种,语言源程序注释符号有两种, (/*/*/ )用于块注释,)用于块注释, ( 2 2 4.2f4.2f6 6 C C9 9 8C3C3 C C1616 C C012012 C C4 4 C C1010 C13C13 C C1010 1414 6 6 C C2 2 C C4 41515 2 2 C C6 6 C7C7 C C8

25、8 C C100;100; C C) #define#define N N 100100 D D) intint N=100;N=100;intint numNnumN; ; intint numN;numN;6 6、有以下程序、有以下程序 main()main() intint aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6; intint i,s=0;i,s=0; for(i=0;i4;i+)for(i=0;is2)if(s1s2)B Bif(strcmp(s1,s2)if(strcmp

26、(s1,s2)C Cif(strcmp(s2,s1)0)if(strcmp(s2,s1)0)D Dif(strcmp(s1,s2)0)if(strcmp(s1,s2)0)2121、下列语句中,不正确的是:(、下列语句中,不正确的是:() 。A Acharchar str5=hello;str5=hello;B Bcharchar str=h,e,l,l,o,0;str=h,e,l,l,o,0;C Ccharchar str5=hi;str5=hi;D Dcharchar str100=;str100=;2222、下面错误的初始化语句是、下面错误的初始化语句是:(:() 。A Acharchar

27、 str=hello;str=hello;B Bcharchar str100=hello;str100=hello;C Ccharchar str=h,e,l,l,o;str=h,e,l,l,o;D Dcharchar str=hello;str=hello;102323、定义了一维、定义了一维 intint 型数组型数组 a10a10后,下面错误的引用是:(后,下面错误的引用是:() 。A Aa0=1;a0=1;B Ba10=2;a10=2;C Ca0=5*2;a0=5*2;D Da1=a2*a0;a1=a2*a0;2424、下面的二维数组初始化语句中,错误的是:(、下面的二维数组初始化语

28、句中,错误的是:() 。A Afloatfloat b22=,;b22=,;B Bintint a2=1,2,3,4;a2=1,2,3,4;C Cintint a2=a2= 1,2,3,4;1,2,3,4;D Dfloatfloat a22=0;a22=0;2525、定义了、定义了 intint 型二维数组型二维数组 a67a67后,数组元素后,数组元素 a34a34前的数组元素个数为:(前的数组元素个数为:() 。A A2424 B B2525 C C1818 D D17172626、下面程序的运行结果是:(、下面程序的运行结果是:() 。main()main() intint a3=1,2

29、,3,4,5,6;a3=1,2,3,4,5,6;printf(%d,a11);printf(%d,a11); A A3 3B B4 4C C5 5D D6 62727、下面程序的运行结果是:(、下面程序的运行结果是:() 。main()main() charchar s120=Good!;s120=Good!;charchar s215=AB;s215=AB;printf(%d,strlen(strcpy(s1,s2);printf(%d,strlen(strcpy(s1,s2); A A2020B B1515C C5 5D D2 22828、下面程序的运行结果是:(、下面程序的运行结果是:(

30、) 。main()main() intint x=22,33,44,55,66,77,88;x=22,33,44,55,66,77,88;intint k,y=0;k,y=0;forfor (k=1;k=4;k+)(k=1;k=4;k+)ifif (xk%2=1)(xk%2=1)y+;y+;printf(%d,y);printf(%d,y); A A0 0B B1 1C C2 2D D3 3112929、下面程序的运行结果是:(、下面程序的运行结果是:() 。main()main() intint a33=1,2,3,4,5,6,i,j,s=0;a33=1,2,3,4,5,6,i,j,s=0;

31、for(i=1;i3;i+)for(i=1;i3;i+)for(j=0;ji;j+)for(j=0;j=a&si=a&si=z)printf(%c,si);printf(%c,si);i+;i+; A Aabab B Bab1c2d4eab1c2d4e C Cabcdeabcde D Da a二、判断题:二、判断题:1.1.( ( F F ) )在程序中可以对数值数组中的数据进行整体使用。在程序中可以对数值数组中的数据进行整体使用。2.2.( ( T T ) )如果如果 strcmp(s1,s2)strcmp(s1,s2)的返回值为一个负数,则表明字符串的返回值为一个负数,则表

32、明字符串 s1s1 一定小于字符串一定小于字符串s2s2。3.3.( ( T T ) )用用 scanfscanf 函数输入的字符串不可以带空格。函数输入的字符串不可以带空格。4.4.( ( T T ) )用用 getsgets 函数输入的字符串可以带空格。函数输入的字符串可以带空格。5.5.( ( F F ) )实现两个字符串的复制可以使用实现两个字符串的复制可以使用 str1=str2str1=str2;语句。;语句。6.6.( ( T T ) )使用使用 strcpystrcpy 函数可以实现两个字符串的复制。函数可以实现两个字符串的复制。7.7.( ( T T ) )使用使用 strc

33、atstrcat 函数可以实现两个字符串的连接。函数可以实现两个字符串的连接。8.8.( ( F F ) )使用使用 strlenstrlen 函数可以求出一个字符串的实际长度(包含函数可以求出一个字符串的实际长度(包含00字符)字符) 。9.9.( ( F F ) )如有定义如有定义 charchar a20a20;则可以通过;则可以通过 a=“Ia=“I amam a a boy”;boy”;给给 a a 赋值。赋值。10.10. ( ( T T ) )如有定义如有定义 intint a34a340 0; ; 则数组则数组 a a 的所有元素初值均为的所有元素初值均为 0 0。11.11.

34、 ( ( F F ) )构成数组的各个元素可以有不同的数据类型。构成数组的各个元素可以有不同的数据类型。12.12. ( ( F F ) )若有说明若有说明:int:int a10;a10;,则可以,则可以 a10a10引用数组引用数组 a a 的第的第 1010 个元素。个元素。13.13. ( ( T T ) )引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式。引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式。14.14. ( ( T T ) )若有若有 intint a10=6,7,8,9,10;a10=6,7,8,9,10;,则是将,则是将 5 5

35、个初值依次赋给个初值依次赋给 a0a0至至 a4a4。15.15. ( ( F F ) )使用使用 strcatstrcat 函数可以实现两个字符串的复制。函数可以实现两个字符串的复制。 第第 7 7 章章函函 数数12一、选择题一、选择题1.在 c 语言中以下不正确的说法是:()A. 实参可以是常量、变量、或表达式B. 形参可以是常量、变量或表达式C. 实参可以为任意类型D. 形参应与其对应的实参类型一致2.以下程序有语法性错误,有关错误原因的正确说法是:()int main() int G=5,k;void prt_char(); k=prt_char(G); A. 语句 void prt

36、_char();有错,它是函数调用语句,不能用 void 说明B. 变量名不能使用大写字母C. 函数说明和函数调用语句之间有矛盾D. 函数名不能使用下划线3.以下正确的说法是:()A. 函数的定义可以嵌套,但函数的调用不可以嵌套B. 函数的定义不可以嵌套,但函数的调用可嵌套C. 函数的定义和调用均不可以嵌套D. 函数的定义和调用均可以嵌套4.在一个函数内部定义的变量是:()A、 简单变量 B、 局部变量 C、 全局变量 D、 标准变量5.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:()A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表

37、达式中D)函数调用可以作为一个函数的形参6.以下所列的各函数首部中,正确的是:() 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)7.当调用函数时,实参是一个数组名,则向函数传送的是:()A、 数组的长度 B、 数组的首地址C、 数组每一个元素的地址 D、 数组每个元素中的值8.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:() A、 地址传递 B、 单向值传递 C、

38、 由实参传给形参,再由形参传回实参 D、 传递方式由用户指定9.以下叙述中不正确的是:()A)在不同的函数中可以使用相同名字的变量 13B)函数中的形式参数是局部变量 C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效10. 有以下程序 void fun (int a,int b,int c) a=456; b=567; c=678; int main() int x=10, y=20,z=30; fun (x,y,z); printf(%d,/%d,%dn,x,y,z); return 0; 输出结果是:()A、30,20,10 B、10,

39、20,30 C、456,567,678 D、678,567,45611. 下述函数定义形式正确的是( ) 。A、 int f(int x; int y) B、 int f(int x,y)C、 int f(int x, int y) D、 int f(x,y: int)12. 关于函数参数,说法正确的是( ) 。A、 实参与其对应的形参各自占用独立的内存单元B、 实参与其对应的形参共同占用一个内存单元C、 只有当实参和形参同名时才占用同一个内存单元D、 形参是虚拟的,不占用内存单元13. 一个函数的返回值由( )确定。A、 return 语句中的表达式B、 调用函数的类型C、 系统默认的类型D

40、、 被调用函数的类型14. C 语言中形参的默认存储类别是( ) 。A、 自动(auto)B、 静态(static)C、 寄存器(register)D、 外部(extern)15. 以下正确的函数形式是( ) 。A、 double fun(int x,int y) z=x+y; return z; B、 fun(int x,y) int z; return z; C、 fun(x,y) int x,y; double z; z=x+y; return z; D、 double fun(int x,int y) double z; z=x+y; return z; 16. 在一个源程序文件中定义

41、的全局变量的有效范围为( ) 。A、 一个 C 程序的所有源程序文件B、 该源程序文件的全部范围C、 从定义处开始到该源程序文件结束D、 函数内全部范围17. 下列函数中,能够从键盘上获得一个字符数据的函数是( ) 。A、 puts( ) B、 putchar( ) C、 getchar( ) D、 gets( )1418. 以下程序的输出结果是( ) 。fun(int a,int b,int c)c=a+b;int main()int c;fun(2,3,c);printf(“%dn”,c); return 0;A、 2B、 3C、 5D、 无定值19. 分析以下程序的运行结果( ) 。fu

42、nc(int a,int b)int temp=a;a=b; b=temp;int main()int x,y;x=10; y=20;func(x,y);printf(“%d,%dn”,x,y);return 0 ;A、 10,20 B、10,10 C、 20,10 D、20,2020. 下面程序的输出是( ) 。fun(int x)static int a=3;a+=x;return(a);int main()int k=2,m=1,n;n=fun(k);n=fun(m);printf(“%d”,n);return 0;A、 3 B、 4 C、 6 D、 921. 以下程序输出的结果是( )

43、 。15int func(int a,int b)return(a+b);int main()int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%dn”,r);return 0;A、 12 B、 13 C、 14 D、 1522. 以下程序的输出结果是( ) 。int a,bvoid fun()a=100; b=200;int main()int a=5,b =7;fun();printf(“%d%d n”,a,b);return 0;A、 100200 B、 57C、 200100 D、 7523. 下列程序执行后的输出结果是 void func1(

44、int i); void func2(int i); char st=hello,friend!; void func1(int i) printf(%c,sti ); if(i3) i+=2;func2(i); void func2(int i) printf(%c,sti ); if(i3) i+=2;func1(i); int main() int i=0; func1(i); printf(n); return 0; A)hello B)hel C)hlo D)hlm 24. 有以下程序 int f(int n) if(n=1) return 1; 16else return f(n-

45、1)+1; int main() int i,j=0; for(i=1;i3;i+) j+=f(i); printf(%dn,j); return 0; 程序运行后的输出结果是 A)4 B)3 C)2 D)125. 现有如下程序 #include int fun(int x) printf(x=%dn,+x); int main() fun(12+5); return 0; 则程序的输出结果是 A)12 B)13 C)17 D)18 二、判断题二、判断题1、 ( ) 函数定义 void max(int a,int b)表示该函数的返回值不确定。 2、 ( )在 C 语言中,函数体中变量的隐含存

46、储类别是自动变量 auto。 3、 ( )return 语句作为函数的出口,在一个函数体内只能有一个。 4、 ( )在 C 程序中,函数不能嵌套定义,但可以嵌套调用。 5、 ( ) C 语言的源程序中必须包含库函数。 6、 ( )在 C 程序中,函数调用不能出现在表达式语句中。 7、 ( )在 C 函数中,形参可以是变量、常量或表达式。 8、 ( )在主函数 main( )中定义的变量都可以在其它被调函数中直接使用。9、 ( )在 C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。10、( )C 语言程序中的 main( )函数必须放在程序的开始部分。11、( )若定义的函数没有

47、参数,则函数名后的圆括号可以省略。12、( )函数的函数体可以是空语句。13、( )函数的实参和形参可以是相同的名字。14、( )函数调用中,形参与实参的类型和个数必须保持一致。15、( )C 语言中函数返回值的类型由 return 语句中的表达式的类型决定。16、( )外部类型的变量只能定义一次,但可在不同地方声明多次。17、( )外部类型的变量作用范围大,编程中应多用外部变量。答案:BCBBD CBBDB CADAD CCDAC DBCBD 1F 2T 3F 4T 5 F 6F 7 F 8 F 9T 10F 11F 12T 13T 14T 15F 16T 17F第第 8 8 章章指指针针一

48、、一、选择题选择题171、 下列选项中正确的语句组是:()A)char s8; s=Beijing; B)char *s; s=Beijing;C)char s8; s=Beijing; D)char *s; s=Beijing;2、 若有定义:int *p3;,则以下叙述中正确的是:()A)定义了一个类型为 int 的指针变量 p,该变量具有三个指针B)定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int 的指针C)定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素D)定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int 类型元素3、 已定

49、义以下函数fun(char *p2, char *p1) while(*p2=*p1)!=0) p1+;p2+; 函数的功能是:()A)将 p1 所指字符串复制到 p2 所指内存空间B)将 p1 所指字符串的地址赋给指针 p2C)对 p1 和 p2 两个指针所指字符串进行比较D)检查 p1 和 p2 两个指针所指字符串中是否有04、 若有如下定义 char a10,*p=a,则对 a 数组中元素的不正确的引用是:()A)*&a5 B)a+2 C)*(p+5) D)*(a+5)5、 有以下程序main() int x8=8,7,6,5,0,0, *s;s=x+3;printf(%dn,s

50、2);执行后输出结果是:()A) 随机值 B) 0 C) 5 D) 66、 下列程序的运行结果是:()void fun(int *a, int *b) int *k;k=a; a=b; b=k;main() int a=3, b=6, *x=&a, *y=&b;fun(x,y);printf(%d %d, a, b);A) 6 3 B) 3 6 C) 0 0 D)编译出错7、 下面程序的输出结果是:()main() int a =1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(%dn,*p+9);A) 0 B) 1 C) 10 D) 9188、 若有说明:i

51、nt i, j=2,*p=&i;,则能完成 i=j 赋值功能的语句是:()A) i = *p; B) *p = *&j; C) i = &j; D) i = *p;9、 以下定义语句中,错误的是:()A) int a=1,2; B) char *a3;C) char s10=test; D) int n=5,an;10、以下不能正确进行字符串赋初值的语句是:()A) char str5=good!; B) char str=good!;C) char *str=good!; D) char str5=g,o,o,d;11、有以下程序 main() int aa44=1,

52、2,3,4,5,6,7,8,3,9,10,2,4,2,9,6; int i,s=0; for(i=0;i4;i+) s+=aai1; printf(%dn,s); 程序运行后的输出结果是:() A) 11 B) 19 C) 13 D) 2012、有以下程序 #include main() char *p=abcde0fghjik0; printf(%dn,strlen(p); 程序运行后的输出结果是:()A) 12 B) 15 C) 6 D) 513、变量的指针,其含义是指该变量的_. a)值 b)地址 c)名 d)一个标志14、若有语句 int *point,a=4;和 point=&

53、;a;下面均代表地址的一组选项是_. a)a,point,*&a b)&*a,&a,*point c)*&point,*point,&a d)&a,&*point ,point15、若有说明;int *p,m=5,n;以下正确的程序段的是_. a)p=&n; b)p=&n; scanf(%d,&p); scanf(%d,*p); c)scanf(%d,&n); d)p=&n; *p=n; *p=m;16、以下正确的程序段是_. a)char str20; b)char *p; scanf(%s, s

54、tr); scanf(%s,p); c)char str20; d)char str20,*p=str; scanf(%s,&str2); scanf(%s,p2);17、下面程序的运行结果是_. #include #include 19 main() char *s1=AbDeG; char *s2=AbdEg; s1+=2;s2+=2; printf(%dn,strcmp(s1,s2); a)正数 b)负数 c)零 d)不确定的值 18、 若有定义:int a23,则对 a 数组的第 i 行 j 列元素地址的正确引用为_ a)*(ai+j) b)(a+i) c)*(a+j) d)a

55、i+j19、 若有以下定义,则 p+5 表示_. int a10,*p=a; a)元素 a5的地址 b)元素 a5的值 c)元素 a6的地址 d)元素 a6的值20、以下程序的输出结果是_. #include void fun(int *p);int main()int x = 3;fun(&x);printf(“x = %dn”, x);void fun(int *p)*p = 5;A) 3 B) 5 C) 8 D) 221、下面判断正确的是 A)char *a=china;等价于 char *a;*a=china; B)char str5=china;等价于 char str=ch

56、ina; C)char *s=china;等价于 char *s;s=china; D)char c4=abc,d4=abc;等价于 char c4=d4=abc;22、下列程序的运行结果是 void fun(int *a, int *b) int *k; k=a; a=b; b=k; main() int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf(%d %d, a, b); A)6 3 20B)3 6 C)编译出错 D)0 0 二、判断题二、判断题1.( F )指针变量里存放的是地址值,因此指针变量只能是 int 型的。2.( T )有

57、一个一维数组 a10,那么 a 与&a0等价。3.( F )有如下程序段:int i, j = 2, k, *p = &i;k = *p + j;这里出现的两个“*”号,含义是一样的。4.( F )在 C 语言中,每一个变量在内存里占用的单元数都是相同的。5.( T )通过指针变量,就能间接地得到它所指向的变量的值。6.( F )有说明:int *p;且 p 指向地址为 1500 的内存单元,那么经过操作“p+;”后,p 将指向 1501 的内存单元。7.( T )一个变量的指针就是该变量的地址。 8.( F )在 C 语言中允许将一个整数赋给指针变量。9.( F )数组名实际

58、上是此数组的首地址,所以数组名相当于一个指针变量。10. ( F )char *p10;定义了一个指向字符数组的指针变量。答案:DBABB BCBDA BDBDD ABDAB CBFTFFT FTFFFC C 语言程序设计练习题语言程序设计练习题 结构体与联合体结构体与联合体一、单选题一、单选题1.1.下列关于结构体的说法错误的是下列关于结构体的说法错误的是:(:(D D)A A:结构体是由用户自定义的一种数据类型:结构体是由用户自定义的一种数据类型B B:结构体中可设定若干个不同数据类型的成员:结构体中可设定若干个不同数据类型的成员C C:结构体中成员的数据类型可以是另一个已定义的结构:结构

59、体中成员的数据类型可以是另一个已定义的结构D D:在定义结构体时,可以对成员进行初始化:在定义结构体时,可以对成员进行初始化2.2.以下结构体类型说明及结构体变量以下结构体类型说明及结构体变量 a,ba,b 的定义中,正确的是:(的定义中,正确的是:(B B)A A:structstruct ssss B B:structstruct ssss charchar flag;flag; charchar flag;flag; floatfloat x;x; floatfloat x;x; ; ; ; ssss a,b;a,b; structstruct ssss a,b;a,b;C C:stru

60、ctstruct D D:structstruct charchar flag;flag; charchar flag;flag;floatfloat x;x; floatfloat x;x;ss;ss; ss;ss;ssss a,b;a,b; structstruct ssss a,b;a,b;213.3.设有以下说明语句:设有以下说明语句:structstruct stustu intint a;a; floatfloat b;b;stutype;stutype;则下面的叙述不正确的是则下面的叙述不正确的是:(:(C C)A A:structstruct 是结构体类型的关键字是结构体类型的关键字B B:structstruct stustu 是用户定义的结构体类型名是用户定义的结构体类型名C C:stutypestutype 是用户定义的结构体类型名是用户定义的结构体类型名D D:a a 和和 b b 都是结构体成员名都是结构体成员名4.4.在在 VC+VC+中使用中使用 C C 语言时

温馨提示

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

评论

0/150

提交评论