还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
主题作业一•数组与指针答案B上足产卫一・奴日”解释⑴多维数组元素按照顺序放置,a
[0]
[0]a[O][l]a[l][O]a[l][l]a
[2]
[0]a一・单选题2a[i]是指向a[i][O]的指针数组定义为⑶⑵数组元素的耘京----------------------------------------------------------------------
1.int a={1,2,3,4,5,6},_B T、、A a
[3]
[2]D a
[2]
[3]不正确的赋值或赋初值的方式是—
2.C、二;数组名是不能被修改的指针A char str[]string”B、char str
[7]={s,t,T,i,n,g};--------------------------------------C、charstr[10J;str=ustringn;、;D char str
[7]={s,T,T,nJg,0}字符串的长度为12,加上结束符设变量定义为则数组中有—个元素\0一共存放了13个元
3.char s[]=hello\nworld\n;,s B素下列代码段的输出为—
4.A—charo字符串以,\(),为结束符[尸,;%c l\t\r\\\Owill\n printf⑹;d”,strlenC.16D.11A.4B.15下列代码段输出字符串则循环条件能够被下列哪个选项替换—
5.str,str[i]H\0,A.char str
[80]=,,hello,world^^;for i=0;str[i]!=AO5;i++putcharstr[i];A.str[i]B.i80C.!str[i]=\0D.i=80关于数组声明,下列用法错误的是—
6.“inta
[4];“D数组名是不能被修改的指针A.*a矶C.a D.a++B.0]下列关于数组的定义,哪种用法是错误的
7._C数组的定义只能省略第一个A.int a
[1]
[3];B.int x
[2]
[2]={1,2,3,4;长度值(即变化最慢的维度)C.int x
[2][]={1,2,4,6;D.intm[]
[3]={1,2,3,4,5,6X以下不正确的定义语句是
8.Do数组初始化的元素个数不能大于A.double x
[5]={
2.0,
4.0,
6.0,
8.0,
10.0};B.charc2[]={\x10,;\xa,/\x8,};其长度口D.int y
[5]={0,1,3,5,7,9};C.charci={1,2,3,4,5};
9.若变量已正确定义并且指针p已经指向某个变量x,则(*m++相当于_B对p所指向的变量进行加1o操作、、、、A p++B x++C*p++D x++A.12B.13C.14D.15若、都是整型指针,已经指向变量要使也指向是正确的
10.pl p2pl x,p2x,_A—%,、、printf d”*++k;A p2=pl;B p2=**pl;下列程序段的输出是、、
11._B ointc[]={l,3,C p2=pl;D p2=*pl;5};使得指向Int*k=c+l kc+loint*k=c+l;后指向所以*的值是++k kc+2o++k
5、、、、A3B5C4D6A指针s的地址不可测,无意义B指针对于如下说明,语法和语义都正确的赋值是
12._C os的地址不可测,无意义D类型不一致,int c,*s,a[]={l,3,5};无法赋值、、、、A c=*s;B s
[0]=a
[0];C s=a[l];D c=a;设变量定义为;,则*的值是
13.int a
[2]={1,3},p=a
[0]+1p_B.p定义为指针,指向a+lA.2B.3C.4D.a
[0]+1下列程序段的输出结果是
14._B.p=q之后,p和q都指向变量k*p++相当于k++,int*p,*q,k=1,j=10;所以*p++之后k的值为2p=j;q=k;;;P=q*P++printfn%dH,*q;A.1B.2C.10D.11根据声明下列表达式错误的是
15.inta
[10],*p=a;,—D数组名是指针,但是不能被修改・*p++A.a
[9]B p
[5]C.D.a++
16.下列表达式,错误的是_AA.char str
[10];str=string”;B.char str[尸string”;数组名是指针,但是不能被修改C.char*p=stringn;D.char*p;p=nstringn;
17.根据声明int p=数组a的最后一个元素是_B.・A.a
[10]B.p
[8]C p
[9]D.P[1O
118.下列代码段将会打印出C运算符sizeof作用在数组上时,结果为数组的元素个数*每个元素的大小,即整个数组所占的byte数数组定义时如果没有明确写出长度,则其长度由初始化的元[尸;char sstudent”素个数决定当用字符串初始化字符数组时,还要计算结束字符\0%,printf s%d”s+3,sizeofs;A.student7B.dent7C.dent8D.students下列语句定义为指向类型变量的指针,是正确的
19.pf float f_B A错在初始化pf=fA.float f,*pf=f;B.float f,*pf=f;C错在f定义在后D错在pf初值不能为浮点数C.float*pf=f,f;D.floatf,*pf=
0.0;假设语句执行时输入回至能使语句正确输出字符串的
20.scanf ASCOEvputss ABCDE程序段是Do_______A.chars
[5]={ABCDEn;putss B.chars
[5]={A,,,B7C,,,D7E,};putss;A错在初始化C.char*s;scanf%s,,,s;putss;D.char*s;s=HABCDEM;putss;B错在初始化不是字符串C错在指针s的地址不可测,无意义二填空题.数量为2*3*
421.根据声明int a
[2]
[3]
[4],该数组元素数量为_
2422.下列代码段将会打印出_16oint array[]={2,8,6,11,13,2,8,2};int k;int total=0;fork=0;k8;k++{ifarray[k]%2break;碰到奇数跳出循环total+=array[k];%,printfd”total;该题数组大小为参考第题的解释下列代码段的输出为20o
1823._5,20o-;char st
[20]=hello\0world!”-printfu%d,%d\n,,,strlenst,sizeofst;13,d写出下列程序段的输出结果
24.参考第题的解释18char str[]=,hello\tworld\nn;printfn%d,%c\nn,sizeofstr,*str+10;下列代码段的输出为
25.oint c[]={10,30,5},*pc;%输出为10#30#注意forpc=c;pcc+2;pc++printf”d#\*pc;c+2指向元素5下列代码段的输出为
26.oint a=1;输出为2,3int b=2;int*x,*y;x=a;;y=b*x=*x+1;x=y;*x=*x+1;printfn%d,%dH,a,b;下列代码段的输出为a+1指向元素
227.oa+6指向元素7int a[]={1,2,3,4,5,6,7},*p,s;循环累加了
2、
4、6fors=0,p=a+1;p=a+6;p=p+2s+=所以输出为12*p;%printf d”,s;下列代码段
28.a+1指向元素2a+6指向元素7输int i=0,s=0,a
[10];出为12whilei10a[i]=0s+=a[i++];等价于代码段int s,a
[10],*p=a;for_s=0;pa+10;s+=*p++_if*p0break;函数等价于函数
29.f1f2void f1chars[],char t[]{int i=0;while t[i]!=,\0,{s[i]=t[i];i++;}s[i]=0;void f2char*s,char*twhile_*s++=*t++;
30.下列程序段输出_ef字符串以T为结束符ochar s[]=,,abc\0def\0ghin,*sp=s;printfu%s,,,sp+5;
三、阅读理解题.若输入〈回车>,则以下程序的输出结果是313123include stdio.hvoid main{int i,j,n,a
[10];scanfH%du,n;//n=3fori=0;in;i++scanfC%dn,a[i];//a[]={1,2,3}for i=0;in;1,2,3,2,3,1,3,1,2,i++for G=0;jn;j++printfH%d,M,a[i+j%n];输入回车〉后,下列程序的输出结果是
32.123+234=357Yesv#include stdio.hvoid main{int k,n1,n3
[10];char c;n1=0;fork=0;k10;k++n3[k]=0;whilec=getchar!=,\n{switchc{caseO1:case T:case2:case3:case4:T:case5*:case6:case case8:case9:n3[c-0]++;统计字符0〜9出现的次数,放入数组n3中其他break;字符的出现次数累计在变量nl中所以n3口中的值为default:{0,1,2,3,1,1,0,1,0,0}n1++;nl的值为6break;因此程序输出为:6123111printfH%d,n1;fork=0;k10;k++,ifn3[k]printf%dn3[k];若输入为则输出为
33.730303129760ENTER,_3#-1##include stdio.h void mainint j,k,sub,x;int a
[5];forQ=1;j=2;j++{fork=0;k5;k++%scanf d”,a[k];%scanf d”,x;sub=-1;fork=0;k5;k++ifa[k]==x sub=k;printfH%d#H,sub;下列程序的输出为
34.o//include stdio.h voidmain{int i,k,m;int a
[8]={60,75,63,92,87,64,79,21},s
[10];fork=0;k10;k++s[k]=0;fori=0;i8;i++{s[]中的值为{0,0,1,0,0,0,3,2,1,1}k=a[i]/10;s[k]++;因此程序输出为1#3#2#1#1#3m=s
[0];k=1;while k10{ifs[k]!=O print-%d#,s[k];if s[k]m m=s[k];k++;printfn%dn,m;若输入丁日,则下列程序的输出为
35.AabO VEN//include stdio.h voidmain{chars
[81];int i=0;getss;while s[i]!=\0,{s[]中的值为“AabD”while语句把s中小写字母a-z对称颠倒宣ifs[i]=,z,s[i]=s[i]=z+a-s[i];因此程序输出为AzyD;i++putss;下列程序运行时输入v回至〉,输出结果为
36.include stdio.h void fint a[],int n;main int i,n,a
[10];scanfH%dH,n;//n=8for i=0;in;i++%〃□二37218341〃scanf”d”,a[i];a fa+n/4,n/2;把、、、排序为、、、fa+2,4,21831238for i=0;in;i++printfH%d#M,a[i];因此程序输出为3#7#1#2#3#8#4#1#〃从小到大排序voidfint a[],int ninti,j,temp;for i=1;in;i++for j=0;jn-i;j++;if a[j]aO+1]{temp=a[j];a[j]=aO+1]a[j+1]=temp;}下列程序的输出为
37.o#include stdio.hint z;void pint*x,int y++*x;y++;z=*x+y;printfn%d,%d,%d#n,*x,y,z;程序输出为3,2,5#1,3,3#void mainintx=1,y=2,z=3;py,x;printfn%d,%d,%d#n,x,y,z;下列代码段的输出为
38._
42.#include stdio.hint finta[],int n,int mf函数把a看作是的数组计算并返回最大的行和inti,j,sum,max=0;forj=0;jm;j++max+=a[j];for i=1;in;i++{sum=0;for j=0;jm;j++sum+=*a+i*m+j;if summaxmax=sum;return max;void mainstaticinta[]={1,2,3,4,5,6,7,8,9,10,11,12;printfH%dH,fa,3,sizeofa/sizeofint/3;//fa,3,4下列程序运行时输入C JavaVB FortranBasic〈回至〉,输出结果为
39.C++_Fortraninclude stdio.h voidfindchar*str{char*p=str;int k1=0,k2=0;while1{〃单词以空格,制表符,为分隔符if*p!=*p!=\t*p!=\0k2++;MX else〃找到一个更长的单词if k2k1{k1=k2;str=p-k2;}k2=0;if*p==,\0,break;P++;〃输出该最长的单词fork2=0;k2k1;k2++printfn%cH,*str++;return;main chara
[80];getsa;finda;下列代码段的输出为
40._0,4#include stdio.h voidpint*x,int y{++*x;;y=y+2voidmainintx=0,y=3;py,y;printfH%d,%dn,x,y;。
个人认证
优秀文档
获得点赞 0