第六章数组习题

更新时间:2024-03-28 00:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第六章数 组

6.1 选 择 题

[题6.1]在C语言中,引用数组元素时,其数组下标的数据类型允许是_____.

A)整型常量 B)整型表达式 C)整型常量或整型表达式 D)任何类型的表达式 [题6.2]以下对一维整型数组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];

[题6.3]若有说明:int a[l0];则对a数组元素的正确引用是_____。

A) a[10] B)a[3.5] C)a(5) D)a[10—10] [题6.4]在C语言中,一维数组的定义方式为: 类型说明符 数组名_____。

A)[常量表达式] B)[整型表达式] C)[整型常量]或[整型表达式] D)[整型常量]

[题6.5]以下能对一维数组a进行正确初始化的语句是_____。 A)int a[l0]=(0,0,0,0,0); B)int a[l0]={}; C)int a[]={0}; D)int a[10]={10*1}; [题6.6]以下对二维数组a的正确说明是_____。

1

A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4);

[题6.7]若有说明:int a[3][4];则对a数组元素的正确引用是_____。

A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1)

[题6.8]若有说明:int a[3][4];则对a数组元素的非法引用是_____。

A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4]

[题6.10]以下不能对二维数组a进行正确初始化的语句是_____。

A)int a[2][3]={0};

B)int a[][3]={{1,2},{0}};

C)int a[2][3]={{l,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6};

[题6.11]若有说明:int a[3][4]={0};则下面正确的叙述是_____。

A)只有元素a[0][0]可得到初值0 B)此说明语句不正确

C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0

[题6.13]若有说明:int a[3][4];则数组a中各元素_____。

2

A)可在程序的运行阶段得到初值0 B)可在程序的编译阶段得到初值0 C)不能得到确定的初值

D)可在程序的编译或运行阶段得到初值0

[题6.14]以下各组选项中,均能正确定义二维实型数组a的选项是_____。

A)float a[3][4]; float a[][4];

float a[3][]={{l},{0}}; B)float a(3,4); float a[3][4];

float a[][]={{0};{0}}; C)float a[3][4];

Static float a[][4]={{0},{0}}; auto float a[][4]={{0},{0},{0}}; D)float a[3][4]; float a[3][]; float a[][4]

[题6.16]下面程序____(每行程序前面的数字表示行号)。 1 main() 2 {

3 float a[10]={0.0};

3

4 int i;

5 for(i=0;i<3;i++) scanf(”%d”,&a[i]); 6 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 7 printf(”%f\n”,a[0]); 8 }

A)没有错误 B)第3行有错误 C)第5行有错误 D)第7行有错误

[题6.17]下面程序中有错误的行是___(每行程序前面的数字表示行号)

1 main() 2 {

3 int a[3]; 4 int i;

5 scanf(”%d”,&a);

6 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 7 printf(”a[0]=%d\n”,a[0]); 8 }

A)3 B)6 C)7 D)5

[题6.20]对以下说明语句的正确理解是___。 int a[10]={6,7,8,9,10}; A)将5个初值依次赋给a[1]至a[5]

4

B)将5个初值依次赋给a[0]至a[4] C)将5个初值依次赋给a[6]至a[l0]

D)因为数组长度与初值的个数不相同,所以此语句不正确 [题6.21]以下不正确的定义语句是___。 A)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9};

C)char c1[]={‘1’,’2’,’3’,’4’,’5’} D)char c2[]={‘\x10’,’\xa’,’\x8’};

[题6.22] 若有说明:int a[][3]={1,2,3,4,5,6,7}; 则a数组第一维的大小是___。 A) 2 B)3 C)4 D)无确定值

[题6.23]若二维数组a有m列,则在a[i][j]前的元素个数为____。

A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1 [题6.24]定义如下变量和数组: int k;

int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是__。

for(k=0;k<3;k++) printf(”%d”,a[k][2-k]); A)3 5 7 B)3 6 9 C)1 5 9 D)l 4 7

[题6.27]下面程序的运行结果是___.

5

main()

