C语言编程复习.docx
- 文档编号:29930212
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:20
- 大小:18.63KB
C语言编程复习.docx
《C语言编程复习.docx》由会员分享,可在线阅读,更多相关《C语言编程复习.docx(20页珍藏版)》请在冰豆网上搜索。
C语言编程复习
【5.4】求!
+2!
+3!
+···+10!
的值
#include
intmain(void)
{
intf,i,j,s=0;
for(i=1;i<=10;i++)
{
f=1;
for(j=1;j<=i;j++)
f*=j;
s+=f;
}
printf("1!
+2!
+3!
+...+10!
=%d\n",s);
return0;
}
【5.9】求-2/3+3/5-4/7+5/9-6/11+···的前项之和
#include
intmain(void)
{
inta,i;//a:
分子
doubles=0;
for(i=1;i<=20;i++)
{
if(i%2==0)
a=-i;
else
a=i;
s+=1.0*a/(2*i-1);
}
printf("=%.2lf\n",s);
return0;
}
【5.10】求数列1,2,3,5,8,13,21,34···中第25项的值
#include
intmain(void)
{
inta,b,i,f;
a=1,b=2;
for(i=3;i<=25;i++)
{
f=a+b;
a=b;
b=f;
}
printf("=%d\n",f);
return0;
}
【5.13】输出2000~2100年之间所有的闰年。
符合以下二者之一的年份是闰年:
(1)能被整除,但不能被100整除,如2016(
2)能被400整除,如2000
要求:
每行输出5项
#include
intmain(void)
{
intyear,n=0;
for(year=2000;year<=2100;year++)
{
if(year%4==0&&year%100!
=0||year%400==0)
{
printf("%6d",year);
n++;
if(n%5==0)
printf("\n");
}
}
return0;
}
【5.14】输出所有的水仙花数。
水仙花数是一个三位正整数,每位数字的三次方之和等于该数本身。
例如:
1^3+5^3+3^3=153,153是水仙花数。
#include
intmain(void)
{
intx,i,j,k;
for(x=100;x<=999;x++)
{
i=x/100;
j=x/10%10;
k=x%10;
if(x==i*i*i+j*j*j+k*k*k)
printf("%5d",x);
}
printf("\n");
return0;
}
【5.15】输入若干整数,以-1结束,去掉最大值和最小值,求平均值。
#include
intmain(void)
{
intx,max,min,n=0,sum=0;
printf("输入若干个数,以-1结束:
\n");
scanf("%d",&x);
max=min=x;
while(x!
=-1)
{
sum+=x;
n++;
if(max max=x; if(min>x) min=x; scanf("%d",&x); } if(n>2) printf("平均值为: %.1lf\n",1.0*(sum-max-min)/(n-2)); else printf("输入的分数个数小于\n"); return0; } 【5.16】输入一行字符,统计英文字母、数字字符、空格和其他字符的个数。 #include intmain(void) { intn1=0,n2=0,n3=0,n4=0; charch; printf("输入一行字符: \n"); while((ch=getchar())! ='\n') { if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z') n1++; elseif(ch>='0'&&ch<='9') n2++; elseif(ch=='') n3++; else n4++; } printf("英文字母%d个,数字字符%d个,空格%d个,其他字符%d个。 \n",n1,n2,n3,n4); return0; } 【5.18】根据公式π/4≈1-1/3+1/5-1/7+···求π的近似值,绝对值小于10^-5的项不计算。 #include #include intmain(void) { inta=1; doubleb=1,s=0; while(abs(a)/b>=10e-5) { s+=a/b; a=-a; b=b+2; } printf("pi=%lf\n",s*4); return0; } 【5.21】输入一个正整数n,求n是几位数 include intmain(void) { intn,count=0; printf("输入一个正整数: \n"); scanf("%d",&n); while(n) { n=n/10; count++; } printf("是%d位数\n",count); return0; } 【5.27】根据输入的行数输出图案。 例如,输入行数为7,则 #include #include intmain(void) { intn,i,j; printf("输入行数: "); scanf("%d",&n); for(i=-n/2;i<=n/2;i++) { for(j=1;j<=abs(i);j++) printf(""); for(j=1;j<=n-2*abs(i);j++) printf("*"); printf("\n"); } return0; } 【5.28】输出100以内的所有质数,每行输出5个质数 #include intmain(void) { intn,cou=0,i; for(n=2;n<=100;n++) { for(i=2;i<=n-1;i++) if(n%i==0) break; if(i==n) { printf("%6d",n); cou++; if(cou%5==0) printf("\n"); } } return0; 【5.29】一百个铜钱买100只鸡,其中公鸡一只5钱,母鸡一只3钱,小鸡1钱三只。 问100只鸡中公鸡母鸡小鸡各多少只? #include intmain(void) { intx,y,z; for(x=0;x<=100;x++) for(y=0;y<=100;y++) for(z=0;z<=100;z++)if(x+y+z==100&&15*x+9*y+z==300) printf("公鸡%d个,母鸡%d个,小鸡%d个\n",x,y,z); return0; } 【6.1】输入10个数到数组t中,求最小值及最小值在数组t中的下标 #include intmain(void) { intt[10],i,mini; printf("输入10个数: \n"); for(i=0;i<10;i++) scanf("%d",&t[i]); mini=0; for(i=1;i<10;i++) if(t[i] mini=i; printf("最小值为: %d,其下标为: %d\n",t[mini],mini); return0; } 【6.2】输入10个数到数组t中,再输入x,如果有与x相等的数组元素,输出该元素的下标,否则输出-1 #include intmain(void) { intt[10],x,i,flag=0; printf("输入10个数: \n"); for(i=0;i<10;i++) scanf("%d",&t[i]); printf("输入x: "); scanf("%d",&x); for(i=0;i<10;i++) if(x==t[i]) { printf("与x相等的数组元素的下标是: %d\n",i); flag=1; } if(flag==0) printf("-1\n"); return0; } 【6.3】输入10个数到数组t中,按降序排序,输出排序结果 #include intmain(void) { intt[10],i,j,tmp; printf("输入10个数: \n"); for(i=0;i<10;i++) scanf("%d",&t[i]); for(i=1;i<10;i++) for(j=0;j<10-i;j++) if(t[j] { tmp=t[j]; t[j]=t[j+1]; t[j+1]=tmp; } for(i=0;i<10;i++) printf("%6d",t[i]); printf("\n"); return0; } 【6.7】求3行5列二维数组中的最小值,及最小值在数组中的行号和列号 #include intmain(void) { inta[3][5],i,j,mini,minj; printf("输入3行5列数组: \n"); for(i=0;i<3;i++) for(j=0;j<5;j++) scanf("%d",&a[i][j]); mini=minj=0; for(i=0;i<3;i++) for(j=0;j<5;j++) if(a[mini][minj]>a[i][j]) { mini=i; minj=j; } printf("最小值: %d,最小值行号: %d,列号: %d\n",a[mini][minj],mini,minj); return0; } 【6.8】求3行5列二维数组中每列数组元素的最小值,输出。 #include intmain(void) { inta[3][5],i,j,min; printf("输入3行5列数组: \n"); for(i=0;i<3;i++) for(j=0;j<5;j++) scanf("%d",&a[i][j]); for(i=0;i<5;i++) { min=a[0][i]; for(j=1;j<3;j++) if(min>a[j][i]) min=a[j][i]; printf("%d列最小值为: %d\n",i,min); } return0; } 【6.9】求3行5列二维数组主对角线上元素之和 #include intmain(void) { inta[3][3],i,j,sum=0; printf("输入3行3列数组: \n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) sum+=a[i][i]; printf("主对角线上元素只和为: %d\n",sum); return0; } 【6.11】不调用库函数strcpy,将以下数组s1的字符串复制到数组s2中,并输出s2的字符串 Chars1[80],s2[80]; Getss1; #include intmain(void) { inti=0; chars1[80],s2[80]; printf("输入一个字符串: "); gets(s1); while(s1[i]! ='\0') { s2[i]=s1[i]; i++; } s2[i]='\0'; printf("复制的字符串为: "); puts(s2); return0; } 【6.14】输出数组s中字符串的子串,子串从s[begin]开始长度为len Chars[80]; Intbegin,len; Gets(s); Scanf(“%d%d,&begin,&len); 【6.14】 #include intmain(void) { inti,begin,len; chars[80]; printf("输入一个字符串: "); gets(s); printf("输入子串的开始位置及长度: "); scanf("%d%d",&begin,&len); for(i=begin;i printf("%c",s[i]); printf("\n"); return0; }nf(“%d%d,&begin,&len); 【7.3】编4个程序,分别用4种方法引用数组元素,输入10个整数,按升序排序,输出排序结果 #include intmain(void) { inta[10],*p,t,i,j; printf("输入10个整数: \n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 复习