C语言要求求51以内所有素数的和,二级C语言上机考题.doc

二级C语言上机考题二级C语言上机考题

填空题:

一、数字题:

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传回所指变量。例如,输入一个数新的数:为739。

void fun(unsigned long *n)

{unsigned long x=0,i;int t;i=1;

while(*n){t=*n%10;

if(t%2!=0){x=x+t*i;i=i*10;}

*n=*n/10;}*n=x;}

4将形参n所指变量中各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。例如,输入一个数新的数为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所指变量中各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。例如,输入一个数新的数为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\n",x1,x2);}

else{p=-b/(2*a);

q=sqrt(fabs(disc))/(2*a);

printf("x1=%6.2f+%6.2f i\n",p,q);

printf("x2=%6.2f-%6.2f i\n",p,q);}}

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();

do{printf("Input a,b,c:");

scanf("%f,%f,%f",&a,&b,&c);

disc=b*b-4*a*c;

if(disc<0)

printf("disc=%f\n Input again!\n",disc);

}while(disc<0);

printf("*******the result*******\n");

x1=(-b+sqrt(disc))/(2*a);

x2=(-b-sqrt(disc))/(2*a);

printf("\nx1=%6.2f\nx2=%6.2f\n",x1,x2);}

9判断一个数的个位数字和百位数字之和是否等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值