77范文网 - 专业文章范例文档资料分享平台

第6章 数组(答案)

来源:网络收集 时间:2018-11-06 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第6章 数组

一、选择题

1、以下错误的定义语句是(C) A) int x[][3]={{0},{1},{1,2,3}};

B) int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; C) int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D) int x[][3]={1,2,3,4};

2、若有定义:int a[2][3];以下选项中对a数组元素正确引用的是(D) A) a[2][!1] B) a[2][3] C) a[0][3] D) a[1>2][!1] 3、以下能正确定义一维数组的选项是(B)。

A) int num(5*2); B)int num[5*2]; C) int long[10]; 4、以下能正确定义一维数组的选项是(B)。 A) int num[];

B) #define N 100 ?int num[N];

C) int num[0..100];

D) int N=100; ? int num[N];

5、以下选项中正确的语句组是(D)

A) char s[];s=”BOOK!” B) char *s; s={“BOOK!”};C) char s[10]; s=”BOOK!” D) char *s; s=”BOOK!”; 6、若以下说明,则数值为4的表达式是(D)。 int a[12]={1,2,3,4,5,6,7,8,9,10}; char c=?a?,d,g;

A) a[g-c] B) a[4] C) a[?d?-?c?] D) a[?d?-c] 7、以下程序的输出结果是(C)。 main()

{ int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf(“%d%d%d”,a[2],a[5],a[8]); }

A) 258 B) 741

C) 852 D) 369

8、有以下程序,程序运行后的输出结果是(D)。 main()

{

int i,k,a[10],p[3]; k=5;

for(i=0;i<10;i++) a[i]=i; for(i=0;i<3;i++) p[i]=a[i*(i+1)]; for(i=0;i<3;i++) k+=p[i]*2; printf(“%d\\n”,k);

1

D) int num(10); }

A)60 B)61 C)62 D)63 9、有如下程序 main( )

{ int n[5]={0,0,0},i,k=2; for(i=0;i

该程序的输出结果是(D)。

A) 不确定的值 B) 2 C) 1 D) 0 10、以下程序的输出结果是(A)。 main()

{

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

printf(\}

A) 0650 B) 1470 C) 5430 D) 输出值不定 11、有以下程序,执行后输出结果是(C)。 main()

{

int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2;

for(i=0;i<3;i++)

printf(\}

A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9 12、以下程序的输出结果是(A)。 A) 18 B) 19 C) 20 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(“%d\\n”,s); }

13、以下程序的输出结果是(C)。 main()

{ int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(\}

A) 1,5,9, B) 1,4,7, C) 3,5,7, D)3,6,9, 14、有以下程序,执行后输出的结果是(D)。 main() {

int p[7]={11,13,14,15,16,17,18},i=0,k=0;

2

while(i<7&&p[i]%2) {k=k+p[i]; i++; }

printf(\

}

A) 58 B) 56 C) 45 D) 24 15、有以下程序 main()

{ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf(\ printf(\}

程序的运行结果是(C)

A) 1 2 3 4 B) 2 3 4 4 C)4 3 3 2 D) 1 1 2 3 16、有以下程序 main() {

int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf(\}

程序运行后的输出结果是(B) A)42 B)45 C)56 D)60

17、当执行下列程序时,如果输入ABC,则输出结果是(A)。 main()

{

char ss[10]=”12345”;

gets(ss);strcat(ss,”6789”); printf(“%s\\n”,ss); }

A)ABC6789 B)ABC67 C)12345ABC6 D)ABC45678 18、有以下程序,程序运行后的输出结果是(A)。 main() {

char arr[2][4]; strcpy(arr[0],\ strcpy(arr[1],\ arr[0][3]='&';

printf(\

}

A)you&me B)you C)me D)err

19、有以下程序,程序运行后的输出结果是(A)。

3

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++) {

a[i][j]=i+j;

if(i=j)

sum=sum+a[i][j]; }

printf(“sum=%d”,sum); }

A)sum=26 B)sum=1 C)sum=6 D)sum=25 20、有以下程序,程序运行后的输出结果是(A)。 main()

{char s[10]=”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;break; } 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 21、以下程序的输出结果是(B)。 main()

{

char st[20]=\

printf(\}

A) 9 9 B) 5 20 C) 13 20 D) 20 20 22、以下程序的输出结果是(D)。 main()

