2010-2011 C语言程序试题及答案
{
int i;
float s=1.0,h=1; for (i=2;i<=n;i++) {
h=h+i; s=s+1.0/h;
}
return s; }
void main() {
int n;float s;
printf(\ s=fun(n);
printf(\ }
6、将一个整数中的每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例
如,当s中的数为:87653142时,t中的数为:7531。 #include
int d;
第 5 页 共 46 页
2010-2011 C语言程序试题及答案
long s1=1;
*t=0;
while (s>0) {
d=s; if(d%2!=0) {
*t=d*s1+*t; s1=s1*10; } s/=10; } } main() {
long s,t;
printf(\
scanf(\ fun(s,&t);
printf(\}
7、计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值从键盘传入,若k的值为500,则输出4622。 #include
第 6 页 共 46 页
2010-2011 C语言程序试题及答案
int fun(int k) {
int m=0,mc=0,j; while((k>=1)&&(mc<10))
{
if ((k == 0)||(k == 0)) {
m=m+k;mc++; }
k--; }
return m; }
void main() {
printf(\}
8、已知一个数列的前三项分别为0,0,1, 以后的各项都是其相邻的前三项之和,计算并输出该数列前n项的平方根之和sum。例如,当n=10时,程序的输出结果应为:23.197745。 #include
第 7 页 共 46 页
2010-2011 C语言程序试题及答案
double sum,s0,s1,s2,s; int k; sum = 1.0;
if(n <= 2) sum = 0.0;
s0 = 0.0; s1 = 0.0; s2 = 1.0; for (k = 4; k <= n; k++) { s = s0 + s1 + s2; sum += sqrt(s);
s0 = s1; s1 = s2; s2 = s; } return sum; }
void main ( ) {
int n;
printf(\ scanf(\
printf(\}
9、编写一个程序,从键盘输入m,输出大于m且紧随m的素数。 #include
int i,k;
第 8 页 共 46 页