全国计算机二级C语言模拟测试【含详细解析】 (19)
国家二级C语言机试(选择题)模拟试卷219(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷219 (题后含答案及解析) 题型有:1.
1. 以下叙述中错误的是( )。 A.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件 B.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 C.用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在一个文本文件中 D.C语言源程序经编译后生成后缀为.obj的目标程序
正确答案:B 解析:C语言程序编译时将每条可执行语句转换为二进制的机器指令,但非执行语句(如注释语句)不被编译。所以选项B错误。 知识模块:选择题
2. 某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A.10 B.8 C.6 D.4
正确答案:C 解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。 知识模块:公共基础知识
3. 对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是 A.快速排序 B.冒泡排序 C.直接插入排序 D.堆排序
正确答案:D 解析:各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序O(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)。 知识模块:数据结构与算法
4. 在黑盒测试方法中,设计测试用例的根据是( )。 A.数据结构 B.模块间的逻辑关系 C.程序调用规则 D.软件要完成的功能
正确答案:D 解析:黑盒测试方法也称功能测试或数据驱动测试。黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。它完全不考虑程序内部的逻辑结构和内部特征,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能要求。 知识模块:公共基础知识
5. 以下叙述中正确的是 A.对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后,b的值会发生改变 B.对于逻辑表达式:a++‖b++,设a的值为1,则求解表达式的值后,b的值会发生改变 C.关系运算符的结果有三种:0,1,-1 D.else不是一条独立的语句,它只是if语句的一部分
江苏省二级c语言基础知识题

附加部分模拟题:(1)第2代电子计算机使用的电子元件是A)晶体管B)电子管C)中、小规模集成电路D)大规模和超大规模集成电路【答案】A【解析】第1代计算机是电子管计算机,第二代计算机是晶体管计算机,第3代计算机主要元件是采用小规模集成电路和中规模集成电路,第4代计算机主要元件是采用大规模集成电路和超大规模集成电路。
(2)除了计算机模拟之外,另一种重要的计算机教学辅助手段是A)计算机录像B)计算机动画C)计算机模拟D)计算机演示【答案】C【解析】计算机作为现代教学手段在教育领域中应用得越来越广泛、深入。
主要有计算机辅助教学、计算机模拟、多媒体教室、网上教学和电子大学。
(3)计算机集成制作系统是A)CADB)CAMC)CIMSD)MIPS【答案】C【解析】将CAD/CAM和数据库技术集成在一起,形成CIMS(计算机集成制造系统)技术,可实现设计、制造和管理完全自动化。
(4)十进制数215用二进制数表示是A)1100001B)1101001C)0011001D)11010111【答案】D【解析】十进制向二进制的转换前面已多次提到,这一点也是大纲要求重点掌握的。
采用"除二取余"法。
(5)十六进制数34B对应的十进制数是A)1234B)843C)768D)333【答案】B【解析】十六进制数转换成十进制数的方法和二进制一样,都是按权展开。
(6)二进制数0111110转换成十六进制数是A)3FB)DDC)4AD)3E【答案】D【解析】二进制整数转换成十六进制整数的方法是:从个位数开始向左按每4位二进制数一组划分,不足4位的前面补0,然后各组代之以一位十六进制数字即可。
(7)二进制数10100101011转换成十六进制数是A)52BB)D45DC)23CD)5E【答案】A【解析】二进制整数转换成十六进制整数的方法是:从个位数开始向左按每4位二进制数一组划分,不足4位的前面补0,然后各组代之以一位十六进制数字即可。
全国计算机等级考试二级c语言模拟试题及答案一

全国计算机等级考试二级C语言模拟试题及答案(一)一、选择题(1)栈和队列的共同特点是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素?D)没有共同点正确答案:? C(2)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A)acbedB)decabC)deabcD)cedba正确答案:? D(3)链表不具有的特点是A)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素?D)所需空间与线性表长度成正比正确答案:? B(4)结构化程序设计的3种结构是A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构正确答案:? D(5)为了提高测试的效率,应该A)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序正确答案:? D(6)算法的时间复杂度是指A)执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数正确答案:? C(7)软件生命周期中所花费用最多的阶段是A)详细设计B)软件编码C)软件测试D)软件维护正确答案:? D(8)数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为A)CB)BasicC)DDLD)DML正确答案:? C(9)下列有关数据库的描述,正确的是A)数据库是一个DBF文件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件正确答案:? C(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字正确答案:? D(11)以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点正确答案:? C(12)C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue正确答案:? A(13)C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型正确答案:? B(14)若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int %3D)a=a+7=c+b正确答案:? B(15)下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof正确答案:? B(16)C语言中运算对象必须是整型的运算符是A)%=B)/C)=D)<=正确答案:? A(17)若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1B)++i;C)a=a++=5;D)a=int(i);正确答案:? B(18)已知int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对正确答案:? B(19)若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予,b赋予,c赋予,下列不正确的输入形式是A)10<回车>22<回车>33<回车>B),,<回车>C)<回车>22.033.0<回车>D)10? 22<回车>33<回车>正确答案:? B(20)有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);} 该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2正确答案:? A(21)有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k); }执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,3正确答案:? C(22)有如下程序main(){float x=,y;if(x<)y=;else if(x<)y=x;else y=;printf("%f\n",y);}该程序的输出结果是A)B)0.250000C)D)正确答案:? C(23)有如下程序:main(){int n=9;while(n>6){n--; printf("%d",n);} }该程序的输出结果是A)987B)876C)8765D)9876正确答案:? B(24)在下列选项中,没有构成死循环的是A)int i=100;while(1){i=i%100+1;if(i>100)break;}B)for(;;);C)int k=10000;do{k++;}while(k>10000);D)int s=36;while(s)--s;正确答案:? D(25)设int x=1,y=1;表达式(!x||y--)的值是A)0B)1C)2D)-1正确答案:? B(26)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参正确答案:? D(27)有以下程序float fun(int x,int y){return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是A)编译出错B)9C)21D)正确答案:? B(28)若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…}A)void fun(int m, int x[])B)void fun(int s, int h[41])C)void fun(int p, int *s)D)void fun(int n, int a)正确答案:? D(29)fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案:? B(30)若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是A)EOFB)-1C)1正确答案:? C(31)若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定正确答案:? A(32)若有说明int a[3][4];则a数组元素的非法引用是A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]正确答案:? D(33)设有以下说明语句{int a;float b;} stutype;则下面的叙述不正确的是A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名正确答案:? C(34)在C语言中,引用数组元素时,其数组下标的数据类型允许是A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式正确答案:? C(35)若运行时给变量x输入12,则以下程序的运行结果是main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)10正确答案:? A(36)以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分正确答案:? C(37)表达式0x13^0x17的值是A)0x04B)0x13C)0xE8D)0x17正确答案:? A(38)有以下程序#define F(X,Y)(X)*(Y)main(){int a=3, b=4;printf("%d\n", F(a++, b++));}程序运行后的输出结果是A)12B)15C)16D)20正确答案:? A(39)下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d\n",b[0]); }A)6B)7C)8D)9正确答案:? A(40)若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等正确答案:? D(41)以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;} }main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,正确答案:? C?(42)以下程序的运行结果是#include ""main(){struct date{int year,month,day;}today;printf("%d\n",sizeof(struct date));}A)6B)8C)10D)12正确答案:? A(43)若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point正确答案:? D(44)在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定正确答案:? B(45)已定义以下函数fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'正确答案:? A(46)若执行下述程序时,若从键盘输入6和8时,结果为main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对正确答案:? B(47)fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案:? D(48)下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案:? D(49)有以下程序void ss(char *s,char t){while(*s){if(*s= =t)*s=t-'a'+'A';s++;}}main(){char str1[100]="abcddfefdbd",c='d'; ss(str1,c); printf("%s\n",str1); }程序运行后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd正确答案:? B(50)若以下定义:struct link{int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:?指针p指向变量a,q指向变量c。
国家二级(C语言)笔试模拟试卷76(题后含答案及解析)

