c语言上机试题1(数学计算)
更新时间:2023-09-13 01:51:01 阅读量: 综合文库 文档下载
1 整型、实型
1.1 实型四舍五入
请编一个函数
fun,函数的功能是使实型数保留2位小数,并对第三位进行四
舍五入 (规定实型数为正数)。 例如:实型数为 1234.567, 则函数返回 1234.57; 实型数为 1234.564, 则函数返回 1234.56。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
int main(void) { float a;
printf (\ scanf ( \
printf ( \ printf ( \
printf ( \NONO( ); return 1; }
int NONO(void) {/* 请在此函数内打开文件,输入测试数据,调用 fun 函数, int i ; float a ; FILE *rf, *wf ;
rf = fopen(\ wf = fopen(\ for(i = 0 ; i < 20 ; i++) { fscanf(rf, \ fprintf(wf, \ } fclose(rf) ; fclose(wf) ; return 1; } 答案1: long i=h*1000;
输出数据,关闭文件。 */ if(i<5) return (i/10)/100.0; else
return (i/10+1)/100.0; 答案2:
long temp=a*1000,temp2; temp2=temp/10; temp=temp;
float result; //被除数定义成float if(temp>4) result=temp2+1; else
result=temp2; return result/100;
1.2 根据公式求圆周率
#include
printf(\ NONO(); }
NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。FILE *fp, *wf ; int i ; double x ;
fp = fopen(\
*/ wf = fopen(\ for(i = 0 ; i < 10 ; i++) { fscanf(fp, \ fprintf(wf, \ } fclose(fp) ; fclose(wf) ; } 答案1:
double i=1,a=1,b=1,c=1,s=0; while(c>=eps) { s+=c; a*=i;
b*=2*i+1; c=a/b; i++; }
return s*2;
答案2:
double n=1.0,m,s1,s2; m=2*n+1; s1=n; s2=m;
double temp=s1/s2,sum=0.0; while(temp>=eps){ sum+=temp; n+=1; m+=2; s1*=n; s2*=m; temp=s1/s2; }
return (sum+1)*2;
1.3 求阶乘
#include
int main(void) /* 主函数 */ { printf(\ //NONO(); return 1; }
int NONO (void) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。FILE *fp, *wf ; int i, m, n ; float s;
fp = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) { fscanf(fp, \ s = fun(m, n) ;
fprintf(wf, \ }
fclose(fp) ; fclose(wf) ; return 1; } 答案: float result;
int x,y,z,o=1,p=1,q=1; for(x=1;x<=m;x++){ o=o*x; }
for(y=1;y<=n;y++){ p=p*y;
*/ }
for(z=1;z<=m-n;z++){ q=q*z; }
result=o/(p*q); return result;
尝试建立一个专门求阶乘的函数。
1.4 求公式
#include
int main(void) /* 主函数 */ { printf(\ //NONO(); return 1; }
int NONO (void) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。FILE *fp, *wf ; int i, n ; double s ;
fp = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) { fscanf(fp, \ s = fun(n) ; fprintf(wf, \ } fclose(fp) ; fclose(wf) ; return 1; }
*/
答案:
int i;
double m,sum=0.0; for(i=1;i<=n;i++){ m=i*(i+1); sum+=1/m; }
return sum;
1.5 整数分解
函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。 例如,当a=45,b=12。调用该函数后,c=5241。 注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include
int main(void) { int a,b; long c;
printf(\ scanf(\ c=fun(a, b);
printf(\ NONO(); return 0; }
void NONO (void) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ;
rf = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) { fscanf(rf, \ fun(a, b, &c) ;
fprintf(wf, \ } fclose(rf) ; fclose(wf) ;
} 答案:
long i1=(a)*1000;
printf(\ long i2=(b)*100; long i3=a/10*10; long i4=b/10;
//return a*1000+b*100+a/10*10+b/10; return i1+i2+i3+i4;
1.6 数学公式
#include
/************found************/ fun(int m){
double y = 0, d; int i ;
/************found************/ for( i = 100;i < m;i += 100 ) { d = (double)i * (double)i ; y += 1.0 / d ; }
return (y); }
main( ) {
int n = 2000 ;
printf( \ }
答案:
double fun ( int m ) {
for( i = 100;i <=m;i += 100 ) {
1.7 数学公式
修正:
当k=1时,第一项为4/1*3
#include
printf(\} 答案1:
int n;
float s, w, p, q; n = 1; s = 1.0;
while ( n <= k ) { w = 2.0 * n; p = w - 1.0; q = w + 1.0;
s = s * w *w/p/q; n++; }
return s;
改错: int i;
float sum=1.0; for(i=2;i<=k;i++){
sum*=(2*i * 2*i)/((2*i+1)*(2*i-1)); //注意数据类型 }
return sum;
1.8 最小公倍数
给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。 例如,给主函数中的变量x1、x2、x3分别输入15 11 2, 则输出结果应当是:330。请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include
/************found************/ fun(int x, y, z ) { int j,t ,n ,m; j = 1 ; t=j%x; m=j%y ; n=j%z;
while(t!=0||m!=0||n!=0) { j = j+1; t=j%x; m=j%y; n=j%z; }
/************found************/ return i; } main( ) { int x1,x2,x3,j ;
printf(\scanf(\
printf(\j=fun(x1,x2,x3);
printf(\} 答案:
int fun(int x,int y,int z){ return j; 编程:
#include
}
//求三个数最小公倍数 int fun(int x, int y, int z ) { }
main( ) {
int x1,x2,x3,j ;
printf(\
scanf(\
printf(\j=fun(x1,x2,x3);
printf(\}
答案: int temp;
if (x>y) temp=x; else temp=y;
if(temp >z) return temp; else return z;
int temp=max(x,y,z); int result=temp; while(1){
if(result%x==0 && result%y==0 && result%z==0) return result; result=result+temp; }
1.9 n!改错
给定程序MODI1.C中函数 fun 的功能是:计算n!。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include
/************found************/ if n = = 0 return 1.0 ;
while( n >1 && n < 170 )
/************found************/ result *= n-- return result ; } main ( ) { int n ;
printf(\scanf(\
printf(\} 答案:
if(n==0) return 1.0; result*=n--;
1.10 数学公式
#include
main( ) { int n = 5;
printf( \}
答案: int a, b, c, k; double s; s = 0.0; a = 2; b = 1;
for ( k = 1; k <= n; k++ ) { s=s+(double)a/b; c = a; a = a + b; b = c; }
return s;
1.11 数列
已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。给定程序MODI1.C中函数fun的功能是:计算并输出该数列前n项的平方根之和。n的值通过形参传入。 例如,当n=10时,程序的输出结果应为:23.197745。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
main ( ) { int n;
printf(\scanf(\
printf(\}
答案:
double sum, s0, s1, s2, s; int k;
sum = 1.0;
if (n <= 2) sum = 0.0; s0 = 0.0; s1 = 0.0; s2 = 1.0;
for (k = 4; k <= n; k++) { s = s0 + s1 + s2; sum += sqrt(s); s0 = s1; s1 = s2;
s2 = s; }
return sum;
1.12 数学公式
#include
/************found************/ int fun ( int n ) {
float A=1; int i;
/************found************/ for (i=2; i main( ) { int n ; printf(\scanf(\ printf(\} 答案: float fun(int n){ if(2<=n) return 1.0/(1+fun(n-1));//递归 或:for (i=2; i<=n; i++) A=1.0/(1+A);//另一种 1.13 数学公式 给定程序MODI1.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。 #include /**************found**************/ for(i = 2 ; i < m ; i++) /**************found**************/ y -= 1 /(i * i) ; return( y ) ; } main( ) { int n = 5 ; printf( \} 答案: for(i=2;i<=m;i++) y -=1.0/(i*i); 1.14 数学公式 #include double s,t; int n=1; s=0.0; /************found************/ t=0; while( t>eps) { s+=t; t=t * n/(2*n+1); n++; } /************found************/ return (s); } main() { double x; printf(\scanf(\ printf(\} 答案: t=1.0; return(s*2); 1.15 素数 给定程序MODI1.C中函数fun的功能是:找出一个大于形参m且紧随m的素数,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include for (i = m + 1 ; ; i++) { for (k = 2 ; k < i ; k++) /**************found**************/ if (i % k != 0) break ; /**************found**************/ if (k < i) return(i); } } void main() { int n ; n = fun(20) ; printf(\} 答案: if(i%k==0)break; if(k==i)return (i); 1.16 整数处理 给定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当s中的数为:7654321时,t中的数为:642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include /************found************/ //void fun (long s, long t) { void fun(long s,long *t){ long sl=10; s /= 10; *t = s % 10; /************found************/ //while ( s < 0) { while(s>0){ s = s/100; *t = s*sl + *t; sl = sl * 10; } } main(){ long s, t; printf(\scanf(\fun(s, &t); printf(\} 1.17 自然数 给定程序MODI1.C中函数fun的功能是:计算小于形参k的最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include while ((k >= 2) && (mc < 10)) { /************found************/ if ((k = 0) || (k = 0)) { m = m+ k; mc++; } k--; } return m; /************found************/ _____ } main ( ) { printf(\} if(k == 0 || k == 0){ //____
正在阅读:
c语言上机试题1(数学计算)09-13
“十三五”重点项目-金属表处理项目节能评估报告(节能专篇)03-11
南大-电子商务概论第(2)次作业04-13
重大校〔2015〕386号附件:重庆大学2014-2015学年度研究生争先创06-29
2012高考地理复习09-01
大班科学活动:有规律排序06-26
小学三年级奥数题练习及答案解析(1) 2 - 图文12-26
硚口区2016-2017学年度上学期期末考试七年级英语试题(word版有答案)03-13
贺新春作文500字06-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 上机
- 试题
- 语言
- 数学
- 计算
- 走进生活、快乐识字 - 小学低段生活化识字教学初探
- 威伦触摸屏软件使用方法
- 2018-2024年中国雨水收集利用行业市场调查及投资前景预测报告
- 西亚教案设计
- 第一节焊接接头的工作应力分布 - 图文
- 中国当代文学史模拟试卷和答案(1)讲解
- 《平方根》教案 探究版
- 很好用包你赚钱的通达信精准选股公式
- 多排悬挑架主梁验算计算1
- 泉州湾跨海大桥首例钻孔灌注桩施工方案
- 歇后语大全(W-Z)
- 旅游地理学重点
- 《分类和回收利用》教案
- 如何提高初中语文情感教育
- 2014《步步高》物理大一轮复习讲义 第05章 第1课时 功 功率
- 我国商业银行信贷风险监管存在的问题及对策分析论文
- 结构力学试卷(计算)
- 莆秀委教16号关于表彰秀屿区中小学德育工作先进集体和
- 沪教版牛津英语4B语法专项练习
- 电工电子技术试题(含答案)