国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷14

国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷14(总分:56.00,做题时间:90分钟)一、选择题(总题数:28,分数:56.00)1.有以下程序 #include main() { int a=5,b=1,t; t=(a<(分数:2.00)A.11B.6C.21 √D.1解析:解析:本题考查位操作运算符。

“<<”是左移运算符,左移一位相当于乘2,“|”是按位或运算符。

5序移两位相当于乘4,得到20,20的二进制数是00010100,和00000001进行按位或操作得到00010101,即十进制的21。

2.若变量已正确定义,则以下语句的输出结果是 s=32; s^=32; printf("%d",s);(分数:2.00)A.-1B.1C.32D.0 √解析:解析:“按位异或”运算的规则是:参与运算的两个运算数中相对应的二制位上,若数相同,则该位的结果为0;若数不同,则该位的结果为1。

因为语句“s=32;s^=32;”相当于s与自身做按位异或运算,所以其结果等于0。

3.若有以下程序 main(){int c; c=10^5; printf("%d\n",c); } 则程序的输出结果是(分数:2.00)A.15 √B.10000C.5D.105解析:解析:按位异或(^)的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为0;若数不同,该位的结果为1。

整数10和5的二进制编码分别为1010和0101,异或结果为1111,其十进制数据位15。

4.若有以下程序 main(){int c; C=1315; printf("%d\n",c); } 则程序的输出结果是(分数:2.00)A.15B.18C.13 √D.5解析:解析:按位或(|)的运算规则是:参加运算的两个运算数中,只要两个相应的二进制位中一个为1,则该位的运算结果即为1:只有当两个相应位的数都为0时,该位的运算结果才为0。

13的二进制位1101,5的二进制位0101,或运算的结果为1101,因此值为13。

5.有以下程序 main(){int i=0; i=~i; printf("%d\n",i); } 程序运行后的输出结果是(分数:2.00)A.0B.1C.8D.-1 √解析:解析:运算符(~)是位运算符中唯一的一个单目运算符,运算对象应置于运算符的右边,其运算功能是把运算对象的内容按位取反(使每一位上的0变1,1变0)。

i的初值为0,二进制位00000000,因此取反后结果为11111111,最高位为符号位,为一1的补码形式,因此输出结果为一1。

6.有以下程序 main(){int i=1; i=i^i; printf("%d\n",i); } 程序运行后的输出结果是(分数:2.00)A.-1B.0 √C.1D.7解析:解析:按位异或(n)的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为0:若数不同,该位的结果为1。

本题中表达式i^i的值必为0,因为i的各个位置的二进制值相同。

7.下面关于位运算符的叙述,正确的是(分数:2.00)A.#表示“按位异或”的运算B.‖表示“按位或”的运算C.~表示“按位异或”的运算D.&表示“按位与”的运算√解析:解析:C语言提供了68.以下叙述中正确的是(分数:2.00)A.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖B.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据C.C语言中的文件是流式文件,因此只能顺序存取数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失√解析:解析:在C语言中,有两种对文件的存取方式;顺序存取和直接存取;如果以“a”的方式对一个已打开的文件进行写操作后,则原有文件中内容将保存,新的数据写在原有内容之后。

如果以“a+”的方式为读和写而打开一个文件,则既可以对文件进行读,也可以对文件进行写,而且在读和写操作之间不必关闭文件,可以从头开始读。

当对文件的读(写)操作完成之后,必须将它关闭。

9.下列关于C语言文件的叙述中正确的是(分数:2.00)A.文件由结构序列组成,可以构成二进制文件或文本文件B.文件由一系列数据依次排列组成,只能构成二进制文件C.文件由数据序列组成,可以构成二进制文件或文本文件√D.文件由字符序列组成,其类型只能是文本文件解析:解析:在C语言中,对输入、输出的数据都按“数据流”的形式进行处理。

数据可以按文本形式或二进制形式存放在介质上,因此文件可以按数据的存放形式分为文本文件和二进制文件。

10.下面选项中关于“文件指针”概念的叙述正确的是(分数:2.00)A.文件指针就是文件位置指针,表示当前读写数据的位置B.文件指针指向文件在计算机中的存储位置C.文件指针是程序中用FILE定义的指针变量√D.把文件指针传给fscanf函数,就可以向文本文件中写入任意的字符解析:解析:文件指针实际上是指向一个结构体类型的指针,这个结构体中包含如缓冲区的地址、在缓冲区中当前存取的字符的位置、对文件是“读”或“写”、是否出错、是否已经遇到文件结束标志等信息。

