数组练习题及答案(3)

2018-12-05 13:33

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

for(j=1;j<3;j++) printf(\ }

14、下面程序段将输出computer,请填空。 char c[ ]=\ for(i=0;i<=《1》 ;i++) printf(\《2》]); 15、下面程序的运行结果是( ) main()

{ int a[9]={0,6,12,18,42,44,52,67,94}; int x=52,i,n=9,m; i=n/2+1; m=n/2; while(m!=0)

{if(xa[i]) {i=i+m/2+1;m=m/2;} else break; }

printf(\ }

三、判断题

1、有以下说明语句:int a[10]={6,7,8,9,10};则将5个初值依次赋给a[1]至a[5]。( ) 2、若有说明:int a[][4]={0,0};则只有元素a[0][0]和a[0][1]可得到初值0。( ) 3、int a[]={0};是对一维数组a进行正确初始化的语句。( ) 4、有以下语句是正确的。char s[10]; s=\( )

5、若有说明:int a[3][4]={0};则数组a中每个元素均可得到初值0。( ) 6、float a[3,4];是对二维数组a的正确定义。( )

7、在C语言中,引用数组元素时,其数组下标的数据类型允许是整型常量或整型表达式。( )

8、以下是对一维整型数组a的正确定义:int n; scanf(\( ) 9、若有定义:int a[10];则a[10]是对a数组元素的正确引用。( )

10、若有以下定义:static int a[3][4];则数组a中各元素不能得到确定的值。( ) 11、int a[][3]={{1,2},{3}};是能对二维数组a进行正确的初始化的语句。( )

12、有以下定义和语句:char s1[10]=\输出结果为5。( )

11

四、程序填空

1、将一个数列头尾颠倒。设该数列为1,3,5,7,9,11,13,15,17,19。要求19,17,15,13,11,9,7,5,3,1次序存放并输出。要求写一函数实现对包含任意个数据的颠倒处理。 void f2(char a[],int n) {int i,t;

for(《1》;i

2、编写串连接函数strcat。(注:填空请用数组表示方法) void strcat(char s1[],char s2[]) {int i,j;

for(i=0;《1》;i++);

for(j=0;《2》;j++) s1[i+j]=s2[j]; s1[i+j]=《3》 }

3、下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组。请填空。(注:填空请用数组表示方法) main()

{int a[3]={5,9,19}; int b[5]={12,24,26,37,48}; int c[10],i=0,j=0,k=0; while(i<3&&j<5)

if(a[i]>b[j]) {《1》;k++;j++;} else{《2》;k++;i++;} while(i<3) {《3》;i++;k++;} while(j<5) {《4》;k++;j++;} }

4、用冒泡法进行排序函数如下,请填空。 void bubble(int a[ ],int n) {int i,j,t,temp; for(《1》;i<=n-1;i++) {t=n《2》; for(j=0;j<=t-1;j++)

12

if(a[j]>a[j+1]) {temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } }

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

{int a[5],max,min,i,j,k; for(i=0;i<5;i++) scanf(\ 《1》a[0]; for(i=1;i<5;i++)

if(a[i]

if(a[i]>max){max=a[i];《4》;} a[k]=max;a[j]=min;

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

6、有三行文字,找出其中共有多少个空格、多少个单词。规定单词间以一个或多个空格相隔。如果一个单词恰好在行末结束,则下一行开头应有空格。句号或逗号后面 亦应有空格。(注:填空请用数组表示方法) main() {char a[3][80];

int i,j,wd=0,bk=0,《1》; for(i=0;i<3;i++)

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

{ if((a[i][j]>='a'&&a[i][j]<='z')||(a[i][j]>='A'&&a[i][j]<='Z')&&(《2》)) {wd=wd+1;flag=1;} if(《3》) {bk=bk+1;flag=0;} }

13

}

7、删除一个字符串中的第n个字符。(注:填空请用数组表示方法) void del_str(char a[],int n) {《1》; }

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

{int a[4][4]={1,3,6,7,9,11,14,15,0,19,13,2,5,8,12,21}; int sum1=0,sum2=0,i,j; for(i=0;i<4;i++) for(j=0;j<4;j++)

if(i《1》) sum1=sum1+a[i][j]; for(i=0;i<4;i++) for(《2》;j>=0;j--)

if(i+j==《3》) sum2=sum2+a[i][j]; printf(\ }

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

main()

{int a[4][4],i,j,found=0; for(i=0;i<4;i++)

for(j=0;j<4;j++) scanf(\ for(j=0;j<4;j++) for(i=j+1;i<4;i++)

if(a[i][j]《1》) {《2》;break;} if(found==1) printf(\ else printf(\ }

10、设计一个函数,有一个数组有n个数据,已按由小到大排序好,要求输入一个数,把它插入到原有数列中,而且仍然保持有序。 void f3(char a[],int n,int x) {int i=0,j,flag=0; while((i

14

{if(a[i]>x) 《1》; i++; }

if(flag==1) for(j=《2》;j<=《3》;j--) a[j+1]=a[j]; else a[n]=x;

}

11、下面函数是用折半查找方法在数组a中查找x。 void binary_search(int a[],int n,int x) {int mid,top,bot,i,find; top=0; bot=n-1; find=0; do

{mid=(top+bot)/2; if(x==a[mid]) 《1》;

else if(xa[mid]) 《3》=mid+1; }while((top<=bot)&&(find==0)); if(find==1) printf(\ else printf(\

}

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

{int a[2][3]={{1,2,3},{4,5,6}}, b[3][2],i,j; for(i=0;i<=1;i++) for(j=0;j<=2;j++)《1》; for(i=0;i

{ for(j=0;j

printf(―\\n‖); }

14、有n个串,要求按字母先后顺序排列,并按序输出。(注:填空请用数组表示方法) main() {char c[10][80]; int n,i,j,p; scanf(\ for(i=0;i

15


数组练习题及答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新苏教版三上语文补充习题答案201809

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: