二级C语言笔试操作题-4_第1页
二级C语言笔试操作题-4_第2页
二级C语言笔试操作题-4_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二级 C 语言笔试操作题 -4( 总分: 100.00 ,做题时间: 90 分钟 )一、程序填空题 ( 总题数: 1,分数: 30.00)并作为函1. 下列给定程序中,函数fun的功能是:计算NXN矩阵的主对角线元素和反向对角线元素之和, 数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。例如,若N=3,有下列矩阵:1 2 34 5 67 8 9 首先累加 1 、5、9,然后累加 3、5、7,函数返回值为 30。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构 !试题程序:#include &l

2、t; stdio.h >#defineN4fun(int tN,int n)int i,sum;*found*for(i=0;i < n;i+)*found*sum+= for(i=0;i < n;i+)*found*sum+=tin-i-;return sum;main()int tN=21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10,i,j; printf("/nThe original data:/n");for(i=0;i< N;i+)for(j=0;j< N;j+)printf("%

3、4d",tij);printf("/n");printf("The result is:%d",fun(t,N);(分数: 30.00 )填空项 1: (正确答案: sum=0 tii 1)解析:解析填空1:变量sum用来储存"和"结果,所以将其初始化为0。填空 2:从题目中我们可以了解到,主对角线元素的行和列下标是相同的,所以应填入tii填空3:对于反向对角线元素的行和列的下标,它们的关系是相加和为n-1,所以应填入1。二、程序改错题 ( 总题数: 1,分数: 30.00)2. 下列给定程序中,函数fun和funx的功能是

4、:用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过 0.001 。例如,若给m输入-100,n输入90,则函数求得的一个根为2.000。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构 !试题程序:#include < stdio.h >#include < math.h >double funx(double x) return(2*x*x*x-4*x*x+3*x-6);double fun(double m,double n)*found*int r; r=-(m+n)/2;*fo

5、und*while(fabs(n-m) <0.001)if(funx(r)*funx(n) < 0)m=r; else n=r;r=(m+n)/2;return r;main()double m,n,root; printf("Enter m n:/n");scanf("%lf%lf", m,n); root=fun(m,n);printf("root=%6.3f/n",root);(分数: 30.00 )填空项 1: (正确答案: (1)double r;(2)while (fabs(n-m) >0.001)解析:

6、解析(1)程序中我们会发现r = (m+ n)/2,而m和n都是double型的,并且根据题意可知,变量 r 需要定义为 double 型。(2) 绝对误差不超过 0.001 ,所以循环条件应为 fabs(n m)>0.001 。三、程序设计题 ( 总题数: 1,分数: 40.00)3. 规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其他的*号全部删除。形参h已指向字符串中第一个字母,形参P指向字符串中最后一个字母。在编写函数时,不得使用 C语言提供的字符串函数。例如,若字符串中的内容为“ *A*BC*DEF*G* ”,删除后,字符串中

7、的内容应当是“* *ABCDEFG * ”。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序:#include < stdio.h >void fun(char*a,char*h,char*p)main()char s81,*t,*f;printf("Enter a string:/n");gets(s);t=f=s;while(*t)t+;t-;while(*t='*')t-;while(*f='*')f+;fun(s,f,t);printf("The string after deleted:/n"); puts(s);分数: 40.00 ) 正确答案: (void fun(char*a,char*h,char*p ) int i=0;char*q=a;while(q < h) ai=*q; q+;i+;while(q < p) if(*q!='*') ai=*q;i+;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论