c语言习题.docx
- 文档编号:11568732
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:74
- 大小:69.46KB
c语言习题.docx
《c语言习题.docx》由会员分享,可在线阅读,更多相关《c语言习题.docx(74页珍藏版)》请在冰豆网上搜索。
c语言习题
5-2输入10个分数,去掉最高分和最低分后求平均分,保留一位小数
#include
intmain(void)
{inti;
doubled,score,ave,max,min,sum;
printf("input10numbers:
");
scanf("%lf",&d);
sum=d;max=d;min=d;
for(i=1;i<=9;i++)
{scanf("%lf",&score);
sum+=score;
if(score>max)
max=score;
if(score min=score;} ave=(sum-max-min)/8.0; printf("ave=%.1f\n",ave); return0;} 5-4求1! +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求1-2/3+3/5-4/7+5/9-6/11…..的前20项之和 #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,能被4整除,但不能被100整除 2,能被400整除 要求: 每行输出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输出所有的水仙花数,水仙花数是一个三位正整数,每位数字的三次方之和等于该数本身 #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("输入的分数个数小于3\n"); return0;} 输入一行字符,统计英文字母,数字字符,空格和其他字符的个数 #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根据公式/41-1/3+1/5-1/7+…求的近似值,绝对值小于10e-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课本p94页 #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百钱买百鸡问题。 一百个铜钱买了一百只鸡,公鸡一只5钱,母鸡一只3钱,小鸡1钱3只,问,一百只鸡中公鸡、母鸡、小鸡各有多少只 #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-6p105页 #include intmain(void) { inti,n,b=0,a[10]={0,10,20,30,40,50,60,70,80,90}; printf("Inputaninteger: "); scanf("%d",&n); for(i=0;i<10;i++) if(a[i]==n) b=i+1; if(b==0) printf("-1"); else for(i=0;i<10;i++) { if(a[i]==n) continue; printf("%5d",a[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]; Gets(s1); #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。 #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;} 7-3输入10个整数,按升序排列,输出排列结果 #include intmain(void) { inta[10],*p,t,i,j; printf("输入10个整数: \n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题