C语言数组有答案_第1页
C语言数组有答案_第2页
C语言数组有答案_第3页
C语言数组有答案_第4页
C语言数组有答案_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、、选择题1 .以下对一维整型数组a的正确说明是。A.inta(10);B.intn=0,an;C.intn;D.#defineSIZE10scanf(%d",&n);intaSIZEintan;2 .若有说明:inta10;,则对a数组元素的正确引用是。A.a10B.a3.5C.a(5)D.a10-103 .以下能对一维数组a进行正确初始化的语句形式是。A.inta10=(0,0,0,0,0);B.inta10=;C.doublea4;D.inta10=10*1;4 .以下对二维数组a的正确说明是。A.inta3;B.floata(3,4);C.doublea4;D.floa

2、ta(3)(4);5 .若有说明:inta34;则对a数组元素的正确引用是。A.a34B.a1,3C.a1+10D.a(2)(1)6 .以下能对二维数组a进行正确初始化的语句是。A. inta2=1,0,1,5,2,3;B. inta3=1,2,3,4,5,6;C. inta24=1,2,3,4,5,6;D. inta3=1,0,1,0,1,1;7 .下面程序段(每行代码前面的数字表示行号)。1 inta3=3*0;2 inti3 for(i=0;i<3;i+)scanf(%d”,&ai);4 for(i=1;i<3;i+)a0=a0+ai;5 printf(%dn”,a0

3、);A.第1行有错误B.第5行有错误C.第3行有错误D.没有错误8 .若有定义floatx4=1.3,2.4,5.6,y=6;则错误的语句是。A.y=x3;B.y=x+1;C.y=x2+1D.x0=y;9 .定义如下变量和数组:intk;inta33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是。for(k=0;k<3;k+)printf(%d",ak2-k);A.357B.369C.159D.14710 .下面程序的运行结果是#include<stdio.h>intmain()inta66,i,j;for(i=1;i<6;i+)for(j=1;

4、j<6;j+)aij=(i/j)*(j/i);for(i=1;i<6;i+)for(j=1;j<6;j+)printf("%2d",aij);printf("n");return0;A.11111111111111111111B. 000010001000100010001111110000C. 10000D01000001000001000001100010101000100010101000111 .下面是对数组s的初始化,其中错误的语句是。A.chars5=abc'B.chars5=a',b',c'

5、C.chars5=;D.chars5=abcde"12 .下面程序段的运行结果是。(表示1个空格)charc5='a','b',''0','c',''0'printf("%s",c);A.a''b'B.abC.abDcD.abD13 .有两个字符数组a、b,则以下正确的输入格式是A.gets(a,b);B.scanf(%s%s”,a,b);C.scanf(%s%s”,&a,&b);D.gets(a'"),gets

