单选题有以下程序:#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选项。
“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);
单选题有以下程序:#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
单选题C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述中正确的是( )。A预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义B用户标识符可以由字母和数字任意顺序组成C在标识符中大写字母和小写字母被认为是相同的字符D关键字可用作用户标识符,但失去原有含义
单选题设有如下定义: typedefint*INTEGER; INTEGERp,*q; 则()是正确的叙述。Ap是int型变量Bq是基类型为int的指针变量Cp是基类型为int的指针变量D程序中可用INTEGER代替int类型名
单选题设已定义:inta[][4]={0,0};则下列描述错误的是()A数组a的每个元素都可得到初值0B二维数组a的第一维大小为1C数组a的行数为1D只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
单选题有以下程序:#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函数的定义和函数的调用都不可以嵌套
单选题有以下程序:#includemain(){ charb,c; inti; b='a'; c='A'; for(i=0;i6;i++) { if(i%2)putchar(i+b); elseputchar(i+c); } printf();}程序运行后的输出结果是( )。AABCDEFBAbCdEfCaBcDeFDabcdef
单选题若有定义语句:char str1[] = "string", str2[8], *str3, str4[10] = "string";库函数strcpy的功能是复制字符串,以下选项中错误的函数调用是( )。Astrcpy(str3, "HELLO!");Bstrcpy(str2, "HELLO!");Cstrcpy(str1, "HELLO!");Dstrcpy(str4, "HELLO!");