更多“2、在C程序中,可把整型数据以二进制形式存放到文件中的函数()。”相关问题
  • 第1题:

    标准库函数fgets(s,n,file)的功能是( )。A.从文件file中读取长度为n的字符串存入字符数s由 SXB

    标准库函数fgets(s,n,file)的功能是( )。

    A.从文件file中读取长度为n的字符串存入字符数s由

    B.从文件file中读取长度不超过n-1个字符的字符放到字符数组S中

    C.从文件file中读到n个字符串存入字符数组s中

    D.从文件file中读取长度为n-1个字符的字符串存字符数组S中


    正确答案:B
    本题考查fgets函数的使用调用形式:fgets(s,n,fp)。fgets函数参数说明:“S”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件型指针。fgets函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串放到字符数组S中,读入字符串后会自动在字符串末尾加入"\0"结束符,表示字符串结束。

  • 第2题:

    给定程序MODll.C中函数fun的功能是;从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。

    例如,当s中的数为:7654321时,t中的数为:642。

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

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


    正确答案:(1)void fun(10ng s long *t) (2)while(s>0)
    (1)void fun(10ng s, long *t) (2)while(s>0) 解析:该题中函数功能是取出长整型变量s中偶数位上的数,组成新数。从已给定源程序的main主函数开始入手,“fun(s,&t);”语句调用函数fun来实现题目要求。

  • 第3题:

    使用VC++6.0打开考生文件夹下的源程序文件 2.cpp。请完成函数fun(intx),该函数的功能是将X的值转换成二进制数输出到屏幕,并且在函数中调用写函数WriteFile将结果输出到2.txt文件中。 例如x=6,6的二进制数为110,则输出到屏幕的数为110。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include(iostream) include(fstream) include(cmath) usingnamespacestd; voidWriteFile(char*str) { ofstreamout1; out1.open("2.txt",ios—base::binary|ios_base::app); for(inti=0;str[i]!=0;i++) out1.put(str[i]); out1.close; } voidfun(intx) { } voidClearFile { ofstreamout1; out1.open("2.txt"); out1.close; } intmain { ClearFile; fun(13); return0; }


    正确答案:
    charstr[32];
    inti;
    for(i=30;i>=0;i--)//计算二进制
    {
    if(x%2)str[i]='1';//求余,如果余不为零字符串
    str第i位为1
    elsestr[i]='0';//否则为0
    x>>=1;
    if(!x)break;
    }
    str[31]='\0';//串加尾符
    cout<<&str[i]<<endl;
    writeFile(&str[i]);
    【解析】本题要求定义存放二进制的字符串str。利用for循环对十进制数字x进行取余运算,直到余数为0结束。如果取余结果为0,则二进制字符串这个字符位的值为0,否则为1。调用WriteFile,将运算结果存入文件。

  • 第4题:

    给定程序MODII.C中函数fun的功能是:将长整型数s中每一位上为偶数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。

    例如,当s中的数为:87653142时,t中的数为:8642。

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

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


    正确答案:(1)if(d%2==0) (2)s/=10;
    (1)if(d%2==0) (2)s/=10; 解析:本题中函数的功能是将长整型数s中每一位上为偶数的数依次取出,构成一个新数放在t中。首先在函数中对长整型数的每一位来进行截取,然后对其进行判断,最后根据判断结果进行操作。

  • 第5题:

    下列给定程序中函数fun的功能是:从整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放个位数,a2放十位数。

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

    注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!


    正确答案:
    (1)a2=k/10;(2)returni;【考点分析】本题考查:取数值n的各个位;return语句,将需要返回的函数值返回给函数main。【解题思路】(1)a2存放十位数,所以是a2=k/10,此处是一个书写错误。(2)根据题意,要返回能被3整除的数的个数,从循环体中可以知道其个数是由i来计算的,所以返回的是i。

  • 第6题:

    已知在in.dat中存有若干个(个数<200)四位十进制数字组成的正整数,函数ReadDat读取这若干个正整数并存入数组 xx中。请编制函数CalValue,其功能要求:1.求出该文件中共有多少个正整数totNum;2.求这些正整数右移1位二进制位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz。最后main函数调用函数WriteDat把所求的结果输出到out.dat文件中。 注意:部分源程序存放在test.c文件中。 请勿改动数据文件in.dat中的任何数据,主函数main、读函数ReadDat和输出函数WriteDat的内容。


    正确答案:
    【审题关键句】读取正数,统计个数,右移后为偶数的个数及平均值。
    【解题思路】
    ①定义整型变量i、j和长整型he,并把其初始值设置为0。
    ②用for循环语句对数组xx进行扫描,如果当前数组元素xx[i]非零,则全局变量totNum加1。
    ③在for循环语句中,循环变量i从0开始递增到totNum.1,对数组xX中的每个元素xx[i]右移一位,把这个值赋给整型变量j,再对j的值对2求余数,如果余数等于0,则变量totCnt加1,并把数组元素xx[i]累加到变量he。
    ④退出循环时,把变量he的数据类型转换成双精度型再除以变量totCnt的值,就得到算术平均值totPjz。
    【参考答案】

  • 第7题:

    已知在文件in.dat中存有200组数据,每组有3个数,每个数均是三位数。函数readDat是读取这200组数据存放到结构数组aa中。请编制函数jsSort,其函数的功能是:要求在200组数据中找出第二个数大于第一个数加第三个数之和的数,其中满足条件的个数作为函数jsSort的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组 bb中,最后调用函数writeDat把结果bb输出到out.dat文件中。 注意:部分源程序存在test.C文件中。 请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat和写函数writeDat的内容。


    正确答案:
    【审题关键句】第2个数大于第1个数加第3个数,存入数组,按第2个加第3个数之和降序排序。
    【解题思路】
    ①首先定义两个循环变量i、j;一个计数变量count;一个用于中间转换数据的结构体变量CC。
    ②建立一个for循环,指定第一个for循环的循环变量i从0开始,到200时结束,每循环一次,变量i的值加1。在循环体中依次判断每行数据中,如果aa[i]的第二个数大于第一个数加第三个数之和,则把aa[i]复制到bb[count]中,同时数组下标变量count加1。
    ③将所有满足条件的记录筛选保存到数组bb口后,再通过两个for循环对数组bb[]中记录进行排序。第一个for循环的循环变量i的初值为0,当等于数组计数变量count的值减1时停止循环,每循环一次,i的值加1;第二个for循环的循环变量j的初值等于i+1,当等于数组计数变量count的值时停止循环,每循环一次,j的值加1;每次进行比较时,如果第i行的第二个数加第三个之和小于其后面第i行的第二个数加第三个之和,将执行if条件语句后面花括号中的命令,花括号中3条命令的功能就是根据题目要求按每行数据中第二个数加第三个之和从大到小排序。
    ④最后将计数函数count返回。
    【参考答案】

  • 第8题:

    下列给定程序中,函数proc()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为l23456789时,t中的数为l3579。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:


    正确答案:
    (1)错误:intproc(10ngS,long*t)
    正确:voidproc(10ngs,long*t)
    (2)错误:s=s%0100;
    正确:s=s/100;
    【解析】由主函数中的函数调用可知,函数proc()没有返回值,因此,“intproc(longs,long*t)”应改为“voidproc(longs,long*t)”。题目要求是把奇数位上的数找出构成
    一个新的数组,因此把“s=s%100;”改为“s=s/100;”。

  • 第9题:

    在C程序中,可把整型数以二进制形式存放到文件中的函数是______。

    A.fprintf 函数

    B.fread 函数

    C.fwrite 函数

    D.fputc 函数


    正确答案:C
    解析:fprintf是格式文件格式化输出函数,fread是读文件,fputc输出单个字符到文件。只有fwrite可以通过参数来设置以二进制形式写文件。

  • 第10题:

    存储整型数据-7856时,在二进制文件和文本文件中占用的字节数分别是( )

    A.2和2

    B.2和5

    C.5和5

    D.5和2


    正确答案:B
    二进制文件中存放的数据是二进制形式的,对于“-7856”来说,是一个带符号的短整型数据,C语言规定短整型数据占用的字节数是2,所以在二进制文件中该数据占用2个字节;对文本文件来说,存放的数据是按照每位数字对应的ASCII代码值存放的,对于“-7856”来说,其中的“-”号要占1个字节;4位整数要占4个字节,共计占用5个字节。所以本题的答案应选B。

  • 第11题:

    C语言程序中,整型常量的书写形式不包括()。

    • A、二进制
    • B、八进制
    • C、十进制
    • D、十六进制

    正确答案:A

  • 第12题:

    单选题
    以下叙述正确的是(  )。
    A

    在C语言中调用fopen函数就可把程序中要读、写的文件与磁盘上实际的数据文件联系起来

    B

    fopen函数的调用形式为:fopen(文件名);

    C

    fopen函数的返回值为NULL时,则成功打开指定的文件

    D

    fopen函数的返回值必须赋给一个任意类型的指针变量


    正确答案: B
    解析:
    A项正确,C语言中打开一个文件通过系统函数fopen实现,通过这个函数把程序中要读、写的文件与磁盘上实际的数据文件联系起来;B项错误,函数调用中缺少参数,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式);;C项错误,fopen函数返回一个指向指定文件的文件指针,如果不能实现打开指定文件的操作,则返回一个空指针NULL;D项错误,fopen函数的返回值必须赋给一个文件类型的指针变量。答案选择A选项。

  • 第13题:

    请编写一个函数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;

    }


    正确答案:int fun(char *num) { int result=0; int middle; for(int i=7;i>=0;i--) { if (hum[i] ==' 1' ) { middle=l; for(iht k=l;k<=(7-i);k++) { middle=middle*2; } result =result+middle; } } return result }
    int fun(char *num) { int result=0; int middle; for(int i=7;i>=0;i--) { if (hum[i] ==' 1' ) { middle=l; for(iht k=l;k<=(7-i);k++) { middle=middle*2; } result =result+middle; } } return result } 解析:本题为条件判断语句、循环语句和数组的综合应用。需要注意的是数组下标为0的元素存放的为二进制数中权最大的位,而数组下标为7的元素存放的为二进制数中权最小的位,而且在数组中存放的是二进制数的字符串,需要将每个字符转换成相应的整型数字才能乘以相应的权。

  • 第14题:

    在C语言中,可以把整数以二进制形式存放到文件中的函数是 ( )

    A.fprintf ( ) 函数

    B.fread ( ) 函数

    C.fwrite ( ) 函数

    D.fputc( )函数


    正确答案:C

  • 第15题:

    阅读以下说明和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程序控制结构的应用

    计算结束。

    从上例可知二进制数的各位是从低到高依次计算出来的。

    这样数组中的奇数全部排在偶数之前

  • 第16题:

    下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中奇数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。

    例如,当s中的数为7654321时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。

    注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!

    include<;stdi0.h>;


    正确答案:
    (1)void(long}t)(2)sl=sl·10;【考点分析】函数定义,指针型变量;数值n和其各个位如何表示。【解题思路】(1)主函数中调用函数的参数为地址,因此函数fun的形式参数应为指针类型。(2)重新组合一个数,从个位开始,然后十位,依次类推,因此每增加—位数,原数值需乘以10,即sl=sl}10;。

  • 第17题:

    下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。

    例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!


    正确答案:
    (1)}t=0;(2)if(d%21=0)或if(d%2==1)【考点分析】本题考查:指针型变量作为函数参数;if语句条件表达式,结合奇偶数的表示方法来确定该表达式内容。【解题思路】(1)由函数定义可知,变量t是指针变量,所以对t进行赋初值0是不对的。因为t指向的是存放新数的变量,所以此处应给新数赋初值0,即。t=0。(2)变量d表示数S各个位上的数,此处的if条件应为判断d是否为奇数。

  • 第18题:

    在数据文件in.dat中有200组数据,每组有3个数,每个数均是三位数。函数readDat是读取这200组数据存放到结构数组aa中。请编制函数isSort,其函数的功能是:要求在200组数据中找出第一个数大于第二个数与第三个数之和的数,其中满足条件的个数作为函数jsSort的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数与第三个数之和的大小进行升序排列(第一个数与第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat把结果bb输出到out.dat文件中。 注意:部分源程序存在test.c文件中。 请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat和写函数writeDat的内容。


    正确答案:
    【审题关键句】第1个数大于第2个数加第3个数,存入数组,按第l个加第3个数之和升序排序。
    【解题思路】
    本题类似第63套试题,通过审题可以发现主要有两个不同点:①筛选满足条件的记录不同,参考答案的第5行,修改 if条件语句的设置即可;②对满足条件的筛选结果进行排序的条件不同,参考答案的ll行,修改if条件语句的设置即可。
    【参考答案】

  • 第19题:

    请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。 注意:部分源程序在文件PROGl.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:


    【考点分析】
    本题考查:求数组的最大值,需要运用循环语句,因为数组是二维数组,所以应使用二层for循环嵌套。使用for循环语句时需要注意循环变量的取值范围。
    【解题思路】
    此类求最大值或最小值的问题,我们可以采用逐个比较的方式,要求对数组中所有元素遍历一遍,并且从中找出数组最大值或最小值。首先定义变量max存放数组中的第一个元素的值,然后利用for循环逐个找出数组中的元素,并与max比较,如果元素值大于max,则将该值赋予max,循环结束后max的值即为数组最大值,最后将该值返回。
    【解题宝典】
    该类题目考查较多,要掌握逐行比较的方法。对于m*n二维数组,如采用逐行查找方法,代码实现为:


  • 第20题:

    下列给定程序中函数proc()的功能是:将长整型数中为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如,当s中的数为12345678时,则t中的数为8642。

    请修改函数proc()中的错误,使它能得出正确的结果。

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

    试题程序:


    正确答案:

    (1)错误:if(d%2!=0)
    正确:if(d%2==0)
    (2)错误:t=d*s1+t;
    正确:*t=d*s1+*t;
    【解析】题目要求长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。首先要判断每一位上的数是否为偶数,因此“if(d%2!=0)”应改为“if(d%2==0)”;变量t是一个指针变量,其是直接运算操作的内存地址,因此“t=d*sl+t;”应改为“*t=d*s1+*t;”。

  • 第21题:

    在C程序中,可将整型数以二进制形式存放到文件中的函数是______。

    A.fprint函数

    B.fread函数

    C.fwrite函数

    D.fputc函数


    正确答案:C

  • 第22题:

    在scanf()函数的格式说明符中,长整型数的输人格式说明符是()

    • A、%d
    • B、%ld
    • C、%If
    • D、%x

    正确答案:B

  • 第23题:

    单选题
    以下叙述中错误的是(  )。
    A

    gets函数用于从终端读入字符串

    B

    getchar函数用于从磁盘文件读入字符

    C

    fputs函数用于把字符串输出到文件

    D

    fwrite函数用于以二进制形式输出数据到文件


    正确答案: B
    解析:
    fgetc函数从磁盘文件中读入字符,getchar函数从终端或者键盘接收字符。答案选择B选项。

  • 第24题:

    单选题
    C语言程序中,整型常量的书写形式不包括()。
    A

    二进制

    B

    八进制

    C

    十进制

    D

    十六进制


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