学院比较奇葩,大一下期让学的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);
}

 

 

 

 

 

第六题:

用过程实现:求两个正整数的最小公倍数。

#include<stdio.h> void main(){ int a,b,lcm; 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; } lcm=a*b/min; printf("LCM is %d\n"

,lcm);
}

第七题:

用牛顿迭代法求一元方程 x5+2x3-x2+x+1=0在 0 附近的近似值。

#include <stdio.h>

#include 

<math.h>//x5+2x3-x2+x+1=0 double F1(int,int,int,int,int,int,double); //原函数 double F2(int,int,int,int,int,int,double); //原函数的一阶导数 double Newton(int,int,int,int,int,int,double, double); int main() { /* int a,b,c,d,e,f; double x,x0 = 0; double g = pow(10,-5);//精度10^-5 printf("please input a b c d e f\n"); scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f); x = Newton(a,b,c,d,e,f,x0,g); double g = pow(10,-5);*/ double x; x = Newton(1,0,2,-1,1,1,0,pow(10,-5));//精度10^-5 printf("the result is x = %f\n",x); } double F1(int a, int b, int c, int d, int e, int f,double x) { return a*x*x*x*x*x + b*x*x*x*x + c*x*x*x + d*x*x +e*x +f; } double F2(int a, int b, int c, int d, int e, int f, double x) { return 5*a*x*x*x*x + 4*b*x*x*x + 3*c*x*x +2*d*x +e; } double Newton(int a, int b, int c, int d,int e, int f,double x, double g) { double x0; do

{
x0

= x; x = x0 - F1(a,b,c,d,e,f,x0) / F2(a,b,c,d,e,f,x0); }while (fabs(x0 - x) > g); return

 x;
}

第八题:

找出 1000 以内最大的 3 个素数。

#include<stdio.h>

#include

<math.h> int sort(int x) { int i,sx; sx=(int)sqrt(x); for(i=2;i<=sx;i++) { if(x%i==0) break; if(i==sx) return(x); } return(0); } void main() { int n=999,i,a[3];// 3个 for(i=0;i<3;i++) { a[i]=sort(n); if(a[i]==0) i--; else

printf(

"第%d个素数是%d\n",i+1,a[i]); n=n-1

;
}
}

第九题:

设计一个具有+、-、*、/、开方、阶乘、指数、正弦、余弦、正切、求余数功能的简易计算器。

#include<stdio.h>

#include

<math.h> #define PI 3.14159026 int add(int x,int y) { return(x+y); } int sub(int x,int y) { return(x-y); } int mul(int x,int y) { return(x*y); } double div(double x,double y) { if(y==0) return (0); else return(x/y); } int fac(int x) { int num,i; num=1; for(i=1;i<=x;i++) num=num*i; return(num); } int mod(int x,int y) { return(x%y); } void main() { // int (* oper[11])(int,int); int m,n,temp1; double x,y,temp2; char i; char c[]={'+','-','*','/','q','!','^','s','c','t','%'};//+、-、*、/、开方、阶乘、指数、正弦、余弦、正切、余数 printf("Enter 0 for + \n"); printf("Enter 1 for - \n"); printf("Enter 2 for * \n"); printf("Enter 3 for / \n"); printf("Enter 4 for 开方 \n"); printf("Enter 5 for 阶乘 \n"); printf("Enter 6 for 指数 \n"); printf("Enter 7 for 正弦 \n"); printf("Enter 8 for 余弦 \n"); printf("Enter 9 for 正切 \n"); printf("Enter a for 余数 \n"); i=getchar(); if(i=='0'||i=='1'||i=='2'||i=='6'||i=='a') { printf("Enter m n: \n"); scanf("%d%d",&m,&n); switch(i) { case '0':printf("%d+%d=%d\n",m,n,add(m,n));break; case '1':printf("%d-%d=%d\n",m,n,sub(m,n));break; case '2':printf("%d*%d=%d\n",m,n,mul(m,n));break; case '6':temp1=(int)pow(m,n);printf("%d^%d=%d\n",m,n,temp1);break;//pow case 'a':printf("%d%%%d=%d\n",m,n,mod(m,n));break; } } else if(i=='3'||i=='4') { printf("Enter x y: \n"); scanf("%lf%lf",&x,&y); // printf("%lf %lf\n",x,y); switch(i) { case '3':printf("%lf/%lf=%lf\n",x,y,div(x,y));break; case '4':temp2=pow(x,1/y);printf("%lf开%lf次方=%lf\n",x,y,temp2);break;//pow } } else if(i='5') { printf("Enter m: \n"); scanf("%d",&m); printf("%d!=%d\n",m,fac(m)); } else if(i=='7'||i=='8'||i=='9') { printf("Enter x: \n"); scanf("%lf",&x); x=x*PI/180; // printf("Enter x is %f\n: ",x); switch(i) { case '7':printf("sin(%lf)=%f\n",x,sin(x));break; case '8':printf("cos(%lf)=%f\n",x,cos(x));break; case '9':printf("tan(%lf)=%f\n",x,tan(x));break; } } else

        printf(

"Error!\n"

);
}

第十题:(非原创)

