单选题有以下程序:#include main(){ FILE *fp; int i,a[6]={1,2,3,4,5,6},k; fp=fopen(data.dat,w+b); fwrite(a[0],sizeof(int),1,fp); for(i = 1;i 6;i++) {  fseek(fp,0L,0);  fread(k,sizeof(int),1,fp);  fseek(fp,0L,0);  a[i]+=k;  fwrite(a[i],sizeof(int),1,fp); } rewind(fp); fread(k,sizeof(int),1,fp); fclose(fp); printf(%d,k);}程序的运行结果是(  )。A21B6C123456D11

单选题
有以下程序:#include main(){ FILE *fp; int i,a[6]={1,2,3,4,5,6},k; fp=fopen(data.dat,w+b); fwrite(&a[0],sizeof(int),1,fp); for(i = 1;i < 6;i++) {  fseek(fp,0L,0);  fread(&k,sizeof(int),1,fp);  fseek(fp,0L,0);  a[i]+=k;  fwrite(&a[i],sizeof(int),1,fp); } rewind(fp); fread(&k,sizeof(int),1,fp); fclose(fp); printf(%d,k);}程序的运行结果是(  )。
A

21

B

6

C

123456

D

11


参考解析

解析:
“w+”表示打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失;若文件不存在则建立该文件;加入b字符后“w+b”用来告诉函数库打开的文件为二进制文件。程序执行过程为:以读/写方式打开一个新的二进制文件data.dat,从地址为a的数据块开始,一次输出一个整型字节的数据,只输出一次,将1写入文件中;执行for循环,将文件指针移到文件开头,将文件第一个数值读出赋给k,再将指针移动到开头,向文件内输入a[i]+k=3。for循环实现将a数组中元素累加,结果21存放在文件中。调用rewind将文件指针移动到开头,调用fread函数从文件中读出一个整型数据赋给k=21,调用fclose函数关闭文件,打印k值,答案选择A选项。

相关考题:

单选题下列语句中,正确的是(  )。Achar *s; s = Olympic;Bchar s[7]; s= Olympic;Cchar *s; s= {Olympic};Dchar s[7]; s= {Olympic};

单选题已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是(  )。Ac=('A'+c)%26-'a'Bc=c+32Cc=c-'A'+'a'Dc=(c-'A')%26+'a'

单选题若有以下函数首部int fun(double x[10],int*n)则下面针对此函数的函数声明语句中正确的是(  )。Aint fun(double*,int*);Bint fun(double,int);Cint fun(double *x,int n);Dint fun(double x,int*n);

单选题设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于(  )。Ap= ;Bp='0';Cp=0;Dp='';

单选题有以下程序:#include main(){ int i,a;  for(i=0;i=10;i++)a=i; printf(%d,%d,i,a); }程序的运行结果是(  )。A11,10B10,10C10,11D11,11

单选题有以下程序#includemain(){ charb,c; inti; b='a'; c='A'; for(i=0;i6;i++) {  if(i%2)putchar(i+b);  elseputchar(i+c); } printf();}程序运行后的输出结果是(  )。AaBcDeFBABCDEFCAbCdEfDabcdef

单选题下面概念中,不属于面向对象方法的是(  )。A对象B继承C类D过程调用

单选题C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述中正确的是(  )。A预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义B用户标识符可以由字母和数字任意顺序组成C在标识符中大写字母和小写字母被认为是相同的字符D关键字可用作用户标识符,但失去原有含义

填空题要将一个整数12000分别以ASCII码文件和二进制文件形式存放,各自所占的存储空间分别是()字节。

单选题设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。若T=R×S,则T的元组的个数为(  )。A6B8C9D12

单选题设有如下定义: typedefint*INTEGER; INTEGERp,*q; 则()是正确的叙述。Ap是int型变量Bq是基类型为int的指针变量Cp是基类型为int的指针变量D程序中可用INTEGER代替int类型名

单选题开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(  )。A软件矛盾B软件危机C软件藕合D软件产生

单选题若有以下的定义、说明和语句,则值为101的表达式是()A*p-bBp-aC++(p-a)D(p++)-a

单选题设已定义:inta[][4]={0,0};则下列描述错误的是()A数组a的每个元素都可得到初值0B二维数组a的第一维大小为1C数组a的行数为1D只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

单选题数据库管理系统中负责数据模式定义的语言是(  )。A数据定义语言B数据管理语言C数据操纵语言D数据控制语言

单选题构成C程序的三种基本结构是(  )。A顺序结构、转移结构、递归结构B顺序结构、嵌套结构、递归结构C顺序结构、选择结构、循环结构D选择结构、循环结构、嵌套结构

单选题有以下程序:#include int disp(char *str){ while(*str) putchar(*str++); putchar('#'); return *str;}main(){ printf(%d,disp(C##123));}程序运行后的输出结果是(  )。AC##123#0BC##1230CC##0DC##123#\0

单选题有以下程序: #include voidfun(intx,inty,int*z) {  *z=y-x; } main() {  inta,b,c;  fun(10,5,a);  fun(7,a,b);  fun(a,b,c);  printf("%d,%d,%d",a,b,c); } 程序运行后的输出结果是(  )。A5,2,3B-5,-12,-7C-5,-12,-17D5,-2,-7

单选题设有定义:int a=1,b=2,c=3;以下语句中执行效果与其他三个不同的是(  )。Aif(ab)c=a,a=b,b=c;Bif(ab){c=a,a=b,b=c}Cif(ab)c=a;a=b;b=c;Dif(ab){c=a;a=b;b=c}

单选题下列关于C语言函数的描述中,正确的是()A函数的定义可以嵌套,但函数的调用不可以嵌套B函数的定义不可以嵌套,但函数的调用可以嵌套C函数的定义和函数的调用都可以嵌套D函数的定义和函数的调用都不可以嵌套

单选题在C语言中,函数默认的存储类型为()。AautoBregisterCstaticDextern

单选题下列排序方法中,最坏情况下比较次数最少的是(  )。A冒泡排序B简单选择排序C直接插入排序D堆排序

单选题在数据库系统的组织结构中,下列(  )映射把用户数据库与概念数据库联系了起来。A外模式/模式B内模式/外模式C模式/内模式D内模式/模式

单选题一棵二叉树共有25个结点,其中5个叶子结点,那么度为1的结点数为(  )。A4B6C10D16

单选题有以下程序:#includemain(){ charb,c; inti; b='a'; c='A'; for(i=0;i6;i++) {  if(i%2)putchar(i+b);  elseputchar(i+c); } printf();}程序运行后的输出结果是(  )。AABCDEFBAbCdEfCaBcDeFDabcdef

单选题下面属于系统软件的是(  )。A财务管理系统B编译软件C编辑软件WordD杀毒软件

单选题下列叙述中正确的是(  )。A存储空间不连续的所有链表一定是非线性结构B结点中有多个指针域的所有链表一定是非线性结构C能顺序存储的数据结构一定是线性结构D带链的栈与队列是线性结构

单选题若有定义语句:char str1[] = "string", str2[8], *str3, str4[10] = "string";库函数strcpy的功能是复制字符串,以下选项中错误的函数调用是(  )。Astrcpy(str3, "HELLO!");Bstrcpy(str2, "HELLO!");Cstrcpy(str1, "HELLO!");Dstrcpy(str4, "HELLO!");