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个学生的学号、姓名、系别、联系电话的数据文件。从键盘上输入一个学号,可以查寻到此人其他信息。并按姓名排序且输出。
代码如下:
第一题:
计算
,并输出其结果。
,sum);
}
改进:
输入n即可求从1到n的阶乘的和。
,sum);
}
}
第二题:
求出n个学生一门课程中的最高成绩、最低成绩及高于平均成绩的人数。
,k);
}
第三题:
有10个100内的整数,使用选择排序法从大到小排序。
第四题:
有n个考生,每个考生有考号和一个总分成绩,如果录取m人(n>m),确定录取分数线,并输出该分数线上的考生的考号和成绩。
,i,a[i]);
}
第五题:
用过程实现:求两个正整数的最大公约数。
,min);
}
第六题:
用过程实现:求两个正整数的最小公倍数。
,lcm);
}
第七题:
用牛顿迭代法求一元方程 x5+2x3-x2+x+1=0在 0 附近的近似值。
#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
<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
<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
<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语言考试解答十题的更多相关文章
- 中国MOOC_零基础学Java语言_期末考试的编程题_1二进制的前导的零
期末考试的编程题 返回 这是期末考试的编程题,在60分钟内,你可以多次提交,直到正确为止. 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止 ...
- Java实习生常规技术面试题每日十题Java基础(七)
目录 1. Java设计模式有哪些? 2.GC是什么?为什么要有GC? 3. Java中是如何支持正则表达式. 4.比较一下Java和JavaSciprt. 5.Math.round(11.5) 等于 ...
- Java实习生常规技术面试题每日十题Java基础(六)
目录 1.在Java语言,怎么理解goto. 2.请描述一下Java 5有哪些新特性? 3.Java 6新特性有哪些. 4.Java 7 新特性有哪些. 5.Java 8 新特性有哪些. 6.描述Ja ...
- Java实习生常规技术面试题每日十题Java基础(四)
目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...
- Java实习生常规技术面试题每日十题Java基础(三)
目录 1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别? 3.Overload和Override的区别.参数列表相同,返回值不同的方法,是否是重 ...
- Java实习生常规技术面试题每日十题Java基础(二)
目录 1. JAVA 的反射机制的原理. 2.静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同? 3.如何将String类型转化成Number类型. 4.什 ...
- Java实习生常规技术面试题每日十题Java基础(一)
目录 1.Java 的 "一次编写,处处运行"如何实现? 2.描述JVM运行原理. 3.为什么Java没有全局变量? 4.说明一下public static void main(S ...
- MT【256】2016四川高考解答压轴题
(2016四川高考数学解答压轴题)设函数$f(x)=ax^2-a-\ln x,a\in R$. 1)讨论$f(x)$的单调性;2)确定$a$的所有可能值,使得$f(x)>\dfrac{1}{x} ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
随机推荐
- 【转】ODBC和OLEDB的连接字符串
ODBC连接 适合数据库类型 连接方式access "Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pas ...
- .Net 组件技术概述
1. 基本原理 组件是组件系统中功能的表现,没有组件就没有功能.特定接口是用于给组件管理程序来操纵.管理该组件,特定功能是组件需要完成的任务.在一个使用组件建立的产品中会随着功能数目的多少而会有多个组 ...
- MySql 5.7密码查看或修改
一.启动命令行,输入: taskkill /f /im mysqld.exe //关闭mysql 二.转入mysql的bin目录下 三.输入:mysqld --skip-grant-tables // ...
- ExtJs owner.componentLayoutCounter问题解
owner.componentLayoutCounter问题解:listeners : { render : function(grid) ...
- linux启动报错:kernel panic - not attempted to kill init
系统类型:CentOS 6.4(x64) 启动提示:Kernel panic - not syncing: Attempted to kill init 解决办法: 系统启动的时候,按下‘e’键进入g ...
- C#上传图片和生成缩略图以及图片预览
因工作需要,上传图片要增加MIME类型验证和生成较小尺寸的图片用于浏览.根据网上代码加以修改做出如下效果图: 前台代码如下: <html xmlns="http://www.w3.or ...
- Mysql 的变量
变量 MySQL是一门编程语言.所以存在变量.流程控制.函数.存储过程.触发器 MySQL分系统变量,与自定义变量 MySQL的某些功能是通过系统变量来实现的.例如:autocommit 查看系统变量 ...
- Hyper-V 测试
云平台的虚拟服务器,基本上没有免费的(试用时间基本上都是1个月),按月收费最低的套餐(1个CPU核心.512内存)一般都是将近100元 所以索性还是自己搭建一个技术测试环境吧 上学的时候一直用的是VM ...
- 配置Apache+Mysql+Php
以下操作均在Debian 6.0 64bit 环境root权限下进行,如果提示权限不足请切换至root用户或者sudo,本人比较喜欢自行安装,因为安装的过程中能最小化安装而且能够知道安装了什么,然后可 ...
- 利用Keepalived+mysql构建高可用MySQL双主自动切转
转载:http://www.it300.com/index.php/article-15266.html 关于MySQL-HA,目前有多种解决方案,比如heartbeat.drbd.mmm.共享存储, ...