6.1选择题6.1在c语言中,引用数组元素时,其数组下标的数据类型是C。A)整型常量B)整型表达式C)整型常量或常量表达式D)任何类型的表达式6.2以下对一维数组a的正确说明是D。A)intn;scanf(%d,&n);inta[n];B)intn=10,a[n];C)inta(10);D)#defineSIZE10inta[SIZE];6.3若有说明:inta[10];则对数组元素的正确引用是D。A)a[10]B)a[3,5]C)a(5)D)a[10-10]6.4在C语言中,一维数组的定义方式为:类型说明符数组名D。A)[常量表达式]B)[整型表达式]C)[整型表达式]或[整型常量]D)[整型常量]6.5以下能对一维数组a进行正确初始化的语句是B。?????A)inta[10]=(0,0,0);B)inta[10]={};C)inta[]={0};D)inta[10]={10*1};6.6以下对二维数组a的正确说明是C。A)inta[3][];B)floata(3,4);C)doublea[1][4];D)floata(3)(4);6.7若有说明:inta[3][4];则对a数组元素的正确引用是C。A)a[2][4]B)a[1,3]C)a[1+1][0]D)a(2)(1)6.8若有说明:inta[3][4];则对a数组元素的非法引用是D。A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]6.9以下能对二维数组a进行正确初始化的语句是B。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}};6.10以下不能对二维数组a进行正确初始化的说明是C。A)inta[2][3]={0};B)inta[][3]={{1,2},{0}};C)inta[2][3]={{1,2},{3,4},{5,6}};D)inta[][3]={1,2,3,4,5,6};6.11若有说明:inta[3][4]={0};则下面正确的叙述是D。A)只有元素a[0][0]可以得到初值0B)此说明语句不正确C)数组中各元素都可以得到初值,但其值不一定为0D)数组中每个元素均可得到初值06.12若有说明:inta[][4]={0,0};则下面不正确的叙述是D。A)数组a的每个元素都可得到初值0B)二维数组a的第一维大小为1C)因为二维数组a中第二维大小的值除初值个数的商为0,故数组a的行数为1D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值06.13若有说明:staticinta[3][4];则数组中各元素B。A)可在程序的运行阶段得到初值0B)可在程序的编译阶段得到初值0C)不能得到确定的初值D)可在程序的编译或运行阶段得到初值06.14以下各组选项中,均能正确定义二维实型数组a的选项是C。A)floata[3][4];B)floata(3,4);floata[][4];floata[3][4];floata[3][]={{1},{0}};floata[][]={{0},{0}};C)floata[3][4];D)floata[3][4];staticfloata[][4]={{0},{0}};floata[3][];autofloata[][4]={{0},{0},{0}};floata[][4];6.15下面程序有错误的行是D(行前数字表示行号)。1main()2{inta[3]={3*0};3inti;4for(i=0;i3;i++)5scanf(%d,&a[i]);6for(i=1;i3;i++)a[0]=a[0]+a[i];7printf(%d\n,a[0]);8}A)第2行有错误B)第6行有错误C)第7行有错误D)没有错误6.16下面程序有错误的行是C(行前数字表示行号)。1main()2{3floata[10]={0.0};4inti;5for(i=0;i3;i++)scanf(%d,&a[i]);6for(i=1;i10;i++)a[0]=a[0]+a[i];7printf(%f\n,a[0]);8}A)没有错误B)第3行有错误C)第5行有错误D)第7行有错误6.17下面程序有错误的行是D(行前数字表示行号)。1main()2{3inta[3]={1};4inti;5scanf(%d,&a);6for(i=1;i3;i++)a[0]=a[0]+a[i];7printf(a[0]=%d\n,a[0]);8}A)3B)6C)7D)56.18下面程序有错误的行是D(行前数字表示行号)。1main()2{3inta[3]={0};4inti;5for(i=0;i3;i++)scanf(%d,&a[i]);6for(i=1;i4;i++)a[0]=a[0]+a[i];7printf(%d\n,a[0]);8}A)没有错误B)3C)5D)66.19若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(假设a[0][0]位于数组的第一个位置上)D。A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+16.20对说明语句inta[10]={6,7,8,9,10};的正确理解是B。A)将5个初值依次a[1]至a[5]B)将5个初值依次a[0]至a[4]C)将5个初值依次a[5]至a[9]D)将5个初值依次a[6]至a[10]6.21以下不正确的定义语句是B。A)doublex[5]={2.0,4.0,6.0,8.0,10.0};B)inty[5]={0,1,3,5,7,9};C)charc1[]={'1','2','3','4','5'};D)charc2[]={'\x10','\xa','\x8'};6.22若有说明:inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是B。A)2B)3C)4D)无法确定6.23若二维数组a有m列,则在a[i][j]前的元素个数为C。A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+16.24定义如下变量和数组:intk,a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是A。for(k=0;k3;k++)printf(%d,a[k][2-k]);A)357B)369C)159D)1476.25以下程序段的作用是B。inta[]={4,0,2,3,1},i,j,t;for(i=1;i5;i++){t=a[i];j=i-1;while(j=0&&ta[j]){a[j+1]=a[j];j--;}a[j+1]=t;}A)对数组a进行插入排序(升序)B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序)D)对数组a进行选择排序(降序)6.26以下正确的定义语句是D。A)inta[1][4]={1,2,3,4,5};B)floatx[3][]={{1},{2},{3}};C)longb[2][3]={{1},{2,3},{4,5,6}};D)doubley[][3]={0};6.27下面程序的运行结果是C。#includestdio.hmain(){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)10001111110001001000010101111100100001000010011111010000001001010111111000000001100016.28下面程序的运行结果是C。#includestdio.hmain(){inta[6],i;for(i=1;i6;i++){a[i]=9*(i-2+4*(i3))%5;printf(%2d,a[i]);}}A)-40404B)-40403C)-40443D)-40440*6.29下面是对s的初始化,其中不正确的是D。A)chars[5]={abc};B)chars[5]={'a','b','c'};C)chars[5]=;D)chars[5]=abcde;*6.30下面程序段的运行结果是B。charc[5]={'a','b','\0','c','\0'};printf(%s,c);A)'a''b'B)abC)abcD)ab▄(▄表示空格)*6.31对两个数组a和b进行如下初始化chara[]=ABCDEF;charb[]={'A','B','C','D','E','F'};则以下叙述正确的是D。A)a与b数组完全相同B)a与b数组长度相同C)a和b中都存放字符串D)a数组比b数组长度长6.32有两个字符数组a、b,则以下正确的输入语句是B。A)gets(a,b);B)scanf(%s%s,a,b);C)scanf(%s%s,&a,&b);D)gets(a);gets(b);6.33有字符数组a[80]和b[80],则正确的输出语句是D。A)puts(a,b);B)printf(%s,%s,a[],b[]);C)putchar(a,b);D)puts(a),puts(b);*6.34下面程序段的运行结果是C。//ABC\0efchara[7]=abcdef,b[4]=ABC;strcpy(a,b);printf(%c,a[4]);A)■B)\0C)eD)ef6.35有下面程序段,上机运行,将D。chara[3],b[]=China;a=b;printf(%s,a);A)输出ChinaB)输出ChiC)输出ChD)编译出错*6.36下面程序段的运行结果是A。charc[]=\t\v\\\0will\n;printf(%d,strlen(c));A)3B)6C)9D)146.37判断字符串a和b是否相等,应当使用D。A)if(a==b)B)if(a=b)C)if(strcmp(a,b))D)if(strcmp(a,b)==0)6.38判断字符串s1是否大于字符串s2,应当使用D。A)if(s1s2)B)if(strcmp(s1,s2)C)if(strcmp(s2,s1)0)D)if(strcmp(s1,s2)0)6.39下面程序段输出两个字符串中对应相等的字符。请分析程序填空。charx[]=programming;chary[]=Fortran;inii=0;while(x[i]!='\0'&&y[i]!='\0')if(x[i]==y[i])printf(%c,A);elsei++;A)x[i++]B)y[++i]C)x[i]D)y[i]6.40下面描述正确的是D。A)两个字符串包含的字符个数相同时,才能比较字符串B)字符个数多的字符串比字符个数少的字符串大C)字符串STOP与STOP■相等D)字符串That小于字符串The6.41下面对C语言字符数组的描述中错误的是C。A)字符数组可以存放字符串B)字符数组的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较***6.42有已排好序的字符串a,下面的程序是将字符串s中的每个字符按升序的规律插入到a中。请选择填空。(疑问)#includestdio.hmain(){chara[20]=cehiknqtw;chars[]=fbla;inti,k,j;for(k=0;s[k]!='\0';k++){j=0;while(s[k]=a[j]&&a[j]!='\0')j++;for(【1】B)【2】B;a[j]=s[k];//此处s[j]应改为a[j]}puts(a);}【1】A)i=strlen(a)+k;