{ int a[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++)

a[i][j]=(i/j)*( j/i); for(i=1;i<6;i++) {for(j=1;j<6;j++)

printf(”%2d”,a[i][j]); printf(“\n”);}

}

A)1 1 1 1 1 B)0 0 0 0 1 C)1 0 0 0 0 D)1 0 0 0 1 1 1 1 1 1 0 0 0 l 0 0 1 0 0 0 0 1 0 1 0 1 1 1 1 1 0 0 1 0 0 0 0 l 0 0 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 0 0 0 l 0 0 l 0 1 0 1 1 1 1 1 l 0 0 0 0 0 0 0 0 1 1 0 0 0 l [题6.29]下面是对s的初始化,其中不正确的是___。 A)char s[5]={”abc\;

B)char s[5]={‘a’,’b’,’c’}; C)char s[5]=””; D)char s[5]=”abcdef”;

[题6.30] 下面程序段的运行结果是___.

6

char c[5]={‘a’,’b’,’\0’,’c’, ’\0’} printf(”%s”,c);

A)’a’’b’ B)ab C)ab_c D)a_b (其中_表示空格)

[题6.31]对两个数组a和b进行如下初始化 char a[]=”ABCDEF”:

char b[]={‘A’,’B’,‘C’,’D’,’E’} 则以下叙述正确的是 A)a与b数组完全相同 B)a与b长度相同 C)a和b中都存放字符串 D)a数组比b数组长度长

[题6.32] 有两个字符数组a、b,则以下正确的输入格式是__ A)gets(a,b); B)scanf(”%s%s”,a,b); C)scanf(”%s%s”,&a,&b); D)gets(“a”),gets(“b”);

[题6.33] 有字符数组a[80]和b[80],则正确的输出形式是___ A)puts(a,b); B)printf(”%s,%s”,a[],b[]); C)putchar(a,b); D)puts(a);puts(b); [题6.34] 下面程序段的运行结果是 char a[7]=”abcdef”; char b[4]=\;

7

strcpy(a,b);

printf(”%c”,a[5]);

A) _ B)\0 C)e D)f (其中_表示空格) [题6.35]有下面的程序段 char a[3],b[]=\”; a=b;

printf(”%s”,a); 则___。

A)运行后将输出China B)运行后将输出Ch C)运行后将输出Chi D)编译出错

[题6.37]判断字符串a和b是否相等,应当使用___。 A)if(a==b) B)if(a=b)

C)if(strcpy(a,b)) D)if(strcmp(a,b))

[题6.38]判断字符串s1是否大于字符串s2,应当使用___ A)if(sl>s2) B)if(strcmp(s1,s2))

C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0)

[题6.39]下面程序段是输出两个字符串中对应字符相等的字符。请选择填空。

char x[]=”programmmg”; char y[]=\;

8

int i=0;

while(x[i]!=’\0’&&y[i]!= ’\0’) { if (x[i]==y[i]) printf(“%c”,【1】); else i++; }

A)x[i++] B)y[++i] C)x[i] D)y[i]

[题6.41]下述对C语言字符数组的描述中错误的是___。 A)字符数组可以存放字符串

B)字符数组的字符串可以整体输入、输出

C)可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值 D)不可以用关系运算符对字符数组中的字符串进行比较 [题6.44]下面程序的功能是将字符串s中所有的字符c删除。请选择填空。 #include main() {char s[80]; int i,j; gets(s);

for(i=j=0;s[i]!=’\\0’;i++) if(s[i]!=’c’) 【1】; s[j]=’\0’;

9

puts(s); }

【1】A) s[j++]=s[i] B) s[++j]=s[i] C) s[j]=s[i];j++ D) s[j]=s[i]

[题6.45] 下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。请选择填空。 #include main()

{char s[80],c1,c2=’’; int i=0,num=0; gets(s);

while(s[i]!=’\\0’) {c1=s[i];

if(i==0) c2=’’; else c2=s[i-1]; if(【1】)num++; i++; }

printf(“There are %d words.\\n”,num); }

【1】A)c1==’’&&c2==’’ B) c1!=’’&&c2==’’C) c1==’’&&c2!=’’ D) c1!=’’&&c2!=’’

