C语言程序设计

单选题有以下程序:#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); } rewi

题目
单选题
有以下程序:#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

参考答案和解析
正确答案: 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选项。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

int fun(double*,int*);

B

int fun(double,int);

C

int fun(double *x,int n);

D

int fun(double x,int*n);


正确答案: B
解析:
函数声明应该和函数调用的参数保持一致,声明时的参数(形参)名字可以省略,数组在参数传递过程中变成指针。答案选择A选项。

第2题:

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

11,10

B

10,10

C

10,11

D

11,11


正确答案: C
解析:
当i=10时循环继续执行,i值赋值给变量a。赋值完成后执行i=i+1,此时i=11,不满足循环条件,结束循环。然后输出i,a的值分别为11,10。答案选择A选项。

第3题:

单选题
下列语句中,正确的是(  )。
A

char *s; s = Olympic;

B

char s[7]; s= Olympic;

C

char *s; s= {Olympic};

D

char s[7]; s= {Olympic};


正确答案: B
解析:
A项,将存放字符串常量的无名存储区的首地址赋给指针变量;BD两项错误,C语言中不可以用赋值语句对数组名一字符串,数组名代表数组首地址,不可更改,可以逐个给数组元素赋字符值,并在最后加入字符串结束标志;C项,赋值格式错误。答案选择A选项。

第4题:

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

正确答案: 5和4
解析: 暂无解析

第5题:

单选题
下面概念中,不属于面向对象方法的是(  )。
A

对象

B

继承

C

D

过程调用


正确答案: C
解析:
面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。答案选择D选项。

第6题:

单选题
设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于(  )。
A

p= ;

B

p='0';

C

p=0;

D

p='';


正确答案: A
解析:
NULL的ASCII码值为0,p=NULL等价于p='\0';或p=0。答案选择C选项。

第7题:

单选题
有以下程序 #include  main() {  char b,c;  int i;  b='a';  c='A';  for(i=0;i<6;i++)  {   if (i%2) putchar(i+b);   else putchar(i+c);  }  printf(); } 程序运行后的输出结果是(  )。
A

aBcDeF

B

ABCDEF

C

AbCdEf

D

abcdef


正确答案: A
解析:
本题中,当i为偶数时,即0、2、4,执行putchar(i+c)会依次输出ACE;当i为奇数时,即1、3、5,执行putchar(i+b)会依次输出bdf,所以最终输出AbCdEf。答案选择C选项。

第8题:

单选题
已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下不能将变量c中的大写字母转换为对应小写字母的语句是(  )。
A

c=('A'+c)%26-'a'

B

c=c+32

C

c=c-'A'+'a'

D

c=(c-'A')%26+'a'


正确答案: B
解析:
A项,模26运算后得到0~25之间的数,再与'a'相减结果是负数。B项,ASCII码表中,同一字母的小写码比大写码数值上大32;C项,'a'-'A'=32;D项,c-'A'取值在0~26,等价于C项。答案选择A选项。

第9题:

单选题
C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述中正确的是(  )。
A

预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义

B

用户标识符可以由字母和数字任意顺序组成

C

在标识符中大写字母和小写字母被认为是相同的字符

D

关键字可用作用户标识符,但失去原有含义


正确答案: B
解析:
C语言允许把预定义标识符重新定义另作他用,但这将失去预先定义的原意。B项,标识符的第一个字符必须为字母或下划线;C项,标识符区分大小写;D项,关键字是指被C语言保留的,不能用作其他用途的标识符。答案选择A选项。

第10题:

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

6

B

8

C

9

D

12


正确答案: D
解析:
R为n元关系,有p个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。答案选择C选项。

更多相关问题