c语言上机试题1(数学计算)

合集下载

C语言上机练习题及答案

C语言上机练习题及答案

1输入三个整数*,y,z,把这三个数由小到大输出。

# include <stdio.h>void main(){int *,y,z,a;scanf ("%d,%d,%d",&*,&y,&z);if(*>y) {a=*; *=y;y=a;}if(*>z) { a=*; *=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",*,y,z);}2输入圆的半径,输出圆的周长和面积。

# include<stdio.h># define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。

# include<stdio.h>void main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。

# include<stdio.h>int main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。

计算机四级C语言上机题

计算机四级C语言上机题

类型一数列规律编程1、编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)例如:若n的值为11时,函数的值为1.833333。

#include <stdlib.h>#include <conio.h>#include <stdio.h>#include <string.h>float fun(int n){}void main(){int n;float s;system("CLS");printf("\nPlease enter N: ");scanf("%d",&n);s=fun(n);printf("The result is:%f\n " , s);}【参考答案】float fun(int n){int i,s1=0;float s=0.0;for(i=1;i<=n;i++){s1=s1+i; /*求每一项的分母*/s=s+1.0/s1; /*求多项式的值*/}return s;}【解析】本题中s1用来表示式中每一项的分母,而每一项的分母都是由前一项分母加项数。

注意:由于s1定义成一个整型,所以在s=s+1.0/s1中不能把1.0写成1。

2、请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.005,即某项小于0.005时停止迭代)。

π/2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+…+1*2*3*…*n/(3*5*7*…*(2n+1)) 程序运行后,如果输入精度0.0005,则程序输出3.14…。

#include <stdio.h>#include <conio.h>#include <math.h>double fun(double eps){}void main(){double x;printf("Input eps: ");scanf("%lf",&x);printf("\neps=%1f,PI=%1f\n",x,fun(x));}【参考答案】double fun(double eps){double s=1.0,s1=1.0;int n=1;while(s1>=eps) /*当某项大于精度要求时,继续求下一项*/{s1=s1*n/(2*n+1); /*求多项式的每一项*/s=s+s1; /*求和*/n++;}return 2*s;}【解析】从第2项开始以后的每一项都是其前面一项乘以n/(2*n+1),程序中用s1来表示每一项,s来表示求和后的结果。

C语言上机题参考答案

