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

下载本文档

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

文档简介

1、级C语言笔试操作题-1总分:100.00,做题时间:90分钟一、程序填空题 总题数:1,分数:30.00 1. 以下给定程序中,函数fun的功能是: 将N XN矩阵主对角线元素的值与反向对角线对应位置上元素的值进行交换。例如,假设N=3,有以下矩阵:1 2 3 4 5 67 8 9交换后为:3 2 14 5 69 8 7请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:局部源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#inelude < stdio.h >#defi ne N4*/i *found*void fun (i nt,int n)i

2、nt i,s;H- *found*for( ;i+) s=tii;厂 *found*ti n-i-1= mai n() int tN=21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10,i,j; prin tf("/nThe origi nal array:/n");for(i=0;i < N;j+)for(j=0;j <N;j+) printf("%d",tij);prin tf("/n");fun (t,N); prin tf("/nThe result is:/n

3、");for(i=0;i < N;i+) for(j=0;j <N;j+) printf("%d",tij);printf("n");(分数:30.00 )填空项 1: (正确答案:tN i=0;i<N s )解析:解析填空1:根据main函数中的函数调用语句,可以填写fun函数定义中的形参内容。填空2:由于是N XN矩阵,所以for语句中循环变量i的取值范围是 0到N。填空3: for循环体中是变量值交换算法。二、程序改错题 (总题数:1,分数:30.00 )2. 由N个有序整数组成的数列已放在一维数组中,以下给定程序中,函

4、数fun的功能是:利用折半查找法查找整数 m在数组中的位置。假设找到,返回其下标值;否那么,返回-1。折半查找的根本算法是:每次查找前先确定数组中待查的范围low和high (low < high ),然后用m与中间 位置(mid)上元素的值进行比拟。 如果m的值大于中间位置元素的值, 那么下一次 的查找范围落在中间位置之 后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到low> high,查找结束。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include < stdio.h &g

5、t;,I *found*< =high)#defi ne N 10void fun (i nt a,i nt m) int low=0,high=N-1,mid; while(low1 *fo un d*mid=(low+high)/2; if(m < amid) high二mid-1;else If(m > amid) low=mid+1;else return(mid);return(-1);mai n()int i,aN=-3,4,7,9,13,45,67,89,100,180,k,m; prin tf("a数组中的数据如下:");for(i=0;i

6、 < N;i+) printf("%d",ai); printf("Enter m:"); seanf("%d",& m); k=fun(a,m);if(k > =0) printf("m=%d,index=%d/n",m,k); else printf("Not be found!/n");(分数:30.00 )填空项 1: (正确答案:(1)int fun(int a,int m)或 fun(int a,int m)(2)else if(m > amid)解析:解析

7、(1)fun(int a , int m)函数的返回值为int类型,所以定义函数时,函数的返回类型不 能 是void,而是int类型。这里int可以省略,假设省略函数类型标识符,系统将默认为 int型(2)else If(m > amid)中,关键字if需要区别大小写,大写是错误的。三、程序设计题(总题数:1,分数:40.00)3. 假定输入的字符串中只包含字母和* ?号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中其 他的*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时, 不得使用C语言提供的字符串函数。例如,字符串中的内容为“ *A*BC*DEF*G* ,删

8、除后,字符串中的内容应当是“ ABCDEFG* 注意:局部源程序给出如下。请勿改动主函数 main和其他函数中的任何内容。仅在函数fun的花括号中填入你编写的假设干语句。试题程序:#include < stdio.h > void fun(char*a,char*p) void main()char s81,*t;prin tf("E nter a stri ng:/n"); gets(s);t=s;while(*t)t+;t-;/*指针t指向字符串尾部*/ while(*t='*')t-;/*指针t指向最后一个字母*/ fun(s,t);prin tf("The stri ng after deleted:/n"); puts(s);(分数:40.00 )解析:解析此题用两个循环语句来实现。第1个循环的作用是将指针p所指字母以前所有非*号的字符 保存下来,即删除指针 p以前所有的*号。第2个循环的作用是将指针p以后的所有*号保存下来。最后在新串的结尾加上结束符。正确答案:(void fun (char

温馨提示

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

评论

0/150

提交评论