MSE C语言第五章习题.doc_第1页
MSE C语言第五章习题.doc_第2页
MSE C语言第五章习题.doc_第3页
MSE C语言第五章习题.doc_第4页
MSE C语言第五章习题.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

考研网 /下面是研究生考试网为报考GCT软件工程硕士的考生整理的MSE考研复习备考资料。希望这些资料能够给考生一定帮助。在此,预祝考生复习备考顺利!第六章 数组一、单选题(60题)1若有以下数组说明,则数值最小的和最大的元素下标分别是 ( )。 int a12 =1,2,3,4,5,6,7,8,9,10,11,12; A1,12B0,11C1,11D0,122若有以下说明,则数值为4的表达式是 ( )。 int a12 =1,2,3,4,5,6,7,8,9,10,11,12; char c=a, d, g ; Aag-cBa4 Cad-c Dad-c (即ad-a)3设有定义:char s12 = “string “ ;, 则printf( “%dn”,strlen(s);的输出是 ( )。 A6B7C11D124设有定义:char s12 = “string “; 则printf( “%dn “, sizeof(s); 的输出是 ( )。 A6B7C11D125. 合法的数组定义是 ( )。 Achar a = “string “ ;Bint a5 =0,1,2,3,4,5; Cchar a= “string “ ;Dchar a =0,1,2,3,4,56. 合法的数组定义是 ( )。 Aint a3 =0,1,2,3,4,5;Bint a 3 =0,1,2,3,4; Cint a23=0,1,2,3,4,5,6;Dint a23=0,1,2,3,4,5,;7. 下列语句中,正确的是 ( )。 Achar a3 =abc, 1;Bchar a 3 =abc, 1; Cchar a3 =a, “1”; Dchar a 3 = “a “, “1“;8. 下列定义的字符数组中,输出printf( “%sn”, str2) ;的输出是 ( )。 static str320 = “basic “, “foxpro “, “windows “; AbasicBfoxproCwindowsD输出语句出错9. 下列各语句定义了数组,其中哪一个是不正确的( )。 A、char a310=”China”,”American”,”Asia”; B、int x22=1,2,3,4; C、float x2 =1,2,4,6,8,10; D、int m3=1,2,3,4,5,6;10. 数组定义为 int a32=1,2,3,4,5,6,值为6的数组元素是( )。 A、a32 B、a21 C、a12 D、a2311语句 printf( “%dn “, strlen( “atsno121 “); 的输出结果是 ( )。A11B10C9D812函数调用 strcat(strcpy (str1,str2),str3); 的功能是 ( )。 A将字符串str1复制到字符串str2中后再连接到字符串str3 之后。B将字符串str1连接到字符串str2之后再复制到字符串str3 之后。C将字符串str2复制到字符串str1中后再将字符串str3 连接到字符串str1之后。D将字符串str2连接到字符串str1之后再将字符串str1 复制到字符串str3中。13有字符数组定义如下,则合法的函数调用是( ) char a = “I am a student “, b = “teacher “ ;Astrcmp(a,b);Bstrcpy(a,b0);Cstrcpy(a7,b);Dstrcat(a7,b);14有字符数组定义如下,则不能比较a,b两个字符串大小的表达式是( ) char a = abcdefg, b = abcdefh;Astrcmp(a,b) =0Bstrcmp(a,b)0Cstrcmp(a,b)0 Dab15设有如下定义,则正确的叙述为( )char x = “abcdefg “ ;char y =a,b,c,d,e,f,g; A数组x和数组y等价B数组x和数组y长度相同C数组x的长度大于数组y的长度D数组x的长度小于数组y的长度16设有二维数组定义如下,则不正确的元素引用是( ) int a34 =1,2,3,4,5,6,7,8,9,10,11,12;Aa23Baa001Ca7Da2c-a17. 在c语言中,引用数组元素时,其数组下标的数据类型允许是( ) A)整型常量 B)整型表达式 c)整型常量或整型表达式 D)任何类型的表达式18. 若有以下说明语句: int a12=1,2,3,4,5,6,7,8,9,10,11,12; char c=a,d,g; 则数值为4的表达式是_。 A、ag-c B、a4 C、ad-c D、ad-c19. 假设int型变量占两个字节的存储单元,若有定义: int x10=0,2,4; 则数组x在内存中所占字节数为_。 A、3 B、6 C、10 D、2020. 下列合法的数组定义是_。 A、int a=”string”; B、int a5=0,1,2,3,4,5; C、char a=”string”; D、char a=0,1,2,3,4,5;21. 若给出以下定义: char x=”abcdefg”; char y=a,b,c,d,e,f,g; 则正确的叙述为_。 A、数组x和数组y等价 B、数组x和数组y的长度相同 C、数组x的长度大于数组y的长度 D、数组y的长度大于数组x的长度22. 若定义如下变量和数组_。 int j; int x33=1,2,3,4,5,6,7,8,9; 则下面语句的输出结果是_。 For (j=0;j3;j+) Printf(“%d”,xj2-j); A、1 5 9 B、1 4 7 C、3 5 7 D、3 6 923. 下列程序运行后的输出结果是_。 Main()int n3,t,j,k; for(t=0;t3;t+) nt=0; k=2; for(t=0;tk;t+) for(j=0;j3;j+) nj=nt+1; printf(“%dn”,n1);A、 2 B、 1 C、 0 D、324. 有以下程序main() int p7=11,13,14,15,16,17,18, i=0,k=0;while(i7 & pi%2) k =k+ pi; i+; printf(%dn, k); 执行后输出结果是_。A、58 B、56 C、45 D、2425. 以下能正确定义数组并正确赋初值的语句是_。A、int N=5,bNN; B、int a12=1,3;C、int c2= 1,2,3,4; D、int d32=1,2,34;26. 有以下程序main() int m3=1,4,7,2,5,8,3,6,9;int i,j,k=2;for(i=0; i3; i+) printf(%d ,mki); 执行后输出结果是_。A、4 5 6 B、2 5 8 C、3 6 9 D、7 8 927. 以下能正确定义一维数组的选项是_。A、int num; B) #define N 100 int numN;C、int num0.100; D) int N=100;int numN;28. 下列选项中正确的语句组是_。A、char s8; s=Beijing; B、char *s; s=Beijing;C、char s8; s=Beijing; D、char *s; s=Beijing;29. 有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b中的值是_。A、5 B、6 C、8 D、930. 有以下程序main( ) char a=abcdefg,b10=abcdefg; printf(%d %dn,sizeof(a),sizeof(b); 执行后输出结果是_。A、7 7 B、8 8 C、8 10 D、10 1031. 有以下程序void swap1(int c) int t; t=c0;c0=c1;c1=t;void swap2(int c0,int c1) int t; t=c0;c0=c1;c1=t;main( ) int a2=3,5,b2=3,5; swap(a); swap2(b0,b1); printf(%d %d %d %dn,a0,a1,b0,b1); 其输出结果是_。A、5 3 5 3 B、 5 3 3 5 C、3 5 3 5 D、3 5 5 332. 有以下程序int f(int b4) int i,j,s=0; for(j=0;j2) i=3-j; s+=bij; return s;main( ) int a44=1,2,3,4,0,2,4,5,3,6,9,12,3,2,1,0; printf(%dn,f(a); 执行后的输出结果是_。A、12 B、11 C、18 D、1633. 有以下程序void sort(int a,int n) in t i,j,t; for(i=0;in-1;i+=2)for(j=i+2;jn;j+=2) if(aiaj) t=ai;ai=aj;aj=t;main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(aa,10); for(i=0;i10;i+) printf(%d,aai); printf(n); 其输出结果是_。A、1,2,3,4,5,6,7,8,9,10, B、10,9,8,7,6,5,4,3,2,1,C、9,2,7,4,5,6,3,8,1,10, D、1,10,3,8,5,6,7,4,9,2,34. 有以下程序void f(int a,int i,int j) int t; if(ij) t=ai; ai=aj;aj=t;f(a,i+1,j-1); main( ) int i,aa5=1,2,3,4,5; f(aa,0,4); for(i=0;i5;i+) printf(%d,aai); printf(n); 执行后输出结果是_。A、5,4,3,2,1, B、5,2,3,4,1, C、1,2,3,4,5, D、1,2,3,4,5,35. 以下程序的输出结果是_ B_。main() char cf35=AAAA,BBB,CC; printf(%sn,ch1); A、AAAA B、 BBB C、 BBBCC D、 CC36. 以下程序的输出结果是_。main() int b33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;i3;i+) for(j=i;j=i;j+) t=t+bibjj; printf(%dn,t); A、 3 B、 4 C、 1 D、 937. 有以下程序 main() int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6; int i,s=0; for(i=0;i=0&chj=9;j+=2)s=10*s+chj-0;printf(“%dn”,s); A、12ba56 B、66521 C、6 D、6243. 设已定义char s=”NameAddress”n”;,则字符串s所占的字节数是_。A、19 B、18 C、15 D、1444. 设已定义char c8=”Tianjin”和int j,则下面的输出函数调用中错误的是_。A、printf(“%s”,c); B、for(j=0;j8;j+) printf(“%c”,cj);C、puts(c); D、for(j=0;j8;j+) puts(cj);45. 设已定义char a10和 int j,则下面输入函数调用中错误的是_。A、scanf(“%s”,a); B、for(j=0;j9;j+) scanf(“%c”,aj);C、gets(a); D、for(j=0;j9;j+) scanf(“%c”,&aj);46. 设已定义char x8和int j,为了给该数组赋值,下面语句中正确的是_-。A、x8=”Turbo C”; B、x=” Turbo C”;C、x=”Turbo C”; D、for(j=0;j7;j+) xi=getchar();47. 有如下程序,main()int n5=0,0,0,j,k=2; for(j=0;jk:j+) nj=nj+1; printf(“%dn”,nk);该程序的输出结果是_。A、不确定的值 B、2 C、1 D、048. 以下能对一维数组a进行正确初始化的语句是_。 A. int a10=(0,0,0,0,0) B. int a10= C. int a =0; D. int a10=10*1;49. 以下对二维数组a的正确说明是_。 A. int a3; B. floatf a(3,4); c. double a14; D. float a(3)(4);50. 若有说明:int a34; 则对a数组元素的正确引用是_。 A. a24 B. a1,3 C. a1+10 D. a(2)(1);51. 若有说明:int a34;则对a数组元素的非法引用是_。 A. a02*1 B. a13 C. a4-20 D. a0452. 以下不能对二维数组a进行正确初始化的语句是_。 A. int a23=0; B. int a3=1,2,3,4,5,6; C. int a24=1,2,3,4,56; D. int a3=1,0,1,1,1; 53. 若有说明: int a34=0;则下面正确的叙述是 A. 只有元素a00可得到初值0 B. 此说明语句不正确:。 C. 数组a中各元素都可得到初值,但其值不一定为0。 D. 数组a中每个元素均可得到初值054. 下面程序有错的行是 1 main() 2 3 int a3=1; 4 int i; 5 scanf(%d,&a); 6 for(i=1;i3;i+) a0=a0+ai; 7 printf(a0=%dn,a0); 8 A. 3 B. 6 C. 7 D. 555. 下面程序(每行程序前面的数字表示行号) 1 main() 2 3 int a3=0; 4 int i; 5 for(i=0;i3;i+)scanf(%d,&ai); 6 for(i=1;i4;i+)a0=a0+ai; 7 printf(%dn,a0); 8 A. 没有错误 B.第3行有错误 C. 第5行有错误 D. 第6行有错误56. 若二维数组a有m列,则计算任一元素aij在数组元素中次序的公式为(假设a00位于数组的第一个位置上。) A. i*m+j B. j*p+I C. i*m+j-1 D. i*m+j+1 57.对以下说明语句的正确理解是 int a10=6,7,8,9,10; A. 将5个初值依次赋给a1至a5 B. 将5个初值依次赋给a0至a4 C. 将5个初值依次赋给a6至a10 D. 因为数组长度与初值的个数不相同,所以此语句不正确58. 以下不正确的定义语句是_. A. double x5=2.0,4.0,6.0,8.0,10.0; B. int y5=0,1,3,5,7,9;C.char c1 =1,2,3,4,5; D . char c2 =x10,xa,x8;59. 若有说明:int a 3=1,2,3,4,5,6,7;则a数组第一维的大小是_. A. 2 B. 3 C. 4 D.无确定值60. 若二维数组a有m列,则在aij前的元素个数为_. A. j*m+j B. i*m+j C. i*m+j D. i*m+j+1二、读程序,写运行结果(30题)一般题1阅读程序,分析程序的功能。 #include #include void main( ) char s80; int i ; for(i=0; i80; i+) si=getchar( ); if(si=n) break; si=0; i=0; while(si) putchar(si+); putchar(n);2. 说明下列程序的功能。#include #include void main( ) char str1080, c80; int i; for(i=0; i10; i+) gets(stri); strcpy(c, str0) ; for(i=1; i10; i+) if(strlen(c) strlen(stri) strcpy(c,stri); printf( “%sn”, c); printf( “%dn”, strlen (c); 3说明下列程序的功能。#include #inclued void main( ) char a1080, c80; int i, j, k; for(i=0; i10; i+) gets(ai); for(i=0; i9; i+) k=i ; for(j=i+1; j10; j+) if(strcmp (a j, ak)0) k=j;if(k!=i ) strcpy(c,ai) ; strcpy(ai, ak); strcpy(ak,c); / 字符串交换 for(i=0; i10; i+) puts (ai);4阅读程序,写出运行结果: #include void main( ) static int a 3=9,7,5,3,1,2,4,6,8; int i, j, s1=0, s2=0; for(i=0; i3; i+)for(j=0; j3; j+) if(i= =j ) s1=s1+aij; / 主对角线的元素之和 if(i+j= =2) s2=s2+aij; / 辅对角线的元素之和 printf( “%dn%dn “, s1, s2) ; 5. 阅读程序,写出运行结果 . #include void main() int a6=12,4,17,25,27,16,b6=27,13,4,25,23,16,i,j; for(i=0;i6;i+) for(j=0;j6;j+) if(ai=bj)break; if(j6) printf(%d ,ai); printf(n); 6. 阅读程序,写出运行结果 #include void main() char a8,temp; int j,k; for(j=0;j7;j+) aj=a+j; a7=0; for(j=0;j0;k-) ak=ak-1; a0=temp; printf(%sn,a); 7.阅读下列程序,写出程序运行的输出结果。 #include #include void main() char str1 =*; for(int i=0;i4;i+) printf(%sn,str1); str1i= ; str1strlen(str1)-1=0; 8. 阅读下列程序,写出程序运行的输出结果。 #include void main() int a8=1,0,1,0,1,0,1,0,i; for(i=2;i8;i+) ai+=ai-1+ai-2; for(i=0;i8;i+) printf(%d ,ai); printf(n); 9. 输入3后,下列程序的输出结果 。 #include void main( ) int j, k, n, temp, sum=0 , a66 ; scanf(“%d”, &n); for( k=0; kn; k+)for(j=0; jn; j+)akj=k*n+j ;for(k=0;kn;k+)sum+=akn-k-1 ;printf(“%dt” , sum) ;for(k=0;kn;k+) for(j=0;jn/2;j+) temp=an-j-1k ;an-j-1k=akj;akj=temp; for(k=0;kn;k+) for(j=0;jn;j+) printf(“%d, “,akj);printf(“n”);10说明下列程序的功能。 #include void main( ) int i, j ; float a33, b33, x ; for(i=0; i3; i+) for(j=0; j3; j+) scanf( “%f”, &x); aij=x; / 输入矩阵a for(i=0; i3; i+) for(j=0; j3; j+) bji=aij; / a的第i行第j列放到b的第j行第i列 for(i=0; i3; i+) printf( “n “);for(j=0; j3; j+) printf( “%f “,bij); / 输出矩阵b 11写出下列程序的运行结果。 #include void main( ) static char a =*,*, *, *, *; int i, j, k ; for(i=0; i5; i+) printf( “n”); for(j=0 ; ji ; j+) printf(“%c”, ); for(k=0; k5; k+) printf( “%c “, ak); 12说明下列程序的功能。 #include void main( ) int i,j; float a33, b33, c33 ; for(i=0; i3; i+) for(j=0; j3; j+) scanf( “%f ”,&aij); / 输入矩阵a for(i=0; i3; i+) for(j=0; j3; j+) scanf( “%f”, &bij); / 输入矩阵b for(i=0; i3; i+)for(j=0; j3; j+) cij =aij+bij; / 矩阵a和b对应元素相加到矩阵c for(i=0; i3; i+) printf( “n”);for(j=0; j3; j+) printf( “%f “, cij); / 输出矩阵c 13. 若有以下程序main() int a44=1,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,32,-33,0;int i, j, s=0;for (i=0; i4; i+) for (j=0; j4; j+) if (aij 0) continue;if (aij = 0) break;s += aij;printf(%dn, s);执行后输出结果是_。14. 以下程序运行后的输出结果是_。main() int i,n=0,0,0,0,0;for(i=1;i=4;i+) ni=ni-1*2+1;printf(%d ,ni);15.以下程序运行后的输出结果是_。main() int i,j,a3=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)for(j=i+1;j3;j+) aji=0; for(i=0;i3;i+) for(j=0;j3;j+) printf(%d ,aij);printf(n);16. 下面rotate函数的功能是:将n行n列的矩阵A转置为A,例如: 1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14 当 A9 10 11 12 则 A= 3 7 11 15 13 14 15 16 4 8 12 16请填空#define N 4void rotate(int aN) int i,j,t; for(i=0;i=0;i-) ai=10-i;printf(%d%d%d,a2,a5,a8);19. 以下程序的输出结果是_。main() int a44=1,3,5,2,4,6,3,5,7;printf(%d%d%d%dn,a03,a12,a21,a30;)20. 以下程序的输出结果是_。main() char st20= hello0t;printf(%d %d n,strlen(st),sizeof(st);提高题21. 若有定义语句:char s100,d100; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)while(i) dj=_ _;j+;dj=0;22. 以下程序的输出结果是_。f(int b,int m,int n) int i,s=0; for(i=m;i return s; ) main() int x,a=1,2,3,4,5,6,7,8,9; x=f(a,3,7); printf(%dn,x); 23. 以下程序的输出结果是_ _。main()char w10=“ABCD”,”EFGH”,”IJKL”,”MNOP”,k; for(k=1;k3;k+) printf(“%sn”,wk);24.下列程序运行后的输出结果是_。#includemain()char arr24; strcpy(arr,”you”);strcpy(arr1,”me”);arr03=&;printf(“%sn”,arr);25. 若想通过以下输入语句使a中存放字符串“1234”,b中存放字符“5”,则输入数据的形式应该是_。char a10,b;scanf(“a=%sb=%c”,a,%b);26. 下列程序段的输出结果是_。main()char b=”Hello,you”; b5=0; printf(“%sn”,b);27. 以下程序的输出结果是_。main()int j,k,a10,p3; k=5; for(j=0;j10;j+) aj=j; for(j=0;j3;j+) pj=aj*(j+1); for(j=0;j=1);for(j=t-1;j=0;j-) printf(“%d”,aj);printf(“n”);29. 下列程序的输出结果是_。 main() char ch7=“65ab21”; int j,s=0; for(j=0;chj)=0&chj=9;j+=2)s=10*s+chj-0;printf(“%dn”,s); 30. 下列程序的输出结果是_。main()int n5=0,0,0,j,k=2; for(j=0;jk:j+) nj=nj+1; printf(“%dn”,nk);三、完善程序(30题)一般题1. 正确定义一个整型数组,大小为10,数组名为a,请完善:int (1) ;.2. 正确定义一个实型数组,大小为10,数组名为a,请完善: (2) a10;3. 正确定义一个整型数组,大小为10,数组名为a,各元素值为0,请完善:int (3) ;.4.对一个已定义好的数组a10赋初值,元素大小为其下标。for(i=0;i=9;i+) (4) ; 5. 对一个已定义好的数组a10赋初值,大小为其下标。for(i=0;i (5) 10;i+) ai=i;6.输出一个已赋值的整型数组a10各元素的值。请完善:for(i=0;i=9;i+) (6) ; 7.完善程序使数组a10各元素的值加2。for(i=0;i=9;i+) (7) ; 8. 完善程序给一个2行3列数组各元素赋初值。

温馨提示

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

评论

0/150

提交评论