国家二级(C语言)笔试模拟试卷76(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(1-10、21-40每题2分,11-20每题1分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.可以作为Windows外壳程序的是( )A.程序管理器B.文件管理C.程序管理器和文件管理器D.主群组正确答案:C2.与十进制数96等值的二进制是( )A.1100000B.10010110C.1100001D.1100011正确答案:A3.对存储器按字节进行编址,若某存储器芯片共有10根地址线的引脚,则该存储器芯片的存储容量为( )A.512 BB.1 KBC.2 KBD.4 KB正确答案:B4.在软件研制过程中,CASE是指( )A.计算机辅助软件工程B.计算机产生的例子C.实验室使用的工具D.计算机辅助系统工程正确答案:A5.下列软件中,属于应用软件的是( )A.UNIXB.人事管理系统C.数据库管理系统D.SYSTEM正确答案:B6.现代计算机之所以能自动地连续进行数据处理,主要是因为( )A.采用了开关电路B.采用了半导体器件C.具有存储程序的功能D.采用了二进制正确答案:C7.软盘上第( )磁道最重要,一旦损坏,该盘就不能使用了。
A.0B.40C.1D.80正确答案:A8.在下列四条叙述中,错误的一条是( )A.内存是主机的组成部分B.对于种类不同的计算机,其机器指令系统都是相同的C.CPU由运算器和控制器组成D.十六进制微型机的含义是:这种机器能同时处理十六位二进制数正确答案:B9.十进制数124转换成二进制数是( )A.111l010B.1111100C.1011111D.1111011正确答案:B10.数字字符“2”的ASCII码为十进制数50,数字字符“5”的ASCII 码为十进制数( )A.52B.55C.54D.53正确答案:D11.若要用下面的程序片段使指针变量p指向一个存储字符型变量的动态存储单元,则应填入; char * p;p= ( ) malloc (sizeof (char));A.charB.char *C.(* char)D.(char *)正确答案:D12.能够对计算机的硬件设备进行管理,并使应用软件能够方便、高效地使用这些设备的是( )A.数据库存系统B.操作系统C.编辑软件D.应用软件正确答案:B13.对于―个非空的数据结构,如果它有且只有―个根结点,并且每一个结点最多有一个前件,也最多有―个后件,那么( )A.肯定是一个线形结构B.肯定是一个非线性结构C.还不足以证明是一个线形结构D.很可能是一个非线形结构正确答案:A14.在C语言中,可以把整数以二进制形式存放到文件中的函数是( )A.fprintf ( ) 函数B.fread ( ) 函数C.fwrite ( ) 函数D.fputc( )函数正确答案:C15.有程序段:int al,a2;Char cl,c2;scanf(“%d%c%d%c”,&a1,&cl,&a2,&c2);若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入( )A.10A 20B<CR>B.10A 20 B<CR>C.10 A20B<CR>D.10A20 B<CR>正确答案:A16.设有以下语句,则c的二进制值是( ) char a=3,b=6,c;c =a b<<2;A.11011B.10100C.11100D.11000正确答案:A17.如下程序的执行结果是( ) main( ) {int n=1;printf(“%d%d%\n”,n,+ +n,n- -);}A.1 1 1B.1 2 2C.1 2 3D.1 2 1正确答案:A18.设有以下说明语句:struct ex {int x;floct y;char z;} example;则下面的叙述中不正确的是( )A.struct是结构体类型的关键字B.example是结构体类型名C.x,y,z都是结构体成员名D.struct ex是结构体类型正确答案:B19.以下只有使用时才为该类型变量分配内存的存储类型说明是( )A.auto和staticB.auto和registerC.register和staticD.extern和register正确答案:B20.若fp是指向某文件的指针,且已读到该文件末尾,则库函数feof(fp)的返回值是( )A.EOFB.-1C.非零值D.NULL正确答案:D21.C语言提供的合法关键字是( )A.switchB.cherC.caseD.default正确答案:C22.在C语言中,合法的字符常量是( )A.’\084’B.’\x43’C.’ab’D.’\0’正确答案:B23.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是( ) A.1B.2C.2D.2.5正确答案:C24.合法的数组定义是( )A.int a[ ]=”string”;B.int a[5]={0,1,2,3,4,5};C.char a=”string”;D.char a={0,1,2,3,4,5};正确答案:D25.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是( )A.10<a<15B.a==11 | | a==12 | | a==13 | | a==14C.a>10&&a<15D.!(a<=10)SL&!(a>=15)正确答案:A26.若t为doudle类型,表达式t=1,t + 5,t + +的值是( )A.1B.6C.2D.1正确答案:C27.若有定义和语句( ) char s[10];s=”abcd”;printf(“%s\n”,s);则结果是(以下μ代表空格)A.输出abcdB.输出aC.abcdμμμμμD.编译不通过正确答案:D28.若有定义和语句:( ) int * * pp,* p,a=10,b=20 pp=&p;p=&a;p=&b;printf(“%d,%d”n”,* p,* * pp);则输出结果是A.10,10B.10,20C.20,10D.20,20正确答案:D29.若有以下定义和语句( )int u=010,v=Ox10,w=10;printf(“%d,%d%d\n”,u,v,w);则输出结果是A.8,16,10B.10,10,10C.8,8,10D.8,10,10正确答案:A30.若有以下定义和语句char c1=‘b’,c2=’e’printf(“%d,%c\n”,c2-c1,c2-’a’+A);则输出结果( )A.2,MB.3,EC.2,ED.输出项与对应的格式控制不一致,输出结果不确定正确答案:B31.若有定义:int a[3][4],( )不能表示数组元素a[1][1]。
国家二级C语言机试(操作题)模拟试卷740(题后含答案及解析)

国家二级C语言机试(操作题)模拟试卷740(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.使用VC++2010打开考生文件夹下blank1中的解决方案。
此解决方案的项目中包含一个源程序文件blank1.c。
在此程序中,函数fun的功能是:将a 所指4×3矩阵中第k行的元素与第0行元素交换。
例如,有下列矩阵:1 2 34 5 67 8 910 11 12若k为2,程序执行结果为:7 8 94 5 61 2 310 11 12请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序在文件BIANK1.C中。
不得增行或删行,也不得更改程序的结构!试题程序:#inclucle<stdio.h>#deine N3#defitie M4/*********found*********/void fun(int(*a)[N],int【1】){int i,temp;/*********found*********/for(i=0;i<【2】;i++){temp=a[0][i];/*********found*********/a[0][i]=【3】;a[k][i]=temp?}}main( ){int x[M][N]=({1,2,3),{4,5,6},{7,8,9},{10,11,12}},i,j;printf(“The array before moving:\n\n”);for(i=0;i<M;i++){for(j=0;j<N;j++)printf(“%3d”,x[i][j]);printf(“\n\n”);}fun(x,2);printf(“The array after moving:\n \n”);for(1=0;1<M;i++){for(J=0,j<N;j++)printf(“%3d”,x[i][j]);printf(“\n\n”),}}正确答案:(1)k(2)N(3)a[k][i]解析:填空1:变量k在函数体fun中已经使用,但在函数体中没有定义,肯定是在函数的形参中定义的,所以应填k。
国家二级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语言)机试模拟试卷340(题后含答案及解析)
国家二级(C语言)机试模拟试卷340(题后含答案及解析)题型有:1. 程序填空题 2. 程序修改题 3. 程序设计题程序填空题(30分)1.给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。
例如,形参s 所指的字符串为:abcdcf35adgh3kjsdf7。
输出结果为:4。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意;源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h> void fun(char *s, int *t){int i, n; n=0;/**********found**********/ for(i=0; 【1】!=0; i++)/**********found**********/ if(s[i]>=‘0’&&s[i]<= 【2】) n++;/**********found**********/ 【3】;}main( ){char s[80]=“abcdef35adgh3kjsdf7”; int t; printf(“\nThe original string is : %s\n”,s); fun(s,&t); printf(“\nThe result is : %d\n”,t);}正确答案:s[i] ‘9’*t=n解析:第一空:循环终止条件是达到了字符串的尾部,字符串以“\0”(或NULL)结束,故第一空处应为s[i]。
第二空:数字字符的判断是s[i]>=‘0’且s[i]<=‘9’,故第二空处应为“‘9’”。
第三空:这里是将数字字符出现的次数存放在形参t里,n记录了数字字符的个数,而形参t是指针变量,故第三处应为“*t=n”。
计算机二级C语言测试题(含答案)
(第一章)1. 以下关于算法的描述不正确的是__________。
A. 任何一个问题,它的实现算法是唯一的B. 描述算法常用的表达工具有流程图、N-S图、PAD图、伪码等C. 算法的最终实现是计算机程序D. 正确性和清晰易懂性是一个好算法的基本条件2.下面是一个加法程序,指出存在的逻辑错误和语法错误。
/* 求整数a和b的和 */main( ){int a,b;a=8;b=2000;print("%d\n",a-b);}3.在每个C程序中都必须包含有这样一个函数,该函数的函数名为__________。
A.main B. MAIN C. name D. function4.以下叙述不正确的是__________。
A.C程序书写格式规定,一行内只能写一个语句B.main()函数后面有一对花括号,花括号内的部分称为函数体C.一个C程序必须有main()函数D.C规定函数内的每个语句以分号结束5.以下各标识符中,合法的用户标识符为_________。
A.A#C B.mystery C.main D.ab*6.已知求解某问题的算法如下:⑴输入a、b、c三个数。
⑵将a和b比较,较大者放在a中,小者放在b中。
⑶将a和c比较,较大者放在a中,小者放在c中。
⑷将b和c比较,较大者放在b中,小者放在c中。
⑸依次输出a、b、c。
请根据上述算法描述,把算法的功能表达出来。
【答案】把任意输入的三个数a、b、c按降序排列的顺序输出。
7.一个C语言程序可以包括多个函数,程序总是按照如下_________所描述的方式执行当前的程序。
A.从本程序的main()函数开始,到本程序文件的最后一个函数结束。
B.从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C.从main()函数开始,到main()函数结束。
D.从本程序文件的第一个函数开始,到本程序main()函数结束。
8.以下叙述正确的是_________。
国家二级C语言机试(操作题)模拟试卷640(题后含答案及解析)
国家二级C语言机试(操作题)模拟试卷640(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.使用VC++2010打开考生文件夹下blank1中的解决方案。
此解决方案的项目中包含一个源程序文件blank1.c。
在此程序中,函数fun的功能是:计算下式前n项的和,并作为函数值返回。
例如,当形参n的值为10时,函数返回-0.204491。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序给出如下。
不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>double fun(int n){int i,k;double s,t;s=0;/*********found*********/k=【1】;for(i=1;i<=n;i++){/*********found*********/t=【2】;s=s+k,*(2*i-1)*(2*i+1)/(t*t);/*********found*********/k=k*【3】;}return s;}main( ){int n=-1;while(n <0){printf(“Please input(n>0):”);scanf(“%d”,&n);)printf(“\nThe result is:%f\n”,fun(n));}正确答案:(1)1(2)2*i(3)(-1)解析:填空1:由fun函数整体结构可以看出k的作用是赋值,并累加各项前边的正负号,由于第一项是正的,因此赋给k的值为1。
填空2:此空下一行的表达式k*(2*i-1)*(2*i+1)/(t*t)累加的通项,k为正负号,由题目中的公式可知t=2*i。
填空3:由于通项前边的正负号每次都要发生变化,因此k=k*(-1)。
程序修改题2.使用VC++2010打开考生文件夹下modi1中的解决方案。
此解决方案的项目中包含一个源程序文件modi1.c。
国家二级C语言机试(操作题)模拟试卷558(题后含答案及解析)
国家二级C语言机试(操作题)模拟试卷558(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.下列给定程序中,函数fun的功能是计算下式直到≤10-3,并将计算结果作为函数值返回。
例如,若形参e的值为1e一3,函数的返回值为2.985678。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构! 试题程序:#include<Stdio.h>double fun(double e){ int i;double s,x;/*********found*********/s=0;i=【1】;x=1.0;while(x >e){/*********found*********/【2】;/*********found*********/x=(2.0*i一1)/((【3】)*(2.0*i));s=s+x;} return s;}main( ){double e=1e一3;printf(“\nThe result is:%f\n”,fun(e));}正确答案:(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的功能是:将s所指字符串的正序和反序进行连接,形成的新串放在t所指的数组中。
例如,当s所指字符串为“ABCD”时,t所指字符串中的内容应为“ABCDDCBA”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序:#include<conio.h>#include<Stdio.h>#include<string.h>/*********found*********/void fun(char s,char t){ int i,d;d=strlen(s);for(i=0;i<d;i++) t[i]=s[i];for(i=0;i<d;i++) t[d+i]=s[d一1一i];/*********found*********/t[2*d一1]=‘\0’;}main( ){char s[100],t[100];printf(“knPlease enter string s:”);scanf(“%s”,s);fun(s,t);printf(“\nThe result is:%s\n”,t);} 正确答案:(1)void fun(char*s,char*t)(2)t[2*d]=‘\0’;或t[d+i]=‘\0’;或t[2*d]=0;或t[d+i]=0;解析:(1)从调用函数来看,函数传递的是数组,所以函数的形参应为指针。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.下列叙述中正确的是()。
A. 快速排序法适用于顺序存储的线性表B. 快速排序适用于链式存储的线性表C. 链式存储的线性表不可能排序D. 堆排序适用于非线性结构正确答案:A你的答案:解析:【解析】排序可以在不同的存储结构上实现,但快速排序法适用于顺序存储的线性表,不适用于链式存储的线性表。
堆排序适用于线性结构,不适用于非线性结构。
故本题选择A 选项。
2.循环队列的存储空间为Q(1:50)。
经过一系列正常的入队与退队操作后,front=rear=25。
后又成功地将一个元素入队,此时队列中的元素个数为()。
A. 50B. 1C. 26D. 2正确答案:B你的答案:解析:【解析】当front=rear=25时可知队列要么为空要么队列满,题目中又成功地将一个元素入队,说明之前队列为空(为满时队列中无法入队元素),为空的队列入队一个元素后队列中元素个数为1。
故本题选择B选项。
3.树的度为3,且有9个度为3的结点,5个度为1的结点,但没有度为2的结点。
则该树总的结点数为()。
A. 32B. 14C. 33D. 19正确答案:C你的答案:解析:【解析】在树中,树中的节点数等于树中所有节点的度之和再加1。
题干中树的度为3,有9个度为3的结点,5个度为1的结点,无度为2的结点,设有n个度为0的结点,则总结点数=9×3+5×1+0×2+n×0+1=33个。
故本题选择C选项。
4.设栈与队列初始状态为空。
首先A,B,C,D,E依次入栈,再F,G,H,I,J依次入队;然后依次出栈至栈空,再依次出队至队空。
则输出序列为()。
A. F,G,H,I,J,A,B,C,D,EB. F,G,H,I,J,E,D,C,B,AC. E,D,C,B,A,J,I,H,G,FD. E,D,C,B,A,F,G,H,I,J正确答案:D你的答案:解析:【解析】栈称为“后进先出”表或“先进后出”的线性表;队列称为“先进先出”或“后进后出”的线性表。
A,B,C,D,E依次入栈,则依次出栈顺序为E,D,C,B,A;F,G,H,I,J依次入队,则依次出队顺序为F,G,H,I,J。
故输出顺序为E,D,C,B,A,F,G,H,I,J。
故本题选择D选项。
5.属于结构化程序设计原则的是()。
A. 模块化B. 可继承性C. 可封装性D. 多态性正确答案:A你的答案:解析:【解析】结构化程序设计方法的原则包括:自顶向下、逐步求精、模块化、限制使用goto语句。
B、C、D三项属于面向对象方法的特点。
故本题选择A选项。
6.确定软件项目是否进行开发的文档是()。
A. 需求分析规格说明书B. 可行性报告C. 软件开发计划D. 测试报告正确答案:B你的答案:解析:【解析】可行性报告产生于软件定义阶段,用于确定软件项目是否进行开发。
故本题选择B选项。
7.基本路径测试是属于()。
A. 黑盒测试方法且是静态测试B. 黑盒测试方法且是动态测试C. 白盒测试方法且是动态测试D. 白盒测试方法且是静态测试正确答案:C你的答案:解析:【解析】白盒测试法主要有逻辑覆盖、基本路径测试等。
黑盒测试方法主要有等价类划分法、边界值分析法、错误推测法和因果图等。
基本路径测试根据软件过程性描述中的控制流确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例对每一条独立执行路径进行测试。
因此基本路径测试属于动态测试。
故本题选择C选项。
8.关系数据库中的键是指()。
A. 关系的所有属性B. 关系的名称C. 关系的专用保留字D. 能唯一标识元组的属性或属性集合正确答案:D你的答案:解析:【解析】在关系(二维表)中凡是能唯一标识元组的最小属性集称为该关系的键或者码。
故本题选择D选项。
9.商品销售的售货单和商品之间的联系是()。
A. 多对多B. 一对多C. 多对一D. 一对一正确答案:A你的答案:解析:【解析】一张售货单可以有多种商品的记录,一种商品也可以出现在多张售货单上。
因此售货单和商品之间的联系是多对多。
故本题选择A选项。
10..定义学生选修课程的关系模式如下:SC (S#, Sn, C#, Cn, G,Cr)(其属性分别为学号、姓名、课程号、课程名、成绩、学分)则对主属性部分依赖的是()。
A. (S#,C#)→GB. S#→SnC. (S#,C#)→S#D. (S#,C#)→C#正确答案:B你的答案:解析:【解析】关系SC中的主键是(S#,C#),但S#(学号)单独就可以决定Sn(姓名),存在着对主属性的部分依赖。
故本题选择B选项。
11.下面说法正确的是()。
A. 结构化程序的基本结构有三种,分别是循环结构、选择结构和顺序结构B. 计算机只能执行顺序结构的C语言源程序C. 循环结构无法使用N-S流程图描述D. 一般称含有20条以内语句的算法为简单算法,超过20条则不可能是简单算法正确答案:A你的答案:解析:【解析】结构化程序的基本结构为循环结构、选择结构和顺序结构,选项A正确;计算机可以执行循环结构、选择结构和顺序结构的C语言程序,选项B错误;循环结构可以使用N-S流程图描述,选项C错误;算法复杂度是指算法在编写成可执行程序后,运行时所需要的时间资源和内存资源,并不是指算法语句的多少,选项D错误;本题答案为A。
12.下面说法正确的是()。
A. 只要程序使用基本结构编写,运行时就不会出错B. MAIN()函数是每一个C语言程序必须定义的C. 任何函数只能有一种基本结构D. 任何复杂问题都可以只使用三种基本结构来解决正确答案:D你的答案:解析:【解析】程序错误分为语法错误和逻辑错误,使用基本结构编写的程序不能保证其没有语法或逻辑错误,选项A错误;是main()不是MAIN(),选项B错误;函数可以有多种基本结构,选项C错误;根据结构化编程的思想,三种基本结构组成的算法可以解决任何问题,选项D正确;本题答案为D。
13.以下选项中,合法的C语言常量是()。
A. C++'B. 1.0C. "\0.\0D. 2B正确答案:B你的答案:解析:【解析】在C语言中,字符型常量必须用单引号括起来且字符型常量只能为一个字符;字符串常量必须双引号括起来;整型常量可以用十进制、八进制和十六进制形式表示,八进制以数字0开头,十六进制以0x(0X)开头;小数为浮点型常量,故选项A、C、D错误,选型B正确;本题答案为B。
14.以下选项中,合法的C语言实数是()。
A. .9E0B. E22C. 0.41ED. .8e0.01正确答案:A你的答案:解析:【解析】C语言实数表示法实型常数的用法E(也可以用e)之前必须有数字,e或E 后面的指数必须为整数,选项B、C、D错误,选项A正确;本题答案为A。
15.设a,b,c是整型变量,以下选项中的赋值表达式错误的是()。
A. a = 1 = (b = 1) = 1B. a = (b = 0) * (c + 0)C. a = b = c * 0D. a = 1 % (b = c == 9) + 46正确答案:A你的答案:解析:【解析】=为赋值运算符,其左侧应该为一个可以被修改的值,其左值可为变量,但是算术表达式与常量不可做其左值,右值无特殊要求,选项B、C、D正确,选项A错误;本题答案为A。
16.有如下程序#include <stdio.h>main(){char *msg = "Hello";int x = 012;printf("%s,X=%d.\n", msg, x+1);}程序运行后的输出结果是()。
A. Hello,X=11.B. He,X=13.C. HelX=121.D. Hello,X=013.正确答案:A你的答案:解析:【解析】给变量x赋初值为012,0开头表示改值为八进制数值,%d是按照十进制整数形式输出,所以应将八进制数值转化为十进制数值在进行计算输出,012转化为十进制形式为10,打印x+1=11,因此选项B、C、D错误,选项A正确;本题答案为A。
17.对于if(表达式) 语句,以下说法正确的是()。
A. “表达式”的值只能是整数值B. 在“表达式”中不能调用返回整数的函数C. 在“表达式”中不能含有函数调用D. “表达式”可以是算术表达式正确答案:D你的答案:解析:【解析】C语言规定,if(表达式)语句中的“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式,允许函数调用,但调用函数的返回值必须符合要求,因此选项A、B、C错误,选项D正确;本题答案为D。
18.有如下程序#include <stdio.h>main(){int a = 0, b = 4;if (a++){if (b++) printf("T");}elseprintf("F");printf(":a=%d,b=%d\n", a, b);}程序运行后的输出结果是()。
A. F:a=1,b=4B. F:a=0,b=4C. T:a=1,b=5D. T:a=0,b=5正确答案:A你的答案:解析:【解析】C语言中0为假,非0即为真,第一个if语句中a++为先使用a后其自增1,所以此时a++值为0,即为假,执行else语句,b的值未改变,最后输出a、b,a自增后应为1,b不变应为4,选项B、C、D错误,选项A正确;本题答案为A。
19.有如下程序#include <stdio.h>main(){int i, data;scanf("%d", &data);for (i=2; i<6; i++){if (data % i)printf("%d-", i);elsecontinue;}}程序运行时,从键盘输入:10<回车>后,程序输出结果为()。
A. 2-5-B. 2-3-4-5-C. 0-1-D. 3-4-正确答案:D你的答案:解析:【解析】%为取余运算符,结果为余数,continue为结束本次循环,不影响之后的循环,从键盘输入10,i=2,10%2为0即为假,执行else语句,跳出本次循环,继续向下执行循环;i=3,10%3为1,为真,执行if语句,输出3-,继续执行;i=4时,10%4为真,输出4-,继续循环;i=5时,10%5=0条件为假,循环结束。
输出结果为3-4-,选项A、B、C错误,选项D正确;本题答案为D。
20.有如下程序#include <stdio.h>main(){int i, data;scanf("%d", &data);for (i=0; i<10; i++){if (i > data)break;elseprintf("%d,", i);}}程序运行时,从键盘输入:10<回车>后,程序输出结果为()。