6、(b");puts(a),puts(b);14 .有字符数组a80和b80,则正确的输出形式是。A.puts(a,b);B.printf(%s%s”,a,b);C.putchar(a,b);D.15 .有下面的程序段,则chara3,b="China"a=b;printf("%s",a);A.运行后将输出ChinaB.运行后将输出ChC.运行后将输出ChiD.编译出错16 .下面程序段的功能是输出两个字符串中对应相等的字符,请选择填空。charx1="programming"chary="Fortran"

7、inti=0;while(xi!='0'&&yi!='0')if(xi=yi)printf("%c",);elsei+;A.xi+B.y+iC.xiD.yi17 .下面程序的功能是将字符串s中所有的字符c删除。请选择填空。#include<stdio.h>intmain()chars80;inti,j;gets(s);for(i=j=0;si!='0'i+)if(si!='c');sj='0';puts(s);return0;A.sj+=siB.s+j=siC.sj=

8、si;j+D.sj=si18 .下面程序的运行结果是。#include<stdio.h>intmain()charch7="12ab56”;inti,s=0;for(i=0;chi>='0'&&chi<='9'i+=2)s=10*s+chi-'0'printf("%dn",s);return0;A.1B.1256C.12ab56D.1519 .当运行以下程序时,从键盘输入:ab<回车>c<回车,def<回车,,则下面程序的运行结果是。#include&l

9、t;stdio.h>#defineN6intmain()charcN;inti=0;for(;i<N;ci=getchar(),i+);for(i=0;i<N;i+)putchar(ci);return0;A.abcdefB.aC.bbccddef20.下面程序的运行结果是。#include<stdio.h>intmain()chara="morning",t;inti,j=0;for(i=1;i<7;i+)if(aj<ai)j=i;t=aj;aj=a7;a7=t;puts(a);return0;A.mogninrB.moC.mor

10、ning答案:D.abD.mornin9.A10.C11.D1.D2.D3.B4.C5.C6.B7.A8.B12.B13.B14.D15.D16.A17.A18.A19.D20.B、填空题1 .若有定义floata35;则a数组所含数组元素个数是,a数组所占的字节数是。2 .若有定义:doublex35;,则x数组中行下标的下限为,列下表的上限为。3 .假设M为已经声明的符号常量,则定义一个具有MXM个元素的双精度型数组a,且所有元素初值为0的形式是。4 .若有定义:inta34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是,a21得到的初值是。5 .下面程序给a数组输入数据并

11、以每行4个数据的形式输出。请填空。#include<stdio.h>#defineN20intmain()intaN,i;for(i=0;i<N;i+);for(i=0;i<N;i+)if()printf("%3d",ai);printf("n");return0;6 .下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。#include<stdio.h>intmain()inta23=1,2,3,4,5,6;intb32,i,j;printf("arraya:n");for(i=

12、0;i<=1;i+)for(j=0;j+)printf("%5d",aij);printf("n");printf("arrayb:n");for(i=0;i+)for(j=0;j<=1;j+)printf("%5d",bij);printf("n");return0;7 .下面程序段的运行结果是。intx5,i;x0=1;x1=2;for(i=2;i<5;i+)xi=xi-1+xi-2;for(i=2;i<5;i+)printf("%d",xi);8

13、 .下面程序的运行结果是。#include<stdio.h>intmain()inta55,i,j,n=1;for(i=0;i<5;i+)for(j=0;j<5;j+)aij=n+;printf("Theresultis:n");for(i=0;i<5;i+)for(j=0;j<=i;j+)printf("%4d",aij);printf("n");return0;9 .以下程序的功能是求1000以内的水仙花数。(提示:所谓水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。例如:407=

14、4X4X4+0X0X0+7X7X7,故407是一个水仙花数。)请填空。#include<stdio.h>intmain()intx,y,z,a8,m,i=0;printf("Thespecialnumbersare:n");for(;m+)x=m/100;y=;z=m%10;if(m=x*x*x+y*y*y+z*z*z);i+;for(x=0;x<i;x+)printf("%6d",ax);printf("n");return0;10 .下面程序的运行结果是。#include<stdio.h>intmai

15、n()inta10=7,3,5,2,9,1,0,6,8,4,i=0,j=9,t;while(i<j)t=ai;ai=aj;aj=t;i+=2;j-=2;for(i=0;i<10;i+=2)printf("%d",ai);return0;11 .下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个整数。请填空。#include<stdio.h>intmain()inta5,max,min,i,j=0,k=0,t;for(i=0;i<5;i+)scanf("%d”,&ai);min=a0;

