首页 > 代码库 > C语言考试(前五题)

C语言考试(前五题)

学院比较奇葩,大一下期让学的VB,这学期就要学C++了,然后在开学的前三个周没有课,就由老师讲三个周的C语言,每天930~1130听课,除去放假和双休日,实际听课时间一共是12*2小时,下午是1410~500,上机,不过每天下午有将近三个小时的上机时间。时间那么紧迫还要考试,今天上午得知考试题是从以下十道题中出,轻松了很多。题如下:

1.计算 ,并输出其结果。

2.求出n个学生一门课程中的最高成绩、最低成绩及高于平均成绩的人数。

3.有10100内的整数,使用选择排序法从大到小排序。

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即可求从1n的阶乘的和。

#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);

}

第三题:

10100内的整数,使用选择排序法从大到小排序。

#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语言考试(前五题)