国家二级(C语言)机试-试卷71

合集下载

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

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

国家二级C语言机试(选择题)模拟试卷229(题后含答案及解析) 题型有:1.1.以下选项中非法的C语言字符常量是A.’\b’B.’\007’C.’aa’D.’\xaa’正确答案:C解析:一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。

知识模块:C语言基础知识2.在调用函数时,如果参数是简单变量,它与对应形参之间的数据传递方式是( )。

A.单向值传递B.地址传递C.由实参传给形参,再由形参传回实参D.传递方式由用户指定正确答案:A解析:C语言规定,简单变量或数组元素为实参时,是单向值传递,即实参可以改变形参的值,但形参不能改变实参的值。

知识模块:函数与数组3.数据库应用系统中的核心问题是A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训正确答案:A解析:在数据库应用系统中的一个核心问题就是设计一个能满足用户要求,性能良好的数据库,这就是数据库设计。

所以数据库设计是数据库应用的核心。

知识模块:公共基础知识4.合法的C语言标识符是( )。

A._1_B.2_8C.voidD.unsigned正确答案:A解析:用户的标识符只能由字母或下划线开始,其他任何字符开始均会出错。

一般强调文见其义的命名方法。

但是C语言中的保留字不能用作用户的标识符。

而选项C和D全部为保留字,选项B中以数字开头,这些都不正确。

知识模块:C语言基础知识5.以下叙述中错误的是( )。

A.gets函数用于从终端读入字符串B.getehar函数用于从磁盘文件读入字符C.fputs函数用于把字符串输出到文件D.fwrite函数用于以二进制形式输出数据到文件正确答案:B解析:本题考查字符处理函数和文件读写函数,属于基础知识。

其中B选项的getchar函数用于从终端读入字符。

知识模块:基本语句6.有两个关系R,S如下,由关系R和S通过运算得到关系T,则所使用的操作为()。

A.并B.自然连接C.笛卡尔积D.差正确答案:D解析:由关系可以看出,关系T是由关系R中减去关系R和关系S共有的元组得到的,所以答案选择D。

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

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

