c编程题分类.docx

上传人:b****1 文档编号:23288373 上传时间:2023-05-16 格式:DOCX 页数:22 大小:24.62KB
下载 相关 举报
c编程题分类.docx_第1页
第1页 / 共22页
c编程题分类.docx_第2页
第2页 / 共22页
c编程题分类.docx_第3页
第3页 / 共22页
c编程题分类.docx_第4页
第4页 / 共22页
c编程题分类.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

c编程题分类.docx

《c编程题分类.docx》由会员分享,可在线阅读,更多相关《c编程题分类.docx(22页珍藏版)》请在冰豆网上搜索。

c编程题分类.docx

c编程题分类

一、程序题

(类型:

程序填空题、改错题和设计题)

第一组

1、下面程序是求[1,450]之间同时满足除3余2和除5余3条件的数的个数。

请将程序补充完整,并给出正确结果,填入相应窗口。

程序:

结果是:

30

#include

#include

#include

main()

{intcount;

inti;

sum=0

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

{if(fmod(i,3)==2&&fmod(i,5)==3)

_____________

}

clrscr();

printf(“%d”,count);

}

3、下面程序是求[50,300]之间的所有偶数的平方和。

请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

程序:

结果是:

4525500

#include

#include

#include

main()

{

Intcount;

inti;

sum=0;

for(i=50;i<=300;i++)

{if(fmod(i,2)!

=0)

sum+=i*i;

}

 

第二组

1、程序是求s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*....*n)/(3*5*7*.....(2*n+1))请修改程序中的错误,并运行修改后的程序。

当n=30时,程序的运行结果(按四舍五入保留10位小数)。

程序:

结果:

1.5707963267

#include

#include

#include

doublefun(intn)

{doubles,t;inti;

s=1.0;t=1.0;

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

{t=t*i/(2*i+1);s=t;}

returns;

}

main()

{

printf("\n%12.10lf",fun(30));

}

2、下面的程序是计算如下公式的A30值。

A1=1,A2=1/(1+A1),A3=1/(1+A2),A4=1/(1+A3),......请改正程序中的错误,并给出程序运行的正确结果(按四舍五入保留10位小数)。

程序:

结果为:

0.6180339887

#include

#include

#include

doublefun(intn)

{doubles,t,intii;

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

A=1/(1+A);

return;

}

main()

{clrscr();

printf("%12.10lf\n",fun(30));

}

3、下面的程序是求表达式的值:

s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*......*n)/(3*5*7*......(2*n+1))请将程序补充完整,并给出当n=25时,程序的运行结果(按四舍五入保留10位小数)程序:

结果:

1.5707963218

#include

#include

#include

doublefun(intn)

{doubles,t;inti;

s=1,0

t=1.0;

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

t=t*i/(2*i+1);

s=t_

returns;

}

main()

{printf("\n%12.10lf",fun(25));}

4、下面的程序中,函数fun的功能是:

根据形参m,计算下面公式的值。

T=1+1/(2*3)+1/(3*4)+......+1/(m*(m+1))请改正程序中的错误,并运行改正后的程序。

当从键盘输入50时,给出程序运行的正确结果(按四舍五入保留6位小数)。

程序:

#include

#include

#include

doublefun(intm)

{doublet=1.0;inti=2;

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

t+=1/(i*(i+1));

returnt;

}

main()

