好文档 - 专业文书写作范文服务资料分享网站

C语言程序设计(第3版)何钦铭 颜 晖 第7章 数组

天下 分享 时间: 加入收藏 我要投稿 点赞

第7章 数组

【练习 7-1】将例 7-3 程序中的 break 语句去掉,输出结果有变化吗假设输入数据不变,输出什么 解答:

当去掉 break 语句后,一旦找到数据将不跳出循环,而是继续往下找值为 x 的元素,因 此程序输出会有变化。当输入数据仍为 2 9 8 1 9 时,输出将是 index is 1 index is 4。

【练习7-2】将数组中的数逆序存放。输入一个正整数n(1 int main(void) { }

【练习7-3】求最大值及其下标。输入一个正整数n(1 int main(void) {

int i,index,n; int a[10];

int i,n,temp; int a[10];

printf(\ scanf(\

printf(\ for(i=0;i

scanf(\ printf(\ for(i=0;i

for(i=0;i

temp=a[i]; a[i]=a[n-1-i]; a[n-1-i]=temp;

}

printf(\ scanf(\

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

return 0;

【练习 7-4】找出不是两个数组共有的元素。输入一个正整数 n (1<n≤10),再输入 n 个整数,存入第1个数组中;然后输入一个正整数m(1 int main(void) {

int i,j,k,m,n,flag,equal;

printf(\ scanf(\

printf(\ for(i=0;i

printf(\ for(j=0;j

flag=1;数组x和数组y的长度相同

C.数组x的长度大于数组y的长度 D.数组x的长度小于数组y的长度

7.以下程序的输出结果是 C 。 int main(void)

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

int a[25],b[25],c[25];

printf (\ }

A.4 5 6 B.2 5 8 C.3 6 9 D.7 8 9

8.以下程序的输出结果是 B 。 int main(void)

{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i, s=0;

for(i=0;i<4;i++) s+=aa[i][1]; printf(\ }

A.11 B.19 C.13 D.20

二.填空题

1.设有定义语句:int a[ ][3]={{0},{1},{2}}; 则数组元素a[1][2]的值是 0 。

2.下列程序的功能是:求出数组 x 中各相邻两个元素的和依次存放到a数组中,然后输出。 请填空。 int main(void ) { int x[10],a[9],i; for(i=0; i<10; i++) scanf(\ for( _i=1_; i<10; i++ ) a[i-1]=x[i]+_x[i-1] _ ; for(i=0; i<9; i+ +) printf(\ printf(\ }

3.写出下列程序的运行结果是 -12 。 int main(void)

{ int a[10]={10,1,-20,-203,-21,2,-2,-2,11,-21}; int j,s=0; for(j=0;j<10;j++) if(a [j]%2==0) s+=a[j];

printf(\ }

4.写出下面程序的运行结果 。 #include <> int main(void)

{ float s[6]={1, 3, 5, 7, 9}; float x;

int i;

scanf(“%f”, &x); for (i=4 ; i>=0; i--)

if(s[i]>x) s[i+1]=s[i]; else break;

printf(\ return 0; }

(1) 如果输入 4,则输出 2 。 (2) 如果输入 5,则输出 3 。

5.下列程序的功能是输出如下形式的方阵,请填空。 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 int main(void) { int i,j,x; for(j=4;_j>=1_;j--) { for(i=1;i<=4;i++) { x=(j-1)*4+_i_; printf(\ }

printf(\ } }

以下程序的功能是用来检查二维数组是否对称(即对所有的i,j都有a[i] [j]=a[j] [i])。请填空。 int main(void)

{ int a[4][4]={1,2,3,4,2,2,5,6,3,7,8,6,7,4}; int i,j,found=0;

for(j=0;j<4;j++) { for(i=0;i<4;i++) if(_a[j][i]!=a[i][j]_){ }

if(found!=0) printf(\该二维数组不对称\\n\ else printf(\该二维数组对称\\n\ return 0;

}

if(_found==1_)break;

_found=1;_ break;

}

三.程序设计题

1. 选择法排序。输入一个正整数 n (1 int main(void) {

int i,n,index,k,temp; int a[10];

printf(\ scanf(\

printf(\ for(i=0;i

if(a[index]

}

printf(\ for(i=0;i

求一批整数中出现最多的数字。输入一个正整数n(1≤n≤1000),再输入n个整数,分析每个整数的每一位数字,求出现次数最多的数字。例如输入3个整数1234、2345、3456,其中出现次数最多的数字是3和4,均出现了3次。试编写相应程序。 解答: #include<> int main(void) {

int i,j,k,g,n,max;

int a[1000],b[1000],count[1000];

printf(\ scanf(\

printf(\

C语言程序设计(第3版)何钦铭 颜 晖 第7章 数组

第7章数组【练习7-1】将例7-3程序中的break语句去掉,输出结果有变化吗假设输入数据不变,输出什么解答:当去掉break语句后,一旦找到数据将不跳出循环,而是继续往下找值为x的元素,因此程序输出会有变化。当输入数据仍为29819时,输出将是indexis1indexis4。
推荐度:
点击下载文档文档为doc格式
6cqhr3f3yb0h1ll01eyq0a6ri16osu014du
领取福利

微信扫码领取福利

微信扫码分享