全国计算机等级考试二级,C语言考前复习资料重点

2019-03-03 13:31

第六章 数组

例题1:输入5个学生的数学成绩,求最低分

【分析】:

1 输入五位同学数学成绩

2 假定第0位同学成绩最低,赋予min (编号从零开始)

3 依次比较min与第1、2、3、4同学的成绩,发现更小的就赋予min 4 输出五位同学成绩 5 输出最低分min

【源码】

#include \ main() { int i,min; int math[5]; printf(\请输入5位同学的数学成绩:\\n\ for(i=0;i<5;i++) { scanf(\&math[i]); } min=math[0]; for(i=1;i<5;i++) { if(min>math[i]) { min=math[i]; } } printf(\位同学的数学成绩为:\\n\ for(i=0;i<5;i++) { printf(\ } printf(\最低分为:%d\\n\ }

练习:输入10个学生的英语成绩,求最高分,最低分,平均分。

例题二、将矩阵a的右上三角元素置0

1 0 0 0 例如: 1 2 3 4 右上三角5 9 2 6 3 4 7 6 3 8 7 1 5 9 2 6 3 4 0 6 3 0 0 1

【分析】

i\\j 0 1 2 3 0 1 5 9 2 1 2 6 3 4 2 3 7 6 3 3 4 8 7 1 我们发现:右上角元素a[i][j],就是j>i的元素

【思路】依次查看每个元素下标,如果j>i,那么将元素置0(依次查看每个元素,用双重循环)

【源码】

#include

main()

{

int i,j;

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

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

{

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

{

if(j>i) /*判断是否是右上三角*/

{a[i][j]=0; } /*置0*/

}

}

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

{

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

printf(\M\ /*输出宽度为4,不够补空格*/

printf(\

}

}

练习:求出数组周边元素的平均值。例如,若a 数组中的值为:

0 1 2 7 9 1 9 7 4 5 2 3 8 3 1 4 5 6 8 2 5 9 1 4 1

输出结果应为:aver=3.375

注意:周边元素是那些元素? 结果aver是float型,数组a是什么类型?

例题3:输入一行英文,如I Miss You!,要求将大写字母换小写,小写字母换大写

【分析】

在本题中,一行英文里有三种字符:大写字母、小写字母、其他(空格,标点符号),所以我们用if-elseif-else结构,而不是if-else结构。但又因为else里面没有做任何处理,所以只剩下了if-elseif。

我们翻开课本最后一页ASCII表,发现大写字符的ASCII值比小写字母小了32,故有: ?a?-32=?A? 、 ?A?+32=?a?。既:小写字母-32=大写字母 输入一行英文,我们有三种方式,

1、scanf(“%c”,&ch[0]) 2、scanf(“%s”,ch) 3、gets(ch)

在这里我们选用第三种,原因参考附录

【源码】 #include #include main() { char ch[100]; /*安排足够大的空间存字符串,只能多不能少*/ int i,len; printf(\请输入一行英文:\\n\ gets(ch); len=strlen(ch); /*取字符串实际长度*/ for(i=0;i='a'&&ch[i]<='z') /*判断字母是不是小写*/ { ch[i]=ch[i]-32; /*小写转大写,减去32即可*/ } else if(ch[i]>='A'&&ch[i]<='Z') /*判断字母是不是大写*/ { ch[i]=ch[i]+32; /*大写转小写,加上32即可*/ } } printf(\转换后为:\\n\ puts(ch); }

练习:有一行电文,已经按下面规律译成密码: A-Z a-z B-Y b-y C-X c-x

既第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母不变。要求编程序将密码译成原文,并输出密码和原文。如有密码:svool,nzirgrnv!

例题4:冒泡排序

【冒泡排序】

依次比较相邻的两个数,将小数放在前面,大数放在后面。相当于气泡往上升,质量轻的上浮,重的下沉,故称之为冒泡排序。

即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。

在第二趟:仍从第一对数开始比较,将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。

如此下去,重复以上过程,直至最终完成排序。

原始: [9 8 5 4 2 0] 第一趟排序后:[8 5 4 2 0] 9 第二趟排序后:[5 4 2 0 ]8 9 第三趟排序后:[4 2 0] 5 8 9 第四趟排序后:[2 0] 4 5 8 9 第五趟排序后:[0] 2 4 5 8 9 完成 0 2 4 5 8 9

我们发现,对于6个数:9 8 5 4 2 0 ,总共进行了5趟排序,第1趟排序进行了5次两两比较,第i趟排序进行了6-i次两两比较


全国计算机等级考试二级,C语言考前复习资料重点.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:优化课堂教学目标, 提高教学效率

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

马上注册会员

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