10

[题6.46] 下面程序的运行结果是 #include main()

{char ch[7]={“12ab56”}; int i,s=0;

for(i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2) s=10*s+ch[i]-‘0’; printf(”%d\n”,s); }

A)1 B)1256 C)12ab56 D)1 2 5 6

[题6.47]当运行以下程序时,从键盘输入:aa_bb cc_dd (_表示空格,表示回车),则下面程序的运行结果是____. #include main()

{char a1[5],a2[5],a3[5],a4[5]; scanf(“%s%s”,a1,a2); gets(a3);gets(a4); puts(a1);puts(a2);

11

puts(a3);puts(a4); } A)aa bb cc_dd B)aa bb cc dd C)aa bb cc_dd ee D)aa_bb cc dd

[题6.50] 下面程序的运行结果是___. #include #include main()

{char a[80]=”AB”,b[80]=”LMNP”;

12

int i=0; strcat(a,b);

while(a[i++]!=’\\0’) b[i]=a[i]; puts(b); }

A) LB B) ABLMNP C) AB D) LBLMNP [题6.52]下面程序的运行结果是 #include main()

{char a[]=”morming”,t; int i,j=0;

for(i=1;i<7;i++) if(a[j]

A)mogninr B)mo C)morning D)mornin

6.2 填 空 题

[题6.53]在C语言中,二维数组的定义方式为:类型说明符 数组名[【1】][【2】];

答:【1】常量表达式 【2】常量表达式

[题6.54]在C语言中,二维数组元素在内存中的存放顺序是【】。 按行主序存放

13

[题6.55]若有定义:double x[3][5];则x数组中行下标的下限为【1】,列下标的上限为【2】。 答:【1】0 【2】 4

[题6.57]若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是【1】。 答: 0 [题6.59]下面程序以每行4个数据的形式输出a数组,请填空。 #define N 20 main()

{ int a[N],i;

for(i=0;i

printf(”%3d”,a[i]); }

printf(“\\n”); }

答:【1】 &a[i]【2】 i%4==0【3】printf(“\\n”)

[题6.60] 下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。请填空。 main()

{int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j;

14

prinf(“array a:\n”); for(i=0;i<=1;i++) {for(j=0;【1】;i++) {printf(”%5d”,a[i][j]); 【2】; }

printf(“\n”); }

prinf(“array b:\n”); for(i=0;【3】;i++) {for(j=0;j<=1;j++)

printf(”%5d”,b[i][j]); print(“\n”);} }

答:【1】j<3【2】b[j][i]=a[i][j]【3】i<3

[题6.62] 下面程序可求出矩阵a的两条对角线上的元素之和,请填空。 main()

{int a[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++)

if(i==j) sum1= sum1+a[i][j];

15

for(i=0;i<3;i++) for(【1】;【2】;j--)

if((i+j)==2) sum2= sum2+a[i][j]; printf(“sum1=%d, sum2=%d\\n”, sum1,sum2); }

答:【1】j=2 【2】j>=0

[题6.63] 下面程序的运行结果是___. main()

{int a[5][5],i,j,n=1; for(i=0;i<5;i++)

for(j=0;j<5;j++) a[i][j]=n++;

printf(“The result is:\n”); for(i=0;i<5;i++) {for(j=0;j<=i;j++)

printf(”%4d”,a[i][j]); printf(“\n”); } } 答:1

6

7

11 12 13

16

16 17 18 19 21 22 23 24 25

[题6.64] 下面程序可求出矩阵a的主对角线上的元素之和。请填空。 main()

{int a[3][3]={1,3,5,7,9,1l,13,15,17},sum=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(【1】)sum=sum+【2】; printf(\=%d\n”,sum); } 答【1】 i==j 【2】a[i][j]

[题6.66]下面程序的功能是生成并打印某数列的前20项,该数列第1,2项分别为0和l,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值。生成的20个数存在一维数组x中,并按每行4项的形式输出。请填空。 main()

