2006年4月全国计算机等级考试二级C语言笔试试题及解析(4)

2019-05-24 18:49

main()

{ fun(); printf(“\\n”);} myfun.c文件如下: void fun()

{char s[80],c; int n=0;

while((c=getchar())!=’\\n’) s[n++]=c; n--;

while(n>=0) printf(“%c”,s[n-1]); }

当编译连接通过后,运行程序T18时,输入Thank!则输出结果是:【11】 。 (12) 以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello! 的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。

char *fun(char *str,char c) { int n=0; char *p=str; inf(p!=NULL)

while(p[n]!=c&&p[n]!=’\\0’)n++; if(p[n]==’\\0’) retrun NULL; retrun(【12】 ); }

(13) 以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。 main() {int i,j;

for(i=0; (【13】 );i++) { j=i*10+6;

if((【14】 )continue; printf(“%d”,j); }

16

}

(14) 以下isprime函数的功能是判断形形参a是否为素数,是素数,函数返回1,否则返回0。请填空。 Int isprime(int a) {int i;

for(i=2;i<=a/2;i++)

if(a%i= = 0)(【15】 ); (【16】 ); }

(15) 以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下: ABCDE FGHI JKL MN O

请填空完成该程序。 main()

{int i,j,n; char ch='A'; scanf(\ if(n<11)

{for(i=1;i<=n;i++) {for(j=1;j<=n-i+1;j++) { printf(\ (【17】 ); }

(【18】 ); }

17

}

else printf(\ printf(\}

(16) 以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点数据域中放入了具有两个字符的字符串。函数据disp的功能 是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。

head ab cd ef \\0 #include

typedef struct node /*链表结点结构 */ {char sub[3]; struct node *next; }Node;

Node fun(char s) /* 建立链表 */ { ┅┅ } void disp(Node *h) { Node *p; p=h->next; while((【19】 )

{ printf(\【20】 ); } } main() {Node *hd;

hd=fun(); dispIhd); printf(\}

18

参考答案

选择

1-5 DADBA 6-10 DCDBC 11-15 BCADD 16-20 BBBCA 21-25 CABDD 26-30 CBDDB 31-35 DBBBB 36-40 CACAC 41-45 ACADB 46-50 DADBA 填空

1.45 2.类 3.关系 4.表态分析 5.物理独立性 6.printf(\7.a+b>c&&a+c>b&&b+c>a&& 8.30 9.a*b*c*d* 10.11 11.!knahT 12.p+n 13.i<10 14.j%3!=0 15.return 0 16.return 1 17.ch=ch+1 18.printf(\

2006年4月笔试试卷 一、选择题

(1)D)解析:结构化程序设计方法的主要原则是:自顶向下,逐步求精,模块化,限制使用goto语句。可复用性是指软件元素不加修改和稍加修改可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程追求的目标之一,是提高软件生产效率的最主要方法。面向对象的程序设计具有可复用性的优点。

(2)A)解析:模块的独立程度可以由两个定性标准度量:内聚性和耦合性。耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。一般来说,要求模块之间的耦合尽可能地弱,而要求模块的内聚程度尽可能的高。 (3)D)解析:因为测试的目的在于发现错误,从心理学角度讲,由程序的编写者自己进行测试是不合适的,为了达到最好的测试效果,应该由独立的第三方进行测试工作,所以选项A)错误;程序调试,修改一个错误的同时可能引入了新的错误,解决的办法是在修改了错误之后,必须进行回归测试,所以选项B)错误;所谓软件维护,就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程,可见选项C)也是错误的。

(4)B)解析:栈的特点是栈顶元素总是最后被插入的元素,也是最早被删除的元素;栈底元素总是最早被插入的元素,也是最晚才能被删除的元素。即栈的修改原则是“后进先出”(Last In First Out,简称LIFO) 或“先进后出”(First In Last Out,简称FILO),因此,栈也称为“后进先出”表或“先进后出”表。

(5)A)解析:所谓线性链表,就是指线性表的链式存储结构,简称链表。线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。栈、队列和双向链表是线性结构,二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。 (6)D)解析:后序遍历可以描述为:若二叉树为空,则空操作;否则: ①后序遍历左子树; ②后序遍历右子树; ③访问根结点。

