第1题
输入某学生的成绩,经处理后给出学生的等级,等级如下:
90分以上(包括90分):A 80~90分(包括80分):B 70~80分(包括70分):C 60~70分(包括70分):D 60分以下:E
要用switch语句编写程序
答案:
#include <stdio.h>
void main()
{ int score,c; char grade;
printf("请输入学生的成绩:");
scanf("%d",&score);
if(score>100||score<0)
{ printf("成绩输入错误!\n"); goto end; }
c=score/10;
switch(c)
{ case 10:case 9:grade='A';break;
case 8: grade='B';break;
printf是不是c语句case 7: grade='C';break;
case 6: grade='D';break;
default: grade='E';
}
printf("该学生的成绩等级为:%c\n",grade);
end:;
}
第2题
从键盘上输入三个实数,它们分别代表三条线段的长度,请写出一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边或不构成三角形)的C程序;如果能构成三角形,求出三角形面积(取两位小数)。
答案:
#include <stdio.h>
#include <math.h>
void main()
{ float a,b,c,e,y=1,p,s;
printf("请输入三角形边长a,b,c(中间用逗号隔开):");
scanf("%f,%f,%f",&a,&b,&c);
e=a+b>c&&b+c>a&&c+a>b&&a>0&&b>0&&c>0;
if(e) if(a==b||b==c||a==c)
if(a==b&&a==c) printf("是等边三角形\n");
else printf("是等腰三角形\n");
else printf("是不等边三角形\n");
else { printf("不构成三角形\n");
y=0;
}
if(y) { p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("三角形面积等于%.2f\n",s);
}
}
第3题
有一数列:2/1,3\2,5\3,8\5,…编程求这个数列前n项之和(n在运行时从键盘输入)。
答案:
#include <stdio.h>
void main()
{ int n,t,m;
float a=2,b=1,s=0;
printf("请输入n的值:");
scanf("%d",&n);
for(m=1;m<=n;m++)
{
s=s+a/b;
t=a;
a=a+b;
b=t;
}
printf("%f\n",s);
}
第4题
计算两个数的最大公约数,运行程序输入两整数为360,135。
答案:
#include <stdio.h>
void main()
{ int m,n,k;
printf("请输入m,n的值(中间用逗号隔开):");
scanf("%d,%d",&m,&n);
k=m%n;
while(k!=0)
{ m=n;
n=k;
k=m%n;
}
printf("最大公约数是%d\n",n);
}
第5题
选择排序(升序):编写选择排序程序,并编辑运行.记录输入输出数据。
答案:
#include <stdio.h>
void main()
{ int i,j,n,k,t,a[100];
printf("请输入要排序的数据个数n(n<=100):"); scanf("%d",&n);
printf("请输入要排序的%d个整数(整数间用空格分割):",n);
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<n-1;i++)
{ k=i;
for(j=i+1;j<n;j++) if(a[j]<a[k]) k=j;
if(k!=i) { t=a[i];a[i]=a[k];a[k]=t; }
}
printf("排序后的%d个整数:",n);
for(i=0;i<n;i++) printf("%6d",a[i]);
printf("\n");
}
第6题
编写程序,输出由1~N*N的整数组成的N阶方阵的上三角阵。例如,N=3,输出:
1 2 3
5 6
9
答案:
#include <stdio.h>
#define N 3
void main()
{ int i,j,k=1,a[N][N];
for(i=0;i<N;i++)
for(j=0;j<N;j++) a[i][j]=k++;
for(i=0;i<N;i++)
{ for(j=0;j<N;j++)
if(j<i) printf("%6c",' ');
else printf("%6d",a[i][j]);
printf("\n");
}printf("\n");
}
第7题
编写两个函数,分别求两个正整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个正整数由键盘输入。
程序调试通过后,用m=350.,n=64两组数据运行程序,记录程序的输出。答案:
#include <stdio.h>
int hcf(int m,int n)
{ int k=m%n;
if(k) hcf(n,k);
else return(n);
}
lcd(int m,int n,int h)
{ return(m/h*n); }
void main()
{ int m,n,h,l;
printf("请输入两个正整数m,n(中间用逗号隔开):");
scanf("%d,%d",&m,&n);
h=hcf(m,n);
printf("%d和%d的最大公约数是:%d\n",m,n,h);
l=lcd(m,n,h);
printf("%d和%d的最小公倍数是:%d\n",m,n,l);
}
第8题
编写求n!的函数f(int n ),在主函数中输入两个整数m , n , 然后调用函数求:
答案:
#include <stdio.h>
double f(int n)
{ if(n==0) return 1;
else return n*f(n-1);
}
main()
{ int n,m;
printf("请输入正整数n m(要求n<m):");
scanf("%d%d",&n,&m);
printf("c(%d,%d)=%.0f\n",n,m,f(m)/(f(n)*f(m-n)));
}
第9题
有一个字符串,输入一个字符,编写函数drst将输入的指定字符从字符中删去。
答案:
#include <stdio.h>
dstr(char str[],char ch)
{ int i,j;
for(i=j=0;str[i]!='\0';i++) if(str[i]!=ch) str[j++]=str[i];
str[j]='\0';
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论