《C语言程序设计》第7章作业布置日期:2015-4-28截止日期:2015-5-13一、单选题(每小题2.5分,共100分)1、在C语言中,引用数组元素时,其数组下标的数据类型允许是_________。A、整型常量B、整型表达式C、整形常量或整形表达式D、任何类型的表达式2、若有定义:inta[10],则对数组a元素的正确引用是________。A、a[10B、a[3.5]C、a(5)D、a[10-10]3、下面能正常定义数组的是:A、inta[10]={0;1;2;3;4;5;6;7;8;9};B、inta(10)={10};C、inta[]={0};D、inta[n]={10*1};4、若有定义:inta[3][4],则对数组a元素的正确引用是_______。A、a[2][4]B、a[1,3]C、a(2)D、a[10-10][3]5、以下能对二维数组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}};6、对s的初始化,其中不正确的是_________。A、chars[5]={“abc”};B、chars[5]={‘a','b','c'};C、chars[5]=””;D、chars[5]=”abcdef”;7、下列有关字符数组的描述中错误的是_________。A、字符串可以整体输入,输出;B、可以在赋值语句中通过赋值运算对字符数组整体赋值;C、字符数组可以存放字符串;D、不可以用关系运算符对字符数组中的字符串进行比较。8、要说明一个有10个int元素的数组,应当选择语句______。A、inta[10];B、inta[2,5];C、inta[];D、int*a[10];9、若用数组名作为函数调用时的实参,则实际上传递给形参的是______。A、数组首地址B、数组的第一个元素C、数组中全部元素的值D、数组元素的个数10、在C语言中,二维数组元素在内存中的存放顺序是______。A、按行存放B、按列存放C、由用户自己定义D、由编译器决定11、已知下列程序段,则______。chara[3],b[]=China;a=b;printf(%s,a);A、运行后将输出ChinaB、运行后将输出ChC、运行后将输出ChiD、程序出错12、若二维数组a有m列,则在a[i][j]之前的元素个数为______。A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+113、若有说明inta[3][3]={{1},{1},{1}};,则正确的叙述是______。A、数组a的第0行元素全为1B、数组a的第0列元素全为1C、数组a的前3个元素为1D、数组a的最后3个元素为114、若用数组名作为函数调用的实参,则传递给形参的是______。A、数组的首地址B、数组的第一个元素的值C、数组中全部元素的值D、数组元素的个数15、当输出含空格的字符串时,应使用()函数。A、printf()B、puts()C、putchar()D、putc()16、当接收用户键入的含空格的字符串时,应使用()函数。A、Scanf()B、Gets()C、Getchar()D、Getc()17、在执行charstr[10]=”ch\nina”;strlen(str)的结果是()。A、5B、6C、7D、918、若定义inta[3][2];则printf(%d,a[1][0]);语句输出的是第()个元素。A、1B、3C、4D、519、以下对一维数组进行正确初始化的语句是()。A、inta[3]=(0,1};B、inta[3]={};C、inta[]=[0];D、inta[3]={3*2};20、若定义inta[10];则对a数组元素的正确引用是()。A、a[10]B、a[4.3]C、a(5)D、a[6-6]21、以下不能对二维数组x进行正确初始化的语句是_________。A、intx[][2]={{1},{2},{3}};B、intx[3][]={1,2,3};C、intx[3][2]={{1,2},{3,4},{5,6}};D、intx[3][2]={0};22、合法的数组定义是______。A、inta[]=string;B、inta[5]={0,1,2,3,4,5};C、chara=string;D、chara[]={0,1,2,3,4,5};23、若有如下数组定义和语句,则输出结果是(以下u代表空格)______。chars[10]=abcd;printf(%s\n,s);A、abcdB、aC、abcduuuuuD、编译不通过24、数组a[2][2]的元素排列次序是______。A、a[0][0],a[0][1],a[1][0],a[1][1]B、a[0][0],a[1][0],a[0][1],a[1][1]C、a[1][1],a[1][2],a[2][1],a[2][2]D、a[1][1],a[2][1],a[1][2],a[2][2]25、有以下语句,则下面正确的描述是______。staticcharx[]=12345;staticchary[]={‘1’,‘2’,‘3’,‘4’,‘5’};A、x数组和y数组的长度相同B、x数组长度大于y数组长度C、x数组长度小于y数组长度D、x数组等价于y数组26、若a[3][5]是一个二维数组,则最多可使用的元素个数为______。A、8B、10C、15D、527、若有说明“inta[3][4];”,则对a数组元素的非法引用是______。A、a['B'-'A'][2*1]B、a[1][3]C、a[4-2][0]D、a[0][4]28、字符串string的长度为______。A、9B、8C、6D、729、以下数组定义中不正确的是______。A、inta[2][3];B、intb[][3]={1,2,3,4,5,6};C、intc[100][100]={0};D、intd[3][]={{1,2},{1,2,3},{1,2,3,4}};30、设有数组定义“chararray[]=China;”则数组array所占的空间为___个字节。A、4B、5C、6D、731、有定义语句“intb;charc[10];”,则正确的输入语句是______。A、scanf(%d%s,&b,&c);B、scanf(%d%s,&b,c);C、scanf(%d%s,b,c);D、scanf(%d%s,b,&c);32、执行以下程序后,输出的结果为______。#includestdio.hvoidmain(){staticcharch[]={‘6’,‘2’,‘3’};inta,s=0;for(a=0;ch[a]=‘0’&&ch[a]=‘9’;a++)s=10*s+ch[a]-‘0’;printf(s=%d\n,s);}A、s=623B、s=263C、s=326D、s=23633、以下程序的输出结果是______。#includestdio.hvoidmain(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++7)if(p[i]%2)j+=p[i];printf(%d\n,j);}A、42B、45C、56D、6034、定义如下字符数组c,则字符数组c的长度是______。charc[]=\t\v\\\0will\n;A、9B、10C、11D、1235、定义如下一维数组a和b,则引用数组元素a[4]和b[4]的值分别是____和____。inta[5]={1,2,3};staticb[5]={1,2,3};A、不确定的不确定的B、不确定的0C、00D、0不确定的36、定义如下二维数组a和b,则a、b数组第一维的大小是______。数组元素a[2][2]和b[2][2]的值分别是______和______。inta[][3]={1,2,3,4,5,6,7};staticintb[][3]={1,2,3,4,5,6,7};A、2不确定的0B、3不确定的0C、2不确定的不确定的D、30037、下列程序的输出结果是______。#includestdio.hvoidmain(){inty=18,i=0,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、10001B、10010C、10101D、1011038、下列程序的功能是:求出数组x中各相邻两个元素的和并依次存放到a数组中,然后输出。请填空。#includestdio.hvoidmain(){intx[10],a[9],i;for(i=0;i10;i++)scanf(%d,&x[i]);for(①;i10;i++)a[i-1]=x[i]+②;for(i=0;i9;i++)printf(%d,a[i]);printf(\n);}A、①i=0②x[i-1]B、①i=0②x[i+1]C、①i=1②x[i-1]D、①i=1②x[i+1]39、输入一个正整数n(1n=10),再输入n个整数,将它们存入数组a中,再输入一个数x,然后在数组a中查找x,如果找到,输出相应的最小下标;否则,输出“NotFound”。#includestdio.hvoidmain(){inti,index,n,x,a[10];scanf(%d,&n);for(i=0;in;i++)scanf(%d,①);scanf(%d,&x);②;for(i=0;in;i++)if(a[i]==x){index=i;③;}if(index!=-1)printf(%d\n,index);elseprintf(Notfound\n);}A、①&a[n]②index=-1③continueB、①&a[n]②index=0③breakC、①&a[i]②index=-1③breakD、①&a[i]②index=0③continue40、下面程序的功能是统计输入字符串(以回车结束)中元音字母的个数,请填空。#includestdio.hvoidmain(){chars[100],alpha[]={‘a’,‘e’,‘i’,‘o’,‘u’};staticintnum[5];inti=0,k;while((s[i]=getchar())!=‘\n’)i++;s[i]=‘\0’;i=0;while(s[i]!=‘\0’){for(k=0;k5;k++)if(①){num[k]++;②;}i++;}for(k=0;k5;k++)printf(%c:%d\n,alpha[k],③);}A、①s[k]==alpha[i]②continue③num[k]B、①s[i]==alpha[k]②break③num[k]C、①s[k]==alpha[i]②continue③num[i]D、①s[i]==alpha[k]②break③num[i]