请编写一个函数fun(char*num),该函数返回与传入的二进制数相应的十进制数,参数num指向存放8位二进制数的字符数组。二进制数转换为十进制数的方法是将二进制数的每一位乘以该位的权然后相加,如二进制数10010100=1*27+0*26 +0*25+1*24+0*23+1*22+0*21+2*0=148。注意:部分源程序已存在文件test32_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中填写若干语句。文件test32_2.cpp的内容如下:include<io

题目

请编写一个函数fun(char*num),该函数返回与传入的二进制数相应的十进制数,参数num指向存放8位二进制数的字符数组。二进制数转换为十进制数的方法是将二进制数的每一位乘以该位的权然后相加,如二进制数10010100=1*27+0*26 +0*25+1*24+0*23+1*22+0*21+2*0=148。

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

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

文件test32_2.cpp的内容如下:

include<iostream.h>

int fun(char *num)

{

}

void main ( )

{

char num[8],ch;

cout<<"Enter an 8 bit binary number";

for(int i=0;i<8;i++)

{

cin>>ch;

num[i]=ch;

}

cout<<fun(num)<<end1;

}


相似考题
更多“请编写一个函数fun(char*num),该函数返回与传入的二进制数相应的十进制数,参数num指向存放8位二 ”相关问题
  • 第1题:

    函数fun的返回值是

    fun(char * a, char * b)

    {int num=0,n=0;

    while( * (a+num) !='\0') num++;

    while(b[n] ) { * (a+num) =b[n] ;num++;n++;}

    return num;

    }

    A.字符串a的长度

    B.字符串b的长度

    C.字符串a和b的长度之差

    D.字符串a和b的长度之和


    正确答案:D
    解析:本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。

  • 第2题:

    请编写函数proc(),该函数的功能是:将两个两位数的正整数num1,num2合并形成一个整数放在num中。合并的方式是:将num1数的十位和个位数依次放在num数的十位和千位上,num2数的十位和个位数依次放在c数的百位和个位上。

    例如,当num1=64,num2=18时,调用到该函数后,num=4168。

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

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

    试题程序:


    正确答案:


    【解析】要算出变量num的值,首先需要得到变量num1和hum2个位和十位上的数字。然后将在千位上的数字乘以1000,百位上的数字乘以100,十位上的数字乘以10,各位上的数字乘以1,就能得到要求的hum。

  • 第3题:

    【组合成最小数】 自定义函数min_num(*args)将传入的参数中的数字组成一个最小的数并返回,要求首位不允许是0。输入几个数,调用min_num()函数获得组合成的最小数并输出。


  • 第4题:

    str是全部由小写字母字符和空格字符组成的字符串,由 num传入字符串的长度。请补充函数fun(),该函数的功能是:统计字符串str中的单词个数,结果由变量num传回。每个单词之间都由空格隔开,并且字符串str开始不存在空格。

    例如:str=“how do you do”,结果为:num=4。

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

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

    试题程序:

    include <stdio.h>

    define N 80

    void fun(char *s,int *num)

    {

    int i,n=0;

    for(i=0;【 】;i++)

    {

    if(s[i]>='a',&&s[i]<='z',&&(s[i+1)==’’||s[i+1]=='\0'))

    【 】;

    }

    【 】;

    }

    main()

    {

    char str[N];

    int num=0;

    printf("Enter a string:\n");

    gets(str);

    while(str[num])

    num++;

    fun(str,&num);

    printf("The number of word is:

    %d\n\n",num);


    正确答案:i*num n++ *num=n
    i*num n++ *num=n 解析:第一空:*num传入字符串的长度,所以for循环中变量i的变化范围是从0到*num-1。第二空:如果当前判断的字符是小写字母,并且它的下一个字符是空格或者是字符串结束标记符,则表示当前字符是一个单词的最后一个字母,统计单词数的变量n要加上1。第三空:题目要求结果由变量num传回,所以要将n的值赋给指针num所指的单元。

  • 第5题:

    函数fun的返回值是( )。 fun(char * a, char *b) { int num=0,n=0; while(*(a+num)!='\0') num++; while(b[n]) {*(a+num)=b[n];num++;n++; } return num; }

    A.字符串a的长度

    B.字符串b的长度

    C.字符串a和b的长度之差

    D.字符串a和b的长度之和


    正确答案:D