niusouti.com

国外流行FUN的家庭生活方式,其内容包括()A、F—健身B、U—和谐C、N—营养D、其他

题目

国外流行FUN的家庭生活方式,其内容包括()

  • A、F—健身
  • B、U—和谐
  • C、N—营养
  • D、其他

相似考题
更多“国外流行FUN的家庭生活方式,其内容包括()A、F—健身B、U—和谐C、N—营养D、其他”相关问题
  • 第1题:

    请编写一个函数int fun(int n),其中n为自然数。函数fun()的功能是求出自然数n(包括n)以内所有素数的和,并返回其值。

    注意;部分源程序已存在文件PROC11.cpp中。

    请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。

    文件PROC11.cpp的内容如下:

    //PROC11.cpp

    include<iostream>

    using namespace std;

    int fun(int n);

    int main()

    {

    int number;

    cout<<"Enter the number which you want to caculate: \n";

    cin>>number;

    cout<<"The result is:"<<fun(number)<<end1;

    return 0;

    }

    int fun(int n)

    {

    //* * * * * * * * *

    }


    正确答案:

  • 第2题:

    请编写函数fun(),其功能是;计算井输出下列多项式值。

    S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)

    例如,若主函数从键盘给n输入8后,则输出为 S-0.662872。

    注意;部分源程序给出如下。

    请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。

    试题程序;

    include<stdio. h>

    double fun(int n)

    {

    }

    main ()

    {

    int n;

    double s;

    printf("\nInput n: ");

    scanf ("%d", &n);

    s=fun (n);

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

    }


    正确答案:double fun(int n) { int i; double s=0.0; for (i=1; i=n; i++) s=s+(1.0/(2*i-1)-1.0/(2*i)); /*计算S= (1-1/2) + (1/3-1/4) +…+ (1/(2n-1)-l/2n) */ return s; }
    double fun(int n) { int i; double s=0.0; for (i=1; i=n; i++) s=s+(1.0/(2*i-1)-1.0/(2*i)); /*计算S= (1-1/2) + (1/3-1/4) +…+ (1/(2n-1)-l/2n) */ return s; } 解析:本题中s=s+(1.0/(2*i-1)-1,O/(2*i));语句是用C程序去表达题目中的每一项,这是关键,其他问题不难理解。

  • 第3题:

    数组xx[N]保存着一组4位无符号整数,其元素的个数通过变量num传入函数fun()。请补充函数fun(),该函数的功能是:从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数fun()返回。

    例如:当xx[8]={1111,2413,2321,2222,4245,3333,1414, 5335}时,bb[6]={1111,2321,2222,4245,3333,1414)。

    注意:部分源程序给出如下。

    请勿改动主函数main 和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio. h>

    include<conio. h>

    define N 1000

    int fun (int xx [], int bb [], int num)

    {

    int i, n=0;

    int g,b;

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

    {

    g=【 】;

    b=xx [i]/100%10;

    if (g==b)

    【 】

    }

    return【 】;

    }

    main()

    {

    int xx [8] ={1111,2413, 2321, 2222, 4245,

    3333,1414,5335 };

    int yy[N];

    int num=0, n=0, i=0;

    num=8;

    clrscr ();

    printf ("*****original data ******\n ");

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

    printf ("%u ",xx[i]);

    printf ("\n\n\n");

    n=fun (xx, yy, num);

    printf ("\n yy= ");

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

    printf ("%u ", yy [i]);

    }


    正确答案:xx[i]%10 bb[n++]=xx [i] n
    xx[i]%10 bb[n++]=xx [i] n 解析:第一空:变量b存放了4位数的百位数字,所以变量8应该存放4位数的个位数字,将这个4位数劝10求余,则得到这个数的个位数字。第三空:将个位数字与百位数字相等的整数存于数组bb中。第三空:变量n记录了个位数字等于百位数字的整数的个数,题目要求个数由函数fun()返回,所以应返回n。

  • 第4题:

    请编写一个函数void fun(int p[],int n,int c),其中数组p的元素按由小到大的顺序排列,其元素个数为n。函数fun()的功能是将c插入到数组p中,且保持数组的升序排列。

    注意:部分源程序已存在文件PROC9.cpp中。

    请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句;

    文件PROC9.cpp的内容如下:

    //PROC9.cpp

    include <iostream>

    include <string>

    using namespace std;

    define M 30

    void fun(int p[ ],int n,int c);

    int main ()

    {

    int pp[M],n,i;

    int fg, c;

    cout<<"Please input n:\n";

    cin>>n;

    cout<<"Please input the n data:\n";

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

    cin>>pp [i];

    cout<<"Please input c:\n";

    cin>>c;

    fun (pp, n, c);

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

    cout<<pp [i] << " " ;

    cout<<end1;

    return 0;

    }

    void fun(int p[ ],int n, int c)

    {

    //* * * * * * * * *

    }


    正确答案:

  • 第5题:

    请编写函数fun(),其功能是:计算并输出下列多项式的值。

    S=1+4/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)

    例如,着主函数从键盘给n输入50后,则输出为 S=1.960784。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <stdio.h>

    double fun(int n)

    {

    }

    main ()

    {

    int n;

    double s;

    printf ("\nInput n: ");

    scanf ("%d", &n);

    s=fun (n);

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

    }


    正确答案:double fun (int n) { int i; double s=0.0s1=0.0; for(i=1;i=n;i++) {s1=s1+i; /*求每—项的分母*/ s=s+1.0/s1; /*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/ } return s; }
    double fun (int n) { int i; double s=0.0,s1=0.0; for(i=1;i=n;i++) {s1=s1+i; /*求每—项的分母*/ s=s+1.0/s1; /*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/ } return s; } 解析:该程序的数学思路是:在程序中输入n后,以前n项的和作为分母递加,由于s1是浮点类数据所以s=s+1.0/s1; for 循环的作用是每一次循环给总结果s加上一项1.0/s1。

  • 第6题:

    请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为

    F(0)=0,F(1)=1

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

    例如:t=1000时,函数值为987。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <conio.h>

    include <math.h>

    include <stdio.h>

    int fun(int t)

    {

    }

    main()

    {

    int n;

    clrscr();

    n=1000;

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

    }


    正确答案:int fun(int t) { int a=1b=1c=0i; /*a代表第n-2项b代表第n-1项c代表第n项*/ /*如果求得的数。比指定比较的数小则计算下一个Fibonacci数对ab得新置数*/ do { c=a+b; a=b; b=c; } while(ct); /*如果求得的数c比指定比较的数大时退出循环*/ c=a; /*此时数c的前一个Fibonacci数为小于指定比较的数的最大的数*/ return c; }
    int fun(int t) { int a=1,b=1,c=0,i; /*a代表第n-2项,b代表第n-1项,c代表第n项*/ /*如果求得的数。比指定比较的数小,则计算下一个Fibonacci数,对a,b得新置数*/ do { c=a+b; a=b; b=c; } while(ct); /*如果求得的数c比指定比较的数大时,退出循环*/ c=a; /*此时数c的前一个Fibonacci数为小于指定比较的数的最大的数*/ return c; } 解析:根据所给数列定义不难发现,该数列最终的结果是由两个数列之和组成,所以可以在循环内部始终把c看成是前两项之和(即第n项),而a始终代表第n-2项,b始终代表第n-1项(通过不断地重新赋值来实现)。应注意,退出循环时得到的数c是大于指定比较的数的最小的数,而它的前一个数就是小于指定比较的数的最大的数。

  • 第7题:

    以下程序的输出结果是()。includeint fun(int n,int *s){ int f1,f2;if(n==0||n==1)*s=

    以下程序的输出结果是( )。 #include<stdio.h> int fun(int n,int *s) { int f1,f2; if(n==0||n==1) *s=1; else { fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } } void main() { int x; fun(6,&x); printf("\n%d" ,x);}

    A.7

    B.13

    C.9

    D.10


    正确答案:B
    解析:n=0或n=1是递归的终止条件。然后利用已知值逐步递推求出未知值。注意:通过传送地址值,在被调用函数中直接改变调用函数中的变量的值。

  • 第8题:

    请编写函数fun(),它的功能是计算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2

    s作为函数值返回。

    在C语言中可调用log(n)函数求In(n)。log函数的引用说明是double log(double x)。

    例如,若m的值为15,则fun()函数值为723.570801。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <math.h>

    double fun(int m)

    {

    }

    main()

    {

    clrscr();

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

    }


    正确答案:double fun(int m) {   int i; double s=1.0; for(i=1;i=m;i++) s=s-log(i); /*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/ return (s*s); /*对s求平方并返回*/ }
    double fun(int m) {   int i; double s=1.0; for(i=1;i=m;i++) s=s-log(i); /*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/ return (s*s); /*对s求平方并返回*/ } 解析:首先,题目要求计算1依次减去1到M的对数,可用从1到M的循环,每次循环都减一个数的对数。该题需要注意,log()函数的形式参数应浩如烟海double型变量,用于循环的基数变量为整数,需要进行强制转换。最后在返回的时求平方。

  • 第9题:

    请编写函数fun(),其功能是:计算并输出下列多项式值。

    S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+l/2n)

    例如,若主函数从键盘给n输入12后,则输出为 S=3.775958。

    n的值要求大于1但不大于100。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<stdio.h>

    double fun(int n)

    {

    }

    main()

    {

    int n;

    double s;

    printf("\nlnput n:");

    scanf("%d",&n);

    s=fun(n);

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

    }


    正确答案:double fun(int n) { int i; double s=0.0; for(i=1;i=n;i++) /*计算S=(1+l/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n)*/ s=s+(1.0/(2*i-1)+1.0/(2*i)); return s; }
    double fun(int n) { int i; double s=0.0; for(i=1;i=n;i++) /*计算S=(1+l/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n)*/ s=s+(1.0/(2*i-1)+1.0/(2*i)); return s; } 解析:本题中s=s+(1.0/(2*i-1)+1.0/(2*i));语句是用C程序去表达题目中的每一项,这是关键,其他问题不难理解。

  • 第10题:

    请编写函数fun(),该函数的功能是:计算并输出

    S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5)

    例如,若主函数从键盘给n输入20后,则输出为

    s=534.188884。

    注意;部分源程序给出如下。

    请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。

    试题程序:

    include <math. h>

    include <stdio. h>

    double fun(int n)

    {

    }

    main()

    {

    int n;

    double s;

    printf("\n\nInput n: ");

    scanf ("%d", &n);

    s=fun (n)

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

    }


    正确答案:double fun(int n) { int i; double s=0.0s1=0.0; for(i=1;i=n; i++) {s1=s1+pow(i0.5); /*求每—项*/ s=s+s1; /*按公式求出s*/ } return s; }
    double fun(int n) { int i; double s=0.0,s1=0.0; for(i=1;i=n; i++) {s1=s1+pow(i,0.5); /*求每—项*/ s=s+s1; /*按公式求出s*/ } return s; } 解析:我们先用数学的思路读懂该程序,并用1个字符表示“()”内的值。在本程序中用s1来表示题中每个小括号内的值,第1项相当于有1个10.5次方(它还是1),第2项相当于第1项的值加上200.5次方,第3项相当于第2项的值加上30.5次方,…,依次类推。函数pow (x,y)的功能是求出x的y次方,该函数已在库函数math. h>中定义(即可直接使用)。要程序中用s来表示总的结果,每1次循环加1次s1即加1项。

  • 第11题:

    发电机的空载特性是指()的函数关系。

    • A、u=常数,I=f(n)
    • B、I=常数,u=f(n)
    • C、n=常数,u=f(I)
    • D、I=0,u=f(n)

    正确答案:D

  • 第12题:

    问答题
    请编写函数fun(),该函数的功能是:计算并输出给定整数n的所有因子(不包括1和自身)之和。规定n的值不大于1000。例如,在主函数中从键盘给n输入的值为856,则输出为:sum=763。  注意:部分源程序给出如下。  请勿改动主函数main()和其他函数中的任何内容,仅在fun()函数的花括号中填入所编写的若干语句。  试题程序如下:/**********code.c**********/#include int fun(int n){}void main(){ int n,sum; printf(Input n: ); scanf(%d,&n); sum=fun(n); printf(sum=%d,sum);}

    正确答案:

    int fun(int n)
    {
    int s=0,i;
    for(i=2;i<=n-1;i++)
    if(n%i==0)
    s+=i;
    return s;
    }
    解析:

      本题的设计思路是:①遍历从2到n-1的所有整数;②用条件语句找出能被n整除的整数i,并累加求和;③用return语句返回因子的和。

  • 第13题:

    请补充函数fun(),函数fun()的功能是求7的阶乘。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    long fun(int n)

    {

    if(【 】)

    return(n*fun(【 】);

    else if(【 】)

    return 1;

    }

    main()

    {

    int k=7;

    printf("%d!=%ld\n", k, fun(k));

    }


    正确答案:n>1 n-1 n==1
    n>1 n-1 n==1 解析:第一空:求阶乘时采用递归的算法,n>1和n==1这两种情况的处理方法不同,需要分开考虑。第二空:阶乘的算法是,当n>1时,n!=n*(n-1)!,即fun(n)=n*fun(n-1)。第三空:n==1是递归的终止条件,因为1!=1,所以当n=1时,返回1。

  • 第14题:

    有以下程序

    #include<stdi0.h>

    void fun(int n,int*p)

    ( int f1,f2;

    if(n==1|| n==2)*p=1;

    else

    { fun(n-1,&f1);fun(n-2,&f2);

    *p=f1+f2;

    }

    }

    main

    { int s;

    fun(3,&s);printf("%d",s);

    }

    程序的运行结果是( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:A
    在函数fun中对参数n的值进行判断,如果其值等于1或2,则*p=1,否则,函数fun进行递归调用fun(n.1,&f1);fun(13.2,&f2);*p=n+f2;在主函数调用fun函数时传递给参数n的值为3,fun函数又递归用了两次自身fun(2,&n);fun(1,&f1);所以n和f2的值都为1,通过指针P的引用,变量S的值为2。

  • 第15题:

    请完成函数fun( ),它的功能是:求Fibonacc数列中小于t的最大的一个数,结果由函数 0返回。Fibonacc数列F(n)定义为:

    F(0)=0,F(1)=1

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

    例如:t=1000时,函数为987。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在下划线上填入所需的内容。

    include<conio.h>

    include<stdio.h>

    include<math.h>

    in fun(int t)

    {

    int a=l,b=1,c=0,i;

    do

    {

    【 】;

    a=b;

    b=C;

    }

    while( 【 】);

    c= 【 】;

    return C;

    }

    main()

    {

    int n;

    clrscr();

    n=1000;

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


    正确答案:int fun(int t) { int a=1b=1c=Oi; do { c=a+b; a=b; b=c; } while(ct); C=a; return c; }
    int fun(int t) { int a=1,b=1,c=O,i; do { c=a+b; a=b; b=c; } while(ct); C=a; return c; } 解析:该数列的最终结果是由两个数列之和组成,所以可以在循环体内部始终把c看成是前两项之和(即第n项),而a始终代表第n-2项,b通过不断地重新赋值,但始终代表第n-1项。应注意,退出循环时得到的数c是大于指定比较的数的最小的数,而它的前一个数就是小于指定比较的数的最大的数。

  • 第16题:

    编写函数fun(),它的功能是求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并做为函数值返回。例如:n为1000时,函数值应为s=153.909064。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <conio.h>

    include <math.h>

    include <stdio.h>

    double fun(int n)

    {

    }

    main()

    {

    clrscr();

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

    }


    正确答案:double fun(int n) {double s=0.0; int i; for(i=0; in;i++) /*从0~n中找到既能被3整除同时又能被7整除的数并将这些数求和*/ if (i%3==0&&i%7==0) s=s+i; s=sqrt (s); /*对s求平方根*/ return s; }
    double fun(int n) {double s=0.0; int i; for(i=0; in;i++) /*从0~n中找到既能被3整除同时又能被7整除的数,并将这些数求和*/ if (i%3==0&&i%7==0) s=s+i; s=sqrt (s); /*对s求平方根*/ return s; } 解析:本题的解题思路是逐个取得从0~n之间的所有数,对每次取得的数进行条件判断,条件是既能被3整除同时又能被7整除,注意:这两个条件要求同时成立,因此用到了“&及,’运算符。满足条什,该数就被累加到s中去,所有符合条件的数找完后,用sqd()函数(包含于头文件math.h>中)对s求平方根。

  • 第17题:

    编写函数fun(),函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

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

    例如:若n的值为11时,函数的值为1.833333。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <string.h>

    float fun(int n)

    {

    }

    main()

    {

    int n;

    float s;

    clrscr();

    printf("\nPlease enter N: ");

    scanf("%d",&n);

    s=fun(n);

    printf("The result is:%f\n " , s);

    }


    正确答案:float fun(int n) { int is1=0; float s=0.0; for(i=1;i<=n;i++) {s1=s1+i; /*求每一项的分母*/ s=s+1.0/s1; /*求多项式的值*/ } return s; }
    float fun(int n) { int i,s1=0; float s=0.0; for(i=1;i<=n;i++) {s1=s1+i; /*求每一项的分母*/ s=s+1.0/s1; /*求多项式的值*/ } return s; } 解析:本题中用s1来表示式中每一项的分母,而每一项的分母都是其前一项分母加项数。注意由于s1定义成一个整型,所以在s=s+1.0/s1中不能把1.0写成1。

  • 第18题:

    有以下程序 include void fun(int n, int *p) { int f1,t2; if(n==1 |

    有以下程序 #include <stdio.h> void fun(int n, int *p) { int f1,t2; if(n==1 ||n==2) *p=1; else { fun(n-1,&f1); fun(n-2,&f2); *p=f1+f2; } } main() { int s; fun(3,&s); printf("%d\n", s ); }

    A.2

    B.3

    C.4

    D.5


    正确答案:A
    解析:在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。本题中的fun()函数直接调用了自身,所以它是一个递归函数。fun()函数中,当形参n为1或2时,让形参p所指内容为1。从这里可以看出形参p的用途是输出一个整数,所以我们不妨记作fun(1)=1、 fun(2)=1。如果是其他情况,那么输出结果*p的内容为f(n)=f(n-1)+f(n-2)。由此可见, fun()函数的作用是求斐波纳契数列第n项的值(斐波纳契数列第1和2项的值为1,以后各项分别为前两项之和:1、1、2、3、5、8、13……)。主函数中通过fun()函数,求第3项值;所以输出结果为2,故应该选择A。

  • 第19题:

    请编写函数fun(),其功能是:计算并输出给定10个数的方差。

    其中

    例如,给定的10个数为95.0,89.0,76.0,65.0,88.0, 72.0,85.0,81.0,90.0,56.0,则输出为S=11.730729。

    注意;部分源程序给出如下.

    请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<math.h>

    include<stdio.h>

    double fun(double x[10])

    {

    }

    main()

    {

    double s,x[i0]={95.0,89.0,76.0,65.0,

    88.0,72.0,85.0,81.0,90.0,56.0};

    int i;

    printf("\nThe original data is:\n");

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

    printf("%6.1f ",x[i]);

    printf("\n\n ");

    s=fun(x);

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

    }


    正确答案:double fun(double x[10]) { double xl=0.0s=0.0; int i; for(i=0;i10;i++) xl=xl+x[i]; xl-xl/10;                        /*求10个数的平均值*/ for(i=0;il0;i++) s=s+(x[i]-xl)*(x[i]-x1); return sqrt(s/l0);                    /*求10个数的方差*/ }
    double fun(double x[10]) { double xl=0.0,s=0.0; int i; for(i=0;i10;i++) xl=xl+x[i]; xl-xl/10;                        /*求10个数的平均值*/ for(i=0;il0;i++) s=s+(x[i]-xl)*(x[i]-x1); return sqrt(s/l0);                    /*求10个数的方差*/ } 解析:又是一道算式表达题,程序中用第1个循环来完成求10个数的总和,接着再用x1=x1/10来求出平均值。

  • 第20题:

    请编写一个函数unsigned fun (unsigned w),w 是一个大于 10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后 n-1位的数作为函数值返回。

    例如:w值为5923,则函数返回923;若w值为923,则函数返回23。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。

    试题程序:

    include<conio. h>

    include<stdio. h>

    unsigned fun(unsigned w)

    {

    }

    main()

    {

    unsigned x;

    clrscr ();

    printf("Enter a unsigned integer

    number: ");

    scanf ("%u",&x);

    printf("The original data is:%u\n",x);

    if (x<10)

    printf ("Data error! ");

    else

    printf ("The result :%u\n", fun(x) );

    }


    正确答案:unsigned fun (unsigned w) { if(w>=10000) return w%10000; /*求出n位整数w的后n-1位的数*/ if(w>=1000) return w%1000; if(w>=100) return w%100; if(w>=10) return w%10; }
    unsigned fun (unsigned w) { if(w>=10000) return w%10000; /*求出n位整数w的后n-1位的数*/ if(w>=1000) return w%1000; if(w>=100) return w%100; if(w>=10) return w%10; } 解析:我们首先应该明白无符号整数的定义形式,若它大于10000(5位)时,将10000对它求余则结果为后4位;当它大于1000(4位)时,将1000对它求余则结果为后3位,花此类推。特别注意这里所有if()的顺序不能颠倒。

  • 第21题:

    有以下程序:includeiht fun(iht n,int*p){int f1,f2;if(n==1||,n==2)*p=1;else{fun(n-

    有以下程序: #include<stdio.h> iht fun(iht n,int*p) { int f1,f2; if(n==1||,n==2)*p=1; else { fun(n-1,&f1);fun(n-2,&f2); *p=f1+f2; } } main() { int s; fun(3,&s); printf("%d\n",s); } 程序的运行结果是______。

    A.2

    B.3

    C.4

    D.5


    正确答案:A
    解析: 本题考查的重点是理解递归函数。fun()为递归函数,递归结束条件时n为1或2,从而fun(3,&s)得fun(2,&s)+fun(1,&s)=1+1=2,因此选项A是正确的。

  • 第22题:

    有以下程序

    #include<stdio.h>

    void fun(int n,int *p)

    {

    int f1,f2;

    if(n==1||n==2) *p=1;

    else

    {

    fun(n-1,&f1); fun(n-2,&f2);

    p=f1+f2;

    }

    }

    main()

    {

    int s;

    fun(3,&s); printf(“%d\n”,s);

    }

    程序运行的结果为( )。

    A.2

    B.3

    C.4

    D.5


    正确答案:A

  • 第23题:

    多选题
    国外流行FUN的家庭生活方式,其内容包括()
    A

    F—健身

    B

    U—和谐

    C

    N—营养

    D

    其他


    正确答案: C,D
    解析: 暂无解析