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

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

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

第10套:

给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩 阵是否是\幻方\,若是,函数返回值为1; 不是,函数返回值为0。\幻方\的判定 条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下3×3的矩阵就是一个\幻方\: 4 9 2 3 5 7 8 1 6

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

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #define N 3 int fun(int (*a)[N]) { int i,j,m1,m2,row,colum; m1=m2=0; for(i=0; i

{ j=N-i-1; m1+=a[i][i]; m2+=a[i][j]; } if(m1!=m2) return 0; for(i=0; i

/**********found**********/ row=colum= __1__; for(j=0; j

{ row+=a[i][j]; colum+=a[j][i]; } /**********found**********/

if( (row!=colum) __2__ (row!=m1) ) return 0; }

/**********found**********/ return __3__; } main() { int x[N][N],i,j;

printf(\

for(i=0; i

for(j=0; j

{ for(j=0; j

if(fun(x)) printf(\ else printf(\ }

解题思路:

第一处:行列变量row和colum的值初始化为0。

第二处:两个条件只要有一个不满足就返回0,所以应填:||。 第三处:如果矩阵是“幻方”,则返回1。

***************************************************

给定程序MODI1.C中fun函数的功能是: 根据整型形参m,计算如下公式的值。 1 1 1 t = 1 - ----- - ----- - …… - ----- 2 3 m

例如,若主函数中输入5,则应输出 -0.283333。

请改正函数fun中的错误或在横线处填上适当的内容并把横线删除, 使它能 计算出正确的结果。

注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include double fun( int m ) {

double t = 1.0; int i;

for( i = 2; i <= m; i++ ) /**********found**********/ t = 1.0-1 /i;

/**********found**********/ _______; } main() {

int m ;

printf( \ scanf( \

printf( \ }

解题思路:

第一处:在除法运算中,如果除数和被除数都是整数,所么所除结果也是整数,因此应改

为t-=1./i。

第二处:应是返回公式的值,函数中公式的值是存放在临时变量t中,所以应填return t;。 *************************************************** 请编写一个函数,函数的功能是删除字符串中的所有空格。 例如, 主函数中输入\则输出为 \。 注意:部分源程序在文件PROG1.C中。

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

char str[81]; int n;

printf(\ gets(str); puts(str); fun(str);

printf(\ NONO(); }

解题思路:

本题是考察考生怎样利用字符串指针来删除字符串的空格字符。在函数开始处把指针p先指

向字符串str以及位置变量i置0,然后采用while循环和字符串指针p来处理的,每循环一次来判

断指针p所指的字符是否为空格,如果不是空格,则把该字符写到str字符串中,位置由i来控制,

如果是空格,则不处理,继续取下一字符,直至字符串结束为止,最后再把字符串结束符写到

位置为i的str上,再通过形参str返回。 参考答案: int fun(char *str) {

char *p = str ; int i = 0 ; while(*p) {

if(*p != ' ') str[i++] = *p ; p++ ; } str[i] = 0 ; }

※※※※※※※※※※※※※※※※※※※※※※※※※ 第11套:

给定程序中,函数fun的功能是将带头结点的单向链表逆置。即若原链表中从

头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为: 10、8、6、4、2。

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

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

#define N 5 typedef struct node { int data; struct node *next; } NODE;

void fun(NODE *h) { NODE *p, *q, *r;

/**********found**********/ p = h->__1__;

/**********found**********/ if (p==__2__) return; q = p->next; p->next = NULL; while (q)

{ r = q->next; q->next = p; /**********found**********/ p = q; q = __3__; }

h->next = p; }

NODE *creatlist(int a[]) { NODE *h,*p,*q; int i;

h = (NODE *)malloc(sizeof(NODE)); h->next = NULL; for(i=0; i

{ q=(NODE *)malloc(sizeof(NODE)); q->data=a[i]; q->next = NULL;

if (h->next == NULL) h->next = p = q; else { p->next = q; p = q; } } return h; }

void outlist(NODE *h) { NODE *p; p = h->next;

if (p==NULL) printf(\

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

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