{

int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++)

4

for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf(\}

A) 3 B) 2 C) 7 D) 4 23、以下程序的输出结果是(B)

main()

{ char cf[3][5]={\ printf(\}

A) \ B) \ C) \ D) \

24、若有定义语句:char s[10]=”1234567\\0\\0”;则strlen(s)的值是(A)

A) 7 B) 8 C) 9 D) 10 25、有以下程序 void fun(int a, int b) {

int t; t=a;a=b;b=t; }

main()

{

int c[10]={1,2,3,4,5,6,7,8,9,0},i; for(i=0;i<10;i+=2) fun(c[i],c[i+1]); for(i=0;i<10;i++) printf(\ printf(\}

程序的运行结果是(A)

A) 1,2,3,4,5,6,7,8,9,0, B)2,1,4,3,6,5,8,7,0,9, C) 0,9,8,7,6,5,4,3,2,1, D)0,1,2,3,4,5,6,7,8,9, 26、有以下程序

void f(char p[][10], int n ) /* 字符串从小到大排序 */ { char t[10]; int i,j; for(i=0;i

if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); } main() {

char p[5][10]={\

f(p,5);

printf(\}程序运行后的输出结果是(D)

A) 2 B) 4 C) 6 D) 3 27、有以下程序

5

}

main(){ }

char p[20]={'a','b','c','d'},q[]=\strcat(p,r); strcpy(p+strlen(q),q); printf(\

程序运行后的输出结果是(C) A)9 B)6 C)20 D)7 28、有以下程序 #define N 20

fun(int a[],int n,int m){ int i,j;

for(i=m;i>=n;i--) a[i+1]=a[i]; }

main(){

int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9);

for(i=0;i<5;i++) printf(\

}

程序运行后的输出结果是 (C)。 A)10234 B)12344 C)12334 D)12234

29、有以下程序 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) { i=j; if(i>2) i=3-j; s+=b[i][j]; }

return s; }

main( )

{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(\}

执行后的输出结果是(D)。

A) 12 B) 11 C) 18 D) 16 30、有以下程序 void swap1(int c[]) { int t;

6

t=c[0];c[0]=c[1];c[1]=t; }

void swap2(int c0,int c1) { int t;

t=c0;c0=c1;c1=t; }

main( )

{ int a[2]={3,5},b[2]={3,5}; swap1(a) ; swap2(b[0],b[1]);

printf(\}

其输出结果是(B)。

A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 3 二、程序阅读题 1、有以下程序 main()

{

char s[]=\s[0]+=2;

printf(\}

执行后的结果是 99 。 2、有以下程序 main() {

int x[3][2]={0},i;

for(i=0;i<3;i++) scanf(\

printf(\}

若运行时输入:246<回车>,则输出结果为 204 。 3、有以下程序 main()

{

int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]); }

程序的执行后的输出结果是 357 。 4、以下程序的输出结果是 30 。 main()

{ int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1]; printf(“%d\\n”,s); }

5、有以下程序

7

void sum(int a[])

{ a[0] = a[-1]+a[1]; } main() {

int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]);

printf(\

}

