欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

全国计算机等级考试二级C语言真题库之选择题(07)

  • 资源ID:70737537       资源大小:84.50KB        全文页数:15页
  • 资源格式: DOC        下载积分:20积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要20积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

全国计算机等级考试二级C语言真题库之选择题(07)

WORD 全国计算机等级考试等级考试真题库之选择题(07)1.下列叙述中正确的是()。A) 循环队列是队列的一种链式存储结构B) 循环队列是队列的一种顺序存储结构C) 循环队列是非线性结构D) 循环队列是一种逻辑结构参考答案:B解析在实际应用中,队列的顺序存储结构一般采用循环队列的形式。2.下列关于线性链表的叙述中,正确的是()。A) 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B) 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C) 进行插入与删除时,不需要移动表中的元素D) 以上说法均不正确参考答案:C解析一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。3.一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为()A) 16B) 10C) 6D) 4参考答案:A解析根据二叉树的性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中度为2的结点是514个,所以度为1的结点的个数是255416个。4.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是()。A) 外模式B) 模式C) 概念模式D) 逻辑模式参考答案:B解析数据库系统的三级模式是概念模式、外模式和模式。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,所以选择B)。5.在满足实体完整性约束的条件下()。A) 一个关系中应该有一个或多个候选关键字B) 一个关系中只能有一个候选关键字C) 一个关系中必须有多关键字个候选D) 一个关系中可以没有候选关键字参考答案:A解析实体完整性约束要求关系的主键中属性值不能为空值,所以选择A)。6.有三个关系R、S和T如下:则由关系R和S得到关系T的操作是()。A) 自然连接B) 交C) 除D) 并参考答案:C解析如果ST/R,则S称为T除以R的商。在除运算中S的域由T中那些不出现在R中的域所组成,对于S中的任一有序组,由它与关系R中每个有序组所构成的有序组均出现在关系T中。所以本题选择C)。7.下面描述中,不属于软件危机表现的是()。A) 软件过程不规B) 软件开发生产率低C) 软件质量难以控制D) 软件成本不断提高参考答案:A解析软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。所以选择A)。8.下面不属于需求分析阶段任务的是()。A) 确定软件系统的功能需求B) 确定软件系统的性能需求C) 需求规格说明书评审D) 制定软件集成测试计划参考答案:D解析需求分析阶段的工作有:需求获取;需求分析;编写需求规格说明书;需求评审,所以选择D)。9.在黑盒测试方法中,设计测试用例的主要根据是()。A) 程序部逻辑B) 程序外部功能C) 程序数据结构D) 程序流程图参考答案:B解析黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序部的逻辑结构和部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明,所以本题选择B)。10.在软件设计中不使用的工具是()。A) 系统结构图B) PAD图C) 数据流图(DFD图) D) 程序流程图参考答案:C解析系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C)。11.以下选项中关于程序模块化的叙述错误的是A) 可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序B) 把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C) 把程序分成若干相对独立的模块,可便于编码和调试D) 可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序参考答案:A解析程序模块化思想中,可以采用自顶向下逐步细化的方法所以选项A中"自底向上"的说法是错误的12.以下叙述中正确的是A) 用C语言编写的程序只能放在一个程序文件中B) C程序书写格式严格,要求一行只能写一个语句C) C程序中的注释只能出现在程序的开始位置和语句的后面D) C程序书写格式自由,一个语句可以写在多行上参考答案:D解析C语言编写的程序可以放置于多个程序文件中,所以A错误C程序中的一行可以有多条语句,所以B错误C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C错误13.以下不合法的数值常量是A) 8.0E0.5B) 1e1C) 011D) 0xabcd参考答案:A解析A选项中E后面的指数必须为整型数据,所以A错误C选项中011表示的是八进制常量,0xabcd表示的是十六进制常量14.以下关于C语言数据类型使用的叙述中错误的是A) 若要处理如"人员信息"等含有不同类型的相关数据,应自定义结构体类型B) 若要保存带有多位小数的数据,可使用双精度类型C) 若只处理"真"和"假"两种逻辑值,应使用逻辑类型D) 整数类型表示的自然数是准确无误差的参考答案:C解析C语言中没有逻辑类型,所以C错误若要保存带有多位小数的数据,可以用单精度类型也可以用双精度类型处理包含不同类型的相关数据可以定义为结构体类型整数类型可以无误差的表示自然数15.设有定义: int k=0;以下选项的四个表达式中与其他三个表达式的值不一样的是A) +kB) k+=1C) k+D) k+1参考答案:C解析+k,先使得k的值自增1后再使用,k+是先取得k的值再将k的值自增1,所以C选项中表达式的值为0,而其他三个表达式的值均为1,所以选择C16.有如下程序段: int x=12; double y=3.141593; printf("%d%8.6f", x, y); 其输出结果是A) 123.141593B) 12 3.141593C) 12, 3.141593D) 123.1415930参考答案:A解析printf函数中格式字符"%8.6"的含义是:变量y的输出宽度为8(包括小数点),小数点后面保留6位小数,且右对齐所以选择A17.已知字符'A'的ASCII代码值是65,字符变量c1的值是'A',c2的值是'D'。则执行语句 printf("%d,%d", c1, c2-2 ); 的输出结果是A) 65,68B) A,68C) A,BD) 65,66参考答案:D解析打印时以%d整型格式打印输出,所以字符标量c1的值打印出来就是65,从c2-2的值打印出来就是68-2,即66所以选择D18.以下选项中,当x为大于1的奇数时,值为0的表达式是A) x%2=0B) x/2C) x%2!=0D) x%2=1参考答案:A解析算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0B选项的值为不定值,但绝对不是0C选项的值为真,即1D选项的值为真,即119.有以下程序 #include <stdio.h> main() int x; scanf("%d", &x); if(x<=3) ; else if(x!=10) printf("%dn", x);程序运行时,输入的值在哪个围才会有输出结果A) 小于3的整数B) 不等于10的整数C) 大于3或等于10的整数D) 大于3且不等10的整数参考答案:D解析根据代码可知如果x的值小于3,执行空语句,不进行打印操作如果x的值大于3,再判断x的值是否不等于10,如果不等于10就打印x的值,所以选择D选项20.有以下程序 #include <stdio.h> main() int a = 7; while ( a- ) ; printf ("%dn", a); 程序运行后的输出结果是A) 0B) -1C) 1D) 7参考答案:B解析a- -的含义是先用后减1,所以当a的值为0时,跳出循环,但是仍要执行a- ,a的值变为-121.有以下程序 #include <stdio.h> main() char b,c; int i; b= 'a' c = 'A' for (i=0; i<6; i+) if (i%2) putchar(i+b); else putchar(i+c); printf("n"); 程序运行后的输出结果是A) abcdefB) ABCDEFC) aBcDeFD) AbCdEf参考答案:D解析函数的含义是如果i的值能被2整除,以字符格式打印输出i+c的值,如果i的值不能被2整除打印i+b的值第一次i值为0,执行else语句打印字符'A',第二次i值为1,打印1+b的值即字符'b',第三次i值为2,打印字符'C',依此类推选择D选项22.有以下程序 #include <stdio.h> main() int i, j, x=0; for(i=0; i<2; i+) x+; for( j=0; j<=3; j+) if(j%2) continue; x+; x+; printf("x=%dn",x); 程序执行后的输出结果是A) x=4B) x=8C) x=6D) x=12参考答案:B解析coutinue的作用是跳出循环体中剩余的语句而进行下一次循环第一次执行外循环i的值为0,执行x+,x的值变为1,第一次执行层循环j的值为0,不满足if条件,执行x+,x的值变为2,第二次循环j的值为1,if条件成立,跳出本次循环,第三次执行循环j的值为2,不满足if条件,x的值变为3,第四次执行循环j的值为3满足条件跳出本次循环,x的值加1,即为4,第一次外循环结束第二次执行外循环时,同理,i的值被加了,4次,变为8,所以选择B选项23.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A) 函数的形参和实参分别占用不同的存储单元B) 形参只是形式上的存在,不占用具体存储单元C) 同名的实参和形参占同一存储单元D) 函数的实参和其对应的形参共占同一存储单元参考答案:A解析本题重点考察的是函数的形参和实参。在定义函数时函数名后面括弧中的变量名称为"形式参数"(简称形参),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为"实际参数" (简称实参)。C语言规定,实参变量对形参变量的数据传递是"值传递",即单向传递,只由实参传给形参,而不能由形参传回来给实参。在存中,实参单元与形参单元是不同的单元。因此A选项正确。24.设有以下函数: void fun(int n,char *s) 则下面对函数指针的定义和赋值均正确的是A) void (*pf)(int,char); pf=&fun;B) void *pf(); pf=fun;C) void *pf(); *pf=fun;D) void (*pf)(int, char*); pf=fun;参考答案:D解析函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的入口地址,指向函数的指针应该定义为void (*pf)()。如果定义为void *pf(),则表示函数pf返回值为一个基类型为void的指针。因此D选项正确。25.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是A) #define n 5int a 2*n;B) int n=10,an;C) int a5+5;D) #define N 10int aN;参考答案:B解析一维数组的定义方式为:类型说明符数组名 常量表达式;注意定义数组时,元素个数不能是变量。因此应该选B选项。26.有以下程序 #include <stdio.h> main() int i, t3=9,8,7,6,5,4,3,2,1; for(i=0;i<3;i+) printf("%d ",t2-ii);程序执行后的输出结果是A) 3 5 7B) 7 5 3C) 3 6 9D) 7 5 1参考答案:A解析二维数组t3实际上指t33= 9,8,7,6,5,4,3,2,1,通过循环语句for语句可以得到i=0,t20=3、i=1,t11=5、i=2,t02=7、i=3时循环结束即t20=3、t11=5、t02=7。因此A选项正确。27.有以下程序 #include <stdio.h> void fun(int *s, int n1, int n2) int i, j, t; i=n1; j=n2; while( i<j ) t=si; si=sj; sj=t; i+; j-; main() int a10=1,2,3,4,5,6,7,8,9,0, k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k<10;k+) printf("%d", ak); printf("n"); 程序的运行结果是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,0,9);功能是将将一维数组中第1个元素和第10个元素互换,第2个元素和第9个元素互换依次类推。因此B选项正确。28.有以下程序 #include <stdio.h> main() int a44= 1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1, i, k, t; for (i=0; i<3; i+) for (k=i+1; k<4; k+) if (aii < akk) t=aii; aii=akk; akk=t; for (i=0; i<4; i+) printf("%d,", a0i);程序运行后的输出结果是A) 1,1,2,6,B) 6,2,1,1,C) 6,4,3,2,D) 2,3,4,6,参考答案:C解析首先对二维数组进行赋值操作,a00、a01、a32、a33的值为1、4、6、1。通过for嵌套循环语句和if条件语句,对二维数组对角线元素进行由大到小的排序操作,程序最后通过for语句输出二维数组第1行的4个元素。因此C选项正确。29.以下选项中正确的语句组是A) char *s; s="BOOK!"B) char *s; s="BOOK!"C) char s10; s="BOOK!"D) char s; s="BOOK!"参考答案:B解析A选项去掉大括号就正确了;C选项和D选项应在定义时赋初值。因此B选项正确。30.若有以下定义和语句#include <stdio.h> char s110= "abcd!", *s2="n123" printf("%d %dn", strlen(s1), strlen(s2);则输出结果是A) 10 7B) 10 5C) 5 5D) 5 8参考答案:C解析strlen函数返回字符串的长度,求字符串长度时,遇到结束标志'0'为止,但是长度不包括结束标识。字符数组s1的后5个元素没有赋值,都为'0',即"abcd!"后为'0'。所以strlen(s1)的值为5。字符指针s2所指向的字符串中,n为转义字符换行符,表示1个字符,也为转义字符,代表,也是1个字符,其后为字符串结束标识'0';所以strlen(s2)的值也为5。因此C选项正确。31.有以下程序#include <stdio.h>void fun1(char *p) char *q; q=p; while(*q!='0') (*q)+; q+; main() char a="Program", *p; p=&a3; fun1(p); printf("%sn",a);程序执行后的输出结果是A) PrphsbnB) ProhsbnC) ProgsbnD) Program参考答案:B解析(*q)+是q所指的字符加1,q+就是指针移到下一个字符。因此B选项正确。32.有以下函数 int aaa(char *s) char *t=s; while(*t+); t-; return(t-s); 以下关于aaa函数功能叙述正确的是A) 将串s复制到串tB) 比较两个串的大小C) 求字符串s的长度D) 求字符串s所占字节数参考答案:C解析本题重点考察的知识点while循环语句的应用。aaa()函数中,首先定义了一个字符指针t指向形参s,然后通过一个while循环让指针 t不断递增,直到t指向字符串结束标识处。当t指向结束标识处时,由于后缀+运算符的原因,它还会被再递增1,所以接下来的t-;语句让它回到结束标识处。最后返回t-s, s还是指向字符串第1个字符处,而t指向了字符串结尾,故返回值为字符串的长度值。因此C选项正确。33.有以下程序 #include <stdio.h> int fun(int a, int B) if(b=0) return a; else return(fun(-a,-b); main() printf("%dn", fun(4,2); 程序的运行结果是A) 1B) 2C) 3D) 4参考答案:B解析本题重点考察函数的递归调用;题目中给出的fun()函数直接调用了自身,所以是一个递归函数。其功能是:当参数b为0时,返回参数a的值,否则返回fun(-a,-b)的值。从这里可以看出,当b不断递减时,a也不断递减,直到b为0时返回a的值。那么a递减的总值就是b原来的值。所以整个递归函数的作用就是返回a-b的值。因此B选项正确。34.以下选项中叙述错误的是A) C程序函数中定义的自动变量,系统不自动赋确定的初值B) 在C程序的同一函数中,各复合语句可以定义变量,其作用域仅限本复合语句C) C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值D) C程序函数的形参不可以说明为static型变量参考答案:C解析A选项描述正确,自动变量未赋初值,为随机值;B选项描述正确,变量定义除在函数开始位置外,在复合语句开始也可以;C选项描述是错误的,函数的静态变量,只在第一次调用时候赋值,以后调用保留上次值;D选项描述也正确,形参属于局部变量,占用动态存储区,而static型变量占用静态存储区。因此C选项正确。35.有以下程序段 struct st int x; int *y; *pt; int a=1,2, b=3,4; struct st c2=10,a,20,b;pt=c;以下选项中表达式的值为11的是A) +pt->xB) pt->xC) *pt->y D) (pt+)->x参考答案:A解析本题考查结构体数组初始化以与结构体变量的引用,题目中定义了一个结构体数组c并初始化,指针pt指向c的第一个元素,那么pt->x为10,+pt->x为11,*pt->y为1,(pt+)->x为20,所以答案为A。36.有以下程序 #include <stdio.h> struct S int n; int a20; ; void f(int *a, int n) int i; for (i=0; i<n-1; i+) ai+=i; main() int i; struct S s=10, 2,3,1,6,8,7,5,4,10,9; f(s.a, s.n); for (i=0; i<s.n; i+) printf("%d,", s.ai);程序运行后的输出结果是A) 2,3,1,6,8,7,5,4,10,9,B) 3,4,2,7,9,8,6,5,11,10,C) 2,4,3,9,12,12,11,11,18,9,D) 1,2,3,6,8,7,5,4,10,9,参考答案:C解析题目中定义了一个结构体类型S,然后定义了一个结构体变量s并初始化,执行f函数后,将s中元素a的每个元素都加上i,这里需要主要,最后一个元素没有加i,所以最终答案为C选项。37.有以下程序#include <stdio.h>#include <string.h>typedef struct char name9; char sex; float score2; STU;void f(STU A) STU b="Zhao", 'm', 85.0, 90.0; int i; strcpy(a.name, b.name); a.sex = b.sex; for (i=0; i<2; i+) a.scorei = b.scorei;main() STU c="Qian", 'f', 95.0, 92.0; f(c); printf("%s,%c,%2.0f,%2.0fn", c.name, c.sex, c.score0, c.score1);程序的运行结果是A) Zhao,m,85,90B) Qian,m,85,90C) Zhao,f,95,92D) Qian,f,95,92参考答案:D解析本题考查结构体的相关操作以与传值、传址的区别,该题中调用f函数后,会生成参数c的一个副本,而不会改变c的值,所以c值维持原值,选项D正确。38.有以下程序#include <stdio.h>#define f(x) x*x*xmain() int a=3,s,t ; s=f(a+1); t=f(a+1); printf("%d,%dn",s,t);程序运行后的输出结果是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选项。39.有以下程序#include <stdio.h>main() char a=4; printf("%dn", a=a<<1 );程序的运行结果是A) 16B) 8C) 40D) 4参考答案:B解析本题考查位运算,题目中将4向左移一位然后重新赋值给a,4左移一位为8,程序运行结果为8,选项B正确。40.设文件指针fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是A) 只能写不能读B) 写操作结束后可以从头开始读C) 可以在原有容后追加写D) 可以随意读和写参考答案:A解析考查文件操作函数fopen的基础知识,以"w"方式打开文件,只能写不能读。15 / 15

注意事项

本文(全国计算机等级考试二级C语言真题库之选择题(07))为本站会员(b****)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!