itgle.com

请编写一个函数unsigned short fun(unsigned short s)。其中s是一个大于10的无符号整数,若s是一个n(n≥2)位整数,函数求出s的n位数之和作为函数的返回值。例如,s值为4315,则函数返回13。s值为13函数,则返回4。注意:部分源程序已存在文件PROC15.cpp中。请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。文件PROC15.cpp的内容如下://PROC15.cppinclude<iostream>using namespace

题目

请编写一个函数unsigned short fun(unsigned short s)。其中s是一个大于10的无符号整数,若s是一个n(n≥2)位整数,函数求出s的n位数之和作为函数的返回值。

例如,s值为4315,则函数返回13。s值为13函数,则返回4。

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

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

文件PROC15.cpp的内容如下:

//PROC15.cpp

include<iostream>

using namespace std;

unsigned short fun(unsigned short s);

int main()

{

unsigned short a;

cout<<"Enter a unsigned short integer number:";

cin>>a;

if(a<10)

cout<<"Data error!";

else

cout<<"The result: "<<fun(a)<<end1;

return 0;

}

unsigned short fun(unsigned short s)

{

//* * * * * *

}


相似考题
更多“请编写一个函数unsigned short fun(unsigned short s)。其中s是一个大于10的无符号整数,若s是一个 ”相关问题
  • 第1题:

    请编写一个函数char *fun(char *s),其中s代表一个字符串。函数fun()的功能是将字符串s的元素倒置。例如,输入为“teacher”,则应输出“rehcaet”。

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

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

    文件PROC10.cpp的内容如下:

    //PROC10. cpp

    include <iostream>

    include <string>

    using namespace std;

    char *fun(char *s);

    int main ( )

    {

    char str[81];

    cout<<"Please enter a string:\n";

    cin>>str;

    cout<<"The result is:"<<fun(str));

    cout<<end1;

    return 0;

    }

    char*fun(char*s)

    {

    //* * * * * * * * *

    }


    正确答案:

  • 第2题:

    请编写一个函数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()的顺序不能颠倒。

  • 第3题:

    C51中,要编写一个中断函数,则必须在函数名后加() 关键字。

    A.void

    B.interrupt

    C.using

    D.unsigned


    interrupt

  • 第4题:

    请编写一个函数fun(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。

    例如,若输入字符串“-1234”,则函数把它转换为整数值 -1234。

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

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

    试题程序:

    include <stdio.h>

    include <string.h>

    long fun(char *p)

    {

    }

    main ( )

    {

    char s[6];

    long n;

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

    gets(s);

    n=fun(s);

    printf("%ld\n",n);

    }


    正确答案:long fun (char *p) { long n=0; int flag=1; if(*p=='-') /*负数时置flag为-1*/ {p++;flag=-1;} else if(*p=='+') /*正数时置flag为1*/ p++; while(*p!='\0') {n=n*10+*p-'0'; /*将字符串转成相应的整数*/ p++; } return n*flag; }
    long fun (char *p) { long n=0; int flag=1; if(*p=='-') /*负数时置flag为-1*/ {p++;flag=-1;} else if(*p=='+') /*正数时置flag为1*/ p++; while(*p!='\0') {n=n*10+*p-'0'; /*将字符串转成相应的整数*/ p++; } return n*flag; } 解析:if()的作用是判断它是正数还是负数。while()循环的作用是将字符串转成相应的整数。注意*p是一个字符如'9', '4',并不是一个数,要将其转成相应的数字必须令其减去'0'(不是'\0'),即*p-'0'就得到*p这个字符的相应数字。如'0'-'0'=0, '8'-'0'=8等。必须在程序的前面加#includestdlib.h>,函数atol()的作用是将字符串p转成长整型数,它是一个库函数。

  • 第5题:

    请编写函数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程序去表达题目中的每一项,这是关键,其他问题不难理解。