国家二级C语言机试(操作题)模拟试卷721(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.给定程序中,函数fun的功能是:有N×N矩阵,根据给定的m(m<=N)值,将每行元素中的值均右移m个位置,左边置为0。

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

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

不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #define N 43 void fun(int(*t)[N],int m)4 { int i,j;5 /**********found**********/6 for(i=0;i<N;__1__)7 { for(j=N-1-m;j >=0;j--)8 /**********found**********/9 t[i][j+__2__]=t[i][j];10 /**********found**********/11 for(j=0;j<__3__;j++)12 t[i][j]=0;13 }14 }15 main( )16 {int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j,m;17 printf(‘‘\nThe original array:\n’’);18 for(i=0;i<N;i++)19 { for(j=0;j<N;j++)20 printf(‘‘%2d’’,t[i][j]);21 printf(‘‘\n’’);22 }23 printf(‘‘Input m(m<=%d):’’,N);scanf(‘‘%d’’,&m);24 fun(t,m);25 printf(‘‘\nThe result is:\n’’);26 for(i=0;i<N;i++)27 { for(j=0;j<N;j++).28 printf(‘‘%2d’’,t[i][j]);29 printf(‘‘\n’’);30 }31 }正确答案:(1)i++(2)m(3)m解析:函数fun的功能是将每行元素中的值均右移m个位置。

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

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

国家二级C语言机试(操作题)模拟试卷710(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为函数值返回。

为便于统计,规定各单词之间用空格隔开。

例如,形参s所指的字符串为:This is a C language program,函数的返回值为6。

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

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

不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 int fun(char *s)3 { int n=0,flag=0;4 while( *s!=‘\0’)5 { if( *s!=‘‘&& flag==0) {6 /**********found**********/7 __1___;flag=1;}8 /**********found**********/9 if(*s==‘‘)flag=__2__;10 /**********found**********/11 __3__;12 }13 return n;14 }15 main( )16 { char str[81];int n;17 printf(‘‘\nEnter a lihe text:\n’’);gets(str);18 n=fun(str);19 printf(‘‘\nThere are%d words in this text.\n\n’’,n);20 }正确答案:(1)n++(2)0(3)s++解析:函数fun的功能是计算出形参s所指字符串中包含的单词个数。

第一空:“if(*s!=¨&&flag==0)”说明找到空格了,单词的数量应加1,故第一空处应为“n++”。

第二空:“if(*s!=¨&&flag==0)”和“if(*s==‘‘)flag=__2__:”在flag为0的情况下,n才加1,因此,第二空处是将flag置0,即第二空处应为“0”。

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

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

国家二级C语言机试(选择题)模拟试卷107(题后含答案及解析) 题型有:1. 选择题选择题1.下列选项中不属于结构化程序设计原则的是( )。

A.可封装B.自顶向下C.模块化D.逐步求精正确答案:A解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

知识模块:选择题2.有两个关系R和T如下:则由关系R得到关系T的操作是( )。

A.投影B.交C.选择D.并正确答案:A解析:从表图中可以看出,关系T是从关系R中选取一部分字段(A和C)及其值构成新的关系,是一种纵向操作产生新列,属于投影,正确选项为A。

知识模块:选择题3.有以下程序:#include <stdio.h>main( ){printf(″%d\n”,NULL);}程序运行后的输出结果是( )。

A.1B.变量无定义,输出不确定C.—1D.0正确答案:D解析:NULL为一个符号常量,对应的ASCⅡ码值为0,答案选D。

知识模块:选择题4.有以下程序:#include<stdio.h>#define f(x)x*x*xmain( ){int a=3,s,t;s=f(a+1);t=f((a+1));printf(″%d,%d\n″,s,t);}程序运行后的输出结果是( )。

A.10,64B.10,10D.64,64正确答案:A解析:C语言中带参数的宏可以理解为用参数直接替代定义式中的变量,而不经过任何修改。

所以s=f(a+1)=a+1*a+1*a+1,t=f((a+1))=(a+1)*(a+1)*(a+1),所以有无括号的运算结果是不同的。

知识模块:选择题5.有以下程序:#include<stdio.h>int f(int x,int y){return((y—x) * x);}void main( ){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(″%d\n″,d);}程序运行后的输出结果是( )。

国家二级C语言机试C语言基础知识模拟试卷7_真题-无答案

国家二级C语言机试C语言基础知识模拟试卷7_真题-无答案

国家二级C语言机试(C语言基础知识)模拟试卷7(总分60,考试时间90分钟)1. 选择题1. DOS文件系统的组织结构属于A. 星形结构B. 网星结构C. 环形结构D. 树形结构2. 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A. C语言程序仅可以编译执行B. C语言程序仅可以解释执行C. C语言程序既可以编译执行又可以解释执行D. 以上说法都不对3. 以下叙述中错误的是A. C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件B. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中C. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令D. C语言源程序经编译后生成后缀为.obj的目标程序4. 下列叙述中错误的是A. C程序可以由多个程序文件组成B. 一个C语言程序只能实现一种算法C. C程序可以由一个或多个函数组成D. 一个C函数可以单独作为一个C程序文件存在5. 以下叙述中错误的是A. 结构化程序由顺序、分支、循环三种基本结构组成B. C语言是一种结构化程序设计语言C. 使用三种基本结构构成的程序只能解决简单问题D. 结构化程序设计提倡模块化的设计方法6. 以下叙述中错误的是A. 算法正确的程序最终一定会结束B. 算法正确的程序可以有零个输入C. 算法正确的程序可以有零个输出D. 算法正确的程序对于相同的输入一定有相同的结果7. 以下选项中关于程序模块化的叙述错误的是A. 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B. 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C. 把程序分成若干相对独立的模块,可便于编码和调试D. 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序8. C语言源程序名的后缀是A. .exeB. .objC. .cD. .cp9. 关于算法,以下叙述中错误的是A. 同一个算法对于相同的输入必能得出相同的结果B. 一个算法对于某个输入的循环次数是可以事先估计出来的C. 某个算法可能会没有输入D. 任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕10. 以下不能用于描述算法的是A. 程序语句B. E-R图C. 伪代码和流程图D. 文字叙述11. 以下叙述中正确的是A. 程序的算法只能使用流程图来描述B. N—S流程图只能描述简单的顺序结构的程序C. 计算机可以直接处理C语言程序,不必进行任何转换D. 结构化程序的三种基本结构是循环结构、选择结构、顺序结构12. 以下叙述中正确的是A. 在C语言程序设计中,所有函数必须保存在一个源文件中B. 在算法设计时,可以把复杂任务分解成一些简单的子任务C. 只要包含了三种基本结构的算法就是结构化程序D. 结构化程序必须包含所有的二三种基本结构,缺一不可13. 以下叙述中正确的是A. 每个后缀为.c的C语言源程序都应该包含一个main函数B. 在C语言程序中,main函数必须放在其他函数的最前面C. 每个后缀为.c的C语言源程序都可以单独进行编译D. 在C语言程序中,只有main函数才可单独进行编译14. 有以下程序,在VC6平台上编译运行,程序运行后的输出结果是#include<stdio.h>main(){int s,t,A=10;double B=6:s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}A. 4,4B. 2,4C. 4,8D. 10,615. 对于一个正常运行的C程序,以下叙述中正确的是A. 程序的执行总是从程序的第一个函数开始,在main函数结束B. 程序的执行总是从main函数开始,在程序的最后一个函数中结束C. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束D. 程序的执行总是从main函数开始16. 计算机能直接执行的程序是A. 目标程序B. 可执行程序C. 汇编程序D. 源程序17. 以下叙述中正确的是A. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行B. C语言程序将从源程序中第一个函数开始执行C. main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等D. C语言规定必须用main作为主函数名,程序将从此开始执行18. 以下叙述中错误的是A. C程序在运行过程中所有计算都以二进制方式进行B. 所有C程序都需要编译链接无误后才能运行C. C程序在运行过程中所有计算都以十进制方式进行D. C程序中字符变量存放的是字符的ASCII值19. 下列叙述中正确的是A. 在C程序中main函数的位置是固定的B. C程序中所有函数之间都可以相互调用C. 每个C程序文件中都必须要有一个main函数D. 在C程序的函数中不能定义另一个函数20. 以下叙述正确的是A. C语言程序是由过程和函数组成的B. C语言函数可以嵌套调用,例如:fun(fun(x))C. C语言函数不可以单独编译D. C语言中除了main函数,其他函数不可作为单独文件形式存在21. C语言程序的模块化通过以下哪个选项来实现A. 变量B. 程序行C. 函数D. 语句22. 以下叙述中正确的是A. 程序的主函数名除main外,也可以使用Main或mainB. 在C程序中,模块化主要是通过函数来实现的C. 程序可以包含多个主函数,但总是从第一个主函数处开始执行D. 书写源程序时,必须注意缩进格式,否则程序会有编译错误23. 以下叙述中正确的是A. C语言程序总是从最前面的函数开始执行B. C语言程序总是从main函数开始执行C. C语言程序中main函数必须放在程序的开始位置D. C语言程序所调用的函数必须放在main函数的前面24. C语言主要是借助以下哪种手段来实现程序模块化A. 定义常量和外部变量B. 使用丰富的数据类型C. 使用三种基本结构语句D. 定义函数25. 以下四个程序中,完全正确的是A. #include<stdio.h>main();{/*/1Programming /*/printf("programming!\n");}B. #include<stdio.h>main();{/*programming*/printf("programming!\n");}C. #include<stdio.h>main() {/*/*programming*/*/printf("programming!\n");}D. include<stdio.h>main() {/*programming*/printf("programming!\n");}26. 以下关手结构化程序设计的叙述中正确的是A. 结构化程序使用goto语句会很便捷B. 一个结构化程序必须同时由顺序、分支、循环三种结构组成C. 由三种基本结构构成的程序只能解决小规模的问题D. 在C语言中,程序的模块化是利用函数实现的27. 以下叙述中正确的是A. C程序中的每一行只能写一条语句B. 简单C语句必须以分号结束C. C语言程序中的注释必须与语句写在同一行D. C语句必须在一行内写完28. 以下叙述中正确的是A. C程序书写格式严格,要求一行内只能写一个语句B. C程序书写格式自由,一个语句可以写在多行上C. C程序中的注释只能出现在程序的开始位置和语句的后面D. 用C语言编写的程序只能放在一个程序文件中29. 以下关于C语言的叙述中正确的是A. C语言中的变量可以在使用之前的任何位置进行定义B. 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致C. C语言的数值常量中夹带空格不影响常量值的正确表示D. C语言中的注释不可以夹在变量名或关键字的中间30. 有以下程序#include<stdio.h>main(){int a=0,b=0;/*给a赋值a=10;b=20;给b赋值*/printf("a+b=%d\n",a+b);/*输出计算结果*/}程序运行后的输出结果是A. a+b=30B. a+b=10C. 出错D. a+b=0。

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

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

国家二级(C语言)机试模拟试卷100(题后含答案及解析)题型有:1. 选择题 2. 程序填空题 3. 程序修改题 4. 程序设计题选择题1.下列关于栈叙述正确的是( )。

A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先被删除正确答案:A解析:栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。

栈底元素最先人栈却最后被删除。

所以选择A。

2.下列叙述中正确的是( )。

A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.以上说法都不正确正确答案:C解析:栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。

A.3B.4C.6D.7正确答案:D解析:根据二叉树的基本性质3:在任意一棵二义树中,多为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二义树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。

4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是( )。

A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统正确答案:A解析:软件按功能町以分为:应用软件、系统软件、支撑软件。

操作系统、编译程序、汇编程序、网络软件、数据库管理系统部属于系统软件。

所以B、C、D都是系统软件,只有A是应用软件。

5.结构化程序所要求的基本结构不包括( )。

A.顺序结构B.GOTO跳转C.选择(分支)结构D.重复(循环)结构正确答案:B解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

国家二级(C语言)机试历年真题试卷汇编1(题后含答案及解析)

国家二级(C语言)机试历年真题试卷汇编1(题后含答案及解析)

国家二级(C语言)机试历年真题试卷汇编1(题后含答案及解析) 题型有:1. 选择题选择题1.下列叙述中正确的是( )。

【10年9月】A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.上述3种说法都不对正确答案:B解析:线性表的存储分为顺序存储和链式存储。

在顺序存储中,所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。

所以每个元素只存储其值就可以了,而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。

所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。

知识模块:公共基础知识2.下列叙述中正确的是( )。

【10年9月】A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.上述3种说法都不对正确答案:C解析:在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。

栈跟队列不同,元素只能在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化,遵循后进先出的规则。

知识模块:公共基础知识3.软件测试的目的是( )。

【10年9月】A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误正确答案:D解析:软件测试的目的是为了发现程序中的错误,而软件调试是为了更正程序中的错误。

知识模块:公共基础知识4.下面描述中,不属于软件危机表现的是( )。

【10年9月】A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高正确答案:A解析:软件危机主要表现在以下6个方面:①软件需求的增长得不到满足;②软件开发成本和进度无法控制;③软件质量难以保证;④软件不可维护或维护程序非常低;⑤软件的成本不断提高;⑥软件开发生产率的提高赶不上硬件的发展和应用需求的增长。

国家二级C语言机试(程序设计基础、C语言概述)-试卷1

国家二级C语言机试(程序设计基础、C语言概述)-试卷1

国家二级C语言机试(程序设计基础、C语言概述)-试卷1(总分:68.00,做题时间:90分钟)一、选择题(总题数:34,分数:68.00)1.结构化程序设计的基本原则不包括()。

(分数:2.00)A.多态性√B.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

2.在面向对象方法中,不属于"对象"基本特点的是()。

(分数:2.00)A.一致性√B.分类性C.多态性D.标识唯一性解析:解析:对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。

所以选择A)。

3.面向对象方法中,继承是指()。

(分数:2.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制√解析:解析:继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。

广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。

4.结构化程序所要求的基本结构不包括()。

(分数:2.00)A.顺序结构B.GOTO跳转√C.选择(分支)结构D.重复(循环)结构解析:解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

5.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。

(分数:2.00)A.-369B.369 √C.0.369D.整数集合{1,2,3,4,5}解析:解析:只有B)选项369可以用无符号整数来表示和存储。

A)选项-369有负号,选项C)0.369是小数都不能用无符号整数类存储。

选项D)是一个整数集合得用数组来存储。

6.下列选项中不属于结构化程序设计原则的是()。

(分数:2.00)A.可封装√B.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

二级全国c语言机试题及答案

二级全国c语言机试题及答案

二级全国c语言机试题及答案二级全国C语言机试题及答案1. 以下哪个选项是C语言中正确的字符串定义?A. char str[5] = "hello";B. char str[] = "hello";C. char str[6] = "hello";D. char str[5] = {'h', 'e', 'l', 'l', 'o'};答案:B2. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 以下哪个选项是C语言中正确的函数定义?A. int function(int a, int b) { return a + b; }B. int function(int a, int b) { return a - b; }C. int function(int a, int b) { return a * b; }D. All of the above答案:D4. 以下哪个选项是C语言中正确的数组初始化方式?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[5] = {1, 2, 3};C. int arr[5] = {};D. All of the above答案:D5. 在C语言中,以下哪个选项是正确的指针声明?A. int *p;B. int *p = 0;C. int *p = NULL;D. All of the above答案:D6. 以下哪个选项是C语言中正确的文件操作函数?A. fopenB. fcloseC. fprintfD. All of the above答案:D7. 在C语言中,以下哪个选项是正确的条件语句?A. if (a > b)B. if (a > b) { ... }C. if (a > b) { ... } else { ... }D. All of the above答案:D8. 以下哪个选项是C语言中正确的循环语句?A. for (int i = 0; i < 10; i++)B. while (condition)C. do { ... } while (condition);D. All of the above答案:D9. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14159B. #define SQUARE(x) x * xC. #define MAX(a, b) ((a) > (b) ? (a) : (b))D. All of the above答案:D10. 在C语言中,以下哪个选项是正确的递归函数定义?A. int factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}B. int factorial(int n) {if (n == 0) return 1;else return n * factorial(n);}C. int factorial(int n) {if (n == 0) return 1;else return n * factorial(n - 1);}D. All of the above答案:A。

计算机全国等级考试二级c语言

计算机全国等级考试二级c语言

计算机全国等级考试二级c语言计算机全国等级考试(二级C语言)是一项针对计算机专业人员的国家级考试,其主要内容是测试考生在C语言程序设计方面的知识和能力。

该考试分为两个部分:笔试和机试。

笔试部分主要考察考生的基本理论知识和编程能力,机试部分则通过实际编写程序来评估考生的实际操作能力和解决问题的能力。

C语言是一种广泛应用于编程领域的高级程序设计语言。

通过学习和掌握C语言,计算机专业人员可以更好地理解计算机的内部工作原理,并能够编写高效、稳定的程序。

因此,参加计算机全国等级考试(二级C语言)对计算机专业人员的职业发展具有重要意义。

考试内容主要包括以下几个方面:1.基本概念和语法:C语言的基本概念和语法是考试的基础部分,包括变量、数据类型、运算符、流程控制语句(如循环语句和条件语句)、函数等。

2.数组和字符串:考生需要熟练掌握数组和字符串在C语言中的用法,包括数组的定义、初始化和访问,以及字符串的操作和处理。

3.指针和内存管理:指针是C语言的一个重要概念,考生需要理解指针的作用和用法,并能够使用指针进行内存管理和动态分配。

4.结构体和文件操作:结构体是C语言中用来组织和管理多个不同类型数据的一种方式,考生需要了解结构体的定义和使用方法,并能够进行文件的读写操作。

5.高级特性和编程技巧:这部分内容主要包括C语言的一些高级特性和编程技巧,如递归、位运算、宏定义、预处理器等。

为了顺利通过计算机全国等级考试(二级C语言),考生需要采取一系列有效的学习和备考策略:1.理论知识和实践相结合:在备考过程中,考生不仅要注重理论知识的学习,还要通过编写程序来实践所学的知识,提高自己的编程能力。

2.多做题和模拟考试:通过多做题和模拟考试,考生可以提高自己对考试题型和考试环境的适应能力,同时也可以查漏补缺,提高自己的解题能力。

3.注意重点和难点:在备考过程中,考生应该通过分析历年真题和参考书籍,找出考试的重点和难点,加强对这些知识点的理解和掌握。

国家二级C语言程序设计机试选择题模拟试卷2_真题-无答案

国家二级C语言程序设计机试选择题模拟试卷2_真题-无答案

国家二级C语言程序设计机试(选择题)模拟试卷2(总分80,考试时间90分钟)1. 选择题1. 下列叙述中正确的是( )。

A. 一个算法的空间复杂度大,则其时间复杂度也必定大B. 一个算法的空间复杂度大,则其时间复杂度必定小C. 一个算法的时间复杂度太,则其空间复杂度必定小D. 算法的时间复杂度与空间复杂度没有直接关系2. 下列叙述中正确的是( )。

A. 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B. 循环队列中的元素个数随队头指针的变化而动态变化C. 循环队列中的元素个数随队尾指针的变化而动态变化D. 以上说法都不对3. 一个栈的初始状态为空。

现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是( )。

A. 1,2,3,A,B,CB. C,B,A,1,2,3C. C,B,A,3,2,1D. 1,2,3,C,B,A4. 一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为( )。

A. 219B. 229C. 230D. 2315. 对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为( )。

A. 9B. 10C. 45D. 906. 下列各项中,对对象概念描述正确的是( )。

A. 对象间的通信靠消息传递B. 对象是名字和方法的封装体C. 任何对象必须有继承性D. 对象的多态性是指一个对象有多个操作7. 下列各项中,不属于软件设计阶段任务的是( )。

A. 软件总体设计B. 算法设计C. 制订软件并确认测试计划D. 数据库设计8. 一般情况下,当对关系R和S进行自然连接时,要求R和s含有一个或者多个共有的( )。

A. 记录B. 行C. 属性D. 元组9. 下列各项与栈结构有关联的是( )。

A. 数组的定义域使用B. 操作系统的进程调度C. 函数的递归调用D. 选择结构的执行10. 有两个关系R和T如下:则由关系R得到关系T的操作是( )。

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

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

国家二级C语言机试(操作题)模拟试卷810(题后含答案及解析) 全部题型 2. 程序填空题 3. 程序修改题 4. 程序设计题程序填空题1.函数fun的功能是:在有n个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。

例如,主函数中给出了4名学生的数据,则程序运行的结果为:学号:N1002学号:N1006共有2位学生有不及格科目请在程序的下画线处填入正确的内容,并把下画线删除,使程序得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!试题程序:#include<stdio.h>typedef struct{char num[8];double score[2];/* * * * * * found * * * * * */}___(1)___;int fun(STU std[],int n){int i,k=0;for(i=0;i<n;i+ +)/* * * * * * found * * * * * */if(std[i].score[0]<60___(2)___std[i].score[1]<60){k+ +;printf(″学号:%s″,std[i].num);}/* * * * * * found * * * * * */return___(3)___;}main( ){STU std[4]={″N1001″,76.5,82.0,″N1002″,53.5,73.0,″N1005″,80.5,66.0.″N1006″,81.0,56.0};printf(″\n共有%d位学生有不及格科目\n″,fun(std,4));}正确答案:(1)STU (2)||(3)k解析:本题考查:对结构体的定义和使用,以及逻辑运算符的使用。

填空1:STU结构体别名,通过main( )中的语句可知。

填空2:||只要学生两门课成绩有不及格的,就算不及格,因此使用或运算。

全国计算机二级C语言考试注意事项以及真题

全国计算机二级C语言考试注意事项以及真题

笔试机试注意事项笔试注意事项1、笔试满分100 分,共两大题,选择70 分40 小题,填空30 分15 小题。

C 语言占70分,公共基础占30 分。

2、选择用铅笔涂答题卡,填空用黑色签字笔在答题上写。

3、考前准备好身份证、准考证、2B 铅笔、橡皮、黑色签字笔、手表等。

机试注意事项1、机试满分100 分,共三道题,其中程序填空30 分2~3 空,程序改错30 分2~3 空,完成程序40 分。

考试时间为90 分钟,考试环境为Windows XP,Visual C++6.0。

2、大家考试的时间、地点是不一样的,所以一定看清自己准考证,提前进入考场候考。

3、使用Visual C++编译,具体是中文版还是英文版由考点决定,要求中英文版都会用。

4、考试科目是二级C 语言,不是C++或三级C。

5、成功登录考试系统后,自己无法选择改变题目,相邻的考生题目不一样。

6、考试中若出现死机、断电等异常情况不要紧张,立即举手报告监考人员,由他们处理,切不可自作主张。

7、考题大多数是50 套模拟题中的题,就算不一样也是换汤不换药。

8、填空和改错把“ 1 ”删掉填上正确答案,不要改动每空前面/*****found*****/注释行等内容;完成程序在函数体花括号{ }中填写程序,“完成程序”题编完后必须要编译运行才能得分。

做完后千万不要忘记保存。

9、在考试界面左上角有“答题”菜单,点击后选择“启动Microsoft Visual C++”进入VC,在“打开”对话框中按考生文件夹中的路径选择文件。

考生目录下的W ARN 文件夹有备份文件,如果误操作了可从这个文件夹中复制出来。

10、很多考生进入机试时,脑子一片空白,无从下手;还有的不知道逻辑或“||”怎么打出来或Insert 键按后有什么区别等。

这是缺少练习的缘故,所以一定要在考前多练。

其它注意事项1、无法使用上机模拟系统的原因有:VISTA 系统需右键单击“二级考试”程序,选择“以管理员身份运行”;杀毒软件误报需关闭杀毒软件;部分网吧机房不允许安装。

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

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

国家二级C语言机试(选择题)模拟试卷278(题后含答案及解析) 题型有:1.1.以下选项中关于程序模块化的叙述错误的是A.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C.把程序分成若干相对独立的模块,可便于编码和调试D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序正确答案:B解析:如果应用结构化程序设计方法设计程序,那么可采用自顶向下,逐步细化的设计方法把若干独立模块组装成所要求的程序。

知识模块:C语言基础知识2.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。

关于转换以下说法错误的是A.一条C语句可能会被转换成多条机器指令B.一条C语句对应转换成一条机器指令C.一条C语句可能会被转换成零条机器指令D.某种类型和格式的C语句被转换成机器指令的条数是崮定的正确答案:B解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。

这些二进制指令命令机器计算,这些就是机器指令,而C语言的语言条数和机器指令的条数不是一对一的关系。

知识模块:C语言基础知识3.面向对象方法中,实现对象的数据和操作结合于统一体中的是( )。

A.结合B.封装C.隐藏D.抽象正确答案:B解析:对象的基本特点是:标识唯一性、分类性、多态性、封装性、模块独立性好。

封装是指隐藏对象的属性和实现细节,将数据和操作结合于统一体中,仅对外提供访问方式。

B选项正确。

知识模块:公共基础知识4.以下叙述中正确的是A.程序必须包含所有三种基本结构才能成为一种算法B.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达C.只有简单算法才能在有限的操作步骤之后结束D.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令正确答案:D解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来描述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。

国家二级C语言机试选择题模拟试卷78_真题(含答案与解析)-交互

国家二级C语言机试选择题模拟试卷78_真题(含答案与解析)-交互

国家二级C语言机试(选择题)模拟试卷78(总分80, 做题时间90分钟)1. 选择题1.数据结构主要研究的是数据的逻辑结构、数据的运算和( )。

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

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

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

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

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

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

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

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

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

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

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

国家二级(C语言)机试模拟试卷100(题后含答案及解析)题型有:1. 程序填空题 2. 程序修改题 3. 程序设计题程序填空题(30分)1.请补充main 函数,该函数的功能是:先以只写方式打开文件“out99.dat”,再把字符串str中的字符保存到这个磁盘文件中。

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

请勿改动主函数main 和其他函数中的任何内容,仅在main 函数的横线上填入所编写的若干表达式或语句。

试题程序:#include “stdio. h”#include “conio.h”#define N 80 main ( ) { FILE *fp; int i=0; char ch; char str[N]=“I’m a student!”; clrscr( ); if ( (fp=fopen (【】) ) ==NULL) {printf(“cannot open out99. dat\n”);exit(0); } while (str[i]) {ch=str[i];【】; putchar(ch); i++; }【】; }正确答案:“out99.dat”,“w”fpnte (ch,fp)fclose (fp)解析:第一空:本题考查对文件操作的掌握。

打开一个文件的调用方式是,fp==fopen (文件名,使用文件方式);,题目要求以只写的方式打开文件“out 99.dat”,所以文件使用方式为“w”。

第二空;fputc ( )函数用于将一个字符写到磁盘文件上去,调用形式为:fputc (要输出的字符,文件指针)。

第三空:对一个文件进行操作后,应该关闭它,以防它再被误用。

调用形式为:fclose (文件指针);程序修改题(30分)2.下列给定程序中,函数fun( )的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。

例如,当n为5时,函数值应为10.407143。

全国计算机等级考试二级-基础知识和C语言程序设计 模拟考试试卷及答案(一)

全国计算机等级考试二级-基础知识和C语言程序设计  模拟考试试卷及答案(一)

全国计算机等级考试二级-基础知识和C语言程序设计模拟考试试卷及答案(一)一、选择题(1)下列设备中只能作为输入设备的是A)磁盘驱动器 B)鼠标器 C)存储器 D)显示器(2)下列DOS组合控制键中,能使标准输出同时送到屏幕与打印机的是A)Ctrl+Break B)Ctrl+P C)Ctrl+C D)Ctrl+H(3)通常所说的386机是A)8位机 B)16位机 C)32位机 D)64位机(4)二进制数01100100转换成十六进制数是A)64 B)63 C)100 D)144(5)十六进制数100转换成十进制数是A)1024 B)512 C)256 D)128(6)对于存有重要数据的5.25英寸软盘,防止计算机病毒感染的主法A)不要与有病毒的软盘放在一起 B)在写保护口贴上胶条C)保持软盘清洁 D)定期对软盘格式化(7)在启支DOS系统时,启动盘的根目录下必须包含的文件有A) B) C) D)(8)DOS系统启动后,下列文件中常驻内存的是A) B) C) D)(9)下列字中,不能作为DOS磁盘文件名的是A)JTU B)93GZ.PRG C)CON D)ATT&T.BAS(10)下列命令中属于内部命令的是A)SYS B)COSP C)DIR D)DISKCOMP(11)下列文件名中,能与ABC?.?匹配的是A)AB12.C B)ABCD.FOR C)ABC.TXT D)ABCD.C(12)要列出当前盘当前目录中第三个字符为"B"的所有文件的清单, 可使用的命令为A)DIR* *B*.* B)DIR ??B*.*? C)DIR ??B.* D)DIR ??B*.*(13)设当前盘为C盘,其根目录下有两个子目录D1与D2,且当前目录为D1, 若要进入子目录D2,可使用的命令为A)CD D2 B)CD D2\C)CD \D2 D)CD D1\D2(14)设当前盘为C盘,A盘当前目录为根目录, 为了删除A 盘目录\ WS 下扩展名为.TXT的所有文件,可用的命令为A)DEL WS\*.TXT B)DEL \WS\*.TXTC)DEL A:\WS\?.TXT D)DEL A:WS\*.TXT(15)设当前盘为C盘,C盘当前目录为\AAA\BBB\A\B\X.下列命令中正确的是A)MD \AAA\BBB\A B)MD XC)MD \ D)MD \AAA\BBB\A\B\X(16)在下列各组的两个命令中,根据给定的条件,执行效果互相等价的是A)DEL \DOS 与 RD \DOS(当前盘上有目录\DOS)B)FORMAT A:与DEL A:*.*(A盘为启动盘)C)DISKCOPY A: B: 与 COPY A:*.* B:(A盘为启动盘)D)COPY F1 F2 与TYPE F1>F2(当前盘当前目录下有文件F1)(17)为了在1.2MB的高密驱动器A中格式化一张360KB的启动盘,可用的命令为A)FORMAT A: B)FORMAT A:/S/1C)FORMAT A:/S/4 D)FORMAT A:/S(18)要在打印机上输出当前盘当前目录下扩展名为.TXT的所有文件内容,正确的命令为A)COPY *.TXT PRN B)COPY *.TXT >PRNC)TYPE *.TXT PRN D)TYPE *.TXT >PRN(19)设B盘目录结构如下:B:\根目录─┬─F1子目录──F11子目录───FA.TXT│├─F2子目录┬─F21子目录─┬─FB.BAS│ │ ││ │ ││ └─F22子目录└─FC.TXT└─设B盘的当前目录为\F2,要将\A盘当前目录下的文件P.BAS复制到B盘的F3 子目录中,可用的命令为A)COPY P.BAS B: B)COPY A:P.BAS B:\C)COPY A:P.BAS B:\F3 D)COPY A:P.BAS B:F3\(20)设当前盘为A盘,要将B盘当前目录下的两个文件A.TXT与X.TXT 连接后以文件名Y.TXT存放到A盘的当前目录中,可用的命令为A)COPY A.TXT+X.TXT A:Y.TXTB)COPY B.A.TXT+X.TXT A:Y.TXTC)COPY B:A.TXT+B:X.TXT >Y.TXTD)COPY B:A.TXT+B:X.TXT Y.TXT(21)C语言中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型(22)C语言中,运乍对象必须是整型数的运算符是A)% B)\C)%和\ D)* *(23)为表示关系x≥y≥z,应使用C语言表达式A)(x>=y)&&(y>=z) B(x>=y)AND(y>=z)C)(x>=y>=z) D)(x>=y)&(y>=z)(24)下述对C语言字符数组的描术中错误的是A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值D)不可以用关系运算符对字符数组中的字符串进行比较(25)设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是A)1 B)0C)4 D)3(26)以下程序的输出结果是main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A)10 10 B)9 9C)9 10 D)10 9(27)定义如下变题和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是for(i=0;i<3;i++) printf("%d",x[i][2-1]);A)1 5 9 B)1 4 7C)3 5 7 D)3 6 9(28)若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为A)a<>0 B)!aC)a=0 D)a(29)阅读程序:#includemain(){int a[10]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%x\n",p);printf("%x\n",p+9);}该程序有两个printf 语句, 如果第一个printf 语句输出的是194, 则第二个printf语句的输出结果是A)203 B)204C)1a4 D)1a6(30)设有如下函数定义:int f(char *s){ char *p=s;while(*p!='\0')\p++;return(p-s);}如果在主程序中用下面的语句调用上述函数,则输出结果为printf("%d\n",f("goodbey!"));A)3 B)6C)8 D)0(31)以下说法中正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分(32)执行下面的程序后,a的值为main(){ int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A)7 B)8C)9 D)10(33)以下程序段的输出结果是int x=3;do{ printf("%3d",x-=2);}while(!(--x));A)1 B)3 0C)1-2 D)死循环(34)定义如下变量:int n=10;则下列循环的输出结果是while(n>7){ n--;printf("%d\n",n);}A)10 B)9 C)10 D)99 8 9 88 7 8 77 6(35)两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是main( ){ int x;scanf("%d",&x);if(x + + 〉 5)printf("%d",x);else printf("%d\n",x - -);}A)7和5 B)6和3 C)7和4 D)6和4(36)设有如下定义:char *aa[2]={"abcd","ABCD"};则以下就法中正确的是A)aa数组成元素的值分别是"abcd"和ABCD"B)aa是指针变量,它指向含有两个数组元素的字符型一维数组C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D)aa数组的两个元素中各自存放了字符'a'和'A'的地址(37)以下程序的输出结果是main( ){ int a=-1,b=4,k;k=(+ +a〈0)&&!(b - -〈=0);printf("%d%d%d\n",k,ab);}A)104 B)103 C)003 D)004(38)设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是 A)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)(39)下列程序的输出结果是main( ){ char*p1,*p2,str[50]="xyz";p1="abcd";p2="ABCD";strcpy(str+2,strcat(p1+2,p2+1);printf)"%s",str);}A)xyabcAB B)abcABzC)ABabcz D)xycdBCD(40)执行下面的程序后,a的值是#define SQR(X) X*Xmain( ){ int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}A)10 B)1 C)9 D)0(41)下列程序执行后输出的结果是#include 〈stdio.h〉f(int a){ int b=0;statin c=3:a=c+ +,b+ +;returu(a);}main( ){ int a=2,i,k;for(i=0;i〈2;i=+ +)k=f(a+ +);printf("%d\n",k);}A)3 B)0 C)5 D)4(42)下列程序的输出结果是main( ){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",* *k);}A)4 4 B)2 2 C)2 4 D)4 6(43)阅读下列程序:main( ){ int n[3],i,j,k;for(i=0;i〈3;i++)n[i]=0;k=2;for (i=0;i〈k;i++)for (j=0;j〈k;j++)n[j]=n[i]+1;printf("%d\n",n[1]);}下述程序运行后输出结果是A)2 B)1 C)0 D)3(44)字符'0'的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的输出结果是#include〈stdio.h〉main( ){ union { int i[2];long k;char c[4];}r,*s=&r;s->i[0]=0x39;s->i[1]=0x38;printf("%c\n",s->c[0])}A)39 B)9 C)38 D)8(45)设有以下定义:typedef union{ long i;int k[5];char c;}DATE;struct date{ int cat;DATE cow;double dog;}too;DATE max;则下列语句的执行结果是printf("%d",sizeof(struct date)+sizeof(max));A)25 B)30 C)18 D)8(46)执行以下程序后,y的值是main ( ){ int a[]={2,4,6,8,10};int y=1,x,*p;p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf("%d\n",y);}A)17 B)18 C)19 D)20(47)下列程序执行后输出的结果是]int d=1;fun (int q){ int d=5;d + =p + +;printf("%d".d);}main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d);}A)8 4 B)9 6 C)9 4 D)8 5(48)下列程序的输出结果是main( ){ char ch[2][5]={"6934,"8254"},*p[2];int i,j,s=0;for(i=0;i<2;i + +)p[i]=ch[i];for(i=0;i<2;i + +)for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0';printf("%d\n",s);A)6385 B)69825 C)63825 D)693825(49)以下程序的输出结果是fut (int**s,int p[2][3]){ **s=p[1][1]; }main( ){ int a[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);primtf("%d\n",*p);}A)1 B)7 C)9 D)11(50)以下程序的输出结果是#include"ctype.h"space (char *str){ int i,t;char ts[81];for(i=0,t=0;str[i]!='\0';i+=2)if(! isspace(*str+i)&&(*(str+i)!='a')) ts[t++]=toupper(str[i]);ts[t]='\0';strcpy(str,ts);}mian( ){ char s[81]={"a b c d e f g"};space(s);puts(s);}A)abcdeg B)bcde C)ABCDE D)BCDE二、填空题(1)十进制数112.375转换成十六进制数为(2)存储200个32×32点阵的汉字信息需 KB─(3)数字符号0的ASCⅡ码十进制表示为48,数字符号9的ASCⅡ码十进制表示为(4)DOS命令分为内部命令与外部命信,TREE命令属于命令.(5)自动批处理文件的文件名为(6)下列程序的输出结果是int ast(int x,int y,int * cp,int * dp){ *cp=x+y;*dp=x-y;}main(){ int a,b,c,d;a=4;b=3;ast(a,b,&c,&d);printf("%d %d/n",c,d);}(7)以下程序的功能是:人键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.main(){ float x,amax,amin;scanf("%f",&x);amax=x;amin=x;while(9)─{ if(x>amax)amax=x;if(10)amin=x;─scanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);}(8)下面程序通过函数average计算数组中各元素的平均值,请填空.float average(int * pa,int n){ int i;float avg=0.0;for(i=0;imain(){ FILE * fp;char ch,fname[10];printf("lnput the name of file\n");gets(fname);if((fp=16)==NULL){ printf("Cannot open\n"); exit(0);}printf("Enter data\n");while((ch=getchar())!='#')fputc(17,fp);fclose(fp);}(9)以下函数creat用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾.单向链表的头指针作为函数值返回,请填空: #includestruct list{ char data;struct list * next;};struct list * creat(){ struct list * h,* p,* q;char ch;h=18 malioc(sizeof(struct list));p=q=h;ch=getchar();while(ch!='?'){ p=19 malloc(sizeof(struct list));p->data=ch;p->next=p;q=p;ch=getchar();}p->next='\0';20}答案一、选择题(1)B(2)B(3)C(4)A(5)C(6)B(7)B(8)B(9)C(10)C(11)D(12)D(13)C(14)D(15)B(16)D(17)C(18)A(19)C(20)D(21)B(22)A(23)A(24)C(25)D(26)D(27)C(28)D(29)D(30)C(31)C(32)B(33)C(34)B(35)A(36)D(37)D(38)D(39)D(40)B(41)D(42)C(43)D(44)B(45)B(46)C(47)A(48)A(49)C(50)D二、填空题(1)70.6(2)25(答25KB不扣分)(3)57(4)外部(答外部命令不扣分)(5)AUTOEXEC.BAT(答AUTOEXEC扣1分)。

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

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

国家二级(C语言)机试模拟试卷70(题后含答案及解析)题型有:1. 程序填空题 2. 程序修改题 3. 程序设计题程序填空题(30分)1.请补充main函数,该函数的功能是:打印届1~1000中满足:个位数字的立方等于其本身所有数。

本题的结果为;1 64 125 216 729 注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数main的横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio .h>main ( ) { int i,g; clrscr ( ); for (i=1; i <1000; i++) {g=【】;if(【】) printf (“%4d”, i); } }正确答案:i%10g*g*g==i解析:第一空:将一个整数对10求余,就得到这个数的个位数字,并存于变量g中。

第二空:如果个位数字的立方等于这个数本身,则将这个数输出。

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

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

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序#include <conio.h>#include <stdio.h>#include <string.h>void fun(char *a, char *b, char *c) { int i, j; char ch; i=0; j=strlen(b)-1; /*************found**************/ while (i>j} {ch=bill; b[i]=b[j]; b[j]=ch; i++; j--; } while (*a||*b) { if (*a){*c=*a; c++; a++;} if(*b){*c=*b; c++; b++;} } /*************found**************/ *c=0 ; } main ( ) { char s1[100],s2[100],t[200]; clrscr( ); printf(“\nEnter s1 string: “); scanf (“%s”, s1); printf(“\nEnter s2 string: “); scanf (“%s”, s2); fun(s1,s2,t); printf(“\nThe result is :%s\n”,t); }正确答案:(1)错误:while(i>j) 正确:while(i<j)(2)错误:*c=0;正确:*c=‘\0’解析:这是一个字符串处理的较为混合的程序,将字符串倒序存放的方法一般是以字符串中央为中心,将两边对称位置的字符互相交换。

国家二级C语言(公共基础知识)机试模拟试卷7(题后含答案及解析)

国家二级C语言(公共基础知识)机试模拟试卷7(题后含答案及解析)

国家二级C语言(公共基础知识)机试模拟试卷7(题后含答案及解析)题型有:1. 选择题选择题1.下列叙述中正确的是( )。

A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上3种说法都不对正确答案:D解析:算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A选项错误。

设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。

知识模块:公共基础知识2.算法的有穷性是指( )。

A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用正确答案:A解析:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。

有穷性是指算法程序的运行时间是有限的。

知识模块:公共基础知识3.算法的空间复杂度是指( )。

A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数正确答案:A解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,所以选择A选项。

知识模块:公共基础知识4.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )。

A.一369B.369C.0.369D.整数集合{1,2,3,4,5}正确答案:B解析:只有B选项369可以用无符号整数来表示和存储。

A选项一369有负号,C选项0.369是小数,都不能用无符号整数类存储。

D选项是一个整数集合,得用数组来存储。

知识模块:公共基础知识5.下列叙述中正确的是( )。

A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上说法均错误正确答案:A解析:程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。

知识模块:公共基础知识6.下列叙述中正确的是( )。

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

国家二级(C语言)机试-试卷71
(总分:12.00,做题时间:90分钟)
一、程序填空题(总题数:2,分数:4.00)
1.程序填空题()(分数:
2.00)
__________________________________________________________________________________________ 解析:
2.给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。

ss所指字符串数组中共有M个字符串,且串长#include #define M 5 #define N 20 int fun(char (*ss)[N], int *n) {int i, k=0, len= N; /**********found**********/ for(i=0; i
(分数:2.00)
__________________________________________________________________________________________ 正确答案:(正确答案:M < k)
解析:解析:第一空:循环的目的是在M个字符串中寻找长度最短的字符串,因此循环变量i从0变化到M-1,故第一空处应为“M”。

第二空:*n记录最小字符串的长度,由审题分析可知,字符串ss[i]长度比min小,则交换最小长度值和下标位置,故第二空处应为“
二、程序修改题(总题数:2,分数:4.00)
3.程序修改题()(分数:2.00)
__________________________________________________________________________________________ 解析:
4.由N个有序整数组成的数列已放在一维数组中,给定程序MODll.C中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。

若找到,返回其下标值;反之,返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(10whigh,查找结束。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数。

不得增行或删行,也不得更改程序的结构。

#include #define N 10 /************found************/ void fun(int a[],int m) {int low=0,high=N-1,mid;
while(low<=high) {mid=(low+high)/2; if(m a[mid]) low=mid+1; else return(mid); } return(-1); } main() {int i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m; printf("a数组中的数据如下:");
for(i=0;i=0) printf("m=%d,index=%d/n",m,k); else printf("Not be found!/n"); }
(分数:2.00)
__________________________________________________________________________________________ 正确答案:(正确答案:int fun(int a[],int m) else if(m>a[mid]))
解析:解析:(1)根据主函数中“k=fun(a,m);”,知道函数fun应该是返回int型的函数,所以第一个标识下面定义的“void fun(int a[],int m)”应该改为“int fun(int a[],int m)”。

(2)第二个标识下的“else If(m > a[mid])”是判断m是否比a[mid]大,在while循环中采用的是if-else if-else语句,显然“else If”当中“If”应当小写,故第二标识下“else If(m > a[mid])”应改为“else
if(m>a[mid])”。

三、程序设计题(总题数:2,分数:4.00)
5.程序设计题()(分数:2.00)
__________________________________________________________________________________________ 解析:
6.函数fun的功能是:将s所指字符串中ASCⅡ值为奇数的字符删除,串中剩余字符形成一个新串放在t
所指的数组中。

例如。

若s所指字符串中的内容为:”ABCDEFGl2345”,其中字符A的ASCⅡ码值为奇数、…、字符1的ASCⅡ码值也为奇数、…都应当删除,其他依此类推。

最后t所指的数组中的内容应是:”BDF24”。

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

请勿改动主函数main和其他函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。

#include #include void fun(char *s, char t[]) { } main() { char s[100], t[100];void NONO (); printf("/nPlease enter string S:"); scanf("%s", s); fun(s, t);
printf("/nThe result is: %s/n", t); NONO(); } void NONO () {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/ char s[100], t[100] ; FILE *rf, *wf ; int i ; rf =
fopen("in.dat","r"); wf = fopen("out.dat","w"); for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%s", s); fun(s, t); fprintf(wf, "%s/n", t); } fclose(rf); fclose(wf); }
(分数:2.00)
__________________________________________________________________________________________ 正确答案:(正确答案:{ int i, j=0; for(i=0; i
解析:解析:(1)首先,求得字符串的长度。

(2)然后选择字符串中ASCII码为偶数的字符。

(3)最后将(2)中选择出的字符复制到指定的字符数组中。

相关文档
最新文档