第一篇:C语言数组选择题(新)
1、以下定义语句中,错误的是________。A)int a[]={1,2};
B)char a[]={“test”};C)char s[10]={“test”};
D)int n=5,a[n];D
2、以下对一维数组a进行正确初始化的是__________。A)int a[10]=(0,0,0,0,0);
B)int a[10]={ };C)int a[ ]={0};
D)int a[10]={ 10*2};C
3、以下对二维数组a进行正确初始化的是__________。
A)int a[2][3]={ {1,2},{3,4},{5,6} };
B)int a[ ][3]={1,2,3,4,5,6 };C)int a[2][ ]={1,2,3,4,5,6};
D)int a[2][ ]={ { 1,2},{3,4}};B
4、在定义int a[5][4];之后,对a的引用正确的是________。A)a[2][4]
B)a[1,3] C)a[4][3]
D)a[5][0] C
5、以下给字符数组str定义和赋值正确的是________。A)char str[10];str={“China!”};B)char str[ ]={“China!”};C)char str[10];
strcpy(str,“abcdefghijkl”);D)char str[10]={“abcdefghijkl”};B
6、以下一维数组a的正确定义是________。A)int a(10);
B)int n=10,a[n];C)int n;
D)#define SIZE 10
scanf(“%d”,&n);
int a[SIZE];
int a[n];D
7、在执行语句: int a[ ][3]={1,2,3,4,5,6};后,a[1][0]的值是________。
A)4
B)1 C)2
D)5 A
8、当接受用户输入的含有空格的字符串时,应使用________函数。A)gets()
B)getchar()C)scanf()
D)printf()A
9、在定义int a[5][6];后,数组a中的第10个元素是________。(设a[0][0]为第一个元素)A)a[2][5]
B)a[2][4] C)a[1][3]
D)a[1][5] C
10、执行下面的程序段后,变量k中的值为__________。int k=3,s[2];s[0]=k;k=s[1]*10;A)不定值
B)33 C)30
D)10 A
11、下列程序执行后的输出结果是__________。
main()
{int a,b[5];
a=0;b[0]=3;
printf(“%d,%dn”,b[0],b[1]);} A)3,0
B)3 0 C)0,3
D)3,不定值 D
12、设有数组定义:char array[]=“China”;则strlen(array)的值为________。
A)4
B)5 C)6
D)7 B
13、下列程序执行后的输出结果是__________。main(){ int i,j,a[3][3];
for(i=0;i<3;i++)
for(j=0;j<=i;j++)a[i][j]=i*j;
printf(“%d,%dn”,a[1][2],a[2][1]);
} A)2,2
B)不定值,2 C)2
D)2,0 B
14、设有数组定义:char array[]=“China”;则数组array所占 的存储空间为________。
A)4个字节
B)5个字节 C)6个字节
D)7个字节 C
15、设有数组定义:char array[10]= “China”;则数组array所占 的存储空间为________。
A)4个字节
B)5个字节 C)6个字节
D)10个字节 D
16、已知数组a的赋值情况如下所示,则执行语句a[2]++;后a[1]和a[2]的值 分别是________。
a[0] a[1] a[2] a[3] a[4]
┌──┬──┬──┬──┬──┐
│ 10 │ 20 │ 30 │ 40 │ 50 │
└──┴──┴──┴──┴──┘ A)20和30
B)20和31 C)21和30
D)21和31 B
17、以下程序输出a数组中的最小值及其下标,在划线处应填入的是________。main(){ int i,p=0,a[10];
for(i=0;i<10;i++)scanf(“%d”,&a[i]);
for(i=1;i<10;i++)
if(a[i] printf(“%d,%dn”,a[p],p); } A)i=p B)a[p]=a[i] C)p=j D)p=i D 18、以下程序的输出结果是________。main(){ int i,p=0,a[10]={1,5,9,0,-3,8,7,0,1,2}; for(i=1;i<10;i++) if(a[i] printf(“%d,%dn”,a[p],p); } A)-3,4 B)0,1 C)9,2 D)2,9 A 19、有如下说明: int a[10]={0,1,2,3,4,5,6,7,8,9};则数值不为9的表达式是________。A)a[10-1] B)a[8] C)a[9]-0 D)a[9]-a[0] B 20、有如下程序 main() { int n[5]={0,0,0},i,k=3; for(i=0;i printf(“%dn”,n[k]); } 该程序的输出结果是________。A)不确定的值 B)4 C)2 D)0 D 21、有如下程序 main(){ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++)s+=a[i][j]; printf(“%dn”,s); } 该程序的输出结果是________。A)18 B)19 C)20 D)21 A 22、以下程序的输出结果是________。 main() { int i,x[9]={9,8,7,6,5,4,3,2,1}; for(i=0;i<4;i+=2)printf(“%d ”,x[i]); } A)5 2 B)5 1 C)5 3 D)9 7 D 23、以下程序的输出结果是________。 main() { int i,x[3][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i+=1)printf(“%5d”,x[1][i]); } A)6 5 4 B)9 6 3 C)9 5 1 D)9 8 7 A 24、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,当输入负数时结束。划线处应分 别填入_________。main(){ float x[1000],sum=0.0,ave,a;int n=0,i; printf(“Enter mark:n”);scanf(“%f”,&a); while(a>=0.0 && n<1000) { sum+=______;x[n]=a; n++; scanf(“%f”,&a); } ave=________; printf(“Output :n”); printf(“ave=%fn”,ave); for(i=0;i if(x[i] } A)a和sum/n B)x[n]和sum/n C)a和sum/i D)a和sum/1000 A 25、下面程序的输出结果是________。 main() { int a[]={1,8,2,8,3,8,4,8,5,8}; printf(“%d,%dn”,a[4]+3,a[4+3]); } A)6,6 B)8,8 C)6,8 D)8,6 C 26、如有定义语句int a[]={1,8,2,8,3,8,4,8,5,8};,则数组a的大小是________。A)10 B)11 C)8 D)不定 A 27、以下程序的输出结果是_________。 main() { int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(“%d,”,x[i][2-i]); printf(“n”); } A)1,5,9,B)1,4,7, C)3,5,7,D)3,6,9, C 28、以下程序的输出结果是________。 main() { int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(“%d,”,x[i][i]); printf(“n”); } A)1,5,9,B)1,4,7, C)3,5,7,D)3,6,9, A 29、以下程序的输出结果是________。main(){ int a[3][3]={{1,2,3},{3,4,5},{5,6,7}},i,j,s=0; for(i=0;i<3;i++) for(j=i;j<3;j++)s+=a[i][j]; printf(“%dn”,s); } A)26 B)36 C)19 D)22 D 30、下面程序的输出是________。 main() {int a[10]={1,2,3,4,5,6,7,8,9,10}; printf(“%dn”,a[a[1]*a[2]]); } A)3 B)4 C)7 D)2 C 31、下面程序的输出是________。main(){int aa[3][3]={{2},{4},{6}};int i,p=aa[0][0];for(i=0;i<2;i++) {if(i==0) aa[i][i+1]=p+1; else ++p; printf(“%d”,p); } } A)23 B)26 C)3 D)36 A 32、以下程序的输出结果是________。 main() { int a[4][4]={{1,2,3,4},{3,4,5,6},{5,6,7,8},{7,8,9,10}}; int j,s=0; for(j=0;j<4;j++) s+=a[j][j]; printf(“%dn”,s); } A)36 B)26 C)22 D)20 C 33、以下程序执行后的输出结果是________。(设a[0][0] 是数组a中的第1个元素) #include main() { int a[4][5]={1,2,4,8,10,-1,-2,-4,-8,-10,3,5,7,9,11}; int i,j,n=9; i=n/5;j=n-i*5-1; printf(“NO.%d: %d,%d is %dn”,n,i,j,a[i][j]);} A)第n个元素所在的行和列及其该元素的值 B)第n行的最大元素所在的行和列及其最大值 C)第i行的最大元素所在的行和列及其最大值 D)以上都不对 A 34、下面程序统计3个学生,每个学生4门课程的考试成绩,要求输出 每个学生的总成绩、每个学生的平均成绩、12个学生的总成绩。正确的说法是________。main(){ int stu[3][4],i,j,t[3]; float sum=0,a[3]; for(i=0;i<3;i++) for(j=0;j<4;j++)scanf(“%d”,&stu[i][j]); for(i=0;i<3;i++) {t[i]=0; for(j=0;j<4;j++) {sum+=stu[i][j]; t[i]+=stu[i][j]; printf(“%-6d”,stu[i][j]);} a[i]=t[i]/4; printf(“%-6.2fn”,a[i]); } printf(“average = %.2fn”,sum/12.0);} A)数组a的每个元素中存放的是每个学生的总成绩 B)数组t的每个元素中存放的是每个学生的平均成绩 C)从键盘上输入成绩的顺序是按课程输入 D)从键盘上输入成绩的顺序是按学生输入 D 35、下面程序的功能是________。#include int i,j,k; k=strlen(a); for(i=0;i<=k-1;i+=1) for(j=i+1;j if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;} puts(a); printf(“n”); } A)将字符数组a中的元素从小到大排序 B)将字符数组a中的元素从大到小排序 C)求字符数组a中的最大元素 D)将字符数组a中的最小元素 A 36、下面程序的运行以后的结果是________。main(){ char a[]=“clanguage”,t; int i,j,k; k=strlen(a); for(i=0;i<=k-1;j+=1) for(j=i+1;j if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;} puts(a); printf(“n”); } A)clanguage B)alancuegg C)egauganlc D)cgalgnaue B 37、以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366,划线处应填________。#include int n,j; gets(s); if(s[0]!=' ')n=s[0]-'0'; j=1; while(s[j++]!=' ')____________; printf(“%dn”,n); } A)n=n*8+s[j] B)n=n*8+s[j-1]-'0' C)n=n*8+s[j]-' ' D)n=n*8+s[j-1]-' ' B 38、有如下程序 main(){ char ch[2][5]={“6937”,“8254”}; int i,j;long s=0; for(i=0;i<2;i++) for(j=0;ch[i][j]>' ';j++) s=10*s+ch[i][j]-'0'; printf(“%ldn”,s); } 该程序的输出结果是________。A)69825 B)693825 C)6385 D)69378254 D 39、有如下程序 main(){ char ch[80]; int j;long s=0; printf(“Enter a numeral stringn”);gets(ch); for(j=0;ch[j]>' ';j++) s=10*s+ch[j]-'0'; printf(“%ldn”,s); } 如果运行时,从键盘上输入由数字组成的字符串,该程序的功能是________。A)测字符数组ch的长度 B)将数字字符串ch转换成十进制数 C)将字符数组中的小写字母转换成大写 D)将字符数组中的大写字母转换成小写 B 40、有如下程序 main() { char ch[80]=“123abcdEFG*&”; int j;long s=0; puts(ch); for(j=0;ch[j]>' ';j++) if(ch[j]>='a'&&ch[j]<='z')ch[j]=ch[j]-'b'+'B'; puts(ch);} 该程序的功能是________。A)测字符数组ch的长度 B)将数字字符串ch转换成十进制数 C)将字符数组ch中的小写字母转换成大写 D)将字符数组ch中的大写字母转换成小写 C 41、有如下程序 main(){ char ch[80]=“123abcdEFG*&”; int j;long s=0; for(j=0;ch[j]>' ';j++); printf(“%dn”,j); } 该程序的功能是________。A)测字符数组ch的长度 B)将数字字符串ch转换成十进制数 C)将字符数组ch中的小写字母转换成大写 D)将字符数组ch中的大写字母转换成小写 A 42、以下程序的输出结果是________。main(){ char a[10]={'1','2','3',0,'5','6','7','8','9',' '}; printf(“%sn”,a); } A)123 B)1230 C)123056789 D)1230567890 A 43、以下程序的输出结果是________。main(){ int n[3][3],i,j; for(i=0;i<3;i++) for(j=0;j<3;j++)n[i][j]=i+j; for(i=0;i<2;i++) for(j=0;j<2;j++)n[i+1][j+1]+=n[i][j]; printf(“%dn”,n[i][j]); } A)14 B)0 C)6 D)值不确定 C 44、以下程序的输出结果是________。main(){ char s[]={“12134211”};int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case '1':i=0;break; case '2':i=1;break; case '3':i=2;break; case '4':i=3; } v[i]++; } for(k=0;k<4;k++)printf(“%d ”,v[k]); } A)4 2 1 1 B)0 0 0 8 C)4 6 7 8 D)8 8 8 8 A 45、以下程序输出的结果是________。#include j=1; for(i=4;i>=0;i--){ s=s+a[i]*j;j=j*10;} printf(“s=%dn”,s);} A)s=12345 B)s=1 2 3 4 5 C)s=54321 D)s=5 4 3 2 1 A 46、以下程序输出的结果是________。#include for(i=0;i<5;i++) s=s*10+a[i]; printf(“s=%dn”,s);} A)s=12345 B)s=1 2 3 4 5 C)s=54321 D)s=5 4 3 2 1 A 47、以下程序运行,如果从键盘上输入 4<回车>,则输出结果是________。 #include if(a[i]==n) { f=1;m=i;} if(f!=0)printf(“%d,%dn”, n,m+1);else printf(“ %d not found!n”,n);} A)4,4 B)4,14 C)4,5 D)4,15 B 48、下面的程序运行后,输出结果是________。main(){ int i,j,a[7][7],x=0; for(i=0;i<3;i++) for(j=0;j<3;j++)a[i][j]=3*j+i; for(i=2;i<7;i++)x+=a[i][i]; printf(“%dn”,x); } A)8 B)不确定值 C)20 D)0 B 49、下面程序运行后,输出结果是________。#include for(i=0;i++<3;) { j=a[i];a[i]=a[5-i];a[5-i]=j;} for(i=0;i<6;i++)printf(“%d ”,a[i]); } A)6 5 4 3 2 1 B)1 2 3 4 5 6 C)1 5 4 3 2 6 D)1 5 3 4 2 6 D 50、下面程序的功能是________。#include for(i=0;i<5;i++)for(j=0;j<4;j++)scanf(“%d”,&a[i][j]); max=a[4][0];row=4;col=0; for(i=4;i>=0;i--) for(j=0;j<4;j++) if(max printf(“max=%d,row=%d,col=%dn”,max,row,col);} A)求二维数组中第4行中的最大元素及位置 B)求二维数组中的最大元素及位置 C)求二维数组中最小元素及位置 D)求二维数组中每一行的最大元素及位置 B 51、以下程序的输出结果是________。main(){ char p1[]=“abcd”,p2[]=“efgh”,str[50]=“ABCDEFG”; strcat(str,p1);strcat(str,p2); printf(“%s”,str); } A)ABCDEFGefghabcd B)ABCDEFGefgh C)abcdefgh D)ABCDEFGabcdefgh D 52、以下程序的输出结果是________。 #include #include main() { char str[12]={'s','t','r','i','n','g'}; printf(“%dn”,strlen(str)); } A)6 B)7 C)11 D)12 A 53、设有如下定义语句: static char str[]=“Beijing”;则执行: printf(“%dn”,strlen(strcpy(str,“China”)));后的输出结果为________。A)5 B)7 C)12 D)14 A 54、以下程序输出的结果是_________。 #include main() { char str[ ]=“1a2b3c”;int i; for(i=0;str[i]!=' ';i++) if(str[i]<'0' || str[i]>'9')printf(“%c”,str[i]); printf(“n”);} A)123456789 B)1a2b3c C)abc D)123 C 55、若有定义语句:char s[100],d[100];int j=0,i=0;,且s中已赋字 符串,请在划线处填______以实现将字符串s中的内容拷贝到字符串d 中。(注意:不得使用逗号表达式) while(s[i]){ d[j]=__________;j++;} d[j]=0;A)s[i] B)s[++i] C)s[i++] D)s[j] C 55、下面程序的功能是________。main(){ char s[ ]=“father”; int i,j=0; for(i=1;i<6;i++) if(s[j]>s[i])j=i; printf(“%c,%dn”,s[j],j+1);} A)输出字符数组s中ASCII码最大的字符及位置 B)输出字符数组s中ASCII码最小的字符及位置 C)输出字符数组s中ASCII码最大的字符及字符串的长度 D)输出字符数组s中ASCII码最小的字符及字符串的长度 B 实验九 数组 一、一维数组 1、编写程序,测试下列数组的定义方式是否正确(1)main(){ int n;scanf(“%d”,&n);int a[n];//…….}(2)main(){ int n=10;int a[n];a[0] = 1;//......}(3)#include 2、运行下面的C程序,根据运行结果,可以说明什么? #include 3、调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。写出调试过程。main(){ int i,n,a[10],av; for(i=0;i for(i=0;i if(i%3= =0)printf(“n”); } for(i=0;i!=n;i++)av+=a[i]; printf(“av=%fn”,av); } //尤其注意最后一次循环 上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输出格式问题等。请使用前面实验所掌握的调试工具,判断程序中的错误并改正。在程序运行过程中,可以使用 5、编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。分析讨论 通过实验,分析定义与引用数组的区别。二、二维数组 1.写出程序输出结果(1)#include”stdio.h” main(){ int i, j, t, a[4][4]={11,22,33,44,1,2,3,4,10,20,30,40,12,22,32,42};for(i=0;i<4;i++)for(j=0;j for(j=0;j<4;j++)printf(“%d”,a[i][j]); } }(2)#include”stdio.h” main(){int i,j,m,n,a[3][4]={43,32,22,13,11,22,33,44,44,11,32,31};m=n=0;for(i=0;i<3;i++)for(j=0;j<4;j++)if(a[m][n]>a[i][j]){m=i;n=j;} printf(“a[m][n]=%d,m=%d,n=%d”,a[m][n],m,n);} 3、操作符&用以求一个变量的地址,这在函数scanf 中已经使用过了。现在要你设计一个程序,返回一个3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存储的。 4、输入4×4的数组,编写程序实现: ⑴ 求出对角线上各元素的和; ⑵ 求出对角线上行、列下标均为偶数的各元素的积; ⑶ 找出对角线上其值最大的元素和它在数组中的位置。 三、字符数组 1.验证程序输出结果 #include”stdio.h” main(){char a[ ]=“ab12cd34ef”;int i, j;for(i=j=0;a[i ];i++)if(a[ i]>=’a’&&a[ i]<=’z’)a[ j++ ]=a[ i ];a[ j ]=’ ’; printf(“%sn”,a);} 2、编写程序,输入若干个字符串,求出每个字符串的长度,并打印最长一个字符串的内容。以“stop”作为输入的最后一个字符串。3、1983 年,在ACM图林奖颁奖大会上,杰出的计算机科学家,UNIX 的鼻祖,C语言的创始人之一,图林大奖得主,Ken Thompson 上台的第一句话是:“我是一个程序员,在我的1040表上我自豪地写上了我的职业。作为一个程序员,我的工作就是写程序,今天我将向大家提供一个我曾经写过的最精练的程序。”这个程序如下: #include 1.以下为一维整型数组a的正确说明是_________.a)int a(10);b)int n=10,a[n];c)int n;d)#define SIZE 10;scanf(”%d“,&n);int a[SIZE];int a[n];2.以下对二维数组a的正确说明是________.a)int a[3][];b)float a(3,4); c)double a[1][4] d)float a(3)(4);3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.(假设a[0][0]位于数组的第一个位置上。)a)i*m+j b)j*m+i c)i*m+j-1 d)i*m+j+1 4.若二维数组a有m列,则在a[i][j]前的元素个数为________.a)j*m+i b)i*m+j c)i*m+j-1 d)i*m+j+1 5.若有以下程序段: int a[]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]=a[j];j--;} a[j+1]=t;}......则该程序段的功能是_________.a)对数组a进行插入排序(升序)b)对数组a进行插入排序(降序)c)对数组a进行选择排序(升序)d)对数组a进行选择排序(降序)6.有两个字符数组a、b,则以下正确的输入语句是_______.a)gets(a,b);b)scanf(”%s%s“,a,b);c)scanf(”%s%s“,&a,&b);d)gets(”a“),gets(”b“);7.下面程序段的运行结果是_________.char a[7]=”abcdef“; #include a)SSW* b)SW* c)SW*A d)SW 二、填空题 1. 若有定义:double x[3][5];则x数组中行下标的下限为____0___,列下标的上限为___4____.2.下面程序以每行4个数据的形式输出a数组,请填空。 #define N 20 main(){int a[N],i;for(i=0;i main(){ int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i==j_____)sum=sum+_a[i][j]______;printf(”sum=%dn“,sum);} 4.当从键盘输入18并回车后,下面程序的运行结果是_____10010___.main(){int x,y,i,a[8],j,u,v;scanf(”%d“,&x);y=x;i=0;do {u=y/2; a[i]=y%2;i++;y=u;}while(y>=1)for(j=i-1;j>=0;j--)printf(”%d“,a[j]); main(){int a[5]={4,7,2,5,1};int i,j,m;for(i=1;i<5;i++){m=a[i];j=i-1_; while(j>=0&&m>a[j]){a[j+1]=a[j]_______;j--;} a[j+1]_______=m;} for(i=0;i<5;i++)printf(”%d“,a[i]);printf(”n“);} 6.下面程序的功能是在三个字符串中找出最小的,请填空。#include C语言实验书P37 (2)#include int main(void) { int i; char ch; char str[100]; printf(“请输入字符串:n”); scanf(“%s”, str); printf(“请输入查找字符:n”); scanf(“ %c”, &ch); for(i=0;str[i]!=' ';i++) { if(str[i] == ch) { printf(“位置为:%dn”, i+1); return 0; } } printf(“该字符不存在n”); return 0; } (3) (1) #include main() { long matrix[8][8],min,max,temp; int i,j,m,n; printf(“nPlease input n of Matrix:n”); scanf(“%d”,&n); m=n; printf(“nPlease input elements of Matrix(%d*%d):n”,m,n);for(i=0;i for(j=0;j scanf(“%ld”,&matrix[i][j]); for(i=0;i { for(j=0;j printf(“%5ld”,matrix[i][j]); printf(“n”); } } (2) #include main() { long matrix[8][8],min,max,temp; int i,j,m,n,nMax=0,nMin=0; printf(“nPlease input n of Matrix:n”); scanf(“%d”,&n); m=n; printf(“nPlease input elements of Matrix(%d*%d):n”,m,n);for(i=0;i for(j=0;j scanf(“%ld”,&matrix[i][j]); min=max=matrix[0][0]; for(i=0;i for(j=0;j { if(matrix[i][j]>max) { max=matrix[i][j]; nMax=i; } else if(matrix[i][j] { min=matrix[i][j]; nMin=i; } } for(j=0;j { temp=matrix[nMax][j]; matrix[nMax][j]=matrix[nMin][j]; matrix[nMin][j]=temp; } printf(“nResult matrix:n”); for(i=0;i { for(j=0;j printf(“%5ld”,matrix[i][j]); printf(“n”); } } (3) #include main() { long matrix[8][8],min,max,temp; int i,j,m,n,nMax=0,nMin=0; printf(“nPlease input n of Matrix:n”); scanf(“%d”,&n); m=n; printf(“nPlease input elements of Matrix(%d*%d):n”,m,n);for(i=0;i for(j=0;j scanf(“%ld”,&matrix[i][j]); min=max=matrix[0][0]; for(i=0;i for(j=0;j { if(matrix[i][j]>max) { max=matrix[i][j]; nMax=i; } else if(matrix[i][j] { min=matrix[i][j]; nMin=i; } } for(j=0;j { temp=matrix[nMax][j]; matrix[nMax][j]=matrix[nMin][j]; matrix[nMin][j]=temp; } printf(“nResult matrix:n”); if(nMax!=nMin) for(i=0;i { for(j=0;j printf(“%5ld”,matrix[i][j]); printf(“n”); } Printf(“same line!n”) (4)#include void main() { int a[20]; int n,j,i,k,m=20; printf(“给定的数组为:n”); for(n=0;n<20;++n) { a[n]=2*n+3; printf(“%d ”,a[n]); } printf(“n”); printf(“输入要查找的数:”); scanf(“%d”,&j); for(n=0;n<=m;) { i=(m+n)/2; if(a[i] n=i+1; else if(a[i]>j) m=i-1; else if(a[i]=j) { printf(“该数在数组的第%d位上n”,i+1);break; } if(n>m) { printf(“No Foundn”); } } } 二、#include void arr(); int sea(int j); int a[20]; void main() { int n,j,i,h; printf(“请输入20个数据:n”); for(n=0;n<20;++n) scanf(“%d”,&a[n]); } arr(); printf(“n请输入要查找的数:”); scanf(“%d”,&j); h=sea(j); if(h==0) { printf(“No foundn”); } else { printf(“该数在已排序数组的第%d位n”,h)} } void arr() { int z,n,k; for(n=0;n<20;++n) { for(k=0;k<19-n;k++) if(a[k]>a[k+1]) { z=a[k]; a[k]=a[k+1]; a[k+1]=z; } printf(”将数组排序,得:n“); for(n=0;n<20;++n) printf(”%d ",a[n]); } } int sea(int j) { int n,i,h,m=20; for(n=0;n<=m;) { i=(n+m)/2; if(a[i] n=i+1; else if(a[i]>j) m=i-1; else if(a[i]=j) { h=i+1;break;}}if(n>m)h=0;return h;} 实习六:数组实习 姓名:尹思智 学号:2012014413 完成日期2013年4月 一、实习目的 1.从键盘输入10个整数,将最大数调到最前面,最小数调到最后面。2.已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中 3.从键盘任意输入两个字符串,不用库函数strcat,将两串字符连接起来。4 输入一个5×5的数组,分别求其主对角线和次对角线上元素之和 5.由键盘任意输入10个学生的姓名(以拼音形式),将它们以字典顺序从小到大排序。 6打印如下形式的杨辉三角 1 1 1 1 1 10 5 7.定义一数组(长度大于10),从键盘输入数组元素的值,完成下面操作: (1)从键盘输入一个数,用顺序查找法找出该数在数组中的位置;或者给出没有找到的信息; (2)对数组的元素从小到大排序; (3)从键盘输入一个数,用折半查找法找出该数在数组中的位置;或者给出没有找的信息。 8.直接选择排序法。算法描述如下: (1)从n个数中找到最小的数,若此数不是数组的第一个元素,则与第一个元素交换位置; (2)从剩下的n-1个数中找到最小的数,若此数不是数组第二个元素,则与第二个元素交换位置; (3)以此类推,直到完成排序 9.编写程序将两个有序数组归并。例如数组{1,3,5}和数组{2,4,6,8,10},归并的结果是{1,2,3,4,5,6,8,10 } 二、实习步骤 1.从键盘输入10个整数,将最大数调到最前面,最小数调到最后面。 流程图; 运行图; 2.已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中 流程图 运行图 3.从键盘任意输入两个字符串,不用库函数strcat,将两串字符连接起来。 流程图 运行图 输入一个5×5的数组,分别求其主对角线和次对角线上元素之和 流程图 运行图 5、由键盘任意输入10个学生的姓名(以拼音形式),将它们以字典顺序从小到大排序。 流程图 运行图 6打印如下形式的杨辉三角 1 1 1 1 1 10 5 流程图 运行图 7.定义一数组(长度大于10),从键盘输入数组元素的值,完成下面操作: (1)从键盘输入一个数,用顺序查找法找出该数在数组中的位置;或者给出没有找到的信息; (2)对数组的元素从小到大排序; (3)从键盘输入一个数,用折半查找法找出该数在数组中的位置;或者给出没有找的信息。 流程图 运行图 8.直接选择排序法。算法描述如下:(1)从n个数中找到最小的数,若此数不是数组的第一个元素,则与第一个元素交换位置; (2)从剩下的n-1个数中找到最小的数,若此数不是数组第二个元素,则与第二个元素交换位置; (3)以此类推,直到完成排序 流程图 运行图 9.编写程序将两个有序数组归并。例如数组{1,3,5}和数组{2,4,6,8,10},归并的结果是{1,2,3,4,5,6,8,10 } 流程图 运行图 三、实习总结 实验六 数组 实验目的: 1、通过实验掌握数组在内存中的存放形式; 2、掌握一维数组和二维数组的定义和数组元素的引用; 3、掌握各种字符串库函数的用法。 实验内容: 1、教材P138页第4题。 2、教材P138页第10题。 3、输入10个整数,将这10个整数按升序排列输出,并且奇数在前,偶数在后。 实验原理、步骤与分析: 【要求】每个实验内容都要先写出其实现的基本原理,再写出实验步骤,最后根据每个实验内容的实验结果进行分析说明。第二篇:C语言数组
第三篇:C语言数组实验报告
第四篇:C语言数组实习
第五篇:C语言实验六 数组