对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,如果知道这个小技巧,可以迅速确定本题的答案为选项D)。

(7)C)解析:满二叉树是指除最后一层外,每一层上的所有结点都有两个子结点的二叉树。满二叉树在其第i层上有2i-1个结点,即每一层上的结点数都是最大结点数。对于深度为7的满二叉树,叶子结点所在的是第7层,一共有27-1=64个叶子结点。

(8)D)解析:两个实体集之间的联系实际上是实体集间的函数关系,主要有3种:一对一的联系,一对多的联系,多对多的联系。“商品”与“顾客”两个实体集之间的联系一般是

19

多对多,因为,一种 “商品”可以被多个“顾客”购买,而一个“顾客”也可以购买多个“商品”。

(9)A)解析:在ER图中,用矩形表示实体集,用椭圆形表示属性,用菱形(内部写上联系名)表示联系。

(10)C)解析:DB即数据库(Database),是统一管理的相关数据的集合;DBMS即数据库管理系统(Database Management System),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法;DBS即数据库系统(Database System)由如下5部分组成,数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。

(11)C)解析:C语言规定,标志符由字母、数字或下划线组成,它的第一个字符必须是字母或下划线。

(12)C)解析:数值常量包括整型常量和字符常量。在用字母e(或E)表示指数形式的实型常量时,字母e(或E)之前必须有数字且字母e(或E)后面的指数必须为整数。

(13)A)解析:字符常量是括在一对单引号内的字符。选项A)‘\018’是八进制字符串格式,所以里面的数不能大于8。选项B)、C)、D)都是转义字符。

(14)D)解析:这道题要注意2/5的结果是2,因为运算符两边的数值类型均为整型,故运算结果的数值类型也被认定为整型。

(15)D)解析:字符串常量是用一对双引号括起来的字符序列,用字符数组来存放,不用大括号。

(16)B)解析:二维数组的初始化有以下几种形式:①分行进行初始化。②不分行的初始化。③部分数组元素初始化。④省略第一维的定义,不省略第二维的定义。选项B)等号右边分了3行,大于等号左边数组的行数2。

(17)B)解析:canf()语句用“空格”区别不同的字符串;getc()与getchar()语句不能用于字符串的读入。

(18)B)解析:选项A)main();的分号是错误的,不能有分号;选项C)的注释语句多了两个*号;选项D)include前面没有#。

(19)C)解析:C语言中,switch语句专用于实现多分支结构程序,其特点是各分支清晰而直观。switch后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且类型必须是整型、字符型或枚举型,各常量表达式各不相同。 (20)A)解析:在调用子函数时,应对其进行说明。选项A)中,调用时,没有对子函数进行说明。选项B)、C)中被调用函数在主调函数之前定义,不用说明;选项D)中在主调函数中对被调用函数的返回值类型进行了说明。

(21)C)解析:E代表不是0的整数。在选项A)、B)、D)中的switch后面的表达式都是E不等于0为真。

(22)A)解析:while语句的功能是:计算表达式的值,如为真,则执行循环体语句,执行完毕后,再计算表达式的值,若仍为真,则重复执行循环体语句。直到表达式的值为假时,结束循环。ch=getchar()应加一个括号,表示输入字符的函数。

(23)B)解析:返回值为指针变量指向的数据,该数据已被定义为整型。

(24)D)解析:p=&a表示将变量a的地址送给指针p; scanf(“%lf”,p)表示用键盘输入的数给变量p地址中。

(25)D)解析:r->next=q,这时r指向的节点为q; p->next=r, 这时p指向的节点为r; q->next=r->next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以不对。 (26)C)解析:->的运算优先级比++高,此时,pt->=10,执行自加运算后为11。

(27)B)解析:函数feof的功能是:测试fp所指的文件的位置是否已达到文件尾,如果达到文件尾,则函数返回非0值,否则返回0,表示文件尚未结束。

20


2006年4月全国计算机等级考试二级C语言笔试试题及解析(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:分译法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: