用一个32位int表示n!,最大的n的值是多少?()A、11B、12C、13D、14

题目

用一个32位int表示n!,最大的n的值是多少?()

  • A、11
  • B、12
  • C、13
  • D、14

相似考题
更多“用一个32位int表示n!,最大的n的值是多少?()”相关问题
  • 第1题:

    以下程序中的select()函数功能是:在N行M列的二维数组中选出一个最大值作为函数值返回,并通过形参传回此最大值的行下标。请填空完成此程序。

    include<iostream>

    define N 3

    define M 3

    using namespace std;

    int select(int a[N][M],int *n)

    {

    int i,j,row=0,colum=0;

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

    for(i=0;j<M;j++)

    if(a[i][j]>a[row][colum])

    {

    row=i;

    colum=j;

    }

    *n=【 】;

    return 【 】;

    }

    int main()

    {

    int a[N][M]={9,11,23,6,1,15,9,17,20};

    int max,n;

    max=select(a,&n);

    cout<<"max="<<max<<"line="<<n<<end1;

    return 0;

    }


    正确答案:row a[row][colum]
    row a[row][colum] 解析:通过对题意的分析不难看出:在select()函数中,变量row的作用是用来标记最大元素的行下标值,colum的作用是用来记下最大元素的列下标:函数select()通过循环求得数组的最大值的行下标、列下标并分别存放在变量row和colum中。根据题意,应把行下标赋值给形参指针变量n,这样就通过地址传递的方式改变了主调函数中的实参,即把最大值的行下标传回到主调函数中。然后把最大值a[row][colum]作为函数返回值。

  • 第2题:

    求一个三位正整数N的十位数的正确方法是( )。

    A.Int(N/10)-Int(N/100)*10

    B.Int(N/10)-Int(N/100)

    C.N-Int(N/100)*100

    D.Int(N-Int(N/100)*100)


    正确答案:A

  • 第3题:

    以下程序段是函数返回a所指数组中最大的值所在的下标值,横线处的语句为( )。 fun(int*a, int n) { int i,j=0,k; k=j; for(i=j;i<n;i++) if[a[i]>a[k])______; return(k); }

    A.k=i

    B.k=j

    C.i=j

    D.i=n


    正确答案:A
    解析:函数fun中首先定义整型变量k用来存放返回最大值的下标,并将其首先指向第一个元素,即k=j。然后在for循环中依次将当前元素a[i]与标识为最大值的元素进行比较,如果当前元素大于这个标识元素,那么将最大值标识为当前元素,即k=i。

  • 第4题:

    下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。请填空。

    #include<stdlib.h>

    #include<stdio.h>

    void fun(int a[],int n, int *max, int *d)

    { int i;

    *max=a[0];

    *d=0;

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

    if(*max<【16】)

    {*max=a[i];*d=i;}

    }

    main()

    { int i, x[20], max, index, n=10;

    randomize();

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

    {

    x[i]=rand()%50; printf("%4d",x[i]);

    }

    printf("\n");

    fun(x,n,&max,&index);

    printf("Max=%5d,Index=%4d\n",max,index);

    }


    正确答案:
    i<n;a[i]

  • 第5题:

    将任意一个正的两位数N的个位数与十位数对换的表达式为( )。

    A.(N-Int(N/10)*10)*10+Int(N/10)

    B.N-Int(N)/10*10+Int(N)/10

    C.Int(N/10)+(N-Int(N/10))

    D.(N-Int(N/10)*10+Int(N/10)


    正确答案:A

  • 第6题:

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

    【函数2.1说明】

    递归函数sum(int a[], int n)的返回值是数组a[]的前n个元素之和。

    【函数2.1】

    int sum (int a[],int n)

    {

    if(n>0) return (1);

    else (2);

    }

    【函数2.2说明】

    有3个整数,设计函数compare(int a,int b,int c)求其中最大的数。

    【函数2.2】

    int compare (int a, int b, int c )

    { int temp, max;

    (3) a:b;

    (4) temp:c;

    }

    【函数2.3说明】

    递归函数dec(int a[],int n)判断数组a[]的前n个元素是否是不递增的。不递增返回 1,否则返回0。

    【函数2.3】

    int dec( int a[], int n )

    {

    if(n<=1) return 1;

    if(a[0]<a[1]) return 0;

    return (5);

    }


    正确答案:(1)a[n-1]+sum(an-1)或者a[0]+sum(a+1n-1); (2)return 0; (3)temp=(a>b)? (4)max=(temp>c)? (5)dec(a+1n-1);
    (1)a[n-1]+sum(a,n-1)或者a[0]+sum(a+1,n-1); (2)return 0; (3)temp=(a>b)? (4)max=(temp>c)? (5)dec(a+1,n-1); 解析:本题考查C语言函数和一些基本运算。
    下面我们分别来分析这几个函数。在函数2.1中,题目要求用此递归函数求数组前 n个元素之和。递归函数的特点是在函数体中不停地调用函数本身,只是将其函数的参数范围改变。题目中要求我们求数组前n个元素之和,我们可以这样理解,即前n个元素之和等于第n个元素加上前n-1个元素之和,现在的问题转化成如何求前n-1个元素之和。同样的道理,可以将求前n-1个元素之和转化成求前n-2个元素之和,直到这个数小于0。从函数2.1的代码中可以知道,在计算以前,首先判断n与0的关系,如果n小于0,说明数组中无元素,因此,返回0值;如果n大于等于0,说明数组中有元素,应该返回的结果是第n个元素加上前n-1个元素之和,而前n-1个元素之和是调用函数本身来计算的。因此,第(1)空和第(2)空的答案分别是a[n-1)+sum(a,n-1),return()。
    在函数2.2中,题目要求我们在三个数中取最大数,在数学中,我们从三个数中取最大数时,一般是首先拿其中两个数比较,取较大的数再与第三个数比较,再取其较大的数,这个数就是三个数中的最大数。从函数2.2的代码中知道,三个数a、b、c,两个整型变量temp与max。根据求三个数中最大数的数学过程和函数中已给出的代码可知,第(3)空处语句应该为temp=(a>b)?a:b,求得a、b中较大数并存放在变量temp中。第(4)空处语句为max=(temp>c)?temp:c。
    在函数2.3中,题目要求判断数组a[]的前n个元素是否是不递增的。不递增返回1,否则返回0。要判断前n个元素是否是不递增的,需要判断前n-1个元素是否是不递增的,以及第n个元素与第n-1个元素的关系。此处与函数2.1一样,用的都是递归函数,只是出口不同,在函数2.1中,只要数组中没有元素了,递归结束,这里只要第n个元素大于第n-1个元素,则返回0,递归结束。又由if(a[0]a[1])语句可知,在每次调用函数时,都将其数组中的第一个元素与第二个元素比较来作为递归的出口,如果结果为假,就说明数组的前面两项的关系是不递增的,在下次调用中不用再考虑第一项。因此第(5)空应该是dec(a+1,n-1)。

  • 第7题:

    以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义)

    int fun(int a[N][M])

    {int i,j,row=0,col=0;

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

    for(j=0;j<M;j++)

    if(a[i][j]>a[row][col])(row=i;col=j;)

    return(_____);

    }


    正确答案:a[row][col]
    a[row][col] 解析:嵌套循环,依次遍历二维数组的所有元素,从a[0][0]开始,先按行,后按列,a[row][col]先取a[0][0],若后面的元素比他大,则将此i、j值存入row、col中,即记录元素中当前最大值。循环结束返回a[row][col],即数组最大值。

  • 第8题:

    请编写一个函数fun(),它的功能是:找出一维数组元素中最大的值和它所在的下标,最大值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。

    主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

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

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

    试题程序:

    include<stdlib.h>

    include<stdio.h>

    void fun(int a[],int n, int *max,int *d)

    {

    }

    main()

    {

    int i, x[20], max, index, n=10;

    randomize();

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

    {

    x[i]=rand()%50;

    printf("%4d",x[i]);

    /*输出一个随机数组*/

    }

    printf("\n");

    fun(x,n,&max,&index);

    printf("Max=%5d,Index=%4d\n",max,index);

    }


    正确答案:void fun(int a[]int nint *maxint *d) { int i; *max=a[0]; *d=0; for(i=0;in;i++) /*将最大的元素放入指针max所指的单元最大元素的下标放入指针d所指的单元*/ if(*maxa[i]) {*max=a[i];*d=i;} }
    void fun(int a[],int n,int *max,int *d) { int i; *max=a[0]; *d=0; for(i=0;in;i++) /*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/ if(*maxa[i]) {*max=a[i];*d=i;} } 解析:该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它所指向的变量时要对它进行指针运算,也即*号运算。

  • 第9题:

    关于JAVA赋值,下面哪些值的说明是正确的() 

    • A、 ’/n’是表示char类型的换行字符;
    • B、 010是表示8进制的int类型值;
    • C、 1.0f表示float类型的值;
    • D、 20L是表示int类型的值;

    正确答案:A,B,C

  • 第10题:

    假定利用数组a[N]顺序存储一个栈,用top表示栈顶元素的下标位置,用top= =-1表示栈空,用top= =N - 1表示栈满,则该数组所能存储的栈的最大长度为()

    • A、N - 1
    • B、N
    • C、N+1
    • D、N十2

    正确答案:B

  • 第11题:

    有指令MOV  CL,N完成将一个有符号数送入CL,要使该指令合法,则N的最大值是(),最小值是()。(用十进制表示)


    正确答案:127;-128

  • 第12题:

    单选题
    假定利用数组a[n]顺序存储一个栈,用top表示栈顶指针,用top==n+l表示栈空,该数组所能存储的栈的最大长度为n,则表示栈满的条件是()
    A

    top == -1

    B

    top == 0

    C

    top>l

    D

    top == 1


    正确答案: D
    解析: 栈空是指栈中不含任何数据元素,栈满是指栈中没有任何的空闲空间。根据本题的假设栈顶指针top==n+l表示栈空,可知,该数组将栈底放在下标大的那端,它的下界为1,上界为n,当top=n时存入第一个元素,因为该数组所能存储的栈的最大长度为n,所以,栈满时栈顶指针top应等于1。

  • 第13题:

    执行下列语句后,变量n的值是______。

    int n=0;

    for(int i=1;i<=3;i++)

    for(int j=1;j<<=i;j++)

    n++;


    正确答案:6
    6 解析:当i=1时,内循环中的i的值为1,n目加一次,n=1;当i=2时,内循环中的j的值为i和2,n自加两次,n=3,当i=3时,内循环中的i的值为1、2、3,n自加三次,n=6。

  • 第14题:

    以下程序输出的最后一个值是【 】。

    int ff(int n)

    { static int f=1;

    f=f*n;

    retum f;

    }

    main()

    { int i;

    for(i=1;i<=5;i++) printf("%d\n",ff(i))i

    }


    正确答案:120
    120 解析:静态变量的类型说明符是static,静态局部变量属于静态存储方式,它具有以下特点:
    ①静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。
    ②对静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。
    ③如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译对自动赋初值0(对数值型变量)或空字符(对字符变量)。(注意:C语言中的非静态变量在定义时,系统并不会自动给它赋初值)
    ④虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。
    本题中函数的功能是:与for语句一起求一个整数的阶乘。

  • 第15题:

    以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。

    #define N 3

    #define M 3

    select(int a[N][M],int *n)

    {int i,j,row=1,colum=1;

    for(i=0;i

    for(j=0;j

    if(a[i][j]>a[row][colum]){row=i;colum=j;}

    *n= 【16】 ;

    return 【17】 ;

    }

    main()

    {int a[N][M]={9,11,23,6,1,15,9,17,20},max,n;

    max=select(a,&n);

    printf("max=%d,line=%d\n",max,n);

    }


    正确答案:
    row;a[row][colum]

  • 第16题:

    阅读下列程序和控制流图,将应填入(n)的字句。

    【程序】

    下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。

    int GetMax(int n,int datalist[]){

    int k=0;

    for(int j=1;j<n;j++)

    if(datalist[j]>datalist[k])

    k=j;

    return k;

    }

    该程序的控制流图中A~E分别是什么?


    正确答案:(1)jn(2)return k;(3)datalist[j]>datalist[k](4)k=j;(5)j++;
    (1)jn(2)return k;(3)datalist[j]>datalist[k](4)k=j;(5)j++;

  • 第17题:

    阅读下列函数说明和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;


    正确答案:
                      

  • 第18题:

    fun函数的功能是首先对a所指的N行N列的矩阵找出各行中最大的数,再求这N个最大值中最小的那个数作为函数值返回,请填空。#include <stdio.h>#define N 100int fun(int(*a)[N]){ int row,col,max,min; for(row=0;row<N;row++) { for(max=a[row][0],col=1;col<N;col++) if() max=a[row][col]; if(row==0) min=max; else if() min=max; } return min;}


    正确答案:max<a[row][col],max<min
    本题中的第一空要求判断出每一行中的最大数,应该填写条件max<a[row] [col],第二空要求从N个最大值中找出最小的数,应填入条件max<min。

  • 第19题:

    int Calc(unsigned int x)

    {

    int count=0;

    while(x)

    {

    printf("x=%i\n",x);

    count++;

    x=x&(x-1);

    }

    return count;

    }

    问 Calc(9999)的值是多少。


    正确答案:
     

  • 第20题:

    执行下列程序之后,变量n的值为 publicclassExam{ publicstaticvoidmain(String[]args){ int y=2; int z=3; int n=4; n=n+-y*z/n; System.out.println(n); } }

    A.3

    B.-1

    C.-12

    D.-3


    正确答案:A
    解析:本题考查Java中表达式的运算。程序段main()方法中的前3行是基本的赋值语句,第4行是算术运算语句,该语句执行的过程是:首先是对y取负值,得到 -2,然后乘以z得到-6,再除以n得到-1,最后和n做加法得到3,从而根据赋值运算将3赋值给变量n。

  • 第21题:

    用一个32位int表示n!,最大的n的值是多少?()

    • A、11
    • B、12
    • C、13
    • D、14

    正确答案:A

  • 第22题:

    C#中执行下列语句后,int n=21;n<<=1;n的值为()


    正确答案:42

  • 第23题:

    单选题
    用一个32位int表示n!,最大的n的值是多少?()
    A

    11

    B

    12

    C

    13

    D

    14


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

  • 第24题:

    填空题
    有指令MOV  CL,N完成将一个有符号数送入CL,要使该指令合法,则N的最大值是(),最小值是()。(用十进制表示)

    正确答案: 127,-128
    解析: 暂无解析