c编程题分类.docx
- 文档编号:23288373
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:22
- 大小:24.62KB
c编程题分类.docx
《c编程题分类.docx》由会员分享,可在线阅读,更多相关《c编程题分类.docx(22页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 分类
![提示](https://static.bdocx.com/images/bang_tan.gif)