【计算机类职业资格】二级C语言笔试操作题-2及答案解析.doc

上传人:arrownail386 文档编号:1326421 上传时间:2019-10-17 格式:DOC 页数:6 大小:32KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试操作题-2及答案解析.doc_第1页
第1页 / 共6页
【计算机类职业资格】二级C语言笔试操作题-2及答案解析.doc_第2页
第2页 / 共6页
【计算机类职业资格】二级C语言笔试操作题-2及答案解析.doc_第3页
第3页 / 共6页
【计算机类职业资格】二级C语言笔试操作题-2及答案解析.doc_第4页
第4页 / 共6页
【计算机类职业资格】二级C语言笔试操作题-2及答案解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、二级 C 语言笔试操作题-2 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中,函数 fun 的功能是:有 NN 矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为 0。例如,若 N=3,有下列矩阵:1 2 34 5 67 8 9计算后结果为:1 0 06 5 010 14 9请在下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#includestdio.h#define N 4/*found*/voidf

2、un(int(*t)_)int i,j;for(i=1;iN;i+)for(j=0;ji;j+)/*found*/_=tij+tji;/*found*/_=0;main()int tN=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10,i,j;printf(“/nThe original array:/n“);for(i=0;iN;i+)for(j=0;jN;j+)printf(“%2d“,tij);printf(“/n“);fun(t);printf(“/nThe result is:/n“);for(i=0;iN;i+)for(j=0;jN;j

3、+)printf(“%2d“,tij);printf(“/n“);(分数:30.00)填空项 1:_二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun 的功能是:计算函数 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中 x 和y 的值不相等,z 和 y 的值不相等。例如,当 x 的值为 9,y 的值为 11,z 的值为 15 时,函数值为-3.50。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#includestdlib.h#includestdio.h#inc

4、ludemath.h/*found*/#define FU(m,n)(m/n)float fun(float a,float b,float c)float value;value=FU(a+b,a-b)+FU(c+b,c-b);/*found*/return(Value);void main()float x,y,z,sum;printf(“Input x y z:“);scanf(“%f%f%f“,x,y,z);printf(“x=%f,y=%f,z=%f/n“,x,y,z);if(x=y|y=z)printf(“Data error!/n“);exit(0);sum=fun(x,y,z)

5、;printf(“The result is:%5.2f/n“,sum);(分数:30.00)填空项 1:_三、程序设计题(总题数:1,分数:40.00)3.规定输入的字符串中只包含字母和*号。编写函数 fun,其功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。例如,字符串中的内容为“*A*BC*DEF*G*”,删除后,字符串中的内容应当是“A*BC*DEF*G*”。编写函数时,不得使用 C 语言提供的字符串函数。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。试题程序:#includestdio.h#

6、includeconio.hvoid fun(char*a)void main()char s81;printf(“Enter a string:/n“);gets(s);fun(s);printf(“The string after deleted:/n“);puts(s);(分数:40.00)_二级 C 语言笔试操作题-2 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.下列给定程序中,函数 fun 的功能是:有 NN 矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为 0。例如,若 N=3,有下列矩阵

7、:1 2 34 5 67 8 9计算后结果为:1 0 06 5 010 14 9请在下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#includestdio.h#define N 4/*found*/voidfun(int(*t)_)int i,j;for(i=1;iN;i+)for(j=0;ji;j+)/*found*/_=tij+tji;/*found*/_=0;main()int tN=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10,i,j;printf

8、(“/nThe original array:/n“);for(i=0;iN;i+)for(j=0;jN;j+)printf(“%2d“,tij);printf(“/n“);fun(t);printf(“/nThe result is:/n“);for(i=0;iN;i+)for(j=0;jN;j+)printf(“%2d“,tij);printf(“/n“);(分数:30.00)填空项 1:_ (正确答案:N tij tji)解析:解析 填空 1:主函数中调用函数的参数为二维数组,所以此处形参应定义为指针数组。填空 2:根据题意可知,对称元素相加的和存放在左下三角元素中,那么应填入的是 ti

9、j。填空 3:右上三角元素置 0,应填入 tji。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun 的功能是:计算函数 F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中 x 和y 的值不相等,z 和 y 的值不相等。例如,当 x 的值为 9,y 的值为 11,z 的值为 15 时,函数值为-3.50。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!试题程序:#includestdlib.h#includestdio.h#includemath.h/*found*/#defin

10、e FU(m,n)(m/n)float fun(float a,float b,float c)float value;value=FU(a+b,a-b)+FU(c+b,c-b);/*found*/return(Value);void main()float x,y,z,sum;printf(“Input x y z:“);scanf(“%f%f%f“,x,y,z);printf(“x=%f,y=%f,z=%f/n“,x,y,z);if(x=y|y=z)printf(“Data error!/n“);exit(0);sum=fun(x,y,z);printf(“The result is:%5

11、.2f/n“,sum);(分数:30.00)填空项 1:_ (正确答案:(1)#define FU(m,n) (m)/(n)(2)return (value);)解析:解析 本题考查 C 语言的宏定义,其格式为:#define 标识符字符串,中间要用空格分开。在该题中,标识符为 FU(m,n),字符串为(m/n),由题干信息可知,m、n 均为表达式,且先进行表达式运算,再进行除法运算,因此此处应为(m)/(n)。三、程序设计题(总题数:1,分数:40.00)3.规定输入的字符串中只包含字母和*号。编写函数 fun,其功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。例如,字符串中的

12、内容为“*A*BC*DEF*G*”,删除后,字符串中的内容应当是“A*BC*DEF*G*”。编写函数时,不得使用 C 语言提供的字符串函数。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。试题程序:#includestdio.h#includeconio.hvoid fun(char*a)void main()char s81;printf(“Enter a string:/n“);gets(s);fun(s);printf(“The string after deleted:/n“);puts(s);(分数:40.00)_正确答案:(void fun(char*a)char*p=a;while(*p=*) p+; /*指针 p 指向字符串第一个字母*/for(;*p!=/0;p+,a+) *a=*p; /*从第一个字母开始,其后的字符都放入指针 a 所指的字符串中*/*a=/0; /*在字符串最后加上字符串结束标识*/)解析:解析 我们在此提供另一种解答方法。#includestring.hvoid fun(char *a) char*p=a;while(*p=*) p+;strcpy(a,p);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1