利用文本编辑软件在外存上建立一个有n个学生的学号、姓名、系别、联系电话的数据文件。从键盘上输入一个学号,可以查寻到此人其他信息。并按姓名排序且输出。

#include <stdio.h>

#include 

<stdlib.h> #define M 3 struct data /*定义结构体 */

{
int

idno; char name[10]; char telno[15]; }; struct data person[M]; /* 定义结构体数组 */ void personlist() /* 建立学生表函数*/

{
int

i; FILE * fp; fp = fopen("student.txt","r");//打开文件 if(fp==NULL) exit(0); for(i=0;i<M;i++) { fscanf(fp,"%d%s%s",&person[i].idno,person[i].name,person[i].telno);//读取记录 fprintf(stdout,"\n 学号:%d,姓名:%s,电话号码: %s\n",person[i].idno,person[i].name,person[i].telno); } fclose(fp);//关闭文件 } void main() { int i,no,yes=0; personlist(); printf("\n 请输入要查找信息的id号: "); scanf("%d",&no); for (i=0;i<M;i++) { if (person[i].idno==no) { printf("\n 姓 名: %s",person[i].name); printf("\n 电话号码: %s\n",person[i].telno); yes=1; break; } } if(!yes) printf("\n 没找到相应资料!\n"

);
}

 

 

C语言考试解答十题的更多相关文章

  1. 中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零

    期末考试的编程题 返回   这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止 ...

  2. Java实习生常规技术面试题每日十题Java基础(七)

    目录 1. Java设计模式有哪些? 2.GC是什么?为什么要有GC? 3. Java中是如何支持正则表达式. 4.比较一下Java和JavaSciprt. 5.Math.round(11.5) 等于 ...

  3. Java实习生常规技术面试题每日十题Java基础(六)

    目录 1.在Java语言,怎么理解goto. 2.请描述一下Java 5有哪些新特性? 3.Java 6新特性有哪些. 4.Java 7 新特性有哪些. 5.Java 8 新特性有哪些. 6.描述Ja ...

  4. Java实习生常规技术面试题每日十题Java基础(四)

    目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...

  5. Java实习生常规技术面试题每日十题Java基础(三)

    目录 1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别? 3.Overload和Override的区别.参数列表相同,返回值不同的方法,是否是重 ...

  6. Java实习生常规技术面试题每日十题Java基础(二)

    目录 1. JAVA 的反射机制的原理. 2.静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同? 3.如何将String类型转化成Number类型. 4.什 ...

  7. Java实习生常规技术面试题每日十题Java基础(一)

    目录 1.Java 的 "一次编写,处处运行"如何实现? 2.描述JVM运行原理. 3.为什么Java没有全局变量? 4.说明一下public static void main(S ...

  8. MT【256】2016四川高考解答压轴题

    (2016四川高考数学解答压轴题)设函数$f(x)=ax^2-a-\ln x,a\in R$. 1)讨论$f(x)$的单调性;2)确定$a$的所有可能值,使得$f(x)>\dfrac{1}{x} ...

  9. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

随机推荐

  1. Opencv——将摄像头拍摄写成视频文件

    这里主要利用了Opencv打开摄像头的代码,以及写入视频的函数,只是这里要注意的是摄像头好像没有帧率,在cvCreateVideoWriter,时要自己设置 #include"cv.h&qu ...

  2. Android之Http网络编程(三)

    在前面两篇博客<Android之Http网络编程(一)>.<Android之Http网络编程(二)>中,简单的介绍了对网页的请求和客户端与服务端的简单的参数交互.那么,这一篇博 ...

  3. zxing.dll生成条码

    引入zxing.dll using System; using System.Drawing; using ZXing.QrCode; using ZXing; using ZXing.Common; ...

  4. PHP JQuery Json

    PHP: echo Json_encode($result); Jquery: $.get( 'process.php', {'p1':'aa','p2':'dd', 'data_type':'jso ...

  5. Loadrunner测试json接口

    1. loadrunner + json说明 使用lr测试json接口,向服务端发送json格式请求,接收处理返回响应数据. 主要用到函数: 1)web_custon_request 2)web_re ...

  6. iOS 的一点理解(一) 代理delegate

    做了一年的iOS,想记录自己对知识点的一点理解. 第一篇,想记录一下iOS中delegate(委托,也有人称作代理)的理解吧. 故名思议,delegate就是代理的含义, 一件事情自己不方便做,然后交 ...

  7. UIButton 未响应原因分析

    1.父视图响应者链被阻断;例如:在 UILabel,UIImageView 控件添加UIButton,因为UILabel(userInteractionEnabled属性值为NO) 阻断了响应者链,所 ...

  8. javascript RegExp类型 学习小记

    在js里面,可以有两种方法来定义正则表达式,第一种是通过字变量的形式,第二种则是通过构造函数的形式: 1 字变量形式,格式是长这样子的 var expression = /pattern/flag p ...

  9. Yii 验证码验证

    控制器如下

  10. jQuery(function(){})与(function(){})(jQuery)的区别

    jQuery(function(){ });/$(function(){ });全写为 $(document).ready(function(){}); 意义为在DOM加载完毕后执行了ready()方 ...