77范文网 - 专业文章范例文档资料分享平台

全国计算机二级C语言题库 - 南开100题(5)

来源:网络收集 时间:2019-01-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

请编写函数fun, 函数的功能是: 删去一维数组中所有相同的数, 使之只剩一 个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如, 一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。 删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。 注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入 你编写的若干语句。 给定源程序: #include #define N 80 int fun(int a[], int n) { } main()

{ int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20; printf(\ for(i=0; i

printf(\

for(i=0;i

解题思路:

本题是删除已排序过数组中的相同数。

1. 取出数组中的第1个数存放在临时变量k中,再利用for循环来依次判断所有的数。 2. 如果取出的数和k相比,如果不相同,则仍存放在原数组中,其中存放的位置由j来控制, 接着把这个数重新存入k。如果相同,则取下一数。 参考答案:

int fun(int a[], int n) {

int i, j = 1, k = a[0] ; for(i = 1 ; i < n ; i++) if(k != a[i]) {

a[j++]=a[i] ; k = a[i] ; } a[j] = 0 ; return j ; }

※※※※※※※※※※※※※※※※※※※※※※※※※ 第06套:

给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正 确时, 程序输出:

x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结 果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include double f1(double x) { return x*x; }

double f2(double x, double y) { return x*y; }

/**********found**********/ __1__ fun(int i, double x, double y) { if (i==1)

/**********found**********/ return __2__(x); else

/**********found**********/ return __3__(x, y); } main()

{ double x1=5, x2=3, r; r = fun(1, x1, x2);

r += fun(2, x1, x2);

printf(\ }

解题思路:

本题是根据给定的公式来计算函数的值。

第一处:程序中使用双精度double类型进行计算,所以函数的返回值类型也为double,所 以应填:double。

第二处:当i等于1时,则返回f1函数的值,所以应填:f1。 第三处:如果i不等于1,则返回f2函数的值,所以应填:f2。 ***************************************************

给定程序MODI1.C中函数fun的功能是: 比较两个字符串,将长的那个字符串 的首地址作为函数值返回。

请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include

/**********found**********/ char fun(char *s, char *t) { int sl=0,tl=0; char *ss, *tt; ss=s; tt=t; while(*ss) { sl++;

/**********found**********/ (*ss)++; } while(*tt) { tl++;

/**********found**********/ (*tt)++; }

if(tl>sl) return t; else return s; } main()

{ char a[80],b[80],*p,*q; int i; printf(\ printf(\ printf(\

}

解题思路:

第一处: 试题要求返回字符串的首地址,所以应改为:char *fun(char *s,char *t) 第二处: 取字符串指针ss的下一个位置,所以应改为:ss++;。 第三处:取字符串指针tt的下一个位置,所以应改为:tt++;。 ***************************************************

请编写函数fun,函数的功能是: 移动字符串中的内容,移动的规则如下: 把第

1到第m个字符, 平移到字符串的最后, 把第m+1到最后的字符移到字符串的前部。 例如, 字符串中原有的内容为: ABCDEFGHIJK, m的值为3, 则移动后, 字符串

中的内容应该是: DEFGHIJKABC。 注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入 你编写的若干语句。 给定源程序: #include #include #define N 80

void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */ {

int i; char t; t=w[0];

for(i=0;i

void fun(char *w, int m) /* 可调用fun1函数左移字符 */ { } main()

{ char a[N]= \ int m;

printf(\ printf(\

fun(a,m);

printf(\ printf(\ NONO(); }

解题思路:

本题是考察字符串的操作。

1. 由于函数fun1是将字符串中字符循环左移一个位置,并通过实参w返回循环左移一个位 置的字符串。

2. 利用循环for语句来操作多少个字符(m)需要循环左移。 参考答案:

void fun1(char *w) /* 本函数的功能是将字符串中字符循环左移一个位置 */ {

int i; char t; t=w[0];

for(i=0;i

void fun(char *w, int m) /* 可调用fun1函数左移字符 */ { int i;

for(i = 0 ; i < m ; i++) fun1(w); }

※※※※※※※※※※※※※※※※※※※※※※※※※ 第07套:

程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函 数fun的功能是输出这位学生的信息。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结 果。

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库全国计算机二级C语言题库 - 南开100题(5)在线全文阅读。

全国计算机二级C语言题库 - 南开100题(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/402448.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: