一、数字题:
1用函数指针指向要调用的函数,规定在_2_处使f指向函数f1,在_3_处使f指向函数f2。当调用正确时,程序输出:x1=5.
000000,x2=3.000000,x1*x1+x1*x2=40.000000
double fun(double a, double b)
double (*f)()double r1,r2;
f=f1;r1=f(a);f=f2;r2 = f)(a,b);
return r1+r2;}
2用函数指针指向要调用的函数,规定在_2_处使f指向函数f1,在_3_处使f指向函数f2。当调用正确时,程序输出:x1=5.
000000,x2=3.000000,x1*x1+x1*x2=40.000000
double fun(double x, double y)
if(i==1)return f1(x);
else return f2(x,y);
3将形参n所指变量中各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数:为739。
void fun(unsigned long *n)
unsigned long x=0,i;int t;i=1;
while(*n)
n=*n/10;}*n=x;}
4将形参n所指变量中各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。例如,输入一个数:27638496,新的数为64862。
unsigned long fun(unsigned long n)
unsigned long x=0;int t;
while(n)
t=t%10;
if(i%2==0)x=10*x+t;
n=n/10;}return x;}
5将形参n所指变量中各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,输入一个数:27638496,新的数为26846。
unsigned long fun(unsigned long n)
unsigned long x=0,s,i;int t;
s=n;i=1;
while(s)
t=s%10;
if(i%2==0)x=x+t*i;i=i*10;}
s=s/10;}return x;}
6求方程ax2+bx+c=0的根。例如,当a=1,b=2,c=1时,方程的两个根分别是:x1=-1.00,x2=-1.00。
main()
float a,b,c,disc,x1,x2,p,q;
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;clrscr();
printf("*the result **n");
if(disc>=0)
x1=(-b+sqrt(disc))/2*a);
x2=(-b-sqrt(disc))/2*a);
printf("x1=%6.2f,x2=%6.2f",x1,x2);}
else}7输出方程组a+b=56,a+2b=72的一组正整数解。结果是:a=40,b=16。
main()
int i,j;clrscr();
for(i=0;i<100; i++)
for(j=0;j<100; j++)
if(i+j==56&&i+2*j==72)
printf("a=%2d,b=%2d",i,j);}
8求方程ax2+bx+c=0的两个实数根。例如,当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00, x2=-1.00。
main()
float a,b,c,disc,x1,x2;clrscr();
do9判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!”,否则返回“no!”。
char *fun(int n)
int g,s,b;g=n%10;s=n/10%10;
b=n/100%10;
if((g+b)==s)return″yes!″;
else return″no!″;
10输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。例如,输入:-3847652,结果为:3847652。
main()
long int n;clrscr();
printf("enter the data;");
scanf(″%ld″,&n);
printf("*the absolute value **n");
if(n<0)n=-n;printf("");
printf(″%ld″, n);}
11计算如下公式的值。a1=1,a2=
1/(1+a1),a3=1/(1+a2),…an=1/(1+an+1)若n=10,则应输出:0.618056。
float fun(int n)
float a=1;int i;
for(i=1;i<=n;i++)a=1.0/(1+a);
return a;}
12计算并输出下列级数的前n项之和sn,直到sn+1大于q为止。sn=2/1+3/2+4/3
…n+1/n例如,若q的值为50.0,则函数值为50.416687。
double fun(double q)
int n;double s;n=2;s = 2.0;
while(s<=q)printf("n=%d",n);
return s;}
13计算s=f(-n)+f(-n+1)+…f(0)+f(1)+f(2)+…f(n)的值。当n为5时,s的值为:10.407143。
┌(x+1)/(x-2) x>0
f(x) =0x=0 或 x=2
└(x-1)/(x-2) x<0
float f(double x)
if(x==0.0||x==2.0)return 0.0;
else if(x<0.0)return(x -1)/(x-2);
else return (x +1)/(x-2);}
double fun(int n)
int i;double s=0.0,y;
for(i=-n;i<=n;i++)
y=f(1.0*i);s+=y;}return s;}
14求1+2!+3!+.n!的和。若n=6则和为873。
main()
int i,n;long s=0,t=1;
clrscr();printf("input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
printf("1!+2!+3!..d!=%ld",n,s);}
15计算sn=1/1-1/3+1/5-1/7+…1/(2n+1)的值。若n的值为15时,输出的结果是:s=0.769788,n=15。
void fun(float *sn,int n)
int i,j=1;float s=0.0;
for(i=0;i<=n;i++)
s=s+j*1.0/(2*i+1);j*=-1;}*sn=s;}
main()
int n=15;float s;fun(&s,n);
printf("s=%f n=%d",s,n);}
16计算sn的值:sn=1/1+3/1+5/4+…+2n-1)/(sn-1)当n=50时,sn=71.433699。
double fun(int n)
double s=1.0,s1=0.0;int k;
for(k=2;k<=n;k++)
s1=s;s+=(2*k-1)/s1;}return s;}
17计算s的值:s=13/31*35/53*57/75*…*2k-1)2k+1/(2k+1)2k-1
当k=5时,s=338.215158。
double fun(int n)
double s=1;double f=0.0;
double p=0.0;int i=0;int k;
for(k=1; k<=n;k++)
f=2*k-1;p=2*k+1;
for(i=1;i<2*k+1;i++)f*=2*k-1;
for(i=1;i<2*k-1;i++)p*=2*k+1;
s*=f/p;}return s;}
18计算下式:s=3/22-5/42+7/62-…+1)n-1*(2n+1)/(2n)2,直到(2n+1)/2n2的绝对值小于等于10-3,并把计算结果作为函数值返回。例如,若e的值为1e-3,函数值为0.
551690。
double fun(double e)
int i,k;double s,t,x;
s=0;k=1;i=2;x=3/4;
while(x>e)
s=s+k*x;k=k*(-1);t=2*i;
x=(2*i+1)/(t*t);i++;return s;}
19求p的值p=m!/(n!*(m-n)!)例如:m=11,n=4时,运行结果为330.000000。
long jc(int m)
long s=1;int i;
for(i=1;i<=m;i++)s=s*i;return s;}
float fun(int m,int n)
二级C上机题库100题
c语言机试答案。第一套 1.编写函数fun,它的功能是 计算并输出下列级数和 s 1 2 1 2 3 1 3 4 1 n n 1 例如,当n 10时,函数值为 0.909091 include include double fun int n double s 0 int i for i 1 i s...
份二级c语言上机50套编程题
1 请编写函数fun,其功能是 统计s所指字符串中的数字字符个数,并作为函数值返回。例如,s所指字符串中的内容是 2def35adh25 3kjsdf 7 kj8655x,函数fun返回值为 11 注意 部分源程序在文件文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填...
2019秋C语言上机试卷C
江苏省高等学校非计算机专业学生。计算机基础知识和应用能力等级考试上机试卷 2009年秋 二级c语言 试卷代号c04 本试卷完成时间70分钟 一 改错题 16分 程序功能 将一个实数转换为二进制科学计数法表示并输出。二进制科学记数法是指将一个绝对值大于2或小于1的实数记为a 2n形式,其中尾数a是用二...