C语言程序设计习题(共19页).doc





《C语言程序设计习题(共19页).doc》由会员分享,可在线阅读,更多相关《C语言程序设计习题(共19页).doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 习题5参考解答 1数组是相同数据类型的集合,分为一维数组、二维数组及多维数组。在什么情况下使用数组?在什么情况下使用一维数组?解:当需要处理的数据为相同类型的数据的集合时,可以使用数组。如果这些数据的描述用一个量就可以,这时就用一维数组。例如,一组学生的学号,就可以使用一维数组。2数组元素又称为下标变量,数组元素的下标有何意义?解:下标的意义是对数组的各个数组元素进行标识和区分。由数组名和下标结合起来形成数组元素的名字。 3使用字符数组来存储字符串应注意什么问题? 解:需要注意的问题是字符数组在存储字符串时是以0作为结束标记的。这个0是系统自动加上的。所以字符数组的
2、长度需要比它要存储的字符串的长度至少多1。例如,要存储字符串abcd,因为它的长度为4,所以存储它的字符数组的长度至少为5。 4常用的字符处理函数有哪些?解:常用的字符处理函数有以下8个。(1)puts(字符串):作用为将一个字符串输出到终端。 (2)gets(字符数组):作用为从终端输入一个字符串到字符数组,并且得一个函数值。 (3)strcat(字符串1,字符串2):作用为进行字符串的连接。 (4)strcpy(字符串1,字符串2):作用为进行字符串的复制。 (5)strcmp(字符串1,字符串2):作用为进行字符串的比较。 (6)strlen(字符串):作用为求字符串的长度。 (7)st
3、rlwr(字符串):作用为将字符串中的大写字母转换成小写字母。 (8)strupr(字符串):作用为将字符串中的小写字母转换成大写字母。5随机产生10个两位整数存储到一个一维数组中,找出其中的最大数。解:#include#include#define random(x) (rand()%x)int main() int a10,max; int x; for(x=0;x10;x+) ax=random(100); max=a0; for(x=0;xmax) max=ax; printf(%4d,ax); printf(nmax=%dn,max); return 0;程序运行结果如下:41 67
4、 34 0 69 24 78 58 62 64max=786输入10个整数,要求按照从小到大的顺序输出。解:#includevoid main()int i,j,min,t,a10;printf(请输入10个数:n);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10-1;i+)min=i;for(j=i;jaj) min=j;t=ai;ai=amin;amin=t;printf(n排序结果如下:n);for(i=0;i10;i+)printf(%5d,ai);程序运行情况如下:请输入10个数:6 90 45 56 1 15 44 78 58 101排序结果如下:
5、 1 6 15 44 45 56 58 78 90 1017输入10个字符,并将它们的顺序颠倒后输出。解:#include#define N 10void main()char aN,t;int i;/* 输入10个字符并输出*/printf(请输入10个字符:n);for(i=0;i10;i+) scanf(%c,&ai); /*顺序颠倒*/ for(i=0;iN/2;i+)t=ai;ai=aN-i-1;aN-i-1=t;printf(顺序颠倒后的字符:n); for(i=0;iN;i+)printf(%c,ai);程序运行情况如下:请输入10个字符:顺序颠倒后的字符: 8写出下列程序的运行
6、结果。 (1)#include void fun(int b) int i=0; while(bi=10) bi+=2; i+;int main() int i,a=1,5,7,9,11,13,15; fun(a+2); for(i=0;i7;i+) printf(%5d,ai); return 0; 解: 1 5 9 11 11 13 15(2)#includeint main() int a33,i,j; for(i=0;i3;i+)for(j=0;j3;j+)aij=i; for(i=0;i3;i+)printf(%5d,a1i); return 0;解: 1 1 1(3)#includ
7、e int main() int k; int a33=1,2,3,4,5,6,7,8,9; for(k=0;k3;k+) printf(%d ,ak2-k); return 0; 解: 3 5 7(4)#include #include int main() char p20=a,b,c,d,q=abc,r=abcde; strcpy(p+strlen(q),r); strcat(p,q); printf(%dn%dn,sizeof(p),strlen(p); return 0; 解: 2011 (5)#include #include void f(char p10,int n ) /*
8、字符串从小到大排序 */ char t10; int i,j; for(i=0;in-1;i+) for(j=i+1;j0) strcpy(t,pi); strcpy(pi,pj); strcpy(pi,t); int main() char p510=abc,aabdfg,abbd,dcdbe,cd;f(p,5); printf(%dn,strlen(p0); return 0; 解:39求一个33矩阵对角线元素之和。解:#includemain()float a33,sum=0;int i,j;printf(请输入矩阵元素:n);for (i=0;i3;i+)for (j=0;j3;j+)
9、scanf(%f,&aij);for (i=0;i3;i+ )sum=sum+aii;printf(对角线元素之和=%.2fn,sum);程序运行情况如下: 请输入矩阵元素: 1 2 3 4 5 6 7 8 9 对角线元素之和=15.0010找出一个二维数组中的鞍点,所谓鞍点是指该位置上的数在该行最大,在该列最小。需要注意的是,并不是所有的二维数组都有鞍点。解:#define N 10#define M 10#include void main()int i,j,k,m,n,flag1,flag2,aNM,max,maxj;printf(n输入行数n:);scanf(%d,&n);printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题 19

限制150内