16、for(i=1;i<5;i+)if(aikmin)min=ai;max=a0;for(i=1;i<5;i+)if(ai>max)max=ai;printf("nThepositionofminis:%3dn”,k);printf("Thepositionofmaxis:%3dn",j);for(i=0;i<5;i+)printf("%5d",ai);printf("n");return0;12 .下面程序的功能是检查一个二维数组是否对称(即对所有i、j都有aij=a皿i)。请填空。#include&l

17、t;stdio.h>intmain()inta44=1,2,3,4,2,2,5,6,3,5,374,674;inti,j,found=0;for(j=0;j<4;j+)for(;i<4;i+)if(a皿!=a皿);break;if(found=1)printf("Non");elseprintf("Yes'n");return0;13 .设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。#include<stdio.h>intmain()inta10=1,2,3,4,5,6,7,8,9,1

18、0;intk,s,i;floatave;for(k=s=i=0;i<10;i+)if(ai%2!=0);k+;if(k!=0)ave=s/k;printf("%d,%fn",k,ave);return0;14 .以下程序是将矩阵a、b的和存入矩阵c中并按矩阵形式输出。请填空#include<stdio.h>intmain()inta34=3,-275,1,0,4,-3,6,8,0,2;intb34=-2,0,1,4,5,-1,7,6,6,8,0,2;inti,j,c34;for(i=0;i<3;i+)for(j=0;j<4;j+)cij=;pr

19、intf("%3d",cij);;return0;15 .以下程序段的功能是求数组num中小于零的数据之和。请填空。intnum20=10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20;intsum=0,i;for(i=0;i<=19;i+)if()sum=;printf("sum=%6d",sum);16 .以下程序段的功能是,运行后输出结果是。intnum10=103,1,-20,-203,-21,2,-2,-2,13,-21;intsum=0,i;for(i=0;

20、i<10;i+)if(numi>0&&numi%10=3)sum=sum+numi;printf("sum=%dn",sum);17 .下面程序用“快速顺序查找法”判断数组a中是否存在某一数。请填空。#include<stdio.h>intmain()inta9=25,57,48,37,12,92,86,33,i,x;scanf("%d",&x);i=0;while(ai!=x)i+;if()printf("Found!Theindexis:%dn",i);elseprintf(&quo

21、t;Can'tfound!n");return0;18 .下面程序是用“插入法”对数组a进行降序排序。请填空。#include<stdio.h>intmain()inta5=4,7,2,5,1,i,j,m;for(i=1;i<5;i+)m=ai;j=;while(j>=0&&m>aj).;j-;=m;for(i=0;i<5;i+)printf("%3d",ai);printf("n");return0;19 .下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组。请填空。

22、#include<stdio.h>intmain()inta3=5,9,10;intb5=12,24,26,37,48;intc10,i=0,j=0,k=0;while(i<3&&j<5)if()c止bj;k+;j+;elseck=ai;k+;i+;while()ck=ai;i+;k+;while()ck=bj;j+;k+;for(i=0;i<k;i+)printf("%3d",ci);putchar('n');return0;20 .字符串"abn012""的长度是。21 .下面程

23、序段将输出computer。请填空。charc="Itisacomputer"inti,j;for(i=0;i+);printf("%c",cj);22 .下面程序的功能是从键盘输入一个大写英文字母,要求按字母的顺序打印出3个相邻的字母,指定的字母在中间。若指定的字母为Z,则打印出YZA;若为A,则打印出ZAB。请填空。#include<stdio.h>intmain()chara3,c;inti;c=getchar();a1=c;if(c='Z')a2='A'elseif(c='A')a0=&

24、#39;Z'elsea0=c-1;a2=c+1;for(i=0;i<=2;i+)putchar(ai);return0;23 .下面程序段的功能是将字符数组a6='a','b','c','d','e','f变为a6='f','a','b','c','d','e'。请填空。#include<stdio.h>intmain()chart,a6='a','b',

25、'c','d','e','f;inti;for(i=4;i>=0;i-);a0=t;for(i=0;i<=5;i+)putchar(ai);return0;24 .下面程序的功能是在任意的字符串a中,将与字符c相等的所有元素的下标值分别存放在整型数组b中。请填空。#include<stdio.h>intmain()chara80;inti,b80,k=0;gets(a);for(i=0;ai!='0'i+)if()bk=i;for(i=0;i<k;i+)printf("%3d&quo

26、t;,bi);return0;25 .有10个字符串。下面程序的功能是在每个字符串中找出最大字符,并按一一对应的顺序放入一维数组a中,即第i个字符串中的最大字符放入ai中,输出每个字符串中的最大字符。请填空。#include<stdio.h>intmain()chars1020,a10;inti,j;for(i=0;i<10;i+)gets(si);for(i=0;i<10;i+);for(j=1;sij!='0'j+)if(ai<sij);for(i=0;i<10;i+)printf("%d%cn",i,ai);retu

