第2部分C语言程序设计练习五.docx
- 文档编号:25965586
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:12
- 大小:20.43KB
第2部分C语言程序设计练习五.docx
《第2部分C语言程序设计练习五.docx》由会员分享,可在线阅读,更多相关《第2部分C语言程序设计练习五.docx(12页珍藏版)》请在冰豆网上搜索。
第2部分C语言程序设计练习五
《C语言程序设计》练习五
五、程序设计题
1.从键盘上输入10个整数,并将其存放在一数组中,求出该数组中所有大于零且为偶数的数的平均值。
2.若有n行n列数组,试编写一程序,分别求出两条对角线元素之和。
(从键盘输入n*n个整型数,n≤20)
3.从键盘输入n*n个整型数(n≤20),组成n行n列数组,打印出其上三角数组。
4.用以下近似公式编一个求
的近似值的程序。
,其中n的值由键盘输入。
5.若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。
6.从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。
7.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。
8.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果。
9.从键盘上输入10个整数,用冒泡法将它们按从小到大的次序排列出来,并把排列的结果输出。
10.用循环语句编程打印下列图案。
(第一行的″$″在第20列)
$
$$$
$$$$$
$$$
$
11.由键盘输入n*m个数,并把它们存放在一个n行m列的数组中(n、m均不超过20)。
(1)按n行m列输出该二维数组;
(2)求出该二维数组全部元素的平均值;
(3)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来。
12.从键盘上输入10个字符串(每个串不超过8个字符),将这些字符串按从小到大的次序排列出来并输出排序后的结果。
13.从键盘上输入一个整数m,判断其是否为“完数”,如果是“完数”则输出“Yes”,否则输出“No”。
(所谓完数是指一个数如果刚好与它所有的因子之和相等,则称该数为一个“完数”,如:
6=1+2+3,则6就是一个完数。
而24不是完数,因为24≠1+2+3+4+6+8+12(=36)。
一个数的因子是指该数能被该因子整除。
)
14.编写一个函数(函数头为:
intfun(inty)),其功能是:
若参数y为闰年,则返回1,否则返回0。
15.编写一个名为countc函数(函数头为:
intcountc(chararray[])),其功能是:
统计array数组中所存放的字符串中大写字母的数目,并返回字符串中大写字母的数目。
《C语言程序设计》练习五(参考答案)
五、程序设计题
1.从键盘上输入10个整数,并将其存放在一数组中,求出该数组中所有大于零且为偶数的数的平均值。
#include
voidmain()
{inta[10],i,n=0;
floataver=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(a[i]>0&&a[i]%2==0)
{aver+=a[i];
n++;
}
aver=aver/n;
printf("aver=%.2f\n",aver);
}
2.若有n行n列数组,试编写一程序,分别求出两条对角线元素之和。
(从键盘输入n*n个整型数,n≤20)
#include
#defineN20
voidmain()
{inta[N][N],n,i,j,k=0,t=0;
scanf(“%d”,&n);
for(i=0;i for(j=0;j scanf(“%d”,&a[i][j]); for(i=0;i {k+=a[i][i]; t+=a[i][n-1-i]; } printf(“k=%d,t=%d\n”,k,t) ; } 3.从键盘输入n*n个整型数(n≤20),组成n行n列数组,打印出其上三角数组。 #include voidmain() {inta[20][20],i,j,n; scanf("%d",&n); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i {for(j=0;j printf("%4d",a[i][j]); printf("\n"); } } 4.用以下近似公式编一个求 的近似值的程序。 ,其中n的值由键盘输入。 #include voidmain() {floatpi=0.0,s=1.0; intn,i; scanf("%d",&n); for(i=1;i<=n;i++) {pi=pi+s/(2*i-1); s=s*(-1.0); } printf("pi=%f\n",pi*4); } 5.若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。 #include voidmain() {inta[]={8,2,5-3,7,-9,0,-4,10,15},max,min,i max=a[0];min=a[0]; for(i=1;i<10;i++) {if(a[i]>max)max=a[i]; If(a[i] } printf(“max=%d,min=%d\n”,max,min); } 6.从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。 #include voidmain() {inti,n; longx=1; scanf("%d",&n); if(n<=10) {for(i=1;i<=n;i++) x=x*i; printf("%d! =%ld\n",n,x); } else printf("InputnumberError"); } 7.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。 #include voidmain() {intx[10],i,n=0; floatsum=0.0; for(i=0;i<10;i++) scanf("%d",&x[i]); for(i=0;i<10;i++) if(x[i]>0&&x[i]%2! =0) {sum+=x[i]; ++n; printf("%5d",x[i]); } printf("n=%d,aver=%f\n",n,sum/n); } 8.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果。 #include voidmain() {inta[10],i,n=0; floataver; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) if(a[i]>3&&a[i]<100) {aver+=a[i]; n++; } printf(aver=%f\n",aver/n); } 9.从键盘上输入10个整数,用冒泡法将它们按从小到大的次序排列出来,并把排列的结果输出。 #include voidmain() {inta[10],i,j,t; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(a[i]>a[j])t=a[i],a[i]=a[j],a[j]=t; for(i=0;i<10;i++) printf("%4d",a[i]); } 10.用循环语句编程打印下列图案。 (第一行的″$″在第20列) $ $$$ $$$$$ $$$ $ #include voidmain() {inti,j; for(i=1;i<=3;i++) {for(j=1;j<=21-i;j++)putc(''); for(j=1;j<=2*i-1;j++)putc('$'); putc('\n'); } for(i=2;i>=1;i--) {for(j=1;j<=21-i;j++)putc(''); for(j=1;j<=2*i-1;j++)putc('$'); fputc('\n'); } } 11.由键盘输入n*m个数,并把它们存放在一个n行m列的数组中(n、m均不超过20)。 (1)按n行m列输出该二维数组; (2)求出该二维数组全部元素的平均值; (3)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来。 #include voidmain() {floata[20][20],aver=0.0; inti,j,n,m; scanf("%d%d",&n,&m); for(i=0;i for(j=0;j scanf("%f",&a[i][j]); for(i=0;i {for(j=0;j {printf("%8.2f",a[i][j]); aver+=a[i][j]; } printf("\n"); } aver=aver/(n*m); printf("aver=%f\n",aver); for(i=0;i for(j=0;j if(a[i][j]>=aver) printf("a[%d][%d]=%f\n",i,j,a[i][j]); } 12.从键盘上输入10个字符串(每个串不超过8个字符),将这些字符串按从小到大的次序排列出来并输出排序后的结果。 #include #include voidmain() {charstr1[10][9],str2[9]; inti,j; for(i=0;i<10;i++) gets(str1[i]); for(i=0;i<9;i++) for(j=i+1;j<10;j++) if(strcmp(str1[i],str1[j])>0) {strcpy(str2,str1[i]); strcpy(str1[i],str1[j]); strcpy(str1[j],str2); } for(i=0;i<10;i++) printf("%s\n",str1[i]); } 13.从键盘上输入一个整数m,判断其是否为“完数”,如果是“完数”则输出“Yes”,否则输出“No”。 #include voidmain() {intm,i,k=0;//k存放因子的累加和 printf("请输入一个正整数\n"); scanf("%d",&m);//输入整数存放到m变量中 for(i=1;i<=m-1;i++)//该循环结构用于寻找m的因子 if(m%i==0)k=k+i;//如果m能被i整除,说明i是m的一个因子,则累加 if(m==k)//如果k(因子的累加数)和m相等,说明m是完数 printf("Yes\n"); else printf("No\n"); } 14.编写一个函数(函数头为: intfun(inty)),其功能是: 若参数y为闰年,则返回1,否则返回0。 #include intfun(inty) {if((y%4==0&&y%100! =0)||(y%400==0))return (1); elsereturn(0); } voidmain()//编写主函数的目的主要是为了调试所定义的函数 {intx,y; scanf("%d",&x); y=fun(x); printf("%d\n",y); } 15.编写一个名为countc函数(函数头为: intcountc(chararray[])),其功能是: 统计array数组中所存放的字符串中大写字母的数目,并返回字符串中大写字母的数目。 intcountc(chararray[]) {intnum=0,i=0; while(array[i]! ='\0') {if(array[i]>='A'&&array[i]<='Z')num++; i++; } return(num); } voidmain()//编写主函数的目的主要是为了调试所定义的函数 {intx;chara[80]; scanf("%s",a); x=countc(a); printf("x=%d\n",x); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 部分 语言程序设计 练习