《二级c练习题练习.pdf》由会员分享,可在线阅读,更多相关《二级c练习题练习.pdf(103页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章程序设计与C语言一、选 择 题(在下列各题的A、B,C、D 四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)1、以下叙述中正确的是()A、C 语言比其他语言高级 B、C 语言可以不用编译就能被计算机识别执行C、C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式D、C 语言出现的最晚,具有其他语言的一切优点2、以下叙述中正确的是()A、构成C 程序的基本单位是函数 B、可以在一个函数中定义另一个函数C、main()函数必须放在其他函数之前 D、所有被调用的函数一定要在调用之前进行定义3、以下说法正确的是()A、C 语言程序总是从第一个的函数开始执行B、在
2、C 语言程序中,要调用函数必须在main()函数中定义C、C 语言程序总是从main()函数开始执行D、C 语言程序中的main()函数必须放在程序的开始部分4、C 语言规定,在一个源程序中,main函数的位置()A、必须在最开始 B、必须在系统调用的库函数的后面 C、可以任意 D、必须在最后5、以下叙述不正确的是()A、一个C 源程序可由一个或多个函数组成 B、一个C 源程序必须包含一个main函数C、C 程序的基本组成单位是函数 D、在 C 程序中,注释说明只能位于一条语句的后面6、下列叙述中正确的是()A、C 语言编译时不检查语法 B、C 语言的子程序有过程和函数两种C、C 语言的函数可
3、以嵌套定义 D、C 语言的函数可以嵌套调用7、以下叙述正确的是()A、在 C 程序中,每行中只能写一条语句B、若 a 是实型变量,C 程序中允许赋值a=1 0,因此实型变量中允许存放整型数C、在 C 程序中,无论是整数还是实数,都能被准确无误地表示D、在 C 程序中,是只能用于整数运算的运算符8、以下说法错误的是()A、一个算法应包含有限个步骤 B、在计算机上实现的算法是用来处理数据对象的C、算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现D、算法的目的是为了求解9、算法是指为解决某个特定问题而采取的确定且有限的步骤,下血不属于算法的五个特性的是()A、有零个输入或多个输入 B、高
4、效性 C、有穷性 D、确定性10、下列关于C 语言的说法不正确的是()A、C 语言既具有高级语言的一切功能,也具有低级语言的一些功能B、C 语言中的每一条执行语句都必须用分号结束,分号不是C 语言的一部分,是语句之间的分隔符号C、注释可以出现在程序中任意合适的地方D、命令行后面不能加分号,命令行不是C 语言的语句11、以下说法错误的是A、高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B、计算机只能处理由0 和 1 的代码构成的二进制指令或数据C、C 语言源程序经过C 语言编译程序编译之后生成一个后缀为E X E 的二进制文件D、每一种高级语言都有它对应的编译程序12、C 语言
5、中用于结构化程序设计的3 种基本结构是A、顺序结构、选择结构、循环结构B、if,switch,breakC、for,while,do-whileD、if.for,continue二、填 空 题(请将每一个空的正确答案写在答题卡相应序号后。)13、用高级语言编写的程序称为 程序,它可以通过解释程序翻译一句执行一句的方式执行,也可以通过编译程序一次翻译产生目标程序,然后执行。14、C 语言程序的注释可以出现在程序中的任何地方,一个注释以 作为开始和结束。第 2 章数据类型、运算符与表达式一、选 择 题(在下列各题的A、B、C、D、四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上
6、。)1、C 语言中最简单的数据类型包括A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、字符型、实型、逻辑型2、C 语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以是字母,数字和下划线中任一字符3、下列可用于C 语言用户标识符的一组是A、void,define,WORDB、a3_b3,_123,CarC、For,-abc,IF CaseD、2a,DO,sizeof4、下面四个选项中,均是不正确的8 进制数或16进制数的选项是A、016 0 x8f 018B、Oabc 017 OxaC、010-0
7、x11 0 x16D、0a12 7ff-1235、下列数据中,不合法的C 语言实型数据的是A、0.123B、123e3C、2.1e3.5D、789.06、在 16位 C 编译系统上,若定义long a;,则能给a 赋 40000的正确语句是A、a=20000+20000;B、a=4000*10;C、a=30000+10000;D、a=4000L*10L;7、若有说明语句:charc=72;则变量cA、包 含 1 个字符B、包含2 个字符C、包含3 个字符D、说明不合法,c 的值不确定8、有字符串如下,n 407 asixabc,则字符串的长度为A、6B、7C、8D、99、C 语言中运算对象必须
8、是整型的运算符是A、%=B、/C、=D 若变量a,i-正确定义,且 i 已正确赋值,合法的语句是A、a=1B、+i;C a=a+=5;D、a=int(i、;12、若有定义:inta=7;floatx=2.5,y=4.7;则表达式 x+a%3*(int、(x+y、2/4 的值是A、2.500000B、2.750000C、3.500000D、0.00000013、若有运算符vv,sizeof,&=,则它们按优先级由高至低的正确排列次序是A、sizeof,&=,AB、sizeof,A,&=C、A,sizeof,&=D、,A,&=,sizeof14、以下不正确的叙述是A、在 C 程序中,逗号运算符的优
9、先级最低B、在 C 程序中,APH和 aph是两个不同的变量C、若 a 和 b 类型相同,在计算了赋值表达式a=b后 b 中的值将放入a 中,而 b 中的值不变D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值15 J 知 int i,a;执行语句 i=(a=3,a+,-a,a+4,a+5,+a);后,变量 i 的值为A、2B、3C、4D、516、设变量a 是 int型,f 是 float型,i 是 double型,则 表 达 式 10+a,+i*f值的数据类型为A、intB floatC doubleD、不确定17、在 C 语言中,char型数据在内存中的存储
10、形式是A、补码B、反码C、原码D、ASCII 码18、字符型数据在机器中是用ASCII码表示的,字符5 和7 在机器中表示为A、10100011 和 01110111B、01000101 和 01100011C、00110101 和 00110111D、01100101 和 01100111正确答案:C3.19 不能进行+和一运算的数据类型为A、指针B、整型C、长整型D、常量正确答案:D3.20 设有intx=11;则表达式(x+*1/3)的值是A、3B、4C、11D、12正确答案:A3.2 1 以下程序的输出结果是main()int a=21,b=11;printf(%d n,-a+b,-b
11、+a);)A、30B、31C、32D、33正确答案:A3.22 假设整型变量a.b.c的值均为5,则表达式a+b+c+的值为A、17B、16C、15D、14正确答案:C3.2 3 已知inta=6;贝 U 执行a+=a-=a*a;语句后,a 的值为A、36B、0Cs-24D、-60正确答案:D3.24 设变量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.0正确
12、答案:B3.25 sizeof(flo a t是A、一个双精度型表达式B、一个整型表达式C、一种函数调用D、一个不合法的表达式正确答案:B3.26 在 C 语言中,int,char和 short三种类型数据在内存中所占用的字节数A、由用户自己定义B、均为2 个字节C、是任意的D、山所用机器的机器字长决定正确答案:D3.2 7 以下变量x,y,z 均为double类型且已正确赋值,不能正确表示数学式子x+y+z的 C 语言表达式是A、x/y*zB,x*(1/(y*z、C、x/y*1/zD、x/y/z正确答案:A3.28 下列关于复合语句和空语句的说法错误的是A、复合语句是由“”开头,由“结尾的B
13、、复合语句在语法上视为一条语句C、复合语句内,可以有执行语句,不可以有定义语句部分D、C 程序中的所有语句都必须山一个分号作为结束正确答案:C3.29 下列关于字符串的说法中错误的是A、在 C 语言中,字符串是借助于字符型一维数组来存放的,并规定以字符作为字符串结束标志B、0 作为标志占用存储空间,计入串的实际长度C、在表示字符串常量的时候不需要人为在其末尾加入D、在 C 语言中,字 符 串 常 量 隐 含 处 理 成 以 结 尾正确答案:B第三章顺序结构程序设计4.1 若变量已正确说明为float型,要通过语句scanf(%f%f%f”,&a,&b,&c、;给 a 赋 予 10.0,b 赋予
14、22.0,c 赋予3 3.0,下列不正确的输入形式是A、10v回车 22 回车 33 回车B、10.0,22.0,33.0 回车 C、10.0 回车 22.0 33.0 回车D、10 22v回车 33v回车正确答案:B4.2 现有以下程序段#includemain(、int a,b,c;scant(a=%*d%d,b=%d%*d,c=%d,&a,&b,&c、;printf(a=%d,b=%d,c=%dn,a,b,c、;若输出的结果为a=20,b=30,c=40,则以下能够正确输入数据的是A、a=10 20,b=20 30,c=40B,20,30,40C、a=20,b=30,c=40D、a=10
15、 20,b=30 20,c=40注 :”表示空格,表示回车正确答案:D4.3 X,y,z 被定义为int型变量,若从键盘给x,y,z 输入数据,正确的输入语句是A、INPUT x、v、z;B、scant(%d%d%d,&x,&y,&z、;C、scant(%d%d%d,x,y,z、;D、read(%d%d%d,&x,&y,&z、;正确答案:B4.4 已有定义int a=-2;和输出语句printf(%8lx”,a、;以下正确的叙述是A、整型变量的输出形式只有d-种B、x 是格式符的种,它可以适用于任何种类型的数据C、x 是格式符的一种,其变量的值按卜六进制输出,但8lx是错误的D、8lx不是错误
16、的格式符,其中数字8 规定了输出字段的宽度正确答案:D4.5 下列程序段的输出结果是:int a=1234;float b=123.456;double c=12345.54321;printf(-,%2.1f,%2.1f,a,b,c ;A、无输出B、12,123.5,12345.5C、1234,123.5,12345.5D、1234,123.4,1234.5正确答案:C4.6 执行下列程序时输入:123 空格 456 空格 789 回车输出结果是main(、char s 100;int c,i;scant(%c,&c;scant(%d,&i;scant(%s,s;printf(%c,%d,%
17、sn,c,i,s,;A、123,456,789B,1,456,789C、1,23,456,789D、1,23,456正确答案:D4.7 若已定义:inta=25,b=14,c=19;以下三目运算符(?:、所构成语句的执行后a=25&b-printf(#a=%d,b=%d,c=%d n,a,b,c;程序输出的结果是A、*a=25,b=13,c=19B、*a=26,b=14,c=19C、#a=25,b=13,c=19D、#a=26,b=14,c=19正确答案:C4.8 请选出以下语句的输出结果printf(%dn,strlen(t 0 6 5 x f f n .;A、5B、14C、8D、输出项不合
18、法,无正常输出正确答案:A4.9 下列程序的输出结果是main(、double d=3.2;int x,y;x=1.2;y=(x+3.8、/5.0;printf(%dn,d*y.;)A、3B、3.2C、0D、3.07正确答案:C4.10 调用gets和 puts函数时,必须包含的头文件是A、stdio.hB stdlib.hC、defineD、以上都不对正确答案:A4.11 阅读下面程序段#include stdio.hmain(、char c;c=(2 也、/2+7V;putchar(c、;输出结果为A、MB、NC、OD、Q正确答案:A二、填 空 题(请将每一个空的正确答案写在答题卡相应序号
19、后。、4.12 下列程序的输出结果是16.00,请填空。main(、int a=9,b=2;float x=1 ,y=1.1,z;z=a/2+b*x/y+1/2;printf(”5.2fn,z、;)正确答案:6.64.13 在使用putchar和 getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【2】。正确答案:#include4.14 下列程序的输出结果是 3】,4。#includemain(、float a=-1.3;b=1.3;printf(”f,%f”,fabs(a、Jabs(b、;正确答案:1.300 000正确答案:1.300 0004.15执行程序时的输入为
20、123456789,则程序的运行结果为【5】。#include stdio.hmain(、int a,b;scant C-%*2d,&a,&b;printf(d n”,a-b、;正确答案:7第四章选择结构程序设计一、选 择 题(在下列各题的A、B、C、D、四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上八5.1 在 C 程序中,判逻辑值时,用“非 0”表示逻辑值“真”,又用“0”表示逻辑值“假 在 求 逻 辑 值 时,用(、表示逻辑表达式值为“真”,又 用(、表示逻辑表达式值为“假”。A、1 0B、0 1C、非 0 非 0D、1 1正确答案:A5.2 已知int x=6,y
21、=2,z;则执行表达式z=x=xy后,变量z 的值为A、0B、1C、4D、5正确答案:B5.3 能正确表示逻辑关系:a 0 或 awO”的 C 语言表达式是A、a=10 or a=0|a=10&a=10 II a=/a|(cv=2:C(av=c、and(z=c、D、(c=&、&(c 的值是A、0B、1C、2D-1正确答案:B5.6 有如下程序段int a=14,b=15,x;char c=7V;x=(a&b、&(c v B、;执行该程序段后,x 的值为A、tureB、falseC、0D、1正确答案:D5.7 以下程序的输出结果是main(、int a=4,b=5,c=0,d;d=!a&!b|!
22、c;printf(d n”,d、;A、1B、0C、非 0 的数D、-1正确答案:A5.8 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执 行(m=ab、&(n=cd、后 n 的值是A、1B,2C、3D、4正确答案:B5.9 已知x,y,z均为整型变量,且值均为1,贝 ij执行语句+x|+y&+z;后,表达式x+y的值为A、1B、2C、3D、4正确答案:C5.10 表达式aA、|B、&C、12?x+10:x-12;printf(%dn,y;)A、0B、22C、12D、10正确答案:A5.1 2 已知char ch=C;则以下表达式的值是ch=(ch=,A,&chD、(exp!=
23、1、正确答案:B5.14 有以下程序main()int i=1,j=1,k=2;if(j+|k+)&i+)printf(%d,%d,%dn,i,j,k);)执行后输出结果是A、1,1,2B、2,2,1C、2,2,2D、2,2,3正确答案:C5.15 请阅读以下程序:main()int a=5,b=0,c=0;if(a=b+c、printf(*n);else printf($n);)以上程序A、有语法错不能通过编译B、可以通过编译但不能通过连接C、输出*D、输出$正确答案:D5.16 若执行下述程序时,若从键盘输入6 和 8 时,结果为main(、int a,b,s;scant(%d%d,&a,
24、&b;s=a;if(as=b;s*=s;printf(%d,s,;)A,36B、64C、48D、以上都不对正确答案:B5.17 有如下程序main(、float x=2.0,y;if(x y=0.0;else if(x y=1.0/x;else y=1.0;printf(%fn,y.;该程序的输出结果是A、0.000000B、0.250000C、0.500000D、1.000000正确答案:C5.1 8 以下4 个选项中,不能看做一条语句的是A、;B、a=5,b=2.5,c=3.6;C、if(a;D if(b!=5 x=2;y=6;正确答案:D5.19 若 intk=8;则执行下列程序后,变量
25、k 的正确结果是main(、int k=8;switch(kcase 9:k+=1;case 10:k+=1;case 11:k+=1;break;default:k+=1;printf(d n”,k、;A、12B、11C、10D、9正确答案:D5.20 阅读如F程序段#include stdio.hmain(、int a=45,b=40,c=50,d;d=a30?b:c;switch(d、case 30:printf(d,”,a、;case 40:printf(d,”,b、;case 50:printf;default:printf(#、;则输出的结果是A、40,50,B、50,#C、40,
26、#D、40,50,#正确答案:D5.21现有如下程序段,此程序段编译有错误,则程序段的错误出在includemain(、int a=30,b=40,c=50,d;d=a30?b:c;switch(d、case a:printf(n%d,a;case b:printf(d,”,b、;case c:printf(%d,c;default:printf(#“、;A、default:printf(#、;这个语句B、d=a30?b:c;这个语句C、case a:printf(d,”,a、;caseb:printf(%d,H,b;case c:printf C%d,”,c、;这三个语句D、switch(d
27、、这个语句正确答案:C第五章循环结构程序设计一、选 择 题(在下列各题的A、B、C、D、四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上八6.1 对表达式for(表达式1;表达式3)可理解为A、for(表达式1;0;表达式3)B、for(表达式1;1;表达式3)C、for(表达式1;表达式1;表达式3)D、for(表达式1;表达式3;表达式3)正确答案:B6.2 在下列选项中,没有构成死循环的是A inti=100;while(1、i=i0+1;if(i100)break;)B、for(;);C.intk=10000;dok+;while(k10000);D、ints=36
28、;while(s)-s;正确答案:D6.3 下面有关for循环的正确描述是A、for循环只能用于循环次数已经确定的情况B、for循环是先执行循环体语句,后判断表达式C、在 for循环中,不能用break语句跳出循环体D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来正确答案:D6.4 若 in ti,j;,则 for(i=j=0;iv10&jv8;i+,j+=3、控制的循环体执行的次数是A、9B、8C、3D、2正确答案:C6.5 阅读下列程序段,则程序的输出结果是#include stdio.hmain(、int a=10,b=10,k;for(k=0;a8;b=+k,pri
29、ntf(%d,%d,a-b,;printf(n ;A、10,10,10,0,B、10,9,9,0,C、10,10,9,1,D、9,9,9,1,考生答案:正确答案:B6.6 有一堆零件(100到 200之间、,如果分成4 个零件一组的若干组,则多2 个零件:若分成7 个零件-组,则多3个零件;若分成9 个零件一组,则多5 个零件。下面程序是求这堆零件总数,请选择填空。#includemain(、inti;for(i=100;i200;i+.if(i-2、4=0、if(!(i-3、%7、if(、printf(”d”,i、;)A、i%9=5B、i%9!=5C、(i 5、%9!=0D、(i 5、%9=
30、0正确答案:D6.7 下列程序的输出结果是#include stdio.hmain(、int i,a=0,b=0;for(i=1;iif(i%2=0、a+;continue;b+;printf Ca=%d,b=%d,a,b;A、a=4,b=4B a=4,b=5C a=5,b=4D、a=5,b=5正确答案:B6.8 阅读下列程序,则执行结果是#include stdio.hmain(、int a=0,b=0,c=0,i;for(i=0;iswitch(i、case O:a=i+;case 1 :b=i+;case 2:c=i+;case 3:i+;printf(d,%d,%d,%dn”,a,b,
31、c,i、;A、0,1,3,4B、1,2,3,4C、0,1,2,5D、0,2,3,4正确答案:C6.9 阅读下列程序,程序的输出结果是#include stdio.hmain(、(int m,n;float k;for(m=6;m2;m、k=0;for(n=m;n1;n-、k=k+m*n;)printf(n%fn,k;)A、5.000000B、15.000000C、25.000000D、35.000000正确答案:B6.10 下面程序的运行结果是#include stdio.hmain(、intj,i,k=O;for(j=50;j=j-1 printf(%d,j;k+;)A、5359B、5953
32、C 3595D、9535正确答案:A6.11 已知int t=0;while(t=1、-则以下叙述正确的是A、循环控制表达式的值为0B、循环控制表达式的值为1C、循环控制表达式不合法D、以上说法都不对正确答案:B6.12 设有以下程序段int x=0,s=0;while(!x!=0、s+=+x;printf(%d,s,;则A、运行程序段后输出0B、运行程序段后输出1C、程序段中的控制表达式是非法的D、程序段执行无限次正确答案:B6.13 下列程序的输出结果是#include stdio.hmain(、int i=6;while(i-、printf(%d,-i,;printf(n ;A、531B
33、、420C、654321D、死循环正确答案:B6.14 对 下 I,II两个语句描述正确的是I.while(1、II.for(;、A、都是无限循环B、I 是无限循环,II错误C、I 循环一次,H错误D、以上答案都错正确答案:A6.1 5 以下程序段的描述,正确的是x=-1;dox=x*x;while(!x、;A、是死循环B、循环执行两次C、循环执行一次D、有语法错误正确答案:C6.16 若有如下语句int x=3;do printf(%dn,x-=2、while(I(-x、;则上面程序段A、输出的是1B、输出的是1 和-2C、输出的是3 和 0D、是死循环正确答案:B6.17 下面程序的运行结
34、果是#includemain(、int a=1,b=10;do b-=a;a+;Jwhile(b-vO、;printf(Ha=%d,b=%dn,a,b;)A、a=3,b=11 B、a=2,b=8 C、a=1,b=-1 D、a=4,b=9正确答案:B6.18 若运行以下程序时,从键盘输入ADescriptor(表示回车、,则下面程序的运行结果是includemain(、char c;int v0=1,v1=0,v2=0;doswitch(c=getchar(、case a:case A:case e:case E:case(lease T:case o:case O:case u:case U:
35、v1+=1;default:v0+=1;v2+=1;Jwhile(c!=r n ;printf(nv0=%d,v1=%d,v2=%d n,v0,v1,v 2;A、v0=7,v1=4,v2=7B、v0=8,v1=4,v2=8C、v0=11,v1=4,v2=11D、v0=13,v1=4,v2=12正确答案:D6.19下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和 11整除,请选择填空。#includemain(、int i=O,j,k;do i+;k=316-13*i;Jwhile(、;j=k/11;printf(316=13*%d+11*%d,i,j;)A、k/11B、kC
36、、k/11 =0D、k=0正确答案:B6.20 C 语 言 中 w hile和 do-while循环的主要区别是A、do-while的循环体至少无条件执行一次B、while的循环控制条件比do-while的循环控制条件更严格C、do-while允许从外部转到循环体内D、do-while的循环体不能是复合语句正确答案:A6.21 下列说法中错误的是A、只能在循环体内使用break语句B、在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环C、在 while和 do.while循环中,continue语句并没有使整个循环终止D、continue的作用是结束本次循环,即跳过本次
37、循环体中余下尚未执行的语句,接着再一次进行循环判断正确答案:A第六章数组一、选择题(在下列各题的A、B、C、D、四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上八7.1 若有说明int a 3 4 ;则 a 数组元素的非法引用是A、a 0 2*1B、a 1 3 C、a 4-2 0 D、a 0 4 正确答案:D7.2 在 C 语言中,引用数组元素时,其数组卜标的数据类型允许是A、整型常量B,整型表达式C、整型常量或整型表达式D、任何类型的表达式正确答案:C7.3 执行下面的程序段后,变量k 中的值为int k=3,s 2 ;s 0 =k;k=s 1 *10;A、不定值B、33
38、C、30D、10正确答案:A7.4 定义如下变量和数组:intk;int a 3 3 =9,8,7,6,5,4,3,2,1;则下面语句的输出结果是for(k=0;k;)程序运行后的输出结果是A、9,9B、8,9C、1,8D、9,8正确答案:D7.12 假定int类型变量占用两个字节,其有定义:intx 10=0,2,4;,则数组x 在内存中所占字节数是A、3B、6C、10D、20正确答案:D7.1 3 以下能对二维数组C进行正确的初始化的语句是A、intc 3 口=3,3,4);B、intc 口 3 =3,3,4);C intc 3 2 =3,3,4,5;D、intc 口 3 =3,3;正确答
39、案:B7.14 在 C 语言中,一维数组的定义方法为类型说明符数组名A、常量表达式B、整型常量C、整型变量D、整型常量 或 整型表达式正确答案:A7.15 若二维数组a 有 m 歹 i j,则计算任一元素a i j 在数组中相对位置的公 式 为(假设a L01 0 位于数组的第一个位置上、A、i*m+jB、j*m+lC、i*m+卜 1D、i*m+j+1正确答案:A7.16 下面程序输出的结果是main(、int i;inta 3 3 =1,2,3,4,5,6,7,8,9;for(i=0;iprintf(%d,a 2-i i、;A、1 59B、753C、3 5 7D、59 1正确答案:B7.1
40、7 以下不能对二维数组a 进行正确初始化的语句是A、inta 2 3 =0;B、in ta 3 =1,2,0;C、inta 2 3 =1,2,3,4,5,6;D、inta 口 3 =1,2,345,6;正确答案:C7.18 阅读下面程序,则程序段的功能是#include stdio.hmain(、into =23,1,56,234,7,0,34,i,j,t;for(i=1;iv7;i+、t=c i;j=i-1;while(j=0&tc j、c j+1=c j;j-;c Ej+1 =t;)for(i=0;iprintf(%d,c i、;putchar C n ;)A、对数组元素的升序排列B、对数
41、组元素的降序排列C、对数组元素的倒序排列D、对数组元素的随机排列正确答案:B7.19 下列选项中错误的说明语句是A、chara 口B、char a 口=toyou 0;C、char a 口=toyou 0;D、char a 口=toyou0;正确答案:D7.20 下述对C 语言字符数组的描述中错误的是A、字符数组的下标从0 开始B、字符数组中的字符串可以进行整体输入/输出C、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D、字符数组可以存放字符串正确答案:C7.21 阅读下列程序,则在执行后,程序的运行结果为#include stdio.h#include string.hmain(、
42、char a 30=nice to meet you!;strcpy(a+strlen(a/2JyoiT、;printf(s n”,a、;)A、nice to meet you youB、nice toC、meet you youD、nice to you正确答案:D7.22 现有如下程序段#include stdio.hmain(、intk 30=12,324,45,6,768,98,21,34,453,456;int count=0,i=0;while(k i、if(k i%2=0 II k Ei%5=0、count+;i+;)printf(%d,%d n,count,i;)则程序段的输出
43、结果为A、7,8B、8,8C、7,10D、8,10正确答案:D7.23 有如下定义语句:int aa 3 =12,23,34,4,5,6,78,89,45;,则 45在数组aa 中的行列坐标各为A、3,2B、3,1C、2,2D、2,1正确答案:C7.24 现在有如下程序#include stdio.hm ain(、char s 8 0;int i,j;gets(s、;for(i=j=O;s Ei!=/0,;i+if(s Li!=,H,、s j 八O;puts(s、;)这个程序段的功能是删除输入的字符串中字符H,则空线上应当添入的是A、s j+=s i;j+;B、s j=s+;j+;C、s j+
44、=s 口;D、s j=s L i;正确答案:C7.2 5 以下二维数组c 的定义形式是A、int c 3 口BA float C 3,4C、double c 3 4 D.float c(3、(4、正确答案:C7.2 6 已知:int c 3 4 ;则对数组元素引用正确的是A、c 1 4 B、c 1.5 0 C c 1+0 0 D、以上表达都错误正确答案:C7.27 若有以下语句,则正确的描述是char a 口=toyou;char b 口=,t,/o,/y7o,u,;A、a 数组和b 数组的长度相同B、a 数组长度小于b 数组长度C、a 数组长度大于b 数组长度D、a 数组等价于b 数组正确答
45、案:C7.2 8 已知:chara 15,b 15=”l love china”;则在程序中能将字符串I love china赋给数组a 的正确语句是A、a=1 love china;B、strcpy(b,a;C、a=b;D、strcpy(a,b;正确答案:D7.2 9 已 知:chara 20=abc;b 20=defghi”;则执行下列语句后的输出结果为printf(d”,strlen(strcpy(a,b、;A、11B、6C、5D、以上答案都不正确正确答案:B7.30 阅读如下程序段,则程序在先后输入love和 china后,输出结果是#include#includemain(、char
46、 a 30,b 3 0;int k;gets(a、;gets(b、;k=strcmp(a,b;if(k0 puts(a、;else if(kvO、puts(b;)A loveB、chinaC、lovechinaD、没有输出结果正确答案:A第七章函数一、选 择 题(在下列各题的A、B、C、D、四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上八8.1 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A、函数调用可以作为独立的语句存在B、函数调用可以作为一个函数的实参C、函数调用可以出现在表达式中D、函数调用可以作为一个函数的形参考生答案:正确答案:D8.2 在调用函
47、数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A、地址传递B、单向值传递C、山实参传形参,再山形参传实参D、传递方式由用户指定考生答案:正确答案:B8.3 以下正确的说法是A、定义函数时,形参的类型说明可以放在函数体内B、return后边的值不能为表达式C、如果函数值的类型与返回值类型不一致,以函数值类型为准D、如果形参与实参类型不一致,以实参类型为准考生答案:正确答案:C8.4 以下正确的说法是A、用户若需调用标准库函数,调用前必须重新定义B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义C、系统根本不允许用户重新定义标准库函数D、用户若需调用标准库函数,调用前不必使
48、用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用考生答案:正确答案:B8.5 以下叙述正确的是A、函数可以嵌套定义但不能嵌套调用B、函数既可以嵌套调用也可以嵌套定义C、函数既不可以嵌套定义也不可以嵌套调用D、函数可以嵌套调用但不可以嵌套定义考生答案:正确答案:D8.6 下面对C 语言的描述中,正确的是A、函数一定有返回值,否则无法使用函数B、C 语言函数既可以嵌套定义又可以递归调用C、在 C 语言中,调用函数时,只能将实参的值传递给形参D、C 语言程序中有调用关系的所有函数都必须放在同一源程序文件中考生答案:正确答案:C8.7 卜列说法中错误的是A、静态局部变量的初值是在编译时赋予
49、的,在程序执行期间不再赋予初值B、若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽C、静态全局变量可以被其他的编辑单位所引用D、所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句、时生成,退出其所在的函数体(或复合语句、时消失考生答案:正确答案:C8.8 以下程序有语法错误,有关错误原因的正确说法是main(、int G=5,k;void prt_char(、;k=prt_char(G、;)A、语 句 void prt_char(、;有错,它是函数调用语句,不能用void说明B、变量名不能使用大写字母C、函数说明和函数调用语句之间有矛盾D、函数名不能
50、使用下划线考生答案:正确答案:C8.9 以 F正确的函数头定义形式是A、double fun(int x,int yB、double fun(intx;inty、C、double fun(int x,int y、;D、double fun(intx,y、;考生答案:正确答案:A8.1 0 以下所列的各函数首部中,正确的是A、void play(var integer,var b:lntegerB、void play(int a,b、C void play(int a,int bD、Sub play(a as integer,b as integer考生答案:正确答案:C8.11 不合法的mai