《第五章数组练习.docx》由会员分享,可在线阅读,更多相关《第五章数组练习.docx(8页珍藏版)》请在三一办公上搜索。
1、第五章数组练习第五章习题 数组 1. 执行下面的程序段后,变量k中的值为( ) int k=3, s2; s0=k; k=s1*10; A) 不定值 B) 33 C) 30 D) 10 2. 若有定义:int a5=1,2,3,4,5;则语句a1=a3+a2+2-a3-1;运行后a1的值为( ) A)6 B)5 C)1 D)2 3. 已知int a10;则对a数组元素引用不正确的是( ) A)a10 B)a3+5 C)a10-10 D) a5 4. 下列数组定义中,正确的是( ) A)int a10; B)int n=10,an; C)int N=10; int aN; D) int n;sc
2、anf(%d,&n);int an; 5. 以下能对一维数组a进行正确初始化的语句是( ) A)int a5=(0,0,0,0,0); B)int a5=0; C)int a5=1,2,3,4,5,6,7; D) int a=0; 6. 下列数组定义中,正确的是( ) A)int a5=0; B)int a=0 1 2; C)int a5=0; D) int a; 7. 下面程序段的运行结果是( ) int i=0,a=1,2,3,4,5; do ai+=10; while (a+i2); for ( i=0; i5; i+) printf(“%d ”, ai); A) 11 2 3 4 5
3、B)1 2 3 4 5 C)11 12 13 14 15 D) 11 12 3 4 5 8. 有以下程序 main( ) char a=abcdefg,b10=abcdefg; printf(%d %dn,sizeof(a),sizeof(b); 执行后输出结果是( ) A)7 7 B)8 8 C)8 10 D)10 10 9. 求以下程序的运行结果( ) main int i=0; char ch=“#Hello#World!#”; while(1) for(;chi= #;i+); if(chi=0) break; else printf(“%c”,chi); i+; printf(“OK
4、n”); A) HelloWorld!OK B) #Hello#World!# C) HelloWorld! D) #Hello#World!#OK 第 1 页 共 5 页 10. 若有定义:int a34=1,2,0,1,2,3;则a11的值为( ) A)0 B)1,2 C)1 D) 3 11. 以下数组定义中,正确的是( ) A) int a23=1, 2, 3, 4, 5, 6, 7; B) int a= 1, 2, 3, 4, 5, 6, 7, 8, 9; C) int a2=1, 2, 3, 4, 5, 6 ; D) int a 4=6; 12. 若有定义int a23; 则对数组元
5、素的非法引用是( ) A) a01/2 B) a11 C) a4-40 D) a03 13. 设有如下程序段: int a33=1,0,2,1,0,2,1,0,1,i,j,s=0; for(i=0;i3;i+) for(j=0;ji;j+) s=s+aij; 则执行该程序段后,s的值是( ) A)0 B) 1 C) 2 D) 3 二、改错题 请修改以下程序中/*/./*/标记中的错误,使它能得出正确的结果。 注意:不要改动/*/./*/标记以外的任何部分! 1. 输入M个整数,输出其中所有的偶数 如 输入:23 62 38 45 26 输出:62 38 26 #include #include
6、 /*/ #include M 5 /*/ main int aM,i; printf(Please input 5 numbers:n); for(i=0; iM; i+) scanf(%d, &ai); printf(Even numbers:n ); for(i=0; iM; i+) /*/ if( ai/2 =0) /*/ printf(%d , ai); printf(n ); getch; 2. 从键盘输入三角形的三边长,求其面积,若三个边长不能构成三角形,则提示。 如 输入:6 9 11 输出:26.98 #include #include void main 第 2 页 共 5
7、 页 float a3,s,area; int i; printf(Please input 3 numbers:n); for(i=0; ia2 | a1+a2a0 | a0+a2a1 ) /*/ s = (a0+a1+a2)/2; area = sqrt(s*(s-a0)*(s-a1)*(s-a2); printf(area is %.2fn,area); else printf(error.n); getch; 3.以下程序将数组a中的所有奇数存放到数组b中,并对数组b进行从小到大排序。输出数组b的元素个数及排序后的数组b。 #include main int i,j,k,t,n,a10
8、=9,5,4,2,1,6,8,7,3,10,b10; for(i=0,n=0;i10;i+) /*将数组a中的奇数存放到数组b中*/ if(ai%2!=0) bn=ai; n+; /*/for(i=0;in;i+)/*/ k=i; for(j=i+1;jn;j+) if(bjbk) k=j; /*/ t=bi; bi=bj; bj=t; /*/ /*/printf(“数组b的个数为:%dn”,n-1);/*/ printf(“排序后的数组b为:n”); for(i=0;in;i+) printf(“%3d”,bi); printf(“n”); 三、填空题 1.以下程序的功能是完成折半查找,在有
9、序数组中查找一个数,如果找到则输出该数在数组中的位置,如果没有找到则输出提示信息 main int a15=100,93,86,84,77,73,68,60,55,51,42,39,31,25,10,key; int top,bottom, mid,flag=0; scanf(“%d”,&key); if (keyan-1) flag= 0; /*返回0表示没找到*/ else top= 0; bottom = n-1; while(!flag&topkey) /*/ /*/; else /*/ /*/; 第 3 页 共 5 页 if(flag=1) printf(“%d”,mid);else
10、 printf(“no exit!”); 2.补充下列程序,使其从键盘输入一个4行4列的二维整型数组表示4*4阶矩阵,并计算第1列元素之和 如 输入: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输出:28 #include #include main int i,/*/ /*/; int a44,sum; sum=/*/ /*/; printf(Please input 16 numbers:n); for(i=0; i4;i+) for(j=0;j4;j+) scanf(%d,&aij); for(i=0;i4;i+) /*/ /*/ printf(%dn
11、,sum); getch; 3.输入一个3行3列的整型数组,求其最大值和最小值,例如输入: 1 2 3 4 5 6 7 8 9 输出max9,min1 #define ROW 3 #define COL 3 void main int aROWCOL,i,j,max,min; clrscr; printf(Please input the 9 integers:n); for(i=0;iROW;i+) for(j=0;jCOL;j+) scanf(%d,&aij); /*/ /*/ for(i=0;iROW;i+) for(j=0;jCOL;j+) if(/*/ /*/) max=aij; i
12、f(aijmin) /*/ /*/ printf(max=%dn,max); printf(min=%dn,min); getch; 第 4 页 共 5 页 四、编程题 1. 定义一个长度为5的整型数组,用循环语句分别赋值2,4,6,8,10,并要求逆序输出数组中的元素 2. 定义一个长度为5的整型数组,数组元素的值从键盘循环输入,要求用最简单的方法找出数组的最大值和最小值 3. 在上题的基础上要求删除数组中的第二个元素,即8这个数,要求数组按 排列,并用循环语句输出删除后的数组元素。 4. 定义一个长度为7的整形数组,分别赋值为2、4、6、8,10,12,从键盘输入一个值,要求插入到该数组中
13、,要求插入后仍然有序并输出数组。 5. 定义一个长度为6的整型数组,数组元素的值从键盘循环输入,要求用冒泡法从小到大进行排序 6. 定义一个整形数组赋初值为2,10,5,7,8,要求逆序存放数组元素后输出该数组元素。 7. 定义一个三行三列的整型二维数组,用循环语句赋值为1,2,3,4,5,6,7,8,9,编程输出该二维数组的所有元素之和并找到该二维数组的最大值,以及该最大值所在的行和列的下标 。 8. 定义一个三行三列的整型二维数组,数组的元素要求从键盘循环输入,要求编程分别输出该二维数组的主对角线之和 以及次对角线之和 。 测试数据: 1 0 0 2 1 3 1 2 1 如果输入如上二维矩阵,则主对角线和为1,次对角线和为1 9. 定义一个4行4列的二维数组,分别从1赋值到16,然后要求只输出该数组的下半 三角 1 5 6 9 10 11 13 14 15 16 第 5 页 共 5 页