27、rn0;答案:1.15602.043.doubleaMM=0;4.065. scanf(%d”,&ai)i<=2i%4=0printf('n");6. j<=2bji=aij7. 3588. 1671112131617181921222324259. m=100;m<=999m/10%10ai=m10. 4610811. k=ij=iaj=min;ak=max;12. i=j+1found=1;13. continueai14. aij+bijprintf(“n”)15. numi<0sum+numi16. 计算数组num中大于零且个位数为3的

28、数据之和11617. a8=xi<818. i-1aj+1=ajaj+119. bj<aii<3j<520. 921. i<=7j=i+822. a0=c-1a2=c+123. t=a5ai+1=aiai=sij24. ai=ck+25. ai=si0第四部分数组4 1选择题1. 以下关于数组的描述正确的是(c)。A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是(d

29、)。A.inta(10);B.intn=10,an;C.intn;D.#defineSIZE10scanf("%d",&n);intaSIZE;intan;3 .在C语言中,引用数组元素时,其数组下标的数据类型允许是(c)。A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式4 .以下对一维数组m进行正确初始化的是(c)。A.intm10=(0,0,0,0);B.intm10=;C.intm=0;D.intm10=10*2;5.若有定义:intbb8;。则以下表达式中不能代表数组元bb1的地址的是(c)。A.&bb0+1B.&

30、;bb1C.&bb0+D.bb+16. 假定int类型变量占用两个字节,其有定义:intx10=0,2,4;,则数组x在内存中所占字节数是(d)。A.3B.6C.10D.207. 若有以下说明:inta12=1,2,3,4,5,6,7,8,9,10,11,12;charc='a',d,g;则数值为4的表达式是(d)A.ag-cB.a4C.a'd'-'c'D.a'd'-c8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入(a)。#include<stdio.h>main()inta10,i=0;whil

31、e(i<10)scanf("%d",);A.a+(i+)B.&ai+1C.a+iD.&a+i9. 执行下面的程序段后,变量k中的值为(a)。intk=3,s2;s0=k;k=s1*10;A.不定值B.33C.30D.1010. 以下程序的输出结果是(c)main()inti,a10;for(i=9;i>=0;i-)ai=10-i;printf("%d%d%d",a2,a5,a8);A.258B.741C.852D.36911. 以下程序运行后,输出结果是(d)。main()intn5=0,0,0,i,k=2;for(i=0;i

32、<k;i+)ni=ni+1;printf("%dn",nk);A.不确定的值B.2C.1D.012. 以下程序运行后,输出结果是(b)。main()inty=18,i=0,j,a8;doai=y%2;i+;y=y/2;while(y>=1);for(j=i-1;j>=0;j-)printf("%d",aj);printf("n");A.10000B.10010C.00110D.1010013. 以下程序运行后,输出结果是(a)。main()inta10,a1=1,3,6,9,10,a2=2,4,7,8,15,i=0,

33、j=0,k;for(k=0;k<4;k+)if(a1i<a2j)ak=a1i+;elseak=a2j+;for(k=0;k<4;k+)printf("%d",ak);A.1234B.1324C.2413D.432114. 以下程序运行后,输出结果是(b)。main()inti,k,a10,p3;k=5;for(i=0;i<10;i+)ai=i;for(i=0;i<3;i+)pi=ai*(i+1);for(i=0;i<3;i+)k+=pi*2;printf("%dn",k);A.20B.21C.22D.2315. 以下程

34、序运行后输出结果是(d)。main()intn3,i,j,k;for(i=0;i<3;i+)ni=0;k=2;for(i=0;i<k;i+)for(j=0;j<k;j+)nj=ni+1;printf("%dn",n1);A.2B.1C.0D.316. 下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找x。找到则输出x在10个整数中的序号(从1开始);找不到则输出0。程序缺少的是(b)。main()inti,a10,x,flag=0;for(i=0;i<10;i+)scanf("%d",&ai);

35、scanf("%d",&x);for(i=0;i<10;i+)ifflag=i+1;break;printf("%dn",flag);A.x!=aiB.!(x-ai)C.x-aiD.!x-ai17. 若说明:inta23;则对a数组元素的正确引用是(c)A.a(1,2)B.a1,3C.a1>2!1D.a2018. 若有定义:intb34=0;则下述正确的是(b)。A. 此定义语句不正确B. 没有元素可得初值0C. 数组b中各元素均为0D. 数组b中各元素可得初值但值不一定为019. 若有以下数组定义,其中不正确的是(d)。A.inta

36、23;Bintb3=0,1,2,3;C.intc100100=0;D.intd3=1,2,1,2,3,1,2,3,4;20. 若有以下的定义:intt54;能正确引用t数组的表达式是(c)。A.t24B.t50C.t00D.t0,021. 在定义intm3=1,2,3,4,5,6;后,m10的值是(a)。A.4B.1C.2D.522. 在定义intn56后第10个元素是(c)。A.n25B.n24C.n13D.n1423. 若二维数组c有m列,则计算任一元素cij在数组中的位置的公式为(d)(假设c00位于数组的第一个位置)A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+124.

37、 若有以下定义语句,则表达式“x11*x22”的值是(a)。floatx33=1.0,2.0,3.0,4.0,5.0,6.0;A.B.4.0C.5.0D.6.025. 以下程序运行后,输出结果是(a)。main()inta44=1,3,5,2,4,6,3,5,7;printf("%d%d%d%dn",a03,a12,a21,a30);A.0650B.1470C.5430D.输出值不定26. 以下程序运行后,输出结果是(b)。main()intaa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;inti,s=0;for(i=0;i<4;i+)s+

38、=aai1;printf(“%dn”,s);A.11B.19C.13D.2027. 有以下程序main()inta33=1,2,3,4,5,6,i,j,s=0;for(i=1;i<3;i+)for(j=0;j<=i;j+)s+=aij;printf("%dn",s);该程序的输出结果是(a)。A.18B.19C.20D.2128. 若定义如下变量和数组:inti;intx33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是(c)。for(i=0;i<3;i+)printf("%d",xi2-i);A.159B.147C.35

39、7D.36929. 下述对C语言字符数组的描述中错误的是(c)。A. 字符数组可以存放字符串B. 字符数组中的字符串可以整体输入、输出C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D. 不可以用关系运算符对字符数组中的字符串进行比较30. 下述对C语言字符数组的描述中正确的是(a)。A. 任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间B. 一维数组的元素在引用时其下标大小没有限制C. 任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间D. 一维数组的第一个元素是其下标为1的元素31. 不

40、能把字符串:Hello!赋给数组b的语句是(b)。A. charstr10='H','e','l','l','o','!'B. charstr10;str="Hello!"C.charstr10;strcpy(str,"Hello!");D.charstr10="Hello!"32. 合法的数组定义是(d)A.inta="string"C.ints="string"B.inta5=0,1,2,3,4,

41、5;D.chara=0,1,2,3,4,5;33. 下列语句中,不正确的是(c)。A.staticchara2=1,2;B.staticchara2='1','2'C.staticchara2='1','2','3'D.staticchara2='1'34. 若给出以下定义:charx="abcdefg"chary='a','b','c','d','e','f','g'

42、则正确的叙述为(c)。A.数组x和数组y等价B.C. 数组x的长度大于数组y的长度35. 若有数组定义:chararray="China"数组x和数组y的长度相同D. 数组x的长度小于数组y的长度则数组array所占的空间为(c)。个字节D.7个字节输出abcd-D.编译不通过A.4个字节B.5个字节C.636. 若有定义和语句:chars10;s="abcd"printf("%sn",s);则结果是(以下一代表空格)(d)。A.输出abcdB.输出aC.37. 下面程序运行后,输出结果是(c)main()charch7="

43、65ab21"inti,s=0;for(i=0;chi>='0'&&chi<='9'i+=2)s=10*s+chi-'0'printf("%dn",s);A.12ba56B.6521C.6D.6238. 运行下面的程序,如果从键盘上输入:123<空格>456<空格>789<回车>,输出结果是(d)A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456main()chars100;intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%sn",c,i,s);39. 运行下面的程序,如果从键盘上输入:ab<回车>c<回车>def<回车>则输出结果为(c)。A.aB.aC.abD.abcdefbbcccdddef#include<stdio.h>#defineN=6main()charcN;inti=0;fo

温馨提示

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

评论

0/150

提交评论