数组编程习题解答 (2).ppt





《数组编程习题解答 (2).ppt》由会员分享,可在线阅读,更多相关《数组编程习题解答 (2).ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数组编程讲解数组编程讲解2.求一个求一个3*3的整型矩阵对角线之和的整型矩阵对角线之和对角线元素怎样描述?对角线元素怎样描述?int sum=0,i,a33;for(i=0;i=0;i-)if(x=ai)break;else ai+1=ai;ai+1=x;for(i=0;i10;i+)printf(%6d,ai);4.将一个数组中的值按逆序存放。将一个数组中的值按逆序存放。012345678998765432100123456789原序原序逆序逆序nfor(i=0;i 10/2;i+)n temp=ai;n ai=an-1-i;n an-1-i=temp;/*n 为数组元素的个数。为数组元素的
2、个数。5.有一篇文章有一篇文章,有三行文字有三行文字,每行有每行有80 个字符。要求统计出其个字符。要求统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数中英文大写字母、小写字母、数字、空格以及其他字符的个数1.三行文字的存放方式:三行文字的存放方式:v二维字符数组二维字符数组 ch380;2.各类字符的个数变量:各类字符的个数变量:v大写英文字母的个数:大写英文字母的个数:uppercasev小写英文字母的个数:小写英文字母的个数:smallletterv数字个数:数字个数:digitv空格个数:空格个数:blankv其他字符个数:其他字符个数:others处理方式:处理方式:f
3、or(i=0;i3;i+)for(j=0;j=A&chij=a&chij=0&chij=9)digit+else if(chij=)blank+;else others+;6.打印以下图案:打印以下图案:0 for(i=0;i5;i+)for(j=0;ji;j+)putchar();puts(ch);putchar(n);applech10applech20char ch180,ch280;char ch180,ch280;int i;int i;for(i=0;i80;i+)ch2i=;for(i=0;i80;i+)ch2i=;gets(ch1);gets(ch1);i=0;i=0;do c
4、h2i=ch1i;while(ch1i);do ch2i=ch1i;while(ch1i);7.字符串复制习题1 将将10个整数放到一维数组中,并按从个整数放到一维数组中,并按从大到小排序。大到小排序。1.定义一个一维整数数组定义一个一维整数数组定义一个一维整数数组定义一个一维整数数组:2.char a10;char a10;printf(printf(请输入请输入请输入请输入1010个整数个整数个整数个整数:n);:n);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)scanf(%d,&ai);2.输入输入输入输入1010个整数个整数个整数个整数:3
5、.对数组对数组对数组对数组 a a 进行排序:进行排序:进行排序:进行排序:因题目未指定排序方法,所以,因题目未指定排序方法,所以,因题目未指定排序方法,所以,因题目未指定排序方法,所以,可以使用任何方法排序。可以使用任何方法排序。可以使用任何方法排序。可以使用任何方法排序。对数组对数组对数组对数组 a a 进行排序进行排序进行排序进行排序(选择法)(选择法)(选择法)(选择法)for(i=0;in-1;i+)for(i=0;in-1;i+)p=i;p=i;for(j=i+1;jn;j+)for(j=i+1;ja p)p=j;if(a ja p)p=j;if(p!=i)if(p!=i)med=
6、a i;med=a i;a i=a p;a i=a p;a p=med;a p=med;程序:程序:for(i=0;in-1;i+)for(i=0;in-1;i+)p=i;p=i;for(j=i+1;jn;j+)for(j=i+1;ja p)p=j;if(a ja p)p=j;if(p!=i)if(p!=i)med=a i;med=a i;a i=a p;a i=a p;a p=med;a p=med;for(i=0;in;i+)for(i=0;in;i+)printf(%6d,ai);printf(%6d,ai);printf(n);printf(n);#include#include#de
7、fine n 10#define n 10void main()void main()int an,i,j,p,med;int an,i,j,p,med;printf(please input);printf(please input);printf(%d integers:,n);printf(%d integers:,n);for(i=0;in;i+)for(i=0;in;i+)scanf(%d,&ai);scanf(%d,&ai);2.将将20个整数放到一维数组中,输出该数个整数放到一维数组中,输出该数组中的最大值和最小值。组中的最大值和最小值。定义一个一维整数数组定义一个一维整数数组定
8、义一个一维整数数组定义一个一维整数数组:char a20;char a20;printf(printf(请输入请输入请输入请输入2 20 0个整数个整数个整数个整数:n);:n);for(i=0;i20;i+)scanf(%d,&ai);for(i=0;i20;i+)scanf(%d,&ai);输入输入输入输入2020个整数个整数个整数个整数:找出数组找出数组找出数组找出数组 a a 中的最大值和最小值:中的最大值和最小值:中的最大值和最小值:中的最大值和最小值:.找出数组找出数组找出数组找出数组 a a 中的最大值和最小值:中的最大值和最小值:中的最大值和最小值:中的最大值和最小值:n n设
9、:设:设:设:n nmaxmax中存放最后找到的最大值;中存放最后找到的最大值;中存放最后找到的最大值;中存放最后找到的最大值;n nminmin中存放最后找到的最小值;中存放最后找到的最小值;中存放最后找到的最小值;中存放最后找到的最小值;n n不妨设:不妨设:不妨设:不妨设:max=a0;min=a0;max=a0;min=a0;n nfor(i=0;i20;i+)for(i=0;imax)max=if(a imax)max=aiai;else if(a imin)min=a i;else if(a imin)min=a i;#include#include#define n 20#def
10、ine n 20void main()void main()int an,i,max,min;int an,i,max,min;printf(please input);printf(%d integers:,n);printf(please input);printf(%d integers:,n);for(i=0;in;i+)scanf(%d,&ai);for(i=0;in;i+)scanf(%d,&ai);for(i=0;in;i+)for(i=0;imax)max=ai;if(a imax)max=ai;else if(a imin)min=a i;else if(a imin)min
11、=a i;printf(the largest number is%6dn,max);printf(the largest number is%6dn,max);printf(the least number is%6dn,min);printf(the least number is%6dn,min);3.将将15个整数放到一维数组中,输出该数个整数放到一维数组中,输出该数组中的最大值它的下标。然后将它和数组组中的最大值它的下标。然后将它和数组中的最前面的元素对换。中的最前面的元素对换。(1 1)定义一个一维整数数组定义一个一维整数数组定义一个一维整数数组定义一个一维整数数组:char a1
12、5;:char a15;printf(printf(请输入请输入请输入请输入1515个整数个整数个整数个整数:n);:n);for(i=0;i15;i+)scanf(for(i=0;i15;i+)scanf(%d%d,&ai);,&ai);(2 2)输入)输入)输入)输入1515个整数个整数个整数个整数:(3 3)找出数组)找出数组)找出数组)找出数组 a a 中的最大值和它的下标:中的最大值和它的下标:中的最大值和它的下标:中的最大值和它的下标:(3 3)找出数组找出数组找出数组找出数组 a a 中的最大值和它的下标:中的最大值和它的下标:中的最大值和它的下标:中的最大值和它的下标:n n设
13、:设:设:设:n nmaxmax中存放最后找到的最大值;中存放最后找到的最大值;中存放最后找到的最大值;中存放最后找到的最大值;n nk k中存放最后找到的最大值的下标;中存放最后找到的最大值的下标;中存放最后找到的最大值的下标;中存放最后找到的最大值的下标;n n不妨设:不妨设:不妨设:不妨设:max=a0;k=0;max=a0;k=0;n nfor(i=0;i20;i+)for(i=0;imax)if(a imax)max=max=aiai;k=i;k=i;(4 4)数组数组数组数组 a a 中的最大值和第一个数组元素交换:中的最大值和第一个数组元素交换:中的最大值和第一个数组元素交换:中
14、的最大值和第一个数组元素交换:用用用用temptemp作为临时变量作为临时变量作为临时变量作为临时变量交换语句为:交换语句为:交换语句为:交换语句为:temp=a k;temp=a k;akak=a0;=a0;a0=temp;a0=temp;#include#include#define n 15#define n 15void main()void main()int an,i,max,k;int an,i,max,k;printf(please input);printf(%d integers:,n);printf(please input);printf(%d integers:,n)
15、;for(i=0;in;i+)scanf(%d,&ai);for(i=0;in;i+)scanf(%d,&ai);for(i=0;imax)for(i=0;imax)max=ai;k=i;max=ai;k=i;ak=a0;a0=max;ak=a0;a0=max;printf(the largest number is%6dn,max);printf(the largest number is%6dn,max);printf(the largest numbers order is%6dn,k);printf(the largest numbers order is%6dn,k);4.将一维数组
16、中的数逆序存放,不使用辅将一维数组中的数逆序存放,不使用辅助数组。助数组。1.1.#define n 10#define n 102.2.定义一个一维整数数组定义一个一维整数数组定义一个一维整数数组定义一个一维整数数组:3.3.char char anan;printf(printf(请输入请输入请输入请输入%d%d个整数个整数个整数个整数:n,n);:n,n);for(i=0;in;i+)scanf(for(i=0;in;i+)scanf(%d%d,&ai);,&ai);3.3.输入输入输入输入n n个整数个整数个整数个整数:4.4.将一维数组中的数逆序存放将一维数组中的数逆序存放将一维数组
17、中的数逆序存放将一维数组中的数逆序存放:a i=a ;a i=a ;a =temp;a =temp;n n方法:将数组方法:将数组方法:将数组方法:将数组a a中正数和倒数位置对应相同的元中正数和倒数位置对应相同的元中正数和倒数位置对应相同的元中正数和倒数位置对应相同的元素对调。(正数第素对调。(正数第素对调。(正数第素对调。(正数第1 1个和倒数第个和倒数第个和倒数第个和倒数第1 1个,正数第个,正数第个,正数第个,正数第2 2个个个个和倒数第和倒数第和倒数第和倒数第2 2个,个,个,个,正数第,正数第,正数第,正数第 i i 个和倒数第个和倒数第个和倒数第个和倒数第 i i个个个个)n n
18、i i 的最后一个值是什么?的最后一个值是什么?的最后一个值是什么?的最后一个值是什么?4.4.将一维数组中的数逆序存放将一维数组中的数逆序存放将一维数组中的数逆序存放将一维数组中的数逆序存放:n/2n/2n nfor(i=0;in/2;i+)for(i=0;in/2;i+)n-i-1n-i-1n-i-1n-i-1temp=a i;temp=a i;#include#include#define n 10#define n 10void main()void main()int an,i,temp;int an,i,temp;printf(please input);printf(%d int
19、egers:,n);printf(please input);printf(%d integers:,n);for(i=0;in;i+)scanf(%d,&ai);for(i=0;in;i+)scanf(%d,&ai);printf(printf(交换之前交换之前交换之前交换之前););for(i=0;in;i+)printf(%4d,ai);printf(n);for(i=0;in;i+)printf(%4d,ai);printf(n);for(i=0;in/2;i+)for(i=0;in/2;i+)temp=ai;ai=an-i-1;an-i-1=temp;temp=ai;ai=an-i-
20、1;an-i-1=temp;printf(printf(交换之后交换之后交换之后交换之后););for(i=0;in;i+)printf(%4d,ai);printf(n);for(i=0;i=A&stri=A&stri=a&stri=a&stri=0&stri=0&stri=9)digit+;else if(stri=)space+;else if(stri=)space+;完整程序:完整程序:#include#include#include#include void main()void main()int i,j,uplet=0,digit=0,int i,j,uplet=0,digit
21、=0,space=0,lowlet=0;space=0,lowlet=0;char str30;char str30;printf(printf(现在开始统计现在开始统计现在开始统计现在开始统计.:n);.:n);for(j=0;j3;j+)for(j=0;j=A&stri=A&stri=a&stri else if(stri=a&stri=z)lowlet+;=0&stri else if(stri=0&stri=9)digit+;=9)digit+;else if(stri=)space+;else if(stri=)space+;printf(printf(统计结束统计结束统计结束统计结
22、束:nn);:nn);printf(printf(输出已统计出的各类字符输出已统计出的各类字符输出已统计出的各类字符输出已统计出的各类字符的个数的个数的个数的个数:nn);:nn);printf(uplet=%dn,uplet);printf(uplet=%dn,uplet);printf(lowlet=%dn,lowlet);printf(lowlet=%dn,lowlet);printf(digit=%dn,digit);printf(digit=%dn,digit);printf(space=%dn,space);printf(space=%dn,space);6.将字符数组将字符数组s
23、tr1中下标为偶数的元素赋给中下标为偶数的元素赋给另一字符数组另一字符数组str2,并输出,并输出str1和和str2。1.定义两个字符数组定义两个字符数组:2.char str130,str230;printf(printf(请输入一行字符请输入一行字符请输入一行字符请输入一行字符:n);gets(str1);:n);gets(str1);2.输入一行字符到输入一行字符到输入一行字符到输入一行字符到str1str1中中中中:3.对字符数组中的进行复制:对字符数组中的进行复制:对字符数组中的进行复制:对字符数组中的进行复制:3.对字符数组中的字符进行复制:对字符数组中的字符进行复制:for(i
24、=0,j=0;stri!=0;i+)for(i=0,j=0;stri!=0;i+)if(i%2=0)str2j=str1i;j+;if(i%2=0)str2j=str1i;j+;完整程序:完整程序:#include#include#include#include void main()void main()int i,j;char str130,str230;int i,j;char str130,str230;printf(printf(请输入一请输入一请输入一请输入一 行字符行字符行字符行字符:n);gets(str1);:n);gets(str1);for(i=0,j=0;str1i!=
25、0;i+)for(i=0,j=0;str1i!=0;i+)if(i%2=0)str2j=str1i;j+;if(i%2=0)str2j=str1i;j+;str2j=0;str2j=0;printf(printf(复制之前复制之前复制之前复制之前:%snn,str1);:%snn,str1);printf(printf(复制之后复制之后复制之后复制之后:%snn,str2);:%snn,str2);7.有有5个国家名,要求按字母先后顺序排列,个国家名,要求按字母先后顺序排列,并按序输出。并按序输出。1.定义一个二维字符数组定义一个二维字符数组:2.char str1510;for(i=0;i5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组编程习题解答 2 数组 编程 习题 解答

限制150内