{int x[21],i,j; x[1]=0;x[2]=1; i=3; do{

x[i]=【1】; x[i+1]=【2】;

17

i=【3】; }while(i<=20); for(i=1;i<=20;i++) { printf(”%5d”,x[i]); if(i%4==0) printf(“\\n”); } }

答【1】x[i-1]+x[i-2]

【2】 fabs((double)(x[i-1]-x[i]))

[题6.67] 若有以下输入(_代表空格,代表回车换行符),则下面程序的运行结果是。

1_4_2_3_3_4_1_2_3_3_2_2_2_3_3_1_1_1_4_1_1_1_-1 #define M 50 main()

{ int a[M],c[5],i,n=0,x;

printf(“Enter 0 or 1 or 2 or 3 or 4,to end with -1\\n”); scanf(“%d”,&x); while(x!=-1) {if(x>=0&&x<=4)

{a[n]=x;n++;} scanf(”%d”,&x);

18

}

for(i=1;i<5;i++) c[i]=0; fOr(i=0;i

for(i=1;i<=4;i++) printf(“%d:%d\n”,i,c[i]); printf(“\n”); }

The result is: 1: 8 2: 5 3: 6 4: 3

[题6.69]设数组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。请填空。 main()

{int a[10],b[10],i; for(i=0;i<10;i++) scanf(”%d”,&a[i]); for(【1】;i<10;i++) 【2】

for(i=1;i<10;i++)

19

{printf(\%3d\,b[i]);

if(【3】==0)printf(“\n”);

}答【1】 i=1【2】 b[i]=a[i-1]+a[i]【3】(i%3)

[题6.71] 下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。请填空。 main()

{int a[5],max,min,i,j,k; for(i=0;i<5;i++) scanf(“%d”,&a[i]); min=a[0];

for(i=1;i<5;i++)

if(a[i]

for(i=1;i<5;i++)

if(a[i]>=max){max=a[i];【2】;} 【3】

printf(“\nThe position of min is:=\n”,k); printf(“The position of max is:=\n”,j); for(i=0;i<5;i++) printf(”%5d”,a[i]); }

20

答【1】j=I 【2】k=I 【3】a[j]=max;a[k]=min; [题6.73]下面程序的运行结果是____. main()

{int a[l0]={1,2,2,3,4,3,4,5,1,5}; int n=0,i,j,c,k; for(i=0;i<10-n;i++) {c=a[i];

for(j=i+1;j<10-n;j++) if(a[j]==c)

{for(k=j;k<10-n;k++) a[k]=a[k+1]; n++;}}

for(i=0;i<(10-n);i++) printf(“%d”,a[i]); printf(“\\n”);

} 答:1 2 3 4 5

[题6.76] 当从键盘输入18时,下面程序的运行结果是___. main()

{int x,y,i,a[8],j,u,v; scanf(\%d”,&x); y=x;i=0; do

21

{u=y/2; a[i]=y%2; i++;y=u; }while(y>=1);

for(j=i-1;j>=0;j--) printf(\%d”,a[j]); } 答;10010

[题6.79]下面程序的功能是检查一个二维数组是否对称(即:对所有i和j都有a[i][j]=a[j][i])。请填空。 main()

{int a[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4}; int i,j,found=0; for(j=0;j<4;j++) for(【1】;i<4;i++) if(a[j][i]!=a[i][j]) {【2】;break;} if(found) printf(“No”); else printf(“Yes”); }答:【1】i=j+1 【2】found=1

[题6.83]设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请埴空。 main()

22

{int a[10]={1,2,3,4,5,6,7,8,9,10}; int k,s,i; float ave;

for(k=s=i=0;i<10;i++) {if(a[i]%2!=0)【1】; s+=【2】; k++;

}

if(k!=0){ave=s/k;printf(“%d,%f\\n”,k,ave);} }答【1】continue 【2】a[i]

[题6.84]以下程序是求矩阵a,b的和,结果存入矩阵c中并按矩阵形式输出。请埴空。 main()

{int a[3][4]={{3,-2,7,5),{1,0,4,-3},{6,8,0,2}};

int b[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};

int i,j,c[3][4]; for(i=0;i<3;i++) for(j=0;j<4;j++) c[i][j]=【1】; for(i=0;i<3;i++)

23

{for(j=0;j<4;j++)

printf(”%3d',c[i][j]); 【2】;

}

} 答:【1】a[i][j]+b[i][j] 【2】printf(“\\n”);

[题6.87] 以下程序的功能是求数组num中小于零的数据之和。请填空。 main()

{int num[20]={10,20,1,-20,203,-21,2,-2,-2,11,

-21,22,12,-2,-234,-90,22,90,-45,20};

int sum=0;

for(i=0;i<=19;i++) {if(【1】)

sum=【2】; }

printf(“sum=m”,sum);

}答:【1】num[i]<0 【2】 sum+num[i] [题6.89] 下面程序的运行结果是___. main()

{int i,j,row,col,min:

int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}}; min=a[0][0];

24

for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]

{min=a[i][j];row=i;col=j;}

printf(“min=%d,row=%d,col=%d\\n”,min,row,col); }

答:min=-2,row=2,col=1

[题6.92]下面程序用“顺序查找法”查找数组中是否存在某一关键字。请填空。 main()

{int a[8]={25,57,48,37,12,92,86,33}; int i,x;

scanf(“%d”,&x); for(i=0;i<8;i++) if(x==a[i])

{printf(“Found!The index is:%d\n”,++i);【1】;} if(【2】)

printf(“Can't found!”); }答:【1】break 【2】 i==8 [题6.96]下面程序的运行结果是 main()

{int a[6][6],i,j;

25

for(i=1;i<6;i++) for(j=l;j<6;j++) a[i][j]=(i/j)*(j/i); for(i=1;i<6;i++) {for(j=1;j<6;j++)

printf(”%2d”,a[i][j]); printf(”\n”);

}

}答:1 0 0 0 0 0

0 0 0 0

1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0

[题6.98] 若有以下输入(_代表空格,代表回车换行符),则下面程序的运行结果是__. 7_4_8_9_l_5 main()

{int a[6],i,j,k,m; for(i=0;i<6;i++) scanf(”%d”,&a[i]); for(i=5;i>=0;i--) {k=a[5];

26

for(j=4;j>=0;j--) a[j+1]=a[j]; a[0]=k;

for(m=0;m<6;m++) printf(”%d”,a[m]); printf(“\n”);} }答:5 7 4 8 9 1 1 5 7 4 8 9 9 1 5 7 4 8 8 9 1 5 7 4 4 8 9 1 5 7 7 4 8 9 1 5

题6.99] 下面程序的运行结果是

,2,3,4,5,6,7,int k,s,i; float ave;

for(k=s=i=0;i<10;i++) if(a[i]%2==0) continue; ; ;} if(k!=0) {ave=s/k;

8,9,10};27

[{int a[10]={l s+=a[i] k++

printf(“The number is :%d,The average

is :%f\\n”,k,ave);}

}答;the number is :5,the average is:5.000000

[题6.100] 若有以下输入(_代表空格,代表回车换行符),则下面程序的运行结果是____.

3_1_2_3_2_2_2_1_1_3_0 main()

{int a[4],x,i;

for(i=1;i<=3;i++) a[i]=0; scanf(“%d”,&x);

while(x>0){a[x]+=1;scanf(“%d”,&x);for(i=1;i<=3;i++)

printf(“a[-]=M\\n”,i,a[i]); }答:a[1]=3 a[2]=4 a[3]=3

[题6.106] 下面程序段的运行结果是____. char ch[]=”600”; int a,s=0;

for(a=0;ch[a]>=’0’&&ch[a]<=’9’;a++) s=10*s+ch[a]-‘0’; printf(“%d”,s);

}

28

答:600

[题6.107] 下面程序段将输出computer,请填空。 char c[]=“It’s a computer”; for(i=0;【1】;i++)

{【2】;printf(“%c”,c[j]);} 答:【1】 i>=7 【2】j=i+7

[题6.108]下面程序段的运行结果是___. char x[]=\”; i=0;

while(x[++i]!=’\\0’)

if(x[i-1]==’t’) printf(“%c”,x[i]); 答:he

[题6.110]下面程序的功能是在三个字符串中找出最小的。请填空。

#include #include main()

{char s[20],str[3][20]; int i;

for(i=0;i<3;i++) gets(str[i]); strcpy(s,【1】);

if(strcmp(str[2],s)<0) strcpy(s,str[2]);

29

printf(”%s\n”,【2】); }

答:【1】(strcmp(str[0],str[1])<0?str[0]:str[1]) 【2】s

[题6.111]下面程序的功能是从键盘输入一个大写英文字母,要求按字母的顺序打印出3个相邻的字母,指定的字母在中间。若指定的字母为Z,则打印YZA;若为A则打印ZAB。请填空。 #include main()

{char a[3],c; int i; c=getchar(); a[1]=c;

if(c==‘Z’) {a[2]=‘A’;【1】;} else if(c==‘A’){a[0]=‘Z’;【2】;} else{a[0]=c-1;a[2]=c+1;} for(i=0;i<3;i++)putchar(a[i]); }

答:【1】a[0]=c-1 【2】a[2]=c+1 [题6.112]下面程序的功能是将字符数组 a[6]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’}变为

a[6] ={‘f’,‘a’,‘b’,‘c’,‘d’,‘e’ }。请填空。

30

#include main()

{char t,a[6]= {‘a’,‘b’,‘c’,‘d’,‘e’,‘f’}; int i; 【1】;

for(i=5;i>0;i--) 【2】; a[0]=t;

for(i=0;i<=5;i++) printf(“%c”,a[i]); }

答:【1】t=a[5]【2】a[i]=a[i-1] [题6.117]下面程序的运行结果是____. #include main()

{char a[2][6]={“Sun”,”Moon”}; int i,j,1en[2]; for(i=0;i<2;i++) {for(j=0;j<6;j++) if(a[i][j]==’\\0’) {len[i]=j;break;}

printf(”%6s:%d\n”,a[i],len[i]); }

31

答: Sun:3 Moon:4

[题6.118] 下面程序的运行结果是 #include main() {int i,r;

char sl[80]=“bus”; char s2[80]=”book”;

for(i=r=0;s1[i]!=‘\0’&&s2[i]!=’ if(s1[i]==s2[i]) i++;

else { r=sl[i]-s2[i];break;} printf(”%d”,r); } 答:4

[题6.120]下面程序的运行结果是 #include main() {int i=5;

char c[6]=”abcd”;

do {c[i]=c[i-1];}while(--i>0); puts(c); }答:aabcd

\\0’;32

i++) [题6.121] 当运行以下程序时,从键盘输入AabD(表示回车),则下面程序的运行结果是____. #include main() {char s[80]; int i=0; gets(s);

