C语言程序设计练习题(含程序及参考答案) 下载本文

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 void fun(long s,long *t) {

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 #include double fun(n) {

第 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 fun(int m) {

int i,k;

第 8 页 共 46 页