{intm;

clrscr();

printf("\n请输入一个整数:

");

scanf("%d",m);

printf("\n结果是:

%lf\n",fun(m));

}

第三组

1、斐波那契数列的前二项是1,1,以后每一项都是前面两项之和。

求10000000以内有多少个斐波那契数?

结果是:

35

2、已知fibonacci数列:

1,1,2,3,5,8,......,它可由下面公式表述:

F

(1)=1ifn=1F

(2)=1ifn=2F(n)=F(n-1)+F(n-2)

ifn>2以下程序是求F(35),请将程序补充完整,并给出正确结果,填入相应窗口。

程序:

结果:

9227465

#include

#include

main()

{

doublef1,f2;

inti;

fib[1]=1;

f2=1;

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

{f1=f1+f2;_______________}

clrscr();

printf("\nthenumberis:

%12.0lf",f1);

}

3、已知:

f(0)=f

(1)=1f

(2)=0f(n)=f(n-1)-2*f(n-2)+f(n-3)(n>2)求f(0)到f(50)中的最大值。

结果是:

598325

第四组

1、所谓“水仙花数”是指一个三位数,其各位数字的三次方之和等于该数本身,例如:

153=1^3+3^3+5^3,故153是水仙花数,求[100,999]之间所有水仙花数之和。

结果:

1301

2、若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四位双平方数”。

例如:

由于7396=86^2,且7+3+9+6=25=5^2,则称7396是“四位双平方数”。

若把所有“四位双平方数”按升序排列,求前5个“四位双平方数”的和。

结果:

10132

3、设有十进制数字a,b,c,d和e,它们满足下列式子:

abcd*e=bcde(a不等于0,e不等于0或1),求满足上述条件的所有四位数abcd的和。

结果:

3665

4、所谓“同构数”是指这样一个数,它出现在它的平方数的右侧,例如5的平方是25,25的平方是625,故5和25都是同构数,求[2,1000]之间有多少个同构数。

结果:

6

5、某些分数的分子和分母都是二位正整数的真分数具有下列特点:

如果将该分数的分子的两位数字相加作分子,而将该分数的分母的两位数字相加作分母,得到的新分子跟原分子相等。

例如,63/84=(6+3)/(8+4)。

试求所有具有这种特点的真分子(非约简真分数)的分子与分母之和的和。

结果:

10134

6、若某正整数平方等于某两个正整数平方之和,称该正整数为弦数。

例如:

由于3^2+4^2=5^2,则5为弦数,求[131,200]之间最小的弦数结果:

135

7、一个数如果恰好等于它的所有真因子之和,这个数就称为“完数”。

例如,6的真因子为1,2,3,而6=1+2+3,因此,6是“完数”。

求[1,1000]之间的第二大完数。

结果是:

28

8、以下程序求10000以内的所有完全数之和,请将程序补充完整,并给出正确结果,填入相应窗口。

“完全数”是指:

一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:

6=1+2+3,则6就是一个完全数。

程序:

结果是:

8658

#include

#include

#include

main()

{intsum,n,m,s,k;

sum=0;

for(n=3;n<=10000;n++)

{_________

k=n/2+1;

for(m=1;m

if(n%m==0)

s=s

9、已知24有8个正整数因子(即:

1,2,3,4,6,8,12,24),而24正好能被其因子数8整除,求正整数[10,100]之间有多少个正整数能被其因子的个数整除。

结果是:

12

10、已知24有8个因子(即:

1,2,3,4,6,8,12,24),而24正好被8整除。

求[10,200]之间有多少个整数能被其因子的个数整除,将下列程序补充完整,正确结果填入相应窗口。

程序:

结果是:

21

#include

#include

#include

main()

{inta,b,c,n,count=0;

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

{________

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

if(a%c==0)________

if(a%b==0){count++;}

11、求[200,300]之间第二大有奇数个不同因子的整数(在计算因子个数时,包括该数本身)。

结果是:

256

12、若某整数平方等于某两个正整数平方之和的正整数称为弦数。

例如:

由于3^2+4^2=5^2,则5为弦数,求[100,200]之间弦数的个数。

结果是:

55

13、A,B,C是三个小于或等于100正整数,当满足1/A^2+1/B^2=1/C^2关系时,称为倒勾股数。

求130B>C的倒勾股数有多少组。

结果是:

1

第五组

1、素数

下面的程序是求[20,700]之间所有的素数的个数。

请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

结果:

117

程序:

#include

#include

#include

intprime(intn)

{

intyes,i;

if(n<=1){return0;}

yes=0;;

for(i=2;i<=sqrt(n);i++)

if(n%i==0){yes=0;break;}

returnyes;

}

main()

{intcount=0,i;

clrscr();

for(i=20;i<=700;i++)

count=count+prime(i)//增加的

printf(“count=%d”,count);//增加的

}

2、下面的程序是求1000以内的最大的20个素数之和。

请修改程序中的错误,使它能得出正确的结果,并给出正确结果。

程序:

结果:

18580

#include

#include

#include

intfun(inthigh)

{intsum=0,n=0,j,yes;

while((high>=2)||(n<10))

{yes=1;

for(j=2;j<=sqrt(high);j++)

if(high%j==0)

yes=0;

break;

if(yes){sum+=high;n++;}

high--;

3、若两个素数之差为2,则称这两个素数为双胞胎数。

求出[200,1000]之内有多少对双胞胎数。

结果是:

20

4、梅森尼数是指能使2^n-1为素数的数n,求[2,21]范围内最大的梅素尼数?

结果是:

19

第六组

1、爱因斯坦走台阶:

有一台阶,如果每次走两阶,最后剩一阶;如果每次走三阶,最后剩两阶;如果每次走四阶,最后剩三阶;如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶;如果每次走七阶,刚好走完.求满足上述条件的最小台阶数是多少?

结果是:

119

2、穷举法

把一张一元钞票,换成一分、二分和五分硬币,每种至少5枚,问有多少种方案?

结果是:

205

3、下面的程序是求如下表达式的值。

S=sqrt(ln

(1)+ln

(2)+ln(3)+……+ln(n))请改正程序中的错误,并运行修改后的程序,当n=50时,给出程序运行结果(按四舍五入保留6位小数)。

程序:

结果是:

12.18515

#include

#include

#include

intfun(intn)

{ints=0;inti;

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

s+=log(1.0*i);

s=sqrt(s);

returns;

}

main()

{clrscr();

printf("%lf\n",fun(50));

}

4、某一正整数,进行递减,每次将该数减半后再减一,当对该数进行第10次减半时发现该数只剩下1不能再减了,求该数。

结果是:

1534

5、已知A

结果是:

109

第七组:

综合题一

1、下面的程序是求500以内的所有的素数的个数。

请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

程序:

结果是:

95

#include

#include

#include

intprime(intn)

{intyes,i;

if(n<=1){return1;}

yes=1;

for(i=2;i<=sqrt(n);i++)

if(n%i==0){yes=0;break;}

returnyes;}

main()

{intcount=0,i;

clrscr();

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

2、下面的程序是求如下表达式的值。

S=sqrt(ln

(1)+ln

(2)+ln(3)+……+ln(n))将程序补充完整,当n=40时,给出程序运行结果(按四舍五入保留6位小数)。

程序:

结果是:

10.503363

#include

#include

#include

doublefun(intn)

{doubles=0.0;

inti;

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

s+=log(1.0*i);

________________

returns;

}

main()

{clrscr();

printf(___________);

}

3、若某整数平方等于某两个正整数平方之和的正整数称为弦数。

例如:

由于3^2+4^2=5^2,则5为弦数,求[100,200]之间弦数的个数。

结果是:

55

第八组:

综合题二

1、列程序的功能是求出以下分数序列的前25项之和,2/1,3/2,5/3,8/5,13/8,21/13,......请改正程序中的错误,并运行修改后程序,给出程序结果(按四舍五入保留6位小数)。

程序:

结果是:

40.750431

#include

#include

fun(n)

{longa,b,c;

intk;doubles;

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;

}

returns;

}

main()

{intn=25;

clrscr();

printf("\nresult:

%lf\n",fun(n));

}

2、下面程序是求[1,100]之间的所有整数的立方和。

请将程序补充完整,并给出正确结果,填入相应窗口。

程序:

结果是:

25502500

#include

#include

#include

main()

{longsum;

______________

sum=0;

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

{_______________}

clrscr();

printf("%ld\n",sum);

}

3、有十进制数字a,b,c,d和e,它们满足下列式子:

abcd*e=bcde(a不等于0,e不等于0或1),求满足上述条件的所有四位数bcde的和。

结果是:

16659

二、选择题

1.在TC中,若k是int型变量,且有下面的程序片段:

intk=-2;

if(k<=0)

printf("####");

else

printf("&&&&");

上面程序片段的输出结果是()。

A有语法错误,无输出结果B&&&&C####&&&&D####

2.C语言程序是由()组成的。

A函数B过程C主程序和子程序D子程序

3.下列语句中符合C语言语法的赋值语句是()。

Aa=0x7bc=a7;Ba=0x7b=a7;

Ca=0x7b,c=a7;Da=0x7b,b,a7;

4.在TC中,已知:

unsignedintx=65535;则执行以下语句后的x值为()。

printf(“%d\n”,x);

A65535B1C无定值D-1

5.在C语言中,下列不正确的转义字符是()。

A'\\'B'\t'C'074'D'\0'

6.在C语言中,要求运算数必须是整型的运算符是()。

A/B%C

7.在C语言中,以下一组运算符中,优先级最高的运算符是()。

A<=B%C=D&&

8.在TC中,若已定义x和y为double类型,则表达式:

x=1,y=x+3/2的值是()

A2.000000B2C1D2.5

9.在C语言中,能实现字符串连接的函数是()。

Astrcat()Bstrcmp()Cstrcpy()Dstrlen()

10.在TC中,为了判断两个字符s1和s2是否相等,应当使用()。

Aif(strcmp(s1,s2)==0)Bif(s1=s2)

Cif(strcpy(s1,s2))Dif(s1==s2)

11.在TC中,函数调用:

strcat(strcpy(str1,str2),str3)的功能是()。

A将串str1复制到串str2中后再连接到串str3之后

B将串str1连接到串str2之后再复制到串str3之后

C将串str2连接到串str1之后再将串str1复制到串str3中

D将串str2复制到串str1中后再将串str3连接到串str1之后

12.在C语言中,以下哪个函数用于将字符输出到标准输出设备()。

Aputchar()Bopen()Cread()Dgetw()

13.在TC中,下列关于switch语句和break语句的结论中,只有()是正确的。

A在switch语句中可以根据需要使用或不使用break语句

Bbreak语句是switch语句的一部分

C在switch语句中必须使用break语句

D其它三个结论中有两个是正确的

14.在TC中,设有如下定义:

inta=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:

(m=a>b)&&(n=c>d)后,n的值为()。

A1B3C2D0

15.在C语言中,当do-while语句中的条件为()时,结束该循环。

ATUREB1C0D非0

16.在C语言中,有表达式x=abs(8-10),则x的值为()。

A-2B2C18D80

17.在C语言中,有:

charstr[]="abcd";printf(%d\n",strlen(str));上面程序片段的输出结果是()。

A3B4C6D12

18.在TC中,下列语句的输出结果是()。

printf("%d\n",strlen("ATS\n012\1\\"));

A9B10C11D8

19.在TC中,表达式:

10!

=9的值是()。

ATUREB1C0D非零值

20.在TC中,假定有以下变量定义:

intk=7,x=12;则能使其值为3的表达式是()。

Ax%=(K%=5)Bx%=(k-k%5)

Cx%=k-k%5D(x%=k)-(k%=5)

21.在TC中,若u=1,v=2,w=3,则表达式w==(v=-u)执行完后w的值是(  )。

A3B2C1D0

22.在TC中,若w=1,x=2,y=3,z=4;则条件表达式:

w>x?

w:

y

y:

z的结果为()。

A4B2C3D1

23.在TC中,若x和y都是int型变量,x=100,y=200,下列语句的输出结果是()。

printf("%d\n",(x,y));

A100200B100C200

D输出格式符不够,输出不确定的值

24.在TC中,已知:

intx=10,y=3,z;则下列语句的输出结果是()。

printf(“%d\n”,z=(x%y,x/y));

A1B0C3D4

25.在C语言中,合法的数组定义是()。

Achara[]={0,1,2,3,4,5};Binta[5]={0,1,2,3,4,5};

Cints="string";Dinta[]="string";

26.在C语言中,定义数组inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},则a[3]的值为()。

A3B4C5D6

27.在C语言中,定义数组inta[2][4]={3,4,5,6,7,8,9,10},则a[0][3]的值为()。

A9B6C7D8

28.在TC中,若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()

AaBa>0Ca<0D

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

当前位置:首页 > 高等教育 > 教育学

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

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