itgle.com

阅读以下说明和C函数将应填入(n)处的字句写在答题纸的对应栏内【说明1】函数Counter(intn,intw[])的功能是计算整数n的二进制表示形式中的1个数同时用数组w记录该二进制数中1所在位置的权。例如十进制数22的二进制表示为10110.对于该二进制数,1的个数为3,在w[0]中存入2(即21)、w[1]中存入4(即22)w[2]存入16(即24)【C函数1】

题目

阅读以下说明和C函数将应填入(n)处的字句写在答题纸的对应栏内

【说明1】

函数Counter(intn,intw[])的功能是计算整数n的二进制表示形式中的1个数同时用数组w记录该二进制数中1所在位置的权。

例如十进制数22的二进制表示为10110.对于该二进制数,1的个数为3,在w[0]中存入2(即21)、w[1]中存入4(即22)w[2]存入16(即24)

【C函数1】


相似考题
更多“函数Counter(intn,intw[])的功能是计算整数n的二进制表示形式中的1个数同时用数组w记录 ”相关问题
  • 第1题:

    假如整数数列中的数不重复,并存放在数组中。下列给定的程序中,函数fun()的功能是:删除数列中值为X的元素。 N中存放的是数列中元素的个数。

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

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include<stdio.h>

    define N 20

    fun (int *a,int n,int x)

    {int p=0,i;

    a[n]=x;

    while (x!=a[p])

    p=p+1;

    if(p==n) return -1;

    else

    {for (i=p;i<n;i++)

    /*************found**************/

    a[i+1]=a[i];

    return n-1;

    }

    }

    main()

    {int w[N]={-3,0,1,5,7,99,10,15,30,90},

    x,n,i;

    n=10;

    printf("The original data :\n");

    for (i=0;i<n;i++) printf("%5d",w[i]);

    printf("\nInput x (to delete ): ");

    scanf("%d",&x);

    printf("Delete : %d\n",x);

    n=fun(w,n,x);

    if (n==-1) printf("***No be found!

    ***\n\n");

    else

    {printf("The data after deleted:\n");

    for (i=0;i<n;i++) printf("%5d",

    w[i]);printf("\n\n");

    }

    }


    正确答案:错误:a[i+1]=a[i]; 正确:a[i]=a[i+1];
    错误:a[i+1]=a[i]; 正确:a[i]=a[i+1]; 解析:上机改错题有一个优势,就是我们可以执行该程序,根据错误的提示再一步一步实现改错的目的,我们先不看程序是什么意思,甚至不用看它在求什么。按Ctrl+F9快捷键,然后看看屏幕提示。另外,审题时我们必须要注意“不要改动main()函数,不得增行或减行,也不得更改程序结构”,这样;对我们来说,只要读懂题意,对程序执行部分:
    {int p=0,i;
    a[n]=x;
    while (x!=a[p])
    p=p+1;
    if (p==n) return -1;
    else
    { for (i=p;in;i++)
    a[i+1]=a[i];
    return n-1;
    }
    逐步分析,再应用平时的常识加以区分,琢磨,相信答案不攻自破,这种考题,按Ctrl+F9快捷键后,屏幕一般都不会提示错误,否则就显得太儿科了一点,所以,我们并不需要着急去找错误,而是把程序读懂。

  • 第2题:

    avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过10,则下列函数说明语句错误的是

    A)int avg(jnt *a,int n.);

    B)int avg(int a[10],int n);

    C)int avg(int a,int n);

    D)int avg(int a[ ],int n);


    正确答案:C
    【答案】C
    【知识点】数组名作为函数参数的使用方法
    【解析】C语句中的两个形参均为整形变量不能接收数组元素中的值。

  • 第3题:

    编写函数实现如下功能,通过递归调用方式实现求整数1~n的阶乘之和,函数int fact(int n)为计算整数n的阶乘,int sum_fact(int n)为计算从1到n的阶乘之和,即s=1!+2!+3!.....+n!,n从键盘输入(要求n为大于0的整数),并且将s的值打印出来。


    double f(int n) { if(n==0) return 0; int i,fac=1; for(i=1;i<=n+2;i++) fac*=i; return f(n-1)+n*1.0/((n+1)*fac); }

  • 第4题:

    阅读下列函数说明和C代码,将应填入 处的字句写在答题纸的对应栏内。

    [函数1.1说明]

    函数int factors(int n)的功能是判断整数n(n>=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。

    所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28是“完全数”。

    [函数1.1]

    int factors(int n)

    {

    int i,s;

    for(i=1,s=0;i<=n/2;i++)

    if(n%i==0) (1) ;

    if( (2) )return 0;

    return -1;

    }

    [函数1.2说明]

    函数int maxint(int a[], int k)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。

    [函数1.2]

    int maxint(int a[],int k)

    {

    int t;

    if( (3) ) return (4) ;

    t=maxint(a+1, (5) );

    return (a[0]>t)?a[0]:t;


    正确答案:
                      

  • 第5题:

    下列程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并作为函数值返回。请填空。

    include <stdio.h>

    define N 3

    typedef struct

    { int num; char nam[10]; char sex;} SS;

    int fun(SS person[])

    { int i,n=0;

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

    if(【 】=='M') n++;

    return n;

    }

    main()

    { SS W[N]={{1,"AA",'F'},{2,"BB",'M'},{3,"CC",'M'}}; int n;

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

    }


    正确答案:person[i].sex
    person[i].sex 解析:本题考查的是对结构体成员的引用,对结构体数组成员的访问是以数组元素为结构体变量的,其形式为结构体数组元素咸员名,所以题目空白处应填person[i].sex。