首页 > 代码库 > C语言考试(前五题)
C语言考试(前五题)
学院比较奇葩,大一下期让学的VB,这学期就要学C++了,然后在开学的前三个周没有课,就由老师讲三个周的C语言,每天9:30~11:30听课,除去放假和双休日,实际听课时间一共是12天*2小时,下午是14:10~5:00,上机,不过每天下午有将近三个小时的上机时间。时间那么紧迫还要考试,今天上午得知考试题是从以下十道题中出,轻松了很多。题如下:
1.计算 ,并输出其结果。
2.求出n个学生一门课程中的最高成绩、最低成绩及高于平均成绩的人数。
3.有10个100内的整数,使用选择排序法从大到小排序。
4.有n个考生,每个考生有考号和一个总分成绩,如果录取m人(n>m),确定录取分数线,并输出该分数线上的考生的考号和成绩。
5.用过程实现:求两个正整数的最大公约数。
6.用过程实现:求两个正整数的最小公倍数。
7.用牛顿迭代法求一元方程 x5+2x3-x2+x+1=0在 0 附近的近似值。
8.找出 1000 以内最大的 3 个素数。
9.设计一个具有+、-、*、/、开方、阶乘、指数、正弦、余弦、正切、求余数功能的简易计算器。
10.利用文本编辑软件在外存上建立一个有n个学生的学号、姓名、系别、联系电话的数据文件。从键盘上输入一个学号,可以查寻到此人其他信息。并按姓名排序且输出。
经过一中午和一下午的奋斗,解出了前几道,代码如下:
第一题:
计算 ,并输出其结果。
#include<stdio.h>
int mul(int n)
{
int num,i;
num=1;
for(i=1;i<=n;i++)
num=num*i;
return(num);
}
void main()
{
int i,sum=0;
for(i=1;i<=10;i++)
sum+=mul(i);
printf("The sum is %d\n",sum);
}
}
改进:
输入n即可求从1到n的阶乘的和。
#include<stdio.h>
int mul(int n)
{
int num,i;
num=1;
for(i=1;i<=n;i++)
num=num*i;
return(num);
}
void main()
{
int i,n,sum=0;
printf("Enter the number:\n");
scanf("%d",&n);
if(n<=0)
printf("Error\n");
else
{
for(i=1;i<=n;i++)
sum+=mul(i);
printf("The sum is %d\n",sum);
}
}
第二题:
求出n个学生一门课程中的最高成绩、最低成绩及高于平均成绩的人数。
#include<stdio.h>
int sort(int a[],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=0;j<=n-i-1;j++)
{
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
void main()
{
int i,k,sum=0,ave,n=4,a[5];//假设题中n=5,即有5名学生
for(i=0;i<=n;i++)
{
printf("Please enter number %d\n",i);
scanf("%d",&a[i]);
sum+=a[i];
}
sort(a,n);
printf("max is %d\n",a[0]);
printf("min is %d\n",a[n]);
ave=sum/n;
for(k=0;k<=n&&a[k]>ave;)
k++;
printf("%d\n",k);
}
第三题:
有10个100内的整数,使用选择排序法从大到小排序。
#include<stdio.h>
int sort(int a[],int n)
{
int i,j,temp;
int min;
for(i=1;i<=n;i++)
{
min=i;
for(j=0;j<=n;j++)
{
if(a[j]<a[min])
{
min=j;
}
if(min!=i)
{
temp=a[j];
a[j]=a[min];
a[min]=temp;
}
}
}
}
void main()
{
int i,k,n=9,a[10];
for(i=0;i<=n;i++)
{
printf("Please enter number(<100) %d\n",i);
scanf("%d",&a[i]);
// if(a[k]<0||a[k]>100)
// goto end;
}
sort(a,n);
for(k=0;k<=n;k++)
printf("%4d",a[k]);
printf("\n");
//end:printf("Error\n");
}
第四题:
有n个考生,每个考生有考号和一个总分成绩,如果录取m人(n>m),确定录取分数线,并输出该分数线上的考生的考号和成绩。
#include<stdio.h>
int sort(int a[],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=0;j<=n-i-1;j++)
{
if(a[j]<a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
void main()
{
int i,m,n=4,a[5];//假设题中n=5,即有5名学生
for(i=0;i<=n;i++)
{
printf("Please enter number %d\n",i);
scanf("%d",&a[i]);
}
sort(a,n);
printf("Please enter number m \n");
scanf("%d",&m);
for(i=0;i<m;i++)
printf("考号和成绩分别是%d %d\n",i,a[i]);
}
第五题:
用过程实现:求两个正整数的最大公约数。
#include<stdio.h>
void main(){
int a,b;
int min,max,tmp;
printf("Enter tne number a b:\n");
scanf("%d%d",&a,&b);
a>b?(max=a,min=b):(max=b,min=a);
while(tmp=(max%min))
{
max=min;
min=tmp;
}
printf("GCF is %d\n",min);
}
??
*****************************************未完待续***********************************************
? ?
C语言考试(前五题)