国家二级C语言机试(结构体、共用体与文件)模拟试卷1(共124题)_第1页
国家二级C语言机试(结构体、共用体与文件)模拟试卷1(共124题)_第2页
国家二级C语言机试(结构体、共用体与文件)模拟试卷1(共124题)_第3页
国家二级C语言机试(结构体、共用体与文件)模拟试卷1(共124题)_第4页
国家二级C语言机试(结构体、共用体与文件)模拟试卷1(共124题)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级C语言机试(结构体、共用体与文件)模拟试卷1(共4套)(共124题)国家二级C语言机试(结构体、共用体与文件)模拟试卷第1套一、选择题(本题共31题,每题1.0分,共31分。)1、有以下程序段int*p;p=__________malloc(sizeof(int));若要求使p指向一个int型的动态存储单元,在横线处应填入的是()。A、(int*)B、intC、int*D、(*int)标准答案:A知识点解析:语句"malloc(sizeof(int))"为动态分配了一块内存,因为p为int型指针,所以需要使用强制转换将该内存地址转换成int*类型后再指给p,填入的内容为(int*),答案选A。2、若有以下程序段structst{intn;structst*next;};structsta[3]={5,&a[1],7,&a[2],9,’\0’},*p;p=&a[0];则以下选项中值为6的表达式是()。A、++(p->n)B、(*p).nC、p->n++D、p->n标准答案:A知识点解析:语句"p=&a[0];"表示将指针p指向了结构体数组a的首地址,所以++(p->n)值为6,(*p).n相当于a[0].n,值为5,p->n++值为5,p->n值为5,答案选A。3、有以下程序#includemain(){inti=1;i=i^i;printf("%d\n",i);}程序运行后的输出结果是()。A、0B、-1C、1D、7标准答案:A知识点解析:任何一个数值跟自身的异或运算结果均为0,答案选A。4、以下程序用来统计文件中字符的个数(函数feof用以检查文件是否结束,结束时返回非零)#includemain(){FILE*fp;longnum=0;fp=fopen("fname.dat","r");while(__________){fgetc(fp);num++;}printf("num=%d\n",num);fclose(fp);}下面选项中,填入横线处不能得到正确结果的是()。A、feof(fp)B、!feof(fp)C、feof(fp)==NULLD、feof(fp)==0标准答案:A知识点解析:while循环的作用是统计文件中字符的个数,循环条件需为"当前没有到达文件结束",feof()函数检查文件是否结束,若结束返回非零,所以要填入的内容应该为feof(fp)==0或者!feof(fp),若直接填feof(fp)则while循环会在文件没结束时跳出循环,答案选A。5、以下叙述中正确的是()。A、在程序中,允许用typedef来说明一种新的类型名B、使用typedef说明新类型名时,其格式是:typedef新类型名原类型名;C、使用typedef说明新类型名时,后面不能加分号D、在使用typedef改变原类型的名称后,只能使用新的类型名标准答案:A知识点解析:typedef为类型定义符,使用的一般形式为"typedef原类型名新类型名;",它用于给已知类型取别名,作用是用"新类型名"代替"原类型名",并没有产生新的数据类型,而且原有类型名依然有效,"新类型名"与"原类型名"允许同时使用,所以答案选A。6、以下叙述中正确的是()。A、一个结构体类型可以由多个称为成员(或域)的成分组成B、结构体类型中的成分只能是C语言中预先定义的基本数据类型C、在定义结构体类型时,编译程序就为它分配了内存空间D、结构体类型中各个成分的类型必须是一致的标准答案:A知识点解析:结构体中的成员可以是C语言中任意的数据类型,不仅仅是基本数据类型,选项B)、D)错误;定义结构体类型时,只是对这种结构体类型进行了说明,定义结构体变量时编译程序才为该变量分配内存空间,选项C)错误;答案选A)。7、以下叙述中正确的是()。A、使用typedef定义新类型名后,新类型名与原类型名实际上是等价的B、结构体类型中的各个成分均不能是数组或指针C、结构体类型的变量,不能在声明结构体类型组成时一起定义D、元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义标准答案:A知识点解析:结构体中的成员可以是C语言中任意的数据类型,数组类型和指针类型属于C语言的数据类型,选项B)错误;可以在声明结构体类型组成时同时定义该结构体类型的变量或数组,选项C)、D)错误;答案选A)。8、下面选项中关于位运算的叙述正确的是()。A、位运算的对象只能是整型或字符型数据B、位运算符都需要两个操作数C、左移运算的结果总是原操作数据2倍D、右移运算时,高位总是补0标准答案:A知识点解析:取反运算符"~"为单目运算符,选项B)错误;左移运算的结果总是原操作数据2^n倍,n为"<<"右边移动的位数,选项C)错误;右移运算正数高位补0,负数高位补1,选项D)错误;答案选A)。9、下面选项中关于"文件指针"概念的叙述正确的是()。A、文件指针是程序中用FILE定义的指针变量B、文件指针就是文件位置指针,表示当前读写数据的位置C、文件指针指向文件在计算机中的存储位置D、把文件指针传给fscanf函数,就可以向文本文件中写入任意的字符标准答案:A知识点解析:文件指针是指在程序中定义的FILE类型的指针变量,指向的是一个FILE类型的结构体,可以通过fopen函数的调用给文件指针赋值,使文件指针和某个文件建立联系,选项A)正确,选项C)错误;文件位置指针只是一个形象化的概念,在C语言中用文件位置指针来表示文件当前读或写的数据在文件中的位置,和文件指针不同,选项B)错误;fscanf()函数用于从文件中读取数据,选项D)错误;所以答案选A)。10、以下叙述中正确的是()。A、在调用函数时,可以将结构体变量作为实参传给函数B、函数的返回值不能是结构体类型C、函数的返回值不能是结构体指针类型D、结构体数组不能作为参数传给函数标准答案:A知识点解析:结构体类型为用户自定义的一种类型,其使用和C语言基本数据类型的使用方法一致,所以答案选A)。11、以下叙述中正确的是()。A、结构体中可以含有指向本结构体的指针成员B、结构体变量的地址不能作为实参传给函数C、结构体数组名不能作为实参传给函数D、即使是同类型的结构体变量,也不能进行整体赋值标准答案:A知识点解析:语句"*p=&x;"将结构体指针p指向了结构体变量x的地址,所以*p与x等价,p->a与x.a等价,++p->a表示将a自增1,(p++)->a与p++->a等价,值均为4,*p->s++与*x.s++等价,语句"(*p)->s++"不合法,所以答案选A)。12、设有如下的说明和定义struct{inta;char*s;}x,*p=&x;x.a=4;x.s="hello";则以下叙述中正确的是()。A、语句++p->a;的效果是使成员a增1B、语句++p->a;的效果是使p增1C、(p++)->a与p++->a都是合语法的表达式,但二者不等价D、语句*p->s++;等价于(*p)->s++;标准答案:A知识点解析:语句"*p=&x;"将结构体指针p指向了结构体变量x的地址,所以*p与x等价,p->a与x.a等价,++p->a表示将a自增1,(p++)->a与p++->a等价,值均为4,*p->s++与*x.s++等价,语句"(*p)->s++"不合法,所以答案选A。13、下面关于位运算符的叙述,正确的是()。A、&表示"按位与"的运算B、#表示"按位异或"的运算C、||表示"按位或"的运算D、~表示"按位异或"的运算标准答案:A知识点解析:以#开头的语句为编译预处理命令行,||为逻辑或运算符,~表示按位取反运算符,答案选A。14、下面关于"EOF"的叙述,正确的是()。A、EOF是在库函数文件中定义的符号常量B、EOF的值等于0C、文本文件和二进制文件都可以用EOF作为文件结束标志D、对于文本文件,fgetc函数读入最后一个字符时,返回值是EOF标准答案:A知识点解析:EOF为一符号常量,值为-1,在C语言中常被作为文本文件的结束标志。fgetc函数读入最后一个字符,返回值仍然是该字符,继续读入时,才返回EOF。答案选A。15、有以下程序#includemain(){charx=2,y=2,z;z=(y<<1)&(x>>1);printf("%d\n",z);}程序的输出结果是()。A、0B、1C、4D、8标准答案:A知识点解析:x、y的ASCII码为2,对应二进制为0010,y<<1的结果为0100,x>>1的结果为0001,而0100&0001的结果为0,所以答案选A。16、有以下程序#includestructS{inta;intb;};main(){structSa,*p=&a;a.a=99;printf("%d\n",__________);}程序要求输出结构体中成员a的数据,以下不能填入横线处的内容是()。A、*p.B、BC、AD、p->标准答案:A知识点解析:p为指向结构体变量a的指针,用p引用结构体成员需要用到指向运算符"->",或者(*p).a,选项A)的用法不正确,答案选A)。17、若fp已定义为指向某文件的指针,且没有读到该文件的末尾,则C语言函数feof(fp)的函数返回值是()。A、0B、非0C、-1D、EOF标准答案:A知识点解析:函数feof(fp)的功能是检查文件是否结束,遇文件结束返回非0,否则返回0,所以答案选A)。18、有以下程序#includestructSTU{charname[9];charsex;intscore[2];};voidf(structSTUa[]){structSTUb={"Zhao",’m’,85,90};a[1]=b;}main(){structSTUc[2]={{"Qian",’f’,95,92},{"Sun",’m’,98,99}};f(c);printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]);printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]);}程序运行后输出结果是()。A、Qian,f,95,92,Zhao,m,85,90B、Qian,f,95,92,Sun,m,98,99C、Zhao,m,85,90,Sun,m,98,99D、Zhao,m,85,90,Qian,f,95,92标准答案:A知识点解析:结构体数组名作为函数参数为地址传参,形参和实参指向的为同一块内存地址,所以对数组元素的改变能够影响到实参。同类型的结构体变量之间可以直接赋值,语句"a[1]=b;"则将结构体变量b中的数据赋值给数组a的第二个元素,所以输出结果为选项A)。19、以下叙述中错误的是()。A、typedef说明的新类型名必须使用大写字母,否则会出编译错误B、typedef的作用是用一个新的标识符来代表已存在的类型名C、可以用typedef说明的新类型名来定义变量D、用typedef可以说明一种新的类型名标准答案:A知识点解析:typedef为类型定义符,作用是给已知类型取别名,用"新类型名"代替"原类型名",新类型名可以使用任意合法的用户自定义标识符,不一定必须用大写字母,选项A)错误,答案选A)。20、以下叙述中错误的是()。A、函数的返回值类型不能是结构体类型,只能是简单类型B、只要类型相同,结构体变量之间可以整体赋值C、可以通过指针变量来访问结构体变量的任何成员D、函数可以返回指向结构体变量的指针标准答案:A知识点解析:函数的返回值类型可以为C语言中任意合法的数据结构,不仅可以为简单的数据类型,也可以为复杂的构造类型和指针类型,选项A)描述错误,答案选A)。21、若有定义语句intb=2;则表达式(b<<2)/(3||b)的值是()。A、8B、2C、4D、0标准答案:A知识点解析:变量b对应的ASCII码为0010,b<<2的结果为1000,对应十进制为8,3||b的结果为1,8/1=8,输出结果为选项A)。22、有以下程序#includemain(){FILE*fp;inti,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w+");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);rewind(fp);for(i=0;i<6;i++)fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i=0;i<6;i++)printf("%d,",a[i]);}程序运行后输出结果是()A、6,5,4,3,2,1,B、1,2,3,4,5,6,C、4,5,6,1,2,3,D、1,2,3,3,2,1,标准答案:A知识点解析:文件d2.dat以读写的方式"w+"打开,第一个for循环将数组a中的数据写入该文件中,然后将文件指针置于文件首,顺序读出文件中的数据并逆序存放在数组a中,所以输出结果为选项A)。23、有以下程序#includetypedefstructstu{charname[10];chargender;intscore;}STU;voidf(STU*a,STU*b){b=a;printf("%s,%c,%d,",b->name,b->gender,b->score);}main(){STUa={"Zhao",’m’,290},b={"Qian",’f’,350};f(&a,&b);printf("%s,%c,%d\n",,b.gender,b.score);}程序的运行结果是()。A、Zhao,m,290,Qian,f,350B、Qian,f,350,Zhao,m,290C、Qian,f,350,Qian,f,350D、Zhao,m,290,Zhao,m,290标准答案:A知识点解析:函数f()虽然为地址传参,但是形参只是实参的一个副本,若形参和实参为地址,则形参指针指向的变化不能影响到实参指针的指向,所以该函数不能改变&b的值,也不能改变b中的值,所以在函数f()内,语句"b=a;"将当前b的指针指向a指向的结构体变量内存空间,所以输出结果为"Zhao,m,290,",但是主函数中b的值没有改变,输出结果为"Qian,f,350",答案选A。24、有以下程序#include#includetypedefstructstu{charname[10];chargender;intscore;}STU;voidf(STUc){strcpy(,"Qian");c.gender=’f’;c.score=350;}main(){STUa={"Zhao",’m’,290},b;b=a;f(b);printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}程序的运行结果是()。A、Zhao,m,290,Zhao,m,290B、Zhao,m,290,Qian,m,290C、Zhao,m,290,Qian,m,350D、Zhao,m,290,Qian,f,350标准答案:A知识点解析:结构体变量作为函数参数为值传递,形参变量的变化不能影响实参变量的变化,所以函数f(b)调用结束后,b的值没有改变,和a一致,所以输出结果为选项A)。25、若有定义typedefintT[10];Ta[20];则与上述定义完全等价的说明语句是()。A、inta[20][10];B、inta[20];C、inta[10];D、inta[10][20];标准答案:A知识点解析:typedef为类型定义符,作用是用"新类型名"代替"原类型名",即为现有类型定义容易记忆的类型名。typedef能够隐藏复合类型,比如指针和数组,定义语句"typedefintT[10];"表明类型T就代表了具有10个元素的整型数组,所以语句"Ta[20];"则表示定义了具有20个元素并且每个元素都为一个有10个元素的一维数组,所以答案选A。26、有以下程序#includemain(){intc,d;c=10|5;d=10+5;printf("%d,%d\n",c,d);}程序的运行结果是()。A、15,15B、10,15C、5,15D、105,15标准答案:A知识点解析:10的二进制数为1010,5的二进制数为0101,1010|0101=1111,对应十进制数为15,所以答案选A。27、有以下程序#includemain(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat","w+");fprintf(fp,"%d\n",a[0]);for(i=1;i<6;i++){fseek(fp,0L,0);fscanf(fp,"%d",&k);fseek(fp,0L,0);fprintf(fp,"%d\n",a[i]+k);}rewind(fp);fscanf(fp,"%d",&k);fclose(fp);printf("%d\n",k);}程序的运行结果是()。A、21B、6C、123456D、11标准答案:A知识点解析:该段代码以读写的方式打开文件data.dat,然后把数组a的第一个元素写入文件,接下来的for循环是不断读取当前文件中的数据,将该数据和数组a的下一个元素累加后又写入到文件当中(语句"fseek(fp,0L,0);"和"rewind(fp)"的作用是将文件指针移动至文件首),所以最终文件内记录的是数组a中所有元素之和,答案选A。28、有以下程序#includetypedefstructstu{charname[10];chargender;intscore;}STU;voidf(STU*a,STU*b){*b=*a;printf("%s,%c,%d,",b->name,b->gender,b->score);}main(){STUa={"Zhao",’m’,290},b={"Qian",’f’,350};f(&a,&b);printf("%s,%c,%d\n",,b.gender,b.score);}程序的运行结果是()。A、Zhao,m,290,Zhao,m,290B、Zhao,m,290,Qian,f,350C、Qian,f,350,Qian,f,350D、Qian,f,350,Zhao,m,290标准答案:A知识点解析:结构体变量地址作为函数参数为地址传参,形参和实参指向的为同一块内存地址,所以对数组元素的改变能够影响到实参。语句"*b=*a;"则将a指向的结构体变量中的数据赋值给b指向的结构体变量,实参b的值也发生改变,输出结果为选项A)。29、有以下程序#include#includetypedefstructstu{charname[10];chargender;intscore;}STU;voidf(char*name,chargender,intscore){strcpy(name,"Qian");gender=’f’;score=350;}main(){STUa={"Zhao",’m’,290},b;b=a;f(,b.gender,b.score);printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}程序的运行结果是()。A、Zhao,m,290,Qian,m,290B、Zhao,m,290,Zhao,m,290C、Zhao,m,290,Qian,m,350D、Zhao,m,290,Qian,f,350标准答案:A知识点解析:结构体成员变量作为函数参数,第一个参数为地址传参,第二个和第三个参数为值传参,地址传参中形参指针指向内容的改变能够改变实参指针指向内容的改变,而值传递过程中,形参的改变不能够影响到实参,所以调用函数语句"f(,b.gender,b.score);"之后,b中的数据为{"Qian",?m?,290}。30、若有定义typedefintT[10];T*a[20];则与上述定义完全等价的说明语句是()。A、int*a[20][10];B、int*a[20];C、int*a[10];D、int*a[10][20];标准答案:A知识点解析:typedef为类型定义符,作用是用"新类型名"代替"原类型名",即为现有类型定义容易记忆的类型名。typedef能够隐藏复合类型,比如指针和数组,定义语句"typedefintT[10];"表明类型T就代表了具有10个元素的整型数组,所以语句"T*a[20];"则表示定义了具有20个元素并且每个元素都为一个有10个元素的指针数组,所以答案选A。31、有以下程序#includemain(){intc,d;c=13&5;d=10&&5;printf("%d,%d\n",c,d);}程序的运行结果是()。A、5,1B、1,1C、18,1D、13,1标准答案:A知识点解析:按位与"&"运算符的运算规则是:只要对应的二进制位有一个为0时,结果就为0。而逻辑与"&&"的运算规则是两个运算对象均为真(非零)时,该逻辑表达式的值才为真(1),13的二进制数为1101,5的二进制数为0101,1101&0101=0101,对应十进制数值为5。10&&5结果为真,用值表示是1,所以输出结果为选项A)。国家二级C语言机试(结构体、共用体与文件)模拟试卷第2套一、选择题(本题共30题,每题1.0分,共30分。)1、有以下程序#includemain(){chara=4;printf("%d\n",a=a<<1);}程序的运行结果是()。A、8B、16C、40D、4标准答案:A知识点解析:左移运算符"<<"的运算规则是把左边运算数的各二进制位全部左移n位,n取决于"<<"右边的数值,高位丢弃,低位补0。字符变量a的ASCII码值为4,对应二进制数值为0100,左移1位后值为1000,对应十进制数值为8,所以输出结果为8,答案选A。2、设文件指针fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是()。A、只能写不能读B、写操作结束后可以从头开始读C、可以在原有内容后追加写D、可以随意读和写标准答案:A知识点解析:文件打开方式为"w"表明只写不读,选项A)正确,答案选A)。3、以下结构体类型说明和变量定义中正确的是()。A、typedefstruct{intn;charc;}REC;RECt1,t2;B、structREC;{intn;charc;};RECt1,t2;C、typedefstructREC;{intn=0;charc=’A’;}t1,t2;D、struct{intn;charc;}REC;RECt1,t2;标准答案:A知识点解析:选项B)定义变量时需要加上struct,选项C)结构体定义不正确,选项D中REC已经为结构体变量,不能用它去定义其他变量,所以答案选A)。4、有以下程序#include#includestructA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa",1098.0};f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}voidf(structAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}程序运行后的输出结果是()。A、1001,ZhangDa,1098.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1002,ZhangDa,1202.0标准答案:A知识点解析:函数f()传递的参数为结构体变量,也是一种值传参,形参的变化不能影响到实参,所以调用函数f(a)对a中的数据没有影响。所以输出结果为选项A)。5、有以下程序#includemain(){inta=5,b=1,t;t=(a<<2)|b;printf("%d\n",t);}程序运行后的输出结果是()。A、21B、11C、6D、1标准答案:A知识点解析:语句"t=(a<<2)|b;"先计算表达式"(a<<2)",a的二进制数值为00000101,所以左移2位之后结果为00010100,对应十进制值为20,之后计算"00010100|b",b对应的二进制数值为00000001,或运算的结果为00010101,对应十进制值为21,所以答案选A。6、设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为()。A、非0值B、’\0’C、0D、NULL标准答案:A知识点解析:函数feof(fp)的功能是检查文件是否结束,遇文件结束返回非0,否则返回0,所以答案选A。7、有以下定义和语句structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能给w中year成员赋1980的语句是()。A、w.s.year=1980;B、w.year=1980;C、pw->year=1980;D、*pw.year=1980;标准答案:A知识点解析:该语句段中,结构体worker中又嵌套定义了结构体变量s,所以要访问s中的数据需要逐级找到最低级的成员才可以使用,引用方式可以:w.s.year或者pw->s.year,所以答案选A。8、以下叙述中错误的是()。A、可以通过typedef增加新的类型B、可以用typedef将已存在的类型用一个新的名字来代表C、用typedef定义新的类型名后,原有类型名仍有效D、用typedef可以为各种类型起别名,但不能为变量起别名标准答案:A知识点解析:typedef为类型定义符,使用的一般形式为"typedef原类型名新类型名;",它用于给已知类型取别名,作用仅仅是用"新类型名"代替"原类型名",并没有产生新的数据类型,答案选A。9、有以下程序#includestructtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf("%d,",p->x);p=p->y;}}程序的运行结果是()。A、20,15,B、30,17C、15,30,D、20,30,标准答案:A知识点解析:语句"p=a;"将指针p指向了结构体数组a的首地址,此时p->x与a[0].x等价,值为20,执行语句"p=p->y;"则将指针p指向了a+1,即数组a第二个元素的地址,此时p->x与a[1].x等价,值为15,所以答案选A。10、有以下程序#includemain(){structSTU{charname[9];charsex;doublescore[2];};structSTUa={"Zhao",’m’,85.0,90.0},b={"Qian",’f’,95.0,92.0};b=a;printf("%s,%c,%2.0f,%2.0f\n",,b.sex,b.score[0],b.score[1]);}程序的运行结果是()。A、Zhao,m,85,90B、Qian,m,85,90C、Zhao,f,95,92D、Qian,f,95,92标准答案:A知识点解析:同类型的结构体之间可以直接赋值,所以语句"b=a;"的作用是把结构体a中的数据赋值给结构体b,所以答案选A。11、有以下程序#includemain(){FILE*f;f=fopen("filea.txt","w");fprintf(f,"abc");fclose(f);}若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为()。A、abcB、abcloC、helloabcD、abchello标准答案:A知识点解析:该程序段的作用是将字符串"abc"写入到文件filea.txt中,由于打开文件时以只写方式打开,打开已经存在的文件会先把文件长度清0后再写入数据,所以运行结束后,文件filea.txt中的数据为"abc",答案选A)。12、设有定义:struct{charmark[12];intnum1;doublenum2;}t1,t2;若变量均已正确赋初值,则以下语句中错误的是()。A、t2.mark=t1.mark;B、t2.num1=t1.num1;C、t1=t2;D、t2.num2=t1.num2;标准答案:A知识点解析:同类型的结构体之间可以直接赋值,数组却不可以,答案选A。13、有以下程序#include#includestructA{inta;charb[10];doublec;};voidf(structAt);main(){structAa={1001,"ZhangDa",1098.0};f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}voidf(structAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}程序运行后的输出结果是()。A、1001,ZhangDa,1098.0B、1002,ChangRong,1202.0C、1001,ChangRong,1098.0D、1002,ZhangDa,1202.0标准答案:A知识点解析:函数f()传递的参数为结构体变量,也是一种值传参,形参的变化不能影响到实参,所以调用函数f(a)对a中的数据没有影响。所以输出结果为选项A)。14、有以下程序#include#includetypedefstruct{charname[9];charsex;floatscore[2];}STU;STUf(STUa){STUb={"Zhao",’m’,85.0,90.0};inti;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];returna;}main(){STUc={"Qian",’f’,95.0,92.0},d;d=f(c);printf("%s,%c,%2.0f,%2.0f\n",,d.sex,d.score[0],d.score[1]);}程序的运行结果是()。A、Zhao,m,85,90B、Qian,m,85,90C、Qian,f,95,92D、Zhao,f,95,92标准答案:A知识点解析:结构体是用户自己定义的一种数据类型,使用方法和C语言中的基本数据类型一致。函数f()中将结构体b中成员的数据分别赋值给a,所以函数的返回值为a即{"Zhao",?m?,85,90}。15、若变量已正确定义,则以下语句的输出结果是s=32;s^=32;printf("%d",s);()。A、0B、-1C、1D、32标准答案:A知识点解析:任何一个数值跟自身的异或运算结果均为0,答案选A。16、有以下程序#includemain(){FILE*fp;charstr[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fp=fopen("myfile.dat","a+");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str);puts(str);fclose(fp);}程序运行后的输出结果是()。A、abc28B、28cC、abcD、因类型不一致而出错标准答案:A知识点解析:该程序段的逻辑是:先以只写方式"w"打开文件myfile.dat,写入字符串"abc",后以附加方式打开"a+"可读写的文件,往文件末尾追加字符串"28",之后将文件指针fp指向文件首,读取所有写入的字符,所以答案选A。17、若有以下程序#include#include#includestructstu{char*name,gender;intscore;};main(){structstua={NULL,’m’,290},b;=(char*)malloc(10);strcpy(,"Zhao");b=a;b.gender=’f’;b.score=350;strcpy(,"Qian");printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}则程序的输出结果是()。A、Qian,m,290,Qian,f,350B、Zhao,m,290,Qian,f,350C、Qian,f,350,Qian,f,350D、Zhao,m,290,Zhao,f,350标准答案:A知识点解析:语句"=(char*)malloc(10);strcpy(,"Zhao");"将字符串"Zhao"赋值给了a中的字符指针,之后把结构体a中的数据赋值给b,然后改变b的gender、score这两个成员的值,而和指向同一块内存地址,所以当执行语句"strcpy(,"Qian");"时,和的值均为"Qian",所以最终结构体变量a的数据为{"Qian",?m?,290},b中的数据为{"Qian",?f?,350}。18、若有以下程序#include#include#includetypedefstructstu{char*name,gender;intscore;}STU;voidf(char*p){p=(char*)malloc(10);strcpy(p,"Qian");}main(){STUa={NULL,’m’,290},b;=(char*)malloc(10);strcpy(,"Zhao");b=a;f();b.gender=’f’;b.score=350;printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}则程序的输出结果是()。A、Zhao,m,290,Zhao,f,350B、Zhao,m,290,Qian,f,350C、Qian,f,350,Qian,f,350D、Qian,m,290,Qian,f,350标准答案:A知识点解析:语句"b=a;"把结构体a中的数据赋值给b,由于结构体的name成员为一指针变量,所以和指向同一块内存地址,调用函数f()后,形参指针指向的变化不能改变实参指针指向的变化,所以和的仍然相同,值均为"Zhao",所以最终结构体变量a的数据为{"Zhao",?m?,290},b中的数据为{"Zhao",?f?,350}。19、若有定义typedefint*T;Ta[10];则a的定义与下面哪个语句等价()。A、int*a[10];B、int(*a)[10];C、int*a;D、inta[10];标准答案:A知识点解析:typedef为类型定义符,使用的一般形式为"typedef原类型名新类型名;",作用仅仅是用"新类型名"代替"原类型名",所以T与int*等价,语句"Ta[10];"与"int*a[10];"等价,答案选A。20、若有以下程序#includemain(){intc;c=10^5;printf("%d\n",c);}则程序的输出结果是()。A、15B、10000C、5D、105标准答案:A知识点解析:异或运算符的运算规则是参与运算的两个数相对应的二进制位相异或运算,当两个对应的二进制位相异时,结果为1。10的二进制数为1010,5的二进制数为0101,1010^0101=1111,对应十进制数值为15,答案选A。21、若有以下程序#includemain(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat","w+");for(i=0;i<6;i++){fseek(fp,0L,0);fprintf(fp,"%d\n",a[i]);}rewind(fp);fscanf(fp,"%d",&k);fclose(fp);printf("%d\n",k);}则程序的输出结果是()。A、6B、1C、123456D、21标准答案:A知识点解析:句"fseek(fp,0L,0);"将文件指针fp指向文件首,然后再往当前地址内写入数据,由于每次循环都将文件指针置于文件首后再写,之前写入的数据会被新写入的数据覆盖,所以循环执行完毕之后,文件中最终写入的数据为6,输出结果为选项A)。22、若有以下程序#includetypedefstructstu{charname[10],gender;intscore;}STU;voidf(STUa,STUb){b=a;printf("%s,%c,%d,",,b.gender,b.score);}main(){STUa={"Zhao",’m’,290},b={"Qian",’f’,350};f(a,b);printf("%s,%c,%d\n",,b.gender,b.score);}则程序的输出结果是()。A、Zhao,m,290,Qian,f,350B、Zhao,m,290,Zhao,m,290C、Qian,f,350,Qian,f,350D、Zhao,m,290,Zhao,f,350标准答案:A知识点解析:同类型的结构体之间可以直接赋值,所以函数f()中把结构体变量a中的数据整体赋值给了结构体变量b,所以第一次输出结果为Zhao,m,290,。函数f()传递的参数为结构体变量,也是一种值传参,形参的变化不能影响到实参,所以主函数中调用函数f(a,b)对b中的数据没有影响,所以第二次的输出结果为Qian,f,350,答案选A。23、若有以下程序#include#includetypedefstructstu{charname[10],gender;intscore;}STU;voidf(char*p){strcpy(p,"Qian");}main(){STUa={"Zhao",’m’,290},b;b=a;f();b.gender=’f’;b.score=350;printf("%s,%c,%d,",,a.gender,a.score);printf("%s,%c,%d\n",,b.gender,b.score);}则程序的输出结果是()。A、Zhao,m,290,Qian,f,350B、Zhao,m,290,Zhao,m,290C、Qian,f,350,Qian,f,350D、Zhao,m,290,Zhao,f,350标准答案:A知识点解析:同类型的结构体之间可以直接赋值,所以主函数中把结构体变量a中的数据整体赋值给了结构体变量b。函数f()的作用是给赋值为"Qian"(注意这里结构体的第一个称为为数组而不是指针,所以与指向不同的内存空间),所以输出结果为选项A)。24、若有定义typedefcharT[10];T*a;上述定义中a的类型与下面选项中完全相同的是()。A、char*a[10];B、char(*a)[10];C、char*a;D、chara[10];标准答案:A知识点解析:typedef为类型定义符,作用是用"新类型名"代替"原类型名",即为现有类型定义容易记忆的类型名。typedef能够隐藏复合类型,比如指针和数组,定义语句"typedefcharT[10];"表明类型T就代表了具有10个元素的字符数组,所以语句"T*a;"则表示定义了具有10个元素并且每个元素都为指针类型的数组a,所以答案选A。25、若有以下程序#includemain(){intc;c=13|5;printf("%d\n",c);}则程序的输出结果是()。A、13B、15C、18D、5标准答案:A知识点解析:按位或运算"|"的运算规则是:只要对应的二进制位有一个为1时,结果就为1。13的二进制数为1101,5的二进制数为0101,1101|0101=1101,对应十进制数为13,所以答案选A。26、若有以下程序#includemain(){FILE*fp;inti,a[6]={1,2,3,4,5,6},k;fp=fopen("data.dat","w+b");for(i=0;i<6;i++){fseek(fp,0L,0);fwrite(&a[5-i],sizeof(int),1,fp);}rewind(fp);fread(&k,sizeof(int),1,fp);fclose(fp);printf("%d",k);}则程序的输出结果是()。A、1B、6C、123456D、21标准答案:A知识点解析:语句"fseek(fp,0L,0);"将文件指针fp指向文件首,然后再往当前地址内写入数据,由于每次循环都将文件指针置于文件首后再写,之前写入的数据会被新写入的数据覆盖,而写入顺序为按照数组逆序写入,所以循环执行完毕之后,文件中最终写入的数据为1,输出结果为选项A)。27、以下结构体说明和变量定义中,正确的是()。A、typedefstructabc{intn;doublem;}ABC;ABCx,y;B、structabc{intn;doublem};structabcx,y;C、structABC{intn;doublem;}structABCx,y;D、structabc{intn;doublem;};abcx,y;标准答案:A知识点解析:选项B)定义成员变量m的语句后少了一个分号,选项C)定义完结构体也没有加上分号,选项D)定义结构体变量时需要加上struct,所以答案选A)。28、有以下程序#include#includevoidfun(int*p1,int*p2,int*s){s=(int*)malloc(sizeof(int));*s=*p1+*(p2++);}main(){inta[2]={1,2},b[2]={10,20},*s=a;fun(a,b,s);printf("%d\n",*s);}程序运行后的输出结果是()。A、1B、10C、11D、2标准答案:A知识点解析:函数fun()的作用是将s重新指向一个内存空间并重新赋值,但是函数传递过程中形参只是实参的一个副本,如果形参和实参为两个地址,则形参指针指向的变化不能影响到实参指针的指向,所以函数fun()并不能改变s的指向,所以输出结果为1,答案选A。29、以下程序依次把从终端输入的字符存放到f文件中,用#作为结束输入的标志,则在横线处应填入的选项是#includemain(){FILE*fp;charch;fp=fopen("fname","w");while((ch=getchar())!=’#’)fputc(__________);fclose(fp);}()。A、ch,fpB、fp,chC、chD、ch,"fname"标准答案:A知识点解析:fputc()函数的一般形式为fputc(字符量,文件指针);,所以填入的内容应该为ch,fp,答案选A。30、有以下程序#includemain(){inti=0;i=~i;printf("%d\n",i);}程序运行后的输出结果是()。A、-1B、0C、1D、8标准答案:A知识点解析:计算机系统中,数值一律使用补码进行表示和存储,补码可以将符号位和数值位进行统一处理,正数的补码和原码相同,负数的补码是原码除符号位外的其他位取反再整体加1所得。取反运算符"~"的运算规则是对参与运算的数的各二进制位按位求反,0的二进制表示(篇幅有限,这里用八位表示)为00000000,取反后为11111111,符号位为1,所以"11111111"是一个负数的补码,对应原码为10000001,对应十进制数值为-1,答案选A。国家二级C语言机试(结构体、共用体与文件)模拟试卷第3套一、选择题(本题共31题,每题1.0分,共31分。)1、下面结构体的定义语句中,错误的是()。A、structord{intx;inty;intz;}structorda;B、structord{intx;inty;intz;};structorda;C、structord{intx;inty;intz;}a;D、struct{intx;inty;intz;}a;标准答案:A知识点解析:分号代表该结构体定义语句的结束,选项A)的结构体没有定义完全就用该结构体另外定义变量,用法有误,所以答案选A)。2、有以下程序#includetypedefstruct{intb,p;}A;voidf(Ac)/*注意:c是结构变量名*/{intj;c.b+=1;c.p+=2;}main(){inti;Aa={1,2};f(a);printf("%d,%d\n",a.b,a.p);}程序运行后的输出结果是()。A、1,2B、2,4C、1,4D、2,3标准答案:A知识点解析:考查结构体变量作为函数实参整体传递,也是一种值传参,形参的变化不能影响到实参,所以调用函数f(a)对a中的数据没有影响,输出结果为1,2,答案选A。3、有以下程序#includemain(){unsignedchara=8,c;c=a>>3;printf("%d\n",c);}程序运行后的输出结果是()。A、1B、16C、32D、0标准答案:A知识点解析:字符常量与其ASCII码值一一对应,在计算的时候,可以使用该字符的ASCII码参与运算,输出时会根据格式控制符输出对应的字符或者ASCII码。右移运算符">>"的运算规则是把左边运算数的各二进制位全部右移n位,n取决于">>"右边的数值。字符a的ASCII码值为8,对应二进制为1000,所以a>>3=1,输出的字符c的ASCII码值为1,答案选A。4、读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);其中buffer代表的是()。A、一个内存块的首地址,代表读入数据存放的地址B、一个整型变量,代表待读取的数据的字节数C、一个文件指针,指向待读取的文件D、一个内存块的字节数标准答案:A知识点解析:语句"fread(buffer,size,count,fp);"中,buffer为数据块的指针,指向一个内存块的首地址,该内存块存放的是输入的数据,答案选A。5、以下叙述中错误的是()。A、可以通过typedef增加新的类型B、可以用typedef将已存在的类型用一个新的名字来代表C、用typedef定义新的类型名后,原有类型名仍有效D、用typedef可以为各种类型起别名,但不能为变量起别名标准答案:A知识点解析:typedef为类型定义符,使用的一般形式为"typedef原类型名新类型名;",它用于给已知类型取别名,作用仅仅是用"新类型名"代替"原类型名",并没有产生新的数据类型,答案选A。6、有以下程序#includestructS{inta,b;}data[2]={10,100,20,200};main(){structSp=data[1];printf("%d\n",++(p.a));}程序运行后的输出结果是()。A、21B、11C、20D、10标准答案:A知识点解析:结构体只是用户自己定义的一种类型,使用方法和C语言中的基本数据类型一致。语句"structSp=data[1];"定义了一个结构体类型为S的结构体变量p,并将data第二个元素的值赋值给p,所以p.a与data[1].a等价,值为20,所以输出的结果为21。答案选A。7、有以下程序#includemain(){unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf("%d\n",d);}程序运行后的输出结果是()。A、4B、3C、5D、6标准答案:A知识点解析:计算语句"d=a|b"时,字符a的ASCII码为2,对应二进制为0010;字符b的ASCII码为4,对应二进制为0100;所以按位或"|"运算之后d的二进制为0110。计算语句"d&=c;"时,字符c的ASCII码为5,对应二进制为0101,所以按位与"&"运算之后d的二进制数值为0100,对应十进制值为4,所以答案选A。8、有以下程序#include#includemain(){int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b;printf("%d,%d,%d\n",*a,*b,*c);}程序运行后的输出结果是()。A、3,3,3B、2,2,3C、1,2,3D、1,1,3标准答案:A知识点解析:语句"a=b=c=(int*)malloc(sizeof(int));"将指针a、b、c指向了同一个内存地址,所以,*a、*b、*c始终保持一致,语句"*a=1;*b=2,*c=3;"执行完毕后,*a=*b=*c=3,语句"a=b"只是把b指向的地址指给指针a,执行完毕后仍然*a=*b=*c=3,所以输出结果为选项A)。9、以下叙述中正确的是()。A、当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失B、打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C、在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据D、C语言中的文件是流式文件,因此只能顺序存取数据标准答案:A知识点解析:对已有文件进行写操作不一定覆盖原文件的数据,可根据打开文件的方式不同在文件末尾追加写入数据,选项B)错误;要读到第1个数据只需要用指针定向函数rewind()将文件指针重新指向文件首即可,选项C)错误;C语言中的文件分为顺序读写文件和随机读写文件两种,随机读写文件可以从任意位置开始读写,选项D)错误。答案选A)。10、设有定义:structcomplex{intreal,unreal;}data1={1,8},data2;则以下赋值语句中错误的是()。A、data2=(2,6);B、data2=data1;C、data2.real=data1.real;D、data2.real=data1.unreal;标准答案:A知识点解析:给结构体变量的初始化需要用一对大括号将各成员的初始值括起来,而不是小括号,选项A)错误,答案选A)。11、有以下程序#includestructS{intn;inta[20];};voidf(structS*p){inti,j,t;for(i=0;in-1;i++)for(j=i+1;jn;j++)if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}}main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};f(&s);for(i=0;iA、1,2,3,4,5,6,7,8,9,10,B、10,9,8,7,6,5,4,3,2,1,C、2,3,1,6,8,7,5,4,10,9,D、10,9,8,7,6,1,2,3,4,5,标准答案:A知识点解析:函数f()将结构体成员的数组a中的前n个数据按照从小到大的顺序排列,所以调用f(&s)结束后,输出数组a的数据为选项A)。12、有以下程序#include#includetypedefstruct{charname[9];charsex;intscore[2];}STU;STUf(STUa){STUb={"Zhao",’m’,85,90};inti;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++)a.score[i]=b.score[i];returna;}main(){STUc={"Qian",’f’,95,92},d;d=f(c);printf("%s,%c,%d,%d,",,d.sex,d.score[0],d.score[1]);printf("%s,%c,%d,%d\n",,c.sex,c.score[0],c.score[1]);}程序运行后的输出结果是()。A、Zhao,m,85,90,Qian,f,95,92B、Zhao,m,85,90,Zhao,m,85,90C、Qian,f,95,92,Qian,f,95,92D、Qian,f,95,92,Zhao,m,85,90标准答案:A知识点解析:结构体是用户自己定义的一种数据类型,使用方法和C语言中的基本数据类型一致。函数f()传递的参数为结构体变量,也是一种值传参,形参的变化不能影响到实参,所以调用函数f(c)对c中的数据没有影响。函数f()中将结构体b中成员的数据分别赋值给a,所以函数的返回值为a即{"Zhao",?m?,85,90}。13、设有以下语句inta=1,b=2,c;c=a^(b<<2);执行后,c的值为()。A、9B、7C、8D、6标准答案:A知识点解析:语句"c=a^(b<<2);"先计算表达式"(b<<2)",b的二进制数值为0010,所以左移2位之后结果为1000,对应十进制值为8。表达式"a^8"即是将0001与1000做异或运算,结果为1001,对应十进制值为9,所以答案选A。14、有以下程序#includemain(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);}程序的运行结果是()。A、123B、12300C、1D、321标准答案:A知识点解析:该段程序的逻辑是先用只写的方式打开二进制文件"d1.dat",将数组a中的数据用for循环逐一写入到该二进制文件中并在输入结束后写入回车符后关闭文件。之后再以只读的方式打开文件"d1.dat",并将文件中的数据读出到整型数据n上,所以输出n的值为123,答案选A。15、以下关于typedef的叙述错误的是()。A、用typedef可以增加新类型B、typedef只是将已存在的类型用一个新的名字来代表C、用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名D、用typedef为类型说明一个新名,通常可以增加程序的可读性标准答案:A知识点解析:typedef为类型定义符,使用的一般形式为"typedef原类型名新类型名;",它用于给已知类型取别名,作用仅仅是用"新类型名"代替"原类型名",并没有产生新的数据类型,答案选A。16、若有以下程序段intr=8;printf("%d\n",r>>1);输出结果是()。A、4B、8C、16D、2标准答案:A知识点解析:右移运算符">>"的运算规则是把左边运算数的各二进制位全部右移n位,n取决于">>"右边的数值。整型数据r的十进制值为8,对应二进制数值为0100,右移1位的运算结果为0010,十进制数值为4,答案选A。17、以下叙述中错误的是()。A、getchar函数用于从磁盘文件读入字符B、gets函数用于从终端读入字符串C、fputs函数用于把字符串输出到文件D、fwrite函数用于以二进制形式输出数据到文件标准答案:A知识点解析:getchar()函数的作用是从键盘上录入一个字符,而不是从磁盘文件中读入,所以答案选A。18、有以下程序#includemain(){FILE*pf;char*s1="China",*s2="Beijing";pf=fopen("abc.dat","wb+");fwrite(s2,7,1,pf);rewind(pf);/*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf);}以上程序执行后abc.dat文件的内容是()。A、ChinangB、ChinaC、ChinaBeijingD、BeijingChina标准答案:A知识点解析:语句"fwrite(s2,7,1,pf);"将指针s2指向的7个字节的数据写入到abc.dat文件中,而后将文件指针fp重定向指向文件首,再执行语句"fwrite(s1,5,1,pf);"时将s1指向的5个字符写入当前文件,原先写入的数据会被部分覆盖,最后文件中的内容为Chinang,答案选A。19、有以下结构体说明、变量定义和赋值语句structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];则以下scanf函数调用语句有错误的是()。A、scanf("%d",ps->age);B、scanf("%d",&s[0].age);C、scanf("%c",&(ps->sex));D、scanf("%s",s[0].name);标准答案:A知识点解析:scanf函数的一般形式为scanf("格式控制字符串",输入项1,输入项2,…),输入项由地址运算符"&"后跟变量名组成,地址符"&"不可省,选项A)的ps->age前少了取地址运算符"&",答案选A)。20、若有以下语句typedefstructS{intg;charh;}T;以下叙述中正确的是()。A、可用T定义结构体变量B、可用S定义结构体变量C、S是struct类型的变量D、T是structS类型的变量标准答案:A知识点解析:在该程序段中,S为结构体名,T用typedef定义的structS类型的别名,所以可以用T或者structS定义结构体变量,答案选A。21、有以下程序#include#includestructA{inta;charb[10];doublec;};structAf(structAt);main(){structAa={1001,"ZhangDa",1098.0};a=f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}structAf(structAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returnt;}程序运行后的输出结果是()。A、1002,ChangRong,1202.0B、1002,ZhangDa,1202.0C、1001,ChangRong,1098.0D、1001,ZhangDa,1098.0标准答案:A知识点解析:该段程序先定义了一个结构体A,同时定义了一个返回值类型为该结构体类型的函数。函数f()的作用是对结构体t做相应修改后返回。虽然该函数属于值传递,形参的变化不会影响到实参,但是返回值又被赋值给了结构体变量a(见语句"a=f(a);"),所以输出的为改变后的值,答案选A。22、有以下程序#includemain(){inta=1,b=2,c=3,x;x=(a^b)&c;printf("%d\n",x);}程序的运行结果是()。A、3B、1C、2D、0标准答案:A知识点解析:语句"x=(a^b)&c;"先计算表达式"(a^b)",即计算"0001^0010"结果为0011,然后计算"0011&c",即计算"0011&0011",结果为0011,对应十进制数为3,答案选A。23、有以下程序#includemain(){FILE*fp;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序运行后的输出结果是()。A、123456B、14C、1234D、12标准答案:A知识点解析:该程序段的作用是把数组a中的数据分两行写入文件d2.dat中,每行写三个元素,然后再用两个整数k、n分别将这两行数据读取出来,所以输出结果为选项A)。24、设有以下语句typedefstructTT{charc;inta[4];}CIN;则下面叙述中正确的是()。A、可以用CIN定义结构体变量B、TT是struct类型的变量C、可以用TT定义结构体变量D、CIN是structTT类型的变量标准答案:A知识点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论