C语言上机题参考答案
}
20、设有1<=n<=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进
行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的
报数,如此进行下去直到所有的人都出圈为止。
要求按出圈次序输出编号。
输入格式如下:
n s m
示例:
输入:
6 1 3
输出:
3 6 4 2 5 1
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
8、编程输出n行图形(n值通过键盘输入),
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
if(x>1) y=6*x+5;
printf("%d",y);
}
三、循环图形
7、编程输出n行图形(n值通过键盘输入)
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
******
#include<stdio.h>
void main()
{int i,j,n;
printf("%.2f\n",(a+b+c)/3.0);

C语言程序设计上机题目与参考答案

C语言程序设计上机题目与参考答案

C语言程序设计题目与参考答案(1——9章)1.(课本第84页第7题)设圆半径r=1.5,圆柱的高h=3,求圆周长.圆面积.圆球表面积.圆球体积.圆柱体积。

用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。

请编程序:#include <stdio.h>int main()#define p 3.1416int main(){double r,h,l,s,S,v,V;scanf("%lf %lf",&r,&h);l=2*p*r;s=p*r*r;S=4*p*r*r;v=4/3*p*r*r*r;V=p*r*r*h;printf("l=%7.2f\ns=%7.2f\nS=%7.2f\nv=%7.2f\nV=%7.2f\n",l,s,S,v,V);return 0;}2.把560分钟化成小时和分钟。

#include<stdio.h>main(){int t,h,m;t=560;h=t/60;m=t%60;printf("560分钟等于%d小时%d分钟\n",h,m);}3.第112页第6题)有一个函数y=x(x<1),y=2x-1(1<=x<10),y=3x-11(x>=1写程序,输入x的值,输出y相应的值。

#include<stdio.h>int main(){float x,y;scanf("%f",&x);if(x<1) y=x;elseif(x<10) y=2*x-1;else y=3*x-11;printf("%f\n",y);}4.(第113页第11题)输出4个整数,要求按由小到大的顺序输出。

#include<stdio.h>int main(){float a,b,c,d,t;scanf("%f,%f,%f,%f",&a,&b,&c,&d);if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(a>d) {t=a;a=d;d=t;}if(b>c) {t=b;b=c;c=t;}if(b>d) {t=b;b=d;d=t;}if(c>d) {t=c;c=d;d=t;}printf("%f,%f,%f,%f",a,b,c,d);}5.(第113页第12题)有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1,这四个塔的高度为10米,塔以外无建筑物。

c语言上机题答案

c语言上机题答案

6. 求 sinclude &lt;stdio.h&gt;
#include &lt;math.h&gt;
void main(){
int n;
int sum1;
int sum2;
int total;
total=sum1+sum2;
for(n=1;n&lt;=10;n++){printf(&quot;%6d\n&quot;,n);}
12. 编写一个求 0~100 之间全部奇数之积的程序。 #include &lt;stdio.h&gt; #include &lt;math.h&gt; void main(){ int i;double ji; for(i=1,ji=1;i&lt;101;i++){ if(i%2==1){ji=ji*i;}} printf(&quot;ji=%f\n&quot;,ji);}
数之和。 #include &lt;stdio.h&gt; #include &lt;math.h&gt; void main(){ int a,b;int sum; scanf(&quot;%d%d&quot;,&amp;a,&amp;b); sum=a+b; printf(&quot;%d\n&quot;,sum);} 9. 编写一个求三个整数之和的程序,用求两个整数之和的函数实现。 #include &lt;stdio.h&gt; #include &lt;math.h&gt; void main(){ int a,b,c; int he; int sum(int,int); scanf(&quot;%d%d%d&quot;,&amp;a,&amp;b,&amp;c); he=sum(sum(a,b),c); printf(&quot;%d&quot;,he);} int sum(int x,int y) {int z; z=x+y; return(z);} 10. 编写一个求 a + | b | 的程序, a,b 为两个整数。 #include &lt;stdio.h&gt; #include &lt;math.h&gt; void main(){ int a,b,z; int sum; scanf(&quot;%d%d&quot;,&amp;a,&amp;b); if(b&gt;0){z=b;} else{z=-b;} sum=a+z; printf(&quot;%d&quot;,sum);}

C语言上机考试题目

C语言上机考试题目

1、编写一个C 程序,比较任意三个整数的大小,然后输出其中的最大值。

方法不限。

2、计算圆的面积和周长。

要求:使用符号常量定义圆周率为3.14。

3、输入某学生三个科目的期末考试成绩,计算出该学生的成绩总分和平均分。

要求:有输入数据和输出结果的提示。

4、输入三角形的三边长,求三角形的面积。

三角形的三边长用变量a,b,c, 其中s=(a+b+c)/2。

提示:求某个数x 的平方根函数为sqrt(x),当直接用此函数时,需要在main 函数上面加入头文件:math.h 。

5、输入一个四位的正整数(如果不是,提示“输入错误”),对其个、十、百、千位四位数字求和并实现个位数与百位数、十位数与千位数的互换然后将这个数输出。

例如,输入一个四位正整数1234,通过你的程序,如何输出和10以及新的数3412。

6、求ax 2+b x+c=0方程的根。

a ,b ,c 由键盘输入。

提示:众所周知,一元二次方程式的根为:x1= x2= 可以将上面的分式分为两项:p= ,q= x1=p+q, x2=p -q 。

注意:在b 2-4ac>0的条件下,才可以求方程的根,否则提示a,b,c 的值输入错误。

7、输入三角形的三条边长,判断能否构成三角形,若能输出YES 并且输出三角形的面积,若不能则输出NO 。

8、任意输入三个整型数,要求按照从大到小的顺序输出。

9、从键盘输入一个四位数的年份,判断其是否为闰年。

aac b b 242-+-a ac b b 242---a b 2-aac b 242-10、有一个函数:写出程序,输入x的值,输出对应的y的值。

要求加上相应的文字说明。

11、编程实现大小字母的转换。

从键盘输入一个字符,要求使用getchar()函数读入字符。

如果输入的是一个小写字母,转换为大写字母;如果输入的是一个大写字吗,转换为小写字母;如果输入的是一个非字母符号,照原样输出。

要求有文字说明。

12、判断从键盘输入的是数字字符、大写字母、小写字母、空格还是其他字符。

C语言程序设计上机考试试题和参考答案

C语言程序设计上机考试试题和参考答案
char str1[80], str2[80]; int m, n;
printf("Input str1:\n"); gets(str1); //1
printf("Input m and n:\n"); scanf("%d%d", &m, &n); //1
mystrcpy(str1, str2, m, n); //2 puts(str2); }
1、请按行读入数据 2、请按给定的函数原型编写程序,否则即使程序运行结果正确,也不给分。 参考答案
#include<stdio.h>
void Input(int a[][10], int n);
int Compute(int a[][10], int n);
main()
{
int n, a[10][10]; int sum;
//2
{
int i, flag = 0, sum = 0; //1
for (i = 1; i <= n / 2; i++) //1
{
if (n % i == 0)
//1
{
sum = sum + i; //1
}
}
if (sum == n)
//1
{
flag = 1;
}
return flag;
//1
} 3.(15 分)请按给定要求编程计算方阵的主对角线之和。其中方阵的输入请在 Input 函数实现,计算主对角之和请在 Compute 函数实现,计算结果请在主函数打印, 且给定的方阵最大为 10x10,方阵实际大小请在主函数读入。Input 函数和 Compute 函数的函数原型如下:

c语言上机考试题及答案

c语言上机考试题及答案

c语言上机考试题及答案1. 编写一个C程序,实现求两个整数的和,并输出结果。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```2. 编写一个C程序,实现从键盘输入一个整数,判断该数是否为质数,并输出结果。

```c#include <stdio.h>int main() {int num, i, flag = 0;printf("请输入一个整数:");scanf("%d", &num);for (i = 2; i <= num / 2; i++) {if (num % i == 0) {flag = 1;break;}}if (num == 1) {printf("1既不是质数也不是合数。

\n"); } else {if (flag == 0) {printf("%d是质数。

\n", num);} else {printf("%d不是质数。

\n", num);}}return 0;}```3. 编写一个C程序,实现对数组元素进行冒泡排序,并输出排序后的结果。

```c#include <stdio.h>void bubbleSort(int arr[], int size) {int i, j, temp;for (i = 0; i < size - 1; i++) {for (j = 0; j < size - i - 1; j++) {if (arr[j] > arr[j+1]) {temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}int main() {int arr[] = {5, 2, 8, 3, 1};int size = sizeof(arr) / sizeof(arr[0]);int i;printf("排序前的数组:");for (i = 0; i < size; i++) {printf("%d ", arr[i]);}bubbleSort(arr, size);printf("\n排序后的数组:");for (i = 0; i < size; i++) {printf("%d ", arr[i]);}return 0;}```4. 编写一个C程序,实现计算给定数的阶乘,并输出结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1整型、实型1.1实型四舍五入请编一个函数fun,函数的功能是使实型数保留2位小数,并对第三位进行四舍五入(规定实型数为正数)。

例如:实型数为1234.567, 则函数返回1234.57;实型数为1234.564, 则函数返回1234.56。

注意: 部分源程序存在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include <stdio.h>int NONO(void);float fun ( float h ) {}int main(void) {float a;printf ("Enter a: ");scanf ( "%f", &a );printf ( "The original data is : " );printf ( "%f \n\n", a );printf ( "The result : %f\n", fun ( a ) );NONO( );return 1;}int NONO(void) {/* 请在此函数内打开文件,输入测试数据,调用fun 函数,输出数据,关闭文件。

*/ int i ;float a ;FILE *rf, *wf ;rf = fopen("./05/in.dat","r") ;wf = fopen("./05/out.dat","w") ;for(i = 0 ; i < 20 ; i++) {fscanf(rf, "%f", &a) ;fprintf(wf, "%f\n", fun(a)) ;}fclose(rf) ;fclose(wf) ;return 1;}答案1:long i=h*1000;if(i%10<5)return (i/10)/100.0;elsereturn (i/10+1)/100.0;答案2:long temp=a*1000,temp2;temp2=temp/10;temp=temp%10;float result; //被除数定义成float if(temp>4)result=temp2+1;elseresult=temp2;return result/100;1.2根据公式求圆周率#include <stdio.h>#include <math.h>double fun ( double eps) {}main( ) {double x;printf("Input eps:") ;scanf("%lf",&x);printf("\neps = %lf, PI=%lf\n", x, fun(x));NONO();}NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/ FILE *fp, *wf ;int i ;double x ;fp = fopen("c:\\test\\in.dat","r") ;wf = fopen("c:\\test\\out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fscanf(fp, "%lf", &x) ;fprintf(wf, "%lf\n", fun(x)) ;}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 <stdio.h>float fun(int m, int n) {}int main(void) /* 主函数*/ {printf("P=%f\n", fun (12,8));//NONO();return 1;}int NONO (void) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/ FILE *fp, *wf ;int i, m, n ;float s;fp = fopen("c:\\test\\in.dat","r") ;wf = fopen("c:\\test\\out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fscanf(fp, "%d,%d", &m, &n) ;s = fun(m, n) ;fprintf(wf, "%f\n", s) ;}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 <stdio.h>double fun( int n ) {}int main(void) /* 主函数*/ {printf("%f\n", fun(10));//NONO();return 1;}int NONO (void) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/ FILE *fp, *wf ;int i, n ;double s ;fp = fopen("c:\\test\\in.dat","r") ;wf = fopen("c:\\test\\out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fscanf(fp, "%d", &n) ;s = fun(n) ;fprintf(wf, "%f\n", s) ;}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 <stdio.h>void NONO(void);long fun(int a, int b) {}int main(void) {int a,b;long c;printf("Input a, b:");scanf("%d%d", &a, &b);c=fun(a, b);printf("The result is: %ld\n", c);NONO();return 0;}void NONO (void) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/FILE *rf, *wf ;int i, a,b ;long c ;rf = fopen("./44/in.dat","r") ;wf = fopen("./44/out.dat","w") ;for(i = 0 ; i < 10 ; i++) {fscanf(rf, "%d,%d", &a, &b) ;fun(a, b, &c) ;fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ;}fclose(rf) ;fclose(wf) ;}答案:long i1=(a%10)*1000;printf("aa=%d,bb=%d",b%10,b/10);long i2=(b%10)*100;long i3=a/10*10;long i4=b/10;//return a%10*1000+b%10*100+a/10*10+b/10; return i1+i2+i3+i4;1.6数学公式#include <stdio.h>/************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( "\nThe result is %lf\n", fun ( n ) ) ;}答案:double fun ( int m ) {for( i = 100;i <=m;i += 100 ) {1.7数学公式修正:当k=1时,第一项为4/1*3#include <stdio.h>#include <math.h>float fun(int k){}main ( ) {printf("%f\n", fun (10));}答案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的功能是:求三个数的最小公倍数。

相关文档
最新文档