while(s[i]!=’\\0’)

{if(s[i]<=’z’&&s[i]>=’a’)

s[i]=’z’+’a’-s[i]; i++; }

puts(s); } 答:AzyD

[题6.123] 下面程序的运行结果是 #include main() {int i=0;

char a[]=”abm”, b[]=”aqid”,c[10];while(a[i]!=‘\0’&&b[i]!=’\\0’) {if(a[i]>=b[i]) c[i]=a[i]-32; else c[i]=b[i]-32;

33

++i; }

c[i]=’\\0’; puts(c); }答:AQM

6.3 编 程 题

[题6.126]从键盘输入若干整数(数据个数应少于50),其值在0至4的范围内,用-1作为输入结束的标志。统计每个整数的个数。试编程。

[题6.127]若有说明:int a[2][3]={{1,2,3},{4,5,6}};现要将a的行和列的元素互换后存到另一个二维数组b中。试编程。

[题6.128]定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程。

[题6.129]通过赋初值按行顺序给2×3的二维数组赋予2、4、6、?等偶数,然后按列的顺序输出该数组。试编程。 [题6.130]通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角。试编程。 [题6.133]从键盘输入一个字符,用折半查找法找出该字符在

34

已排序的字符串a中的位置。若该字符不在a中,则打印出**。试编程。

35

本文来源:https://www.bwwdw.com/article/6v0r.html

Top