您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 数组练习题及答案讲解
1第五章数组练习题及答案一、选择题1、判断字符串a和b是否相等,应当使用()A、if(a==b)B、if(a=b)C、if(strcpy(a,b))D、if(strcmp(a,b))2、以下正确的定义语句是()A、inta[1][4]={1,2,3,4,5};B、floatx[3][]={{1},{2},{3}};C、longb[2][3]={{1},{1,2},{1,2,3}};D、doubley[][3]={0};3、以下各组选项中,均能正确定义二维实型数组a的选项是()A、floata[3][4];floata[][4];floata[3][]={{1},{0}};B、floata(3,4);floata[3][4];floata[][]={{0},{0}};C、floata[3][4];staticfloata[][4]={{0},{0}};autofloata[][4]={{0},{0},{0}};D、floata[3][4];floata[3][];floata[][4];4、下面程序的运行结果是()1—5DDCBA6—10BDABB11—15CCCBC16—20DDCBB21—25BBAAA26—30DBDDB#includestdio.hmain(){charstr[]=SSSWLIA,c;intk;for(k=2;((c=str[k])!='\0');k++){switch(c){case'I':++k;break;case'L':continue;default:putchar(c);continue;}putchar('*');}}A、SSW*B、SW*C、SW*AD、SW5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入()charx[]=programming;chary[]=Fortran;inti=0;2while(x[i]!='\0'&&y[i]!='\0')if(x[i]==y[i])printf(%c,《1》);elsei++;A、x[i++]B、y[++i]C、x[i]D、y[i]6、有下面的程序段,则()chara[3],b[]=china;a=b;printf(%s,a);A、运行后将输出ChinaB、运行后将输出ChC、运行后将输出ChiD、编译出错7、下面程序的运行结果是()main(){charch[7]={12ab56};inti,s=0;for(i=0;ch[i]='0'&&ch[i]='9';i+=2)s=10*s+ch[i]-'0';printf(%d\n,s);}A、1B、1256C、12ab56D、12568、定义如下变量和数组:则下面语句的输出结果是()intk;inta[3][3]={1,2,3,4,5,6,7,8,9,};for(k=0;k3;k++)printf(%d,a[k][2-k]);A、357B、369C、159D、1479、下面程序段的运行结果是()charc[5]={'a','b','\0','c','\0'};printf(%s,c);A、'a''b'B、abC、abcD、abc10、若有说明:inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()A、2B、3C、4D、无确定值311、下面程序的运行结果是()main(){inta[6],i;for(i=1;i6;i++){a[i]=9*(i-2+4*(i3))%5;printf(%2d,a[i]);}}A、-40404B、-40403C、-40443D、-4044012、下面程序的运行结果是()main(){inta[6][6],i,j;for(i=1;i6;i++)for(j=1;j6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i6;i++){for(j=1;j6;j++)printf(%2d,a[i][j]);printf(\n);}}A、11111B、00001C、10000D、100011111100010010000101011111001000010000100111110100000010010101111110000000011000113、下述对C语言字符数组的描述中错误的是()A、字符数组可以存放字符串。B、字符数组的字符串可以整体输入、输出。C、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值。D、不可以用关系运算符对字符数组中的字符串进行比较。14、判断字符串s1是否大于字符串s2,应当使用()A、if(s1s2)B、if(strcmp(s1,s2))C、if(strcmp(s2,s1)0)D、if(strcmp(s1,s2)0)15、下面程序(每行程序前面的数字表示行号):()41main()2{3inta[3]={3*0};4inti;5for(i=0;i3;i++)scanf(%d,&a[i]);6for(i=1;i3;i++)a[0]=a[0]+a[i];7printf(%d\n,a[0]);8}A、第3行有错误B、第7行有错误C、第5行有错误D、没有错误16、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。横线处应填入()main(){chars[80],c1,c2='';inti=0,num=0;gets(s);while(s[i]!='\0'){c1=s[i];if(i==0)c2='';elsec2=s[i-1];if(《1》)num++;i++;}printf(%d,num);}A、c1==''&&c2==''B、c1!=''&&c2==''C、c1==''&&c2!=''D、c1!=''&&c2!=''17、有字符数组a[80]和b[80],则正确的输出语句是()A、puts(a,b);B、printf(%s,%s,a[],b[]);C、putchar(a,b);D、puts(a),puts(b);18、下面描述正确的是()A、两个字符串所包含的字符个数相同时,才能比较字符串。B、字符个数多的字符串比字符个数少的字符串大.C、字符串“STOP”与“STOP”相等。D、字符串“That”小于字符串“The”19、有两个字符数组a、b,则以下正确的输入语句是()A、gets(a,b);B、scanf(%s%s,a,b);C、scanf(%s%s,&a,&b);D、gets(a),gets(b);520、以下不正确的定义语句是()A、doublex[5]={2.0,4.0,6.0,8.0,1.0};B、inty[5]=}{0,1,2,3,4,5,6}C、charc1[]={'1','2','3','4','5'};D、charc2[]={'\x10','\xa','\x8'};21、调用函数时,若实参是一个数组名,则向函数对应的形参传送的是()A、数组的长度B、数组的首地址C、数组第一个元素的值D、整个数组元素的值22、下面程序段的运行结果是()chars[6];s=”abcd”;printf(“\”%s\”\n”,s);A、“abcd”B、”abcd“C、\”abcd\”\nD、编译出错23、(多项选择)以下不能对二维数组a进行正确初始化的语句是()A、inta[2][]={{1,0,1},{5,2,3}};B、.inta[][3]={{1,2,3},{4,5,6}};C、inta[2][4]={{1,2,3},{4,5},{6}};D、inta[][3]={{1,0,1},{},{1,1}};24、(多项选择)若有说明:inta[3][4];则对a数组元素不能正确引用是()A.a[2][4]B、a[1,3]C、a[1+1][0]D、a(2)(1)25、(多项选择)若有说明“staticinta[3][4]={0};”则下面正确的叙述是()A、只有元素:a[0][0]可得到初值0B、此说明语句不正确C、数组a中各元素都可得到初值,但其值不一定为0D、数组a中每个元素均可得到初值026、以下对一维整型数组的正确说明是()A、inta(1);B、intn=10,a[n];C、intn;scanf(“%d”,&n);inta[n];D、#defineSIZE10inta[SIZE];27、有以下程序,其输出结果是()voidswap1(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);printf(“%d%d%d%d\n”,a[0],a[1],b[0],b[1]);6}A、5353B、5335C、3535D、355328、以下程序执行后的输出结果是()intf(intb[][4]){inti,j,s=0;for(j=0;j4;j++){i=j;if(i2)i=3-j;s+=b[i][j];}returns;}main(){int[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};printf(“%d\n”,f(a));}}A、12B、11C、18D、1629、执行下列程序后输出的结果是()inta[3][3]={{1},{2},{3}};intb[3][3]={1,2,3};main(){printf(″﹪d\n″,a[1][0]+b[0][0]);}A、0B、1C、2D、330、以下程序运行后,输出结果是()main(){inty=18,i=O,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y=1);for(j=i-1;j=0;j--)printf(“%d”,a[j]);printf(“\n”);}A、1000B、10010C、00110D、10100二、填空题1、设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。(填空时数组元素请用数组表示方法)main(){inta[10]={1,2,3,4,5,6,7,8,9,10};7intk,s,i;floatave;for(k=s=i=0;i10;i++){if(a[i]%2!=0)《1》;s+=《2》;k++;}if(k!=0){ave=s/k;printf(%d,%f,k,ave);}}2、下面程序的运行结果是()main(){intnum_list[]={6,7,8,9};intk,j,b,u=0,m=4,w;w=m-1;while(u=w){j=num_list[u];k=2;b=1;while(k=j/2&&b)b=j%++k;if(b)printf(%d,num_list[u++]);else{num_list[u]=num_list[w];num_list[w--]=j;}}}3、下面程序的功能是将字符数组a[6]={'a','b','c','d','e','f'}变为a[6]={'f','a','b','c','d','e'}。请填空。(注:填空时数组元素请用数组表示方法)main(){chart,a[6]={'a','b','c','d','e','f'};inti;《1》;for(《2》;i0;i--)a[i]=a[i-1];a[0]=t;for(i=0;i=5;i++)printf(%c,a[i]);}4、下面程序的运行结果是()main(){inti;chara[]=Time,b[]=Tom;8for(i=0;a[i]!='\0'&&b[i]!='\0';i++)if(a[i]==b[i])if(a[i]='a'&&a[i]='z')printf(%c,a[i]-32);elseprintf(%c,a[i]+32);elseprintf(*);}5、下面程序的运行结果是()main(){inti=1;n=3
本文标题:数组练习题及答案讲解
链接地址:https://www.777doc.com/doc-5274454 .html