一般称文件指针结构体类型名为FILE,可以用此类型名来定义文件指针。

[格式]FILE*指针变量名 [说明]FILE是一个存储文件信息的结构体类型的变量。

注意不要和文件位置指针混淆,在文件内部有一个位置指针,用以指示文件内部的当前读写位置。

使用fgetc函数,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。

而文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。

fscanf函数可以向文本文件和二进制文件输入数据。

11.设fp已定义,执行语句fp=fopen(“file”,“W”);后,以下针对文本文件file操作叙述的选项中正确的是(分数:2.00)A.写操作结束后可以从头开始读B.只能写不能读√C.可以在原有内容后追加写D.可以随意读和写解析:解析:本题考查文件操作。

fopen的mode参数有多种类型:r以只读方式打开文件、r+以可读写方式打开文件、rb+以读写方式打开一个二进制文件、w以只写方式打开文件、w+以读写方式打开文件、wb+以读写方式打开二进制文件。

12.以下函数不能用于向文件中写入数据的是(分数:2.00)A.fwriteB.foutcC.ftell √D.fprintf解析:解析:本题考查文件操作。

ftell函数返回文件指针的当前位置,其他的都写文件函数。

13.设文件指针fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是(分数:2.00)A.写操作结束后可以从头开始读B.可以在原有内容后追加写C.可以随意读和写D.只能写不能读√解析:解析:在题目中函数fopen以“只写”方式打开文件file。

14.有以下程序#include main(){FILE*f;f=fopen("filea.txt","w");fprintf(f,"abc");fclose(f);} 若文本文件filea.txt中原有内容为:hello,则运行以上程序后,文件filea.txt中的内容为(分数:2.00)A.abcloB.abc √C.helloabeD.abchello解析:解析:本题考查文件打开方式。

格式:文件指针名=fopen(文件名,使用文件方式的是:用“w”打开的文件只能向该文件写入。

若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。

15.有以下程序 #include main() {FILE*fp;int i,a[6]={1,2,3,4,5,6}; fp=fopen("d2.dat","w+"); for(i=0;i<6;i++)fscanf(fp,"%d",&a[5-i]); fclose(fp); for(i=0;i(分数:2.00)A.1,2,3,4,5,6B.6,5,4,3,2,1,√C.4,5,6,l,2,3,D.1,2,3,3,2,1,解析:解析:在程序中定义了一个整型数组a[6],并对它赋初值,并以写入的方式打开了文件d2.dat。

然后利用一个for循环把数组a中的元素数据写入文件d2.dat中,调用函数rewind把将文件内部的位置指针重新指向一个文件的开头,再利用for循环语句把文件中的数据依次写入到倒序排列的数组a中,最后输出数组a中的数组元素。

16.执行以下程序后,test.txt文件的内容是(若文件能正常打开) #include<stdio.h>main() {FILE*fb;char*s1="Fortran","s2="Basic"; if((fb=fopen("test.txt","wb"))==NULL) {printf("Can’t open test.txt file\n");exit(1);} fwrite(s1,7,1,fb);/*把从地址s1开始的7个字符写到fb所指文件中*/ fseek(fb,0L,SEEK SET);/*文件位置指针移到文件开头*/ fwrite(s2,5,1,fb);fclose(fb); }(分数:2.00)A.Basican √B.BasicFortranC.Basic 、D.FortranBasic解析:解析:本题主要考查文件的基本操作。

在main函数中,首先打开text.txt文件,然后通过fwrite 函数把s1字符串写到文件中,接下来通过fseek函数把文件指针移动到文件开始,再调用fwrite函数把s2字符窜写到文件中,s2的长度小于sl的长度,因此第二次写的时候会覆盖第一次写的部分内容,程序运行后test.text中内容为Basican。

17.读取二进制文件的函数调用形式为: fread(buffer,size,count,fp);其中buffer代表的是(分数:2.00)A.一个整型变量,代表待读取的数据的字节数B.一个内存块的首地址,代表读入数据存放的地址√C.一个文件指针,指向待读取的文件D.一个内存块的字节数解析:解析:buffer是数据块的指针,对fread来说,它是内存块的首地址,输入的数据存入此内存块中。

合集下载

国家二级C语言机试(选择题)模拟试卷151(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷151(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷151(题后含答案及解析) 题型有:1.1.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是( )。

A.0~255B.0~65535C.-32768~32767D.-256~255正确答案:B解析:整型数据分为signed和unsigned两种,设int类型的数据长度为2个字节,则无符号整数表示的范围为0~65535。

知识模块:C语言的基本知识2.下列对于线性链表的描述中正确的是A.存储空间不一定连续,且各元素的存储顺序是任意的B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的正确答案:A解析:一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。

在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针head称为头指针,当head=NULL(或0)时称为空表。

知识模块:公共基础知识3.以下选项中,不合法的C语言用户标识符是A.AaBcB.a-bC.a_bD._1正确答案:B解析:在C语言中的用户标识符只能由字母,数字和下划母组成,并且第一个字符必须是字母或下划线,在选项B中出现了非法的字符“-”。

知识模块:C语言基础知识4.在深度为7的满二叉树中,度为2的结点个数为A.64B.63D.31正确答案:B解析:因为在任意的二叉树中,度为0的结点(即叶子结点)总比度为2的结点的个数多1个,而度为0的结点数n0=2m-1(其中m为二叉树的深度)。

本题的度为0的结点个数n0=27-1=26=64。

因此,度为2的结点数n2=n0-1=63。

所以选项B正确。

知识模块:数据结构与运算5.下列叙述中正确的是( )。

A.数据库的数据项之间无联系B.数据库中任意两个表之间一定不存在联系C.数据库的数据项之间存在联系D.数据库的数据项之间以及两个表之间都不存在联系正确答案:C解析:数据库的数据项之间以及表之间都存在联系。

国家二级C语言机试(操作题)模拟试卷300(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷300(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷300(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。

所有学生数据均以二进制方式输出到文件中。

函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。

不得增行或删行,也不得更改程序的结构!试题程序:1 #include<Stdio.H>2 #define N 53 typedef struct student {4 long sno;5 char name[10];6 float score[3];7 }STU;8 void fun(char*filename,STU n)9 {FILE*fp;10 /*********found*********/11 fp=fopen(【1】,”rb+”);12 /*********found*********/13 fseek(【2】,-(long)sizeof(STU),SEEK END);14 /*********found*********/15 fwrite(&n,sizeof(STU),1,【3】);16 fclose(fP);17 }18 main( )19 {STU t[N]={{10001,”MaChao”,91,92,77},{10002,”CaoKai”,75,60,88},{10003,”LiSi”,85,70,78),{10004,”FangFang”,90,82,87},{10005,”ZhangSan”,95,80,88)};20 STU n={10006,”ZhaoSi”,55,70,68},SS[N];21 int i,j;FILE*fP;22 fp=fopen(“student.dat”,”wb”);23 fwrite(t,sizeof(STU),N,fp);24 fclose(fp);25 fp=fopen(“student.da”,”rb”);26 freacl(ss,sizeof(STU),N,fp);27 fclose(fp);28 print;f(“\nThe original data:\n\n”);29 for(j=0;j<N;j++)30 {printf(“\nNo:%ld Name:%一8s Scores:”,ss[j].sno,ss[j].name);31 for(i=0;i<3;i++)32 printf(“%6.2f”,ss[j].score[i]);33 printf(“\n”);34 }35 fun(“student.dat”,n);36 printf(“\nThe data after modif-ing:\n\n”);37 fp=fopen(“student.dat”,”rb”);38 fread(ss,Sizeof(STU),N,fp);39 fclose(fp);40 for(j=0;j<N;j++)41 {printf(“\nNo:%ld Name:%-8s Scores:”,ss[j].sno,ss[j].name);42 for(i=0;i<3;i++)43 printf(“%6.2f”,ss[j].score[i]);44 printf(“\n”);45 }46 }正确答案:(1)filename(2)fp(3)fp解析:填空1:本空是对文本文件的打开,filename所指的文件中的最后数据要进行重写,因此首先是要打开,因而本空填写filename。

国家二级C语言机试(结构体、共同体、位运算及文件操作)模拟试

国家二级C语言机试(结构体、共同体、位运算及文件操作)模拟试

国家二级C语言机试(结构体、共同体、位运算及文件操作)模拟试卷12(题后含答案及解析)题型有:1. 选择题选择题1.关于typedef的叙述中错误的是( )。

A.用typedef可以为各种类型起别名,但不能为变量起别名B.可以通过typedef增加新的类型C.用typedef定义新的类型名后,原有类型名仍有效D.可以用typedef将已存在的类型用一个新的名字来代表正确答案:B解析:C语言允许用typedef说明一种新类型名或为现有类型起个别名,而不是创建新类型,说明新类型名的语句一般形式为:typedef类型名标识符;在此,“类型名”必须是在此语句之前已有定义的类型标识符。

标识符是一个用户定义标识符,用作新的类型名。

typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原有类型名依然有效。

知识模块:结构体及文件操作2.正确的结构体类型说明和变量定义是( )。

A.typedef struct f{int n;char c;}STR;STR t1,t2;B.struct STR;{int n;char C;};STR t1,t2;C.typedef stmct STR;{int n=0;char c=‘A’;}t1,t2;D.struct{int n;char c;}STR;STR t1,t2;正确答案:A解析:定义结构体类型的一般形式为:struct结构体名{成员列表};struct 结构体名后不能加“:”号。

但定义完之后要在句末加分号,所以选项B、C有误,选项D中定义无名称的结构体类型同时定义结构体变量形式应为“stmct t1,t2;”。

选项A为用户自定义类型,其为正确的定义形式。

知识模块:结构体及文件操作3.若typedef int*T;T a[5];则与a的定义相同的是( )。

A.int*a[5];B.int(*a)[5]C.int,*a;D.int a[5];正确答案:A解析:typedef的主要功能是为存在的类型指定一个新的别名,后面的代码中可以利用该新定义的别名定义变量,题目定义了整型指针类型T,而后利用T 定义了整型指针数组a,含有5个元素,选项A中定义了整型指针数组a,选项B定义了一个指向一维数组的指针a,选项C定义指针变量,而选项D为定义整型数组最常用的形式,数组a中可以存放5个数据元素。

国家二级C语言机试(操作题)模拟试卷345(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷345(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷345(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。

函数fun的功能是对形参b所指结构体变量中的数据进行修改,最后在主函数中输出修改后的数据。

例如:b所指变量t中的学号、姓名、和三门课的成绩依次是:10002、’’ZhangQi’’、93、85、87,修改后输出t中的数据应为:10004、’’LiJie’’、93、85、87。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<string.h>3 struct student {4 long sno;5 char name[10];6 float score[3];7 };8 void fun(struct student *b)9 {10 /**********found**********/11 b__1__=10004;12 /**********found**********/13 strcpy(b__2__,’’LiJie’’);14 }15 main( )16 { struct student t={10002,’’ZhangQi’’,93,85,87};17 int i;18 printf(‘‘\n\nThe original data:\n’’);19 printf(‘‘\nNo:%id Name:%s\nScores:’’,t.sno,t.name);20 for(i=0;i<3;i++)printf(‘‘%6.2f’’,t.score[i]);21 printf(‘‘\n’’);22 /**********found**********/23 fun( __3__);24 printf(‘‘\nThe data after modified:\n’’);25 printf(‘‘\nNo:%id Name:%s\nScores:’’,t.sno,t.name);26 for(i=0;i<3;i++) printf(‘‘%6.2f’’,t.score[i]);27 printf(‘‘\n’’);28 }正确答案:(1)->sno (2)->name(3)&t解析:函数fun的功能是对形参b所指结构体变量中的数据进行修改。

国家二级C语言机试(操作题)模拟试卷365(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷365(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷365(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素顺时针旋转。

操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。

例如,若N=3,有下列矩阵: 1 2 3 计算结果为7 4 1 4 5 6 8 5 2 7 8 9 9 6 3 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 43 void fun(int(*t)[N])4 { int j,r[N];5 for(j=0;j<N;j++)r[j]=t[0][j];6 for(j=0;j<N;j++)7 /**********found**********/8 t[0][N-j-1]=t[j][__1__];9 for(j=0;j<N;j++)10 t[j][0]=t[N-1][j];11 /**********found**********/12 for(j=N-1;j>=0;__2__)13 t[N-1][N-1-j]=t[j][N-1];14 for(j=N-1;j>=0;j--)15 /**********found**********/16 t[j][N-1]=r[__3__];17 }18 main( )19 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;20 printf(‘‘\nThe original array:\n’’);21 for(2=0;i<N;i++)22 {for(j=0;j<N;j++)printf(‘‘%2d”,t[i][j]);23 printf(‘‘\n’’);24 }25 fun(t);26 printf(‘‘\nThe result is:\n’’);27 for(i=0;i<N;i++)28 { for(j=0;j<N;j++)printf(‘‘%2d’’,t[i][j]);29 printf(‘‘\n’’);30 }31 }正确答案:(1)0 (2)j-- (3)j解析:第一空:由审题分析可知,此处是使第一列成为第一行,即把第一列元素移动到第一行,第一列元素是“t[j][0]”,第一行元素是“t[0][N-j-1]”,故第一空处应为“0”。

国家二级C语言机试(选择题)模拟试卷267(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷267(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷267(题后含答案及解析) 题型有:1.1.下列描述中正确的是A.一个逻辑数据结构只能有一种存储结构B.数据的逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率正确答案:D解析:数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系;数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。

数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构;而采用不同的存储结构,其数据处理的效率是不同的。

知识模块:数据结构与算法2.下列各组排序法中,最坏情况下比较次数相同的是( )。

A.简单选择排序与堆排序B.简单插入排序与希尔排序C.冒泡排序与快速排序D.希尔排序与堆排序正确答案:C解析:对于长度为n的线性表,最坏情况下查找或排序的次数如下表:知识模块:公共基础知识3.表达式a+=a=a=9的值是A.9B.0C.18D.9正确答案:B解析:第一步a=9,然后计算a.a的值,并将此值赋给a,因此此时a=0,最后计算a+a,并将此值赋给a,因此最终结果为0。

知识模块:C语言基础知识4.有两个关系R和T如下图所示:则由关系R得到关系T的运算是( )。

A.并B.交C.选择D.投影正确答案:D解析:从关系模式中指定若干属性组成新的关系称为投影。

对关系R进行投影运算的结果记为,πA(R),其中,A为R中的属性列。

本题中关系T中的两列与关系R中的两列相同,故为投影运算。

知识模块:公共基础知识5.一名教师可讲授多门课程,一门课程可由多名教师讲授。

则实体教师和课程间的联系是( )。

A.1:1联系B.1:m联系C.m:1联系D.m:n联系正确答案:D解析:因为一名教师可讲授多门课程,而一门课程又能由多名教师讲授,所以教师和课程之间是多对多的关系,可以表示为m:n,选择D。

计算机等级考试二级C语言模拟试卷及其答案

(36)B
评析:strcpy(字符数组1,字符串2)其作用是将字符串2复制到字符数组1中去。
注:(1)字符数组1必须定义得足够大;(2)“字符数组1〞必须写成数组名的形式;(3)复制时连同字符串后面的’\0’一起复制到字符数组1中。
(37)A
评析:getchar( )函数是从键盘接受一个字符输入;当用户键入的字符不是回车符时,会进入一个多分支选择语句,根据c-'2'的值进行分支选择;putchar( )是在屏幕上打印一个字符,最后的结果应当为668977。
(30)B
评析:在C中对文件操作必须先翻开文件,待文件操作完毕后要关闭文件。对文件以读的方式进行翻开操作时,同时会执行文件的检查文件是否存在,不存在将会返回空的文件指针,如果对文件以写的方式翻开时,文件不存在,将会自动创立文件,因此在C中翻开文件前不必对其检查文件是否存在,故答案为B。
(31)B
评析:p是指针,p+8是地址值,D是错的;*p是p的目标变量,即a[0],值为1,所以*p+9的值是10,而*p += 9值是重新给a[0]赋了值(1+9);所以A和C也是错的。p+8是地址值,指向a[8],那么*(p+8)的值就是a[8]的值,即9。
int max(int x,int y){……}

int max(x,y)
int x,y;
{……}
(22)B
评析:此题x赋初值为3,当执行printf("%d",x--);时,由于x--的作用是先运算x,再将x的值减1,所以,printf输出的x值为3,等输出后,x的值减1变为2,继续执行,判断条件!x为假,循环只被执行一次。
(5)【5】概念

国家二级C语言机试(操作题)模拟试卷250(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷250(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.下列给定程序中,函数fun的功能是计算下式直到,并将计算结果作为函数值返回。

例如,若形参e的值为1e-3,函数的返回值为2.985678。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!试题程序:1 #include<stdio.h>2 double fun(double e)3 { int i;double s,x;4 /*********found*********/5 s=0 ; i=【1】;6 x=1.0;7 while(x >e){8 /*********found*********/9 【2】;10 /*********found*********/11 x=(2.0*i-1)/((【3】)*(2.0 * i));12 s=s+x;13 }14 return s;15 }16 main( )17 {double e=1e-3;18 printf (‘‘\nThe result is:%f\n’’,fun(e));19 }正确答案:(1)0 (2)i++或++i或i+=1或i=i+1 (3)2.0*i解析:填空1:循环变量i从1开始参加运算,但是在每次循环的开始i都进行自加1操作,故i应赋初值为0。

填空2:循环变量i自增1运算。

填空3:根据公式确定表达式通项。

注意x为double型,故应将i变为double型再进行运算。

程序修改题2.给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到e所指数组中,过长的剩余字符接在c所指的数组的尾部。

例如,当a所指字符串中的内容为’’abedefg’’,b所指字符串中的内容为’’1234’’时,e所指数组中的内容应为’’a4b3e2dlefg’’;而当a所指字符串中的内容为’’1234’’,b所指字符串的内容为’’abedefg’’时,c所指数组中的内容应该为’’1g2f3e4dcba’’。

国家二级C语言机试(操作题)模拟试卷350(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷350(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.函数fun的功能是:计算直到。

若x=2.5,函数值为:1.917915。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<math.h>3 double fun(double x)4 {double f,t;int n;5 f=1.0+x;6 /**********found**********/7 t=__1___;8 n=1;9 do {10 n++;11 /**********found**********/12 t*=(-1.0)*x/__2__;13 f+=t;14 }15 /**********found**********/16 while(__3__ >=le-6);17 return f;18 }19 main( )20 { double x,y;21 x=2.5;22 y=fun(x);23 printf(‘‘\nThe result is :\n’’);24 printf(‘‘x=%-12.6f y=%-12.6f \n’’,x,y);25 }正确答案:(1)x (2)n (3)fabs(t)解析:函数fun的功能是计算级数和。

第一空:“f=1.0+x;”f的初始化为级数的前两项之和,do while循环从第三项x2/2开始计算,第一空处是给t 赋初值,t表示级数项,“n++;t*=(-1.0)*x/__2__;”即第一次进入do循环之后n的值为2,故t的初值应该为x,第一空处应为“x”。

第二空:由审题分析可知,后一项乘以(-1)*x除以n,故第二空处应为“n”。

第三空:循环的终止条件是(x0/n!)的绝对值小于1e-6,即只要(xn/n!)大于等于le-6,do循环就执行,故第三处应为“fabs(t)”,fabs函数的功能是求绝对值。

国家二级C语言机试(选择题)模拟试卷100(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷100(题后含答案及解析) 题型有:1. 选择题选择题1.数据结构主要研究的是数据的逻辑结构、数据的运算和( )。

A.数据的方法B.数据的存储结构C.数据的对象D.数据的逻辑存储正确答案:B解析:数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科,它包含3个方面的内容,即数据的逻辑结构、存储结构和数据的运算。

2.一棵二叉树的前序遍历结果是ABCEDF,中序遍历结果是CBAEDF,则其后序遍历的结果是( )。

A.DBACEFB.CBEFDlAC.FDAEBCD.DFABEC正确答案:B解析:由于该二叉树的前序遍历结果是ABCEDF,显然A结点为根结点,所以后序遍历时A结点是最后遍历的,其后序遍历的结果为CBEFDA。

3.在数据处理中,其处理的最小单位是( )。

A.数据B.数据项C.数据结构D.数据元素正确答案:B解析:数据元素是由多个数据项组成,数据是能够被计算机识别、存储和加工处理的信息载体,数据处理的最小单位是数据项。

4.在数据库系统的内部结构体系中,索引属于( )。

A.模式B.内模式C.外模式D.概念模式正确答案:B解析:内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。

5.以下( )不属于对象的基本特征。

A.继承性B.封装性C.分类性D.多态性正确答案:A解析:对象具有特征:标识惟一性,指对象是可区分的:分类性,指可以将具有相同属性和操作的对象抽象成类;多态性,指同一个操作可以是不同对象的行为;封装性,从外面看只能看到对象的外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法:模块独立性好,对象是面向对象的软件的基本模块,对象内部各种元素彼此结合得很紧密,内聚性强。

6.数据库系统的核心是( )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档