二级C上机题库100题.docx

上传人:b****8 文档编号:28469672 上传时间:2023-07-14 格式:DOCX 页数:51 大小:26.92KB
下载 相关 举报
二级C上机题库100题.docx_第1页
第1页 / 共51页
二级C上机题库100题.docx_第2页
第2页 / 共51页
二级C上机题库100题.docx_第3页
第3页 / 共51页
二级C上机题库100题.docx_第4页
第4页 / 共51页
二级C上机题库100题.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

二级C上机题库100题.docx

《二级C上机题库100题.docx》由会员分享,可在线阅读,更多相关《二级C上机题库100题.docx(51页珍藏版)》请在冰豆网上搜索。

二级C上机题库100题.docx

二级C上机题库100题

C语言机试答案

第一套1.编写函数fun,它的功能是:

计算并输出下列级数和:

S=1/2+1/2*3+1/3*4+...1/n*(n+1)

例如,当n=10时,函数值为:

0.909091

#include

#include

doublefun(intn)

{

doubles=0;

inti;

for(i=1;i

s+=1.0/(i*(n+1));

returns;

}

main()

{

printf("%f\n",fun(10));

}

2.在[10000,20000]范围内考察个位数字是7的素数,问:

(1)这样的素数有多少个?

(2)其中最大的一个等于几?

#include

intmain(void)

{

intmax,num=0;

inti,j;

for(i=10000;i<20001;i++)

{

for(j=2;j

if(i%j==0)

break;

if(i==j&&i%10==7)

{

num++;

max=i;

}

}

printf("num=%d,max=%d\n",num,max);

return0;

}

3.编写程序,从键盘输入一年份,判断该年份是否为闰年。

#include

intmain(void)

{

intyear;

printf("pleaseinputtheyear:

\n");

scanf("%d",&year);

if((year%400==0)||(year%4==0&&year%100!

=0))

printf("%disaleapyear!

",year);

else

printf("%disnotaleapyear!

",year);

return0;

}

第二套1.编写函数fun,它的功能是:

计算并输出下列级数和:

例如,当n=10时,函数值为:

0.909091

#include

#include

doublefun(intn)

{

doubles=0;

inti;

for(i=1;i

s+=1.0/(i*(n+1));

returns;

}

main()

{

printf("%f\n",fun(10));

}

2.回文数是指正读和反读都一样的自然数。

例如,8,121,5445这三个数都是回文数。

求:

(1)[1,1000]之内既是回文数,又是素数的最大整数。

(2)[1,1000]以内既是回文数,又是素数的整数有多少个。

#include

inthuiwen(intn)

{

intp,m,flag=0;

ints=0;

m=n;

do

{

p=m%10;

s=s*10+p;

m=m/10;

}while(m);

if(s==n)

flag=1;

returnflag;

}

intsushu(intn)

{

inti,flag=0;

for(i=2;i

if(n%i==0)

break;

if(i==n)

flag=1;

returnflag;

}

intmain(void)

{

inti,max,num=0;

for(i=1;i<1001;i++)

{

if(huiwen(i)&&sushu(i))

{

max=i;

num++;

}

}

printf("num=%d,max=%d\n",num,max);

return0;

}

3.编写程序,能对输入一行字符,统计其中分别有多少个单词和空格。

比如输入:

”Howareyou”,有3个单词和2个空格

#include

intmain(void)

{

charline[81];

intword=0,blank=0,flag=0;

inti=0;

gets(line);

while(line[i]!

='\0')

{

if(line[i]=='')

{

blank++;

if(flag)

flag=0;

}

else

if(!

flag)

{

word++;

flag=1;

}

i++;

}

printf("word=%d,blank=%d",word,blank);

return0;

}

第三套1.编写函数fun,它的功能是:

求Fibonacci数列中大于t的最小的一个数,结果由函数返回。

其中Fibonacci数列F(n)的定义为:

F(0)=0,F

(1)=1F(n)=F(n-1)+F(n-2)例如:

当t=1000时,函数值为:

1597。

#include

#include

#include

intfun(intt)

{

intf1=0,f2=1,temp;

while(f2

{

temp=f1;

f1=f2;

f2=temp+f1;

}

returnf2;

}

main()

{

intn;

n=100;

printf("n=%d,f=%d\n",n,fun(n));

}

2.先从键盘上输入一个3行3列矩阵元素的值,然后输出主对角线元素平方之和.

#include

intmain(void)

{

intarray[3][3];

inti,j,sum=0;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

{

scanf("%d",&array[i][j]);

if(i==j)

sum+=array[i][j]*array[i][j];

}

printf("sum=%d\n",sum);

return0;

}

3.编程:

删除字符串中的数字字符。

#include

intmain(void)

{

charstring[81];

inti=0,j;

gets(string);

while(string[i]!

='\0')

{

if(string[i]>='0'&&string[i]<='9')

{

j=i;

do

{

string[j]=string[j+1];

j++;

}while(string[j]!

='\0');

}

else

i++;

}

printf("%s\n",string);

return0;

}

第四套1.编写函数fun,它的功能是:

求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。

例如若n为1000时,函数值应为:

s=153.909064。

#include

#include

#include

doublefun(intn)

{

inti;

doubles,sum=0;

for(i=1;i<1000;i++)

{

if(i%3==0&&i%7==0)

sum+=i;

}

s=sqrt(sum);

returns;

}

main()

{

printf("s=%f\n",fun(1000));

}

2.编程求出两个非零正整数的最大公约数.

#include

intmain(void)

{

intm,n,t;

printf("pleaseinputtwopositiveinteger:

\n");

scanf("%d%d",&m,&n);

if(m>0&&n>0)

{

if(m

{

t=m;m=n;n=t;

}

do

{

t=m%n;

m=n;

n=t;

}while(t);

printf("themaxcommondivisoris%d\n",m);

}

else

printf("Error!

\n");

return0;

}

3.请编写程序:

根据以下公式求π(要求满足精度0.0005)的近似值:

π/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+……+(1*2*3*4*……*n)/(3*5*7*……*(2n+1))

#include

intmain(void)

{

doublesum=1;

doublep=1,q=1;

intn=1;

while(p/q>5e-4)

{

p*=n;

q*=(2*n+1);

sum+=p/q;

n++;

}

printf("pi=%f",2*sum);

return0;

}

第五套1.现矩阵(3行3列)的转置(即行列互换)。

例如,输入下面的矩阵:

100200300

400500600

700800900

程序输出:

100400700

200500800

300600900

#include

#include

intfun(intarray[3][3])

{

inttemp,i,j;

for(i=0;i<3;i++)

{

for(j=0;j

{

temp=array[i][j];

array[i][j]=array[j][i];

array[j][i]=temp;

}

}

return0;

}

main()

{

inti,j;

intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%7d",array[i][j]);

printf("\n");

}

fun(array);

printf("convertedarray:

\n");

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

printf("%7d",array[i][j]);

printf("\n");

}

return0;

}

2.编写程序,计算s=s=1-1/2+1/3-1/4+……+1/99-1/100

#include

intmain(void)

{

doubles=0;

inti,flag=1;

for(i=1;i<101;i++)

{

s+=1.0/i*flag;

flag=-flag;

}

printf("s=%f\n",s);

return0;

}

3.编写程序,求2~100中的所有的亲密素数对的个数。

亲密素数:

如果x是素数,则x+2也是素数。

#include

intsushu(intn)

{

inti,flag=0;

for(i=2;i

if(n%i==0)

break;

if(i==n)

flag=1;returnflag;

}

intmain(void)

{

inti,num=0;

for(i=2;i<101;i++)

if(sushu(i)&&sushu(i+2))

{

printf("%d,%d\n",i,i+2);

num++;

}

printf("num=%d\n",num);

return0;

}

第六套1.从键盘入一个整数k(2≦k≦10000),输出它的所有质因子(即所有为素数的因子)。

例如,若输入整数:

2310,则应输出:

2、3、5、7、11。

#include

intsushu(intn)

{

inti,flag=0;

for(i=2;i

if(n%i==0)

//break;

if(i==n)

flag=1;

returnflag;

}

intmain(void)

{

inti,k;

printf("pleaseinputaninteger:

(2<=k<=10000)\n");

scanf("%d",&k);

for(i=2;i

{

if(k%i==0&&sushu(i))

printf("%d\t",i);

}

return0;

}

2.编写函数fun,它的功能是:

计算正整数n所有因子(1和n除外)之和作为函数值返回。

例如:

n=120时,函数值为239

#include

#include

intfun(intn)

{

inti,sum=0;

for(i=2;i

if(n%i==0)

sum+=i;

returnsum;

}

main()

{

printf("%d\n",fun(120));

}

3.编写程序,求s=1/(1*2)+1/(2*3)+……+1/(n*(n+1)

#include

#include

doublefun(intn)

{

doubles=0;

inti;

for(i=1;i

s+=1.0/(i*(n+1));

returns;

}

main()

{

printf("%f\n",fun(10));

}

第七套1.编写函数fun,它的功能是计算下列级数和,和值由函数值返回。

例如,当n=10,x=0.3时,函数值为1.349859

#include

#include

#include

doublefun(doublex,intn)

{

doubles=1,p=1;

inti;

for(i=1;i

{

p*=x/i;

s+=p;

}

returns;

}

main()

{

printf("%f\n",fun(0.3,10));

}

2.编写程序,求出并输出所有的“水仙花数”。

所谓水仙花数,是指一个三位数,其各位数字的立方之和等于该数。

#include

main()

{

inta,b,c,d,k;

for(k=100;k<=999;k++)

{

a=k/100;

b=(k-a*100)/10;

c=k-a*100-b*10;

d=a*a*a+b*b*b+c*c*c;

if(k==d)

printf("%5d",k);

}

printf("\n");

}

3.给出三角形的三边a,b,c,求三角形的面积。

#include

#include

main()

{

floata,b,c,area,p;

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

p=(a+b+c)/2;

if(a+b>c&&a+c>b&&b+c>a)

{

area=sqrt(p*(p-a)*(p-b)*(p-c));

printf("Area=%6.2f\n",area);

}

elseprintf("Error\n");

}

第八套1.编写函数fun,函数的功能是:

根据以下公式计算s,计算结果作为函数值返回:

n通过形参传入。

S=1+1/(1+2)+1/(1+2+3)+……+1/(1+2+3+…+N)

例如:

若n的值为11时,则函数的值为:

1.833333

#include

#include

#include

floatfun(intn)

{

inti;

floats=0,p=0;

for(i=1;i

{

p+=i;

s+=1.0/p;

}

returns;

}

main()

{

intn;

floats;

printf("\npleaseenterN:

");

scanf("%d",&n);

s=fun(n);

printf("theresultis:

%f\n",s);

}

2.编程求:

一球从100米高度自由落下,每次落地后反跳回原来高度的一半,再落下。

求它在第10次落地时,共经过多少米?

第10次反弹多高?

#include

intmain(void)

{

inti;

doubles=100,sum=100;

for(i=1;i<10;i++)

{s=s/2;

sum+=2*s;

}

printf("s=%lf,sum=%lf\n",s/2,sum);

return0;

}

3.编程:

根据以下公式求π值,并作为函数值返回.(精确到0.000001).

π/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+……

#include

intmain(void)

{

doublesum=1;

doublep=1,q=1;

intn=1;

while(p/q>5e-4)

{

p*=n;

q*=(2*n+1);

sum+=p/q;

n++;

}

printf("pi=%f",2*sum);

return0;

}

第九套1.下列程序中,函数fun的功能是:

将十进制正整数m转换成k(2≤k≤9)进制数,并按位输出。

例如:

若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。

#include

#include

voidfun(intm,intk)

{

intt=1;

longs=0;

do

{

s+=(m%k)*t;

t*=10;

}

while(m/=k);

s+=(m%k)*t;

printf("%d",s);

}

main()

{

intb,n;

printf("\npleaseenteranumberandabase:

\n");

scanf("%d%d",&n,&b);

fun(n,b);

printf("\n");

}

2.一个自然数平方的末几位与该数相同时,称该数为同构数.例如,252=625,则25为同构数.编程求出1~1000中所有的同构数.

#include"stdio.h"

main()

{

inta,b;

for(a=1;a<10;a++)

{

b=a*a;

if(b%10==a)printf("%4d\n",a);

}

for(a=10;a<100;a++)

{

b=a*a;

if(b%100==a)printf("%4d\n",a);

}

for(a=100;a<=1000;a++)

{

b=a*a;

if(b%1000==a)printf("%4d\n",a);

}

}

3.编程计算的值。

当程序正确时,结果为:

2488.000000。

函数定义-1.0如下:

f(x)=2x*x+3x+4(x>=2)且f(x)=-2x*x+3x-4(x<2)

#include

doublefun(doublex)

{

doubles;

if(x<=2)

s=2*x*x+3*x+4;

else

s=-2*x*x+3*x-4;

returns;

}

intmain(void)

{

doubles;

s=fun(fun(-1.0)+fun(5.0));

printf("%f\n",s);

return0;

}

第十套1.下列程序中,fun函数的功能是:

求s=aa…aa-…-aaa–aa–a

(此处aa…aa表示n个a,a和n的值在1至9之间)

例如:

a=3,n=6,则以上表达式为:

s=333333–33333–3333–333–33–3其值为:

296298

#include

#include

longfun(inta,intn)

{

inti;

longs=a,p=a;

for(i=1;i

{

p=p*10+a;

if(i==n-1)

s=p-s;

else

s+=p;

}

returns;

}

main()

{

inta,n;

printf("\npleaseenteraandn:

");

scanf("%d%d",&a,&n);

printf("Thevalueoffunctionis:

%ld\n",fun(a,n));

}

2.将4~100中的偶数分解成两个素数之和,每个数只取一种分解结果.如100=3+97,100=11+89,100=17+83等,但我们只取第一种分解即可.

#include

main()

{

intx,k,a,b,count=0;

for(x=4;x<101;x=x+2)

{

for(a=2;a<=(x/2);a++)

{

for(k=2;k

if(a%k==0)break;

if(a==k)

{

b=x-a;

for(k=2;k

if(b%k==0)break;

if(b=k)

{

printf("%3d=%3d+%3d\t",x,a,b);

count++;

break;

if(count%3==0)

printf("\n");

}

}

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1