程序运行后的输出结果是 6 。 6、以下程序的输出结果是 abc 。 main() {

char s[]=\ s[3]='\\0'; printf(\}

7、下列程序的输出结果是 CDABC 。 main( ) {

char b[30];

strcpy(&b[0],”CH”); strcpy(&b[1],”DEF”); strcpy(&b[2],”ABC”); printf(“%s \\n”,b); }

8、有以下程序 main()

{

char p[]={'a', 'b', 'c'}, q[]=\

printf(\};

程序运行后的输出结果是 3 4 。 9、有以下程序

void fun(int *s,int nl,int n2) { int i,j,t; i=nl; j=n2;

while(i

main()

{

int a[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3); fun(a,4,9); fun(a,0,9);

8

for(k=0;k<10;k++)printf(“%d”,a[k]);

printf(“\\n”); }

程序运行的结果是 5678901234 10、以下程序运行后的输出结果是 abcbcc main() {

char ch[]=\for(i=0;i<3;i++) strcpy(x[i],ch); for(i=0;i<3;i++) printf(\printf(\}

三、程序填空题 1、以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。 main()

{

int x[10],a[9],i;

for (i=0;i<10;i++) scanf(“%d”,&x[i]); for( i=1 ;i<10;i++) a[i-1]=x[i]+ x[i-1] ; for(i=0;i<9;i++) printf(“%d”,a[i]); printf(“\\n”); }

2、若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。 fun( int a[ ]) { int i;

for(i=1; i<=10; i++) a[i-1] =i; for(i=0; i<5; i++) a[4-i] =a[i]; }

3、程序的功能是使一个字符串按逆序存放,请填空。 main( ) {

char str[]={“abcdefghijl”},m;

int i,j;

for(i=0,j=strlen(str);i< j/2 ;i++,j--) {m=str[i];

str[i]= str[9-i] ; str[j-1]=m; }

printf(“%s\\n”,str);

9

}

4、用冒泡法对10个数据进行排序,请填空,让程序能正确运行。 main() {

int a[11],i,j,t;

printf(“input 10 numbers:\\n”); for(i=1;i<11;i++) scanf(“%d”,&a[i]); for(j=1;j<10;j++)

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

t=a[i];

a[i]=a[i+1]; a[i+1]=t; }

printf(“the sorted numbers:\\n”); for(i=1; i<10 ; i++) printf(“%d”,a[i]);

}

5、矩阵转置,请填空,让程序能正确运行。 main() {

int a[2][3]={1,2,3,4,5,6}; int b[3][2],i,j; printf(“array a:\\n”); for(i=0;i<=1;i++) {

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

_b[j][i] =a[i][j]; printf(“]”,a[i][j]);} printf(“\\n”); }

printf(“array b:\\n” );

for(i=0;i<=2;i++) {

for (j=0;j<=1;j++)

printf(“]”,b[i][j]); __ printf(“\\n”); _ }

}

6、函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下 1

10

1 1

1 2 1 1 3 3 1 1 4 6 4 1.

其构成规律是:

(1) 第0列元素和主对角线元素均为1

(2) 其余元素为其左上方和正上方元素之和 (3) 数据的个数每行递增1 请将程序补充完整。 #define N 6

void yanghui(int x[N][N]) { int i,j;

x[0][0]=1;

for(i=1;i

{ x[i][0]= x[i][i] =1; for(j=1;j

x[i][j]= x[i-1][j-1]+x[i-1][j] ; } }

7、程序的功能是:例如输入字符串:abc123edf456gh,执行程序后输出:123456,即将字符串中的数字字符输出。请填空。 main()

{ char s[80], d[80]; int i,j; gets(s);

for(i=j=0;s[i]!='\\0';i++)

if( s[i]>=’0’&&s[i]<=’9’ ) { d[j]=s[i]; j++; } d[j]='\\0';

puts(d); }

8、若有定义语句: char s[100],d[100]; int j=0, i=0;且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)

while(s[i]){ d[j]= s[i++] ; j++;} d[j]=0;

9、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。 main()

{ char s[80], d[80]; int i,j; gets(s);

for(i=j=0;s[i]!='\\0';i++)

?if( s[i]>=’0’&&s[i]<=’9’ ) { d[j]=s[i]; j++; } d[j]='\\0';

puts(d); }

10、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。

11

请填空。

main()

{ char a[]=\ int i, j, k; k=strlen(a);

for(i=0; i<=k-2; i+=2)

for(j=i+2; j<=k; j=j+2 ) if( _a[i]>a[j]_ ) { t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf(\}

四、程序编程题

(1) 编程实现:给定大小为10的int型一维数组a,要求先输入10个数存入a中,再分别输出该数组中值为奇数的元素个数和值为偶数的元素个数。

(2) 从键盘输入一个数,查找该数在一个给定的数组中出现的次数,并打印出现的位置(即下标)。

(3) 有一个整型数组 a[10] ,它的初值分别是: 6 , 5 , 9 , 3 , 8 , 1 , 0 , 4 , 2 和 7 。要求编写程序,将数组的值按升序排列。

(4) 删除字符串中出现的数字。比如:输入字符串 “ a1b2c333d56ef ” , 处理完后输出为“abcdef”

12

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第6章 数组(答案)在线全文阅读。

第6章 数组(答案).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/257972.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: