首页 百科知识 年月计算机二级语言模拟试题-计算机二级语言最新试题

年月计算机二级语言模拟试题-计算机二级语言最新试题

时间:2022-09-15 百科知识 版权反馈
【摘要】:  参考解析:首先对二维数组进行赋值操作,a[0][0]、a[0][1]、…通过for语句和if语句,对二维数组各列元素进行由小到大的排序操作,程序最后通过for语句输出二维数组对角线上的元素。  10若有定义:int a,h;通过语句:scanf(”%d;%d”,&a,&B.;,能把整数3赋给变量a,5赋给变量b的输入数据是( )。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。程序调试通常称为DebIlg,即排错。

点击查看:2015年9月计算机二级C语言模拟试题-计算机二级C语言最新试题


2015计算机二级考试《C语言》冲刺试题及答案(1)

  一、选择题

  1有以下程序:

  

  程序运行后的输出结果是( )。

  A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,

  参考答案:D

  参考解析:首先对二维数组进行赋值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值为l、4、…、6、1。通过for语句和if语句,对二维数组各列元素进行由小到大的排序操作,程序最后通过for语句输出二维数组对角线上的元素。因此D选项正确。

  2有以下程序:

  

  程序运行后的输出结果是( )。

  A.2 3 4 4B.4 3 3 2C.1 2 3 4D.1 1 2 3

  参考答案:B

  参考解析:在for(i=0;i<12;i++)C[s[i]]++中,数组元素s[i]的值作为数组c的下标,当退出循环时,数组c的4个元素的值分别为4…3 3 2。因此B选项正确。

  3数据库系统的三级模式不包括( )。

  A.概念模式B.内模式C.外模式D.数据模式

  参考答案:D

  参考解析:数据库系统的三级模式是概念模式、外模式和内模式,所以选择D。

  4有以下程序:

  程序运行后的输出结果是( )。

  A.16B.1C.32D.0

  参考答案:B

  参考解析:无符号整型变量a的值为8,二进制表示为00001000,右移3位后为00000001,即十进制的l,所以输出1。

  5计算机能直接执行的程序是( )。

  A.源程序B.目标程序C.汇编程序D.可执行程序

  参考答案:D

  参考解析:计算机能直接执行的程序是二进制的可执行程序,扩展名为.exe。所以选择D选项。

  6以下叙述中错误的是( )。

  A.c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

  B.c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

  C.用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中

  D.c语言源程序经编译后生成后缀为.obj的目标程序

  参考答案:A

  参考解析:C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A错误。由C语言构成的指令序列称c源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。

  7有以下程序:

  程序运行后的输出结果是( )。

  A.3B.2C.1D.0

  参考答案:D

  参考解析:在if else语句中else总是与离它最近的f配对。本题目中x为l所以!X为0,所以执行else if语句中的内容,判断(x==O)是否成立,因为x为1所以条件不成立,听以else if内部的if…else语句不再执行,所以Y的值还是初蛤值0。

  8设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp),的返回值为( )。

  A.0B.\0C.非0值D.NULL

  参考答案:C

  参考解析:本题考查文件的定位,feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值,否则为0,所以选项C正确。

  9有以下程序:

  

  程序运行后的输出结果是( )。

  A.2,4B.1,2C.1,4D.2.3

  参考答案:B

  参考解析:结构体变量可以作为函数的参数和返回值。作为函数的实参时,可以实现函数的传值调用。当使用结构体变量作为函数的形参时,实参也应该是结构体变量名以实现传值调用,实参将拷贝副本给形参,在被调用函数中改变形参值对于调用函数中的实参没有影响。所以选择B。

  10若有定义:int a,h;通过语句:scanf(”%d;%d”,&a,&B.;,能把整数3赋给变量a,5赋给变量b的输入数据是( )。

  A.3 5B.3,5C.3;5D.35

  参考答案:C

  参考解析:输入数据的格式必须与seanf()的格式控制串完全匹配,所以输入时必须在3和5之间输入“;”。

  11有以下程序:

  

  程序运行后的输出结果是( )。

  A.0B.10C.20D.出错

  参考答案:C

  参考解析:nlaIloc(sizeof(int))的作用是开辟一个长度为sizeof(int)存储空间,并通过强制类型转换(int。)将此存储空间的地址赋给了一个整型的指针变量P。然后执行语句·P=n,使得·p的值为10,并通过return返回此值,即a的值为l0。然后在主函数中输出a+ftm(10)=10+10=20。

  12设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。

  

  参考答案:C

  参考解析:字符串的输入不能使用scanf(”%s”,s);而应该使用9ets(s)。

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

  A.算法就是程序

  B.设计算法时只需要考虑数据结构的设计

  C.设计算法时只需要考虑结果的可靠性

  D.以上三种说法都不对

  参考答案:D

  参考解析:算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。

  14设有以下语句:typedef struct TY{char C;int a{41;}CIN;

  则下面叙述中正确的是( )。

  A.CIN是struct Tr类型的变量

  B.TT是struct类型的变量

  C.可以用,lr定义结构体变量

  D.可以用CIN定义结构体变量

  参考答案:D

  参考解析:本题考查typcdef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D选项正确。

  15有以下程序:

  

  I程序运行后的输出结果是( )。

  A.0B.3C.7D.8

  参考答案:B

  参考解析:本题中遇到“\”字符循环结束,所以只统计“\”之前的数字字符,所以为3。

  16已定义以下函数:

  

  fun函数的返回值是( )。

  A.一个整数B.不确定的值C.形参P中存放的值D.形参P的地址值

  参考答案:A

  参考解析:返回值为指针变量指向的数据,该数据已被定义为整型。因此A选项正确。

  17有以下程序:

  

  程序运行后的输出结果是( )。

  A.4321098765B.5678901234C.0987654321D.0987651234

  参考答案:B

  参考解析:该程序首先给一维数组赋值,然后三次调用fun函数,其中fun(a,0,3);功能是将一维数组中第1个元素和第4个元素互换,第2个元素和第3个元素互换;其中fun(a,4,9);功能是将一维数组中第5个元素和第10个元素互换,第6个和第9个元素互换,第7个元素和第8个元素互换;其中fun(a.O,9);功能是将将一维数组中第l个元素和第10个元素互换,第2个元素和第9个元素互换……依此类推。因此B选项正确。

  18有以下程序:

  

  程序运行后的输出结果是( )。、

  A.A B E FB.C D E FC.A B C DD.C D A B

  参考答案:B

  参考解析:本题考察的是变量的作甩范围。如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,即不起作用:奉题中,在funl()和main()函数内访问的是全局变量a和b,在fun2()函数中访问的是形参变量a和b。所以,main()函数中的prinff()函数输出的是在funl()函数中被改变的全局变量a和b的值C、D,而fun2()函数中输出的是传递给它的实参值E、F。因此B选项正确。

  19下面叙述中错误的是( )。

  A.软件测试的目的是发现错误并改正错误

  B.对被调试的程序进行“错误定位”是程序调试的必要步骤

  C.程序调试通常也称为Debug

  D.软件测试应严格执行测试计划,排除测试的随意性

  参考答案:A

  参考解析:软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为DebIlg,即排错。软件测试的基本准则有:所有测试都应追测习需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。

  20有以下程序:

  

  程序运行后的输出结果是( )。

  A.10,64B.10,10C.64,10D.64,64

  参考答案:A

  参考解析:本题考查宏定义的用法,宏定义只是做个简单的替换,所以本题中执行f(a+1)=a+1}a+1}a+1=3}a+1=10,f((a+1))=(a+1)$(a+1)}(a+1)=64,所以答案为A选项。

 21以下程序段完全正确的是( )。

  A.int *p;scanf(”%d”,&p);

  B.int*p;scanf(”%d”,P);

  C.int k,* P:&k;scanf(’’%d”,P);

  D.int k,*p;*P=&k;scanf(”%d”,P);

  参考答案:C

  参考解析:A选项中错在没有对指针进行初始化,是无效指针,并且在scanf(”%d”,&p)中无需再进行取地址操作;B选项中没有对指针进行初始化,是无效指针;D选项中语句+P=&k;的左端t pt是指针所指内存空间的值,&k是地址,应为P=&k。因此C选项正确。

  22有以下程序:

  

  程序运行后的输出结果是( )。

  A.1002,ZhangDa,1202.0

  B.1002,ChangRon9,1202.0

  C.1001,ChangRon9,1098.0

  D.1001,ZhangDa,1098.0

  参考答案:D

  参考解析:本题考查结构体的相关操作以及传值、传址的区别,该题中调用f函数后,会生成参数a的一个副本,而不会改变a的值,所以a值维持原值,选项D正确。

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

  A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对

  参考答案:D

  参考解析:栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。

  24以下定义数组的语句中错误的是( )。

  

  参考答案:B

  参考解析:B)选项中定义的数组为2行4列,而赋值时赋成了3行所以出错。

  25以下程序段中,与语句:k=a>b?(b>c?1:O):0;功能相同的是( )。

  

  参考答案:B

  参考解析:条件表达式的含义是,如果表达式1成立,结果为表达式2的值,如果不成立为表达式3的值。所以题干中k的值这样取值:如果a>b且b>c,k值结果为1,如果a>b,且bb与b>c中只要有一个条件不成立,k的值就为0,所以选择B选项。

  26有以下程序:

  

  程序运行后的输出结果是( )。

  A.3B.4C.lD.9

  参考答案:B

  参考解析:每次内循环只循环一次就结束,第一次外循环时t=t+b[0][b[0][0]]=1+b][0]=1+0=第二次外循环时t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循环时t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。

  27有以下程序:

  

  程序运行后的输出结果是( )。

  A.321B.12300C.1D.123

  参考答案:D

  参考解析:程序首先将数组a[10]中的元素l、2.3分别写入了文件dl。dat文件中,然后又将dl.dat文件中的数据123,整体写入到了变量n的空间中,所以打印n时输出的 数据为123。

  28有以下程序:

  

  

  当执行程序时从键盘上输入HelloBeijing<回车>,则程序运行后的输出结果是()。

  A.hellobajiIlgB.Hello BeijingC.HELLO BEIJINGD.hELLO Beijing

  参考答案:C

  参考解析:主程序读取整个字符串存于s中,调用fun函数。字符指针c指向数组S。函数fun的功能是把指针C所指向的字符数组中的所有小写字符转换为大写。嚣cts函数可以把空格作为字符串的一部分输入,以回车作为输入结束。如果·c为小写字符,则}C={C一32(转大写)。因此C选项正确。

  29以下语句中存在语法错误的是( )。

  

  参考答案:A

  参考解析:数组定义后,不可以对数组整体赋值,s是二维数组,因SS[1]是一维字符数组,即字符串,字符串赋值可以使用strcpy(SS[1],”right”);这样的形式,而选项A中对二维数组中的第…l维(相当于一个一维数组)赋值,是不可以的。选项8和D是定义时对数组初始化,这是可以的。选项c中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。

  30有以下程序:

  

  程序运行后的输出结果是( )。

  A.2.3B.1,3C.1,4D.1,2

  参考答案:B

  参考解析:在f(int+P,int 4 q)函数中,执行P=P+1是将P所对应的地址加1,而0 q=+q+1是将q所指向的n的地址所对应的值加1,所以m的得知所对应的值没有变,而n的值则为3了。因此B选项正确。

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

  A.循环队列是队列的一种链式存储结构

  B.循环队列是队列的一种顺序存储结构

  C.循环队列是非线性结构

  D.循环队列是一种逻辑结构

  参考答案:B

  参考解析:在实际应用中,队列的顺序存储结构一般采用循环队列的形式。

  32有以下程序:

  

  程序执行后的输出结果是( )。

  A.2B.3C.7D.0

  参考答案:A

  参考解析:因为fun(intx)是一个递归函数,所以主函数中fun(7)经过3次递归调用,其过程可以描述为“fun(7)=7一fun(5)=7一(5一fun(3))=7一(5一(3一fun(1)))=7一(5一(3—3))=7—5=2”,所以最后输出结果为2。因此.A选项正确。

  33软件详细设计生产的图如右图:该图是( )。

  

  A.N—S图B.PAD图C.程序流程图D.E—R图

  参考答案:C

  参考解析: N—s图提出了用方框图来代替传统的程序流程图,所以A不对。PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以8不对。E—R图是数据库中的用于表示E—R模型的图示工具,所以D不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。

  34有以下程序:

  

  程序执行后的输出结果是( )。

  A.5B.24C.32D.40

  参考答案:C

  参考解析:本题的含义是在1—40的蔓敦的范围中,只有当i的值能被5整除,且i+2的值能被3薹纛时,打印i的值,满跫这个条件的只有32,选择c选项。

  35若有以下函数首部:

  int fun(doublex[10],int*n)

  则下面针对此函数的函数声明语句中正确的是( )。

  A.intfun(double,int);

  B.intfun(double木,int*);

  C.intmn(double*x,int n);

  D.intfun(double x,intint*n)

  参考答案:B

  参考解析:函数声明的一般形式为:“类型说明符被调函数名(类型形参,类型形参,……);”或“类型说明符被调函数名(类型,类型,……);”由于函数首部为intfun(double x[10],int*n),因此B选项正确。

  36有以下函数:

  

  函数的功能是( )。

  A.将Y所指字符串赋给x所指存储空间

  B.查找x和y所指字符串中是否有

  C.统计x和y所指字符串中最前面连续相同的字符个数

  D.统计x和Y所指字符串中相同的字符个数

  参考答案:C

  参考解析:本题中由循环条件可知遇到‘\0’或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和Y所指字符串中最前面连续相同的字符个数。

  37设有定义:

  double a[10],*s=a;

  以下能够代表数组元素a[3]的是( )。

  A.($s)[3]B.}(s+3)C.*s[3]D.}s+3

  参考答案:B

  参考解析:语句·s=a;表示指针变量s指向一维数组a的首地址。a[3]表示引用数组a的第4个元素,+(s+i)表示引用指针8所指数组a的第i+1个元素,选项A、C、D的表示方法错误,只有B选项正确。

  38数据库设计中反映用户对数据要求的模式是( )。

  A.内模式B.概念模式C.外模式D.设计模式

  参考答案:C

  参考解析:数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述,所以选择C。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。

  39设已有定义:float x;,则以下对指针变量P进行定义且赋初值的语句中正确的是( )。

  A.int*p=(float)x;B.float*p=&x;C.floatp=&x;D.float=1024;

  参考答案:B

  参考解析:指针是用来存放地址的变量,用(类型名+指针变量名)的形式定义。赋值时应将某个变量地址即8Ⅸ赋给指针变量,所以选择B。

  40有以下程序:

  

  程序运行后的输出结果是( )。\\

  A.Zhao,111,85,90,Qian,f,95,92

  B.Zhao,m,85,90,Zha0,m,85,90

  C.Qian,f,95,92,Qian,f,95,92

  D.Qian,f,95,92,Zha0,m,85,90

  参考答案:A

  参考解析:本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数f所做所有操作只是针对这个数据拷 贝进行的修改,这些都不会影响变量c的值。

二、程序填空题

  41下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长小于N。请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。

  

  参考解析:

  (1)M

  (2)<(3)k

  【考点分析】

  本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。

  【解题思路】

  填空1:题目指出88所指字符串数组中共有M个字符串,所以for循环语句循环条件是i

  填空2:要求求长度最短的字符串,t n中存放的是已知字符串中长度最短的字符串的长度,这里将当前字符串长度与+nl七较,若小于t n,则将该长度值赋给+n,因此if语句的务件表达式为len<+n。

  填空3:将最短字符串的行下标作为函数值返回,变量-储存行下标的值。

三、程序改错题

  42下列给定程序中函数fun的功能是。用递归算法计算斐波拉契数列中第n项的值。从第l项起,斐波拉契数列为:1、1、2、3、5、8、l3、21、……

  例如,若给n输入7,则该项的斐波拉契数值为l3。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。

  

  参考解析:

  【参考答案】

  去掉分号

  (2Case l:caBe

  2:return l;

  【考点分析】

  本题考查:switch语句,其一般形式为switch(表达式)

  cage常量表达式l:语句l;case常量表达式2:语句2;

  cm常量表达式n:语句n;default:语句n+1;

  其中switch(表达式)后不应该带有“;”,同时case语句常量后应该是“:”。

  【解题思路】

  C语言中,switch语句之后不能有分号,并且case语句常量后应用的是冒号。

四、程序设计题

  43规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的。号之外,将串中其他*号全部删除。在编写函数时.不得使用C语言提供的字符串函数.

  

  参考解析:

  

  程序设计题解析:

  【解题思路】

  函数fun的功能:除了字符串前导的*号之外,将串中其他+号全部删除。

  【解答本题】

  (1)定义一个临时指针P,初始指向原串首地址;(2)利用循环语句把字符串前导*号拷贝到原串;(3)继续移动指针,把串中和串尾的非*号字符拷贝到原串;(4)为修改后的字符串赋结束字符‘、O’。

  【解题宝典】

  要删除字符串中的指定字符,我们通常采用保留非指定字符的方法。可以将非指定字符保留在原串,即将需要保留的字符从原串的起始位置重新赋值;也可以保留到新串,即新建一个字符串,存放要保留的字符。

 


免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