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

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

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

{ } main ( )

{ int a[N][N], n, i, j;

printf(\ for ( i =0; i

{ a[i][j] = rand(); printf( \ printf(\ }

do n = rand() ; while ( n >=3 ); printf(\ fun ( a, n );

printf (\ for ( i =0; i

{ for ( j =0; j

解题思路:

本题是利用两重循环给二维数组左下三角元素中的值乘以n。 参考答案:

int fun ( int a[][N], int n ) { int i, j;

for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] *= n ; }

※※※※※※※※※※※※※※※※※※※※※※※※※ 第09套:

给定程序中,函数fun的功能是将不带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。

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

注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #define N 6 typedef struct node { int data; struct node *next; } NODE;

void fun(NODE *h) { NODE *p, *q; int t; p = h; while (p) {

/**********found**********/ q = __1__ ;

/**********found**********/ while (__2__) { if (p->data > q->data)

{ t = p->data; p->data = q->data; q->data = t; } q = q->next; }

/**********found**********/ p = __3__ ; } }

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

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

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

void outlist(NODE *h) { NODE *p; p=h;

if (p==NULL) printf(\ else

{ printf(\ do

{ printf(\ while(p!=NULL); printf(\ } } main() { NODE *head;

int a[N]= {0, 10, 4, 2, 8, 6 }; head=creatlist(a);

printf(\ outlist(head); fun(head);

printf(\ outlist(head); }

解题思路:

本题是考察使用链表方法,使用两重while循环语句,对链表的结点数据进行升序排列。 第一处:由于外循环变量使用p指针,内循环变量使用q指针,所以q指向必须指向p的next

指针,因此应填写:p.next。

第二处:判断内循环q指针是否结束,所以应填:q。

第三处:外循环控制变量p指向自己的next指针,所以应填:p.next。 ***************************************************

给定程序MODI1.C中函数fun的功能是: 将s所指字符串中的字母转换为按字母

序列的后续字母(但Z转换为A, z转换为a),其它字符不变。 请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include #include void fun (char *s) {

/**********found***********/ while(*s!='@')

{ if(*s>='A' & *s<='Z' || *s>='a' && *s<='z') { if(*s=='Z') *s='A'; else if(*s=='z') *s='a'; else *s += 1; }

/**********found***********/ (*s)++; } } main() { char s[80];

printf(\ printf(\ fun ( s );

printf (\ }

解题思路:

第一处: 使用while循环来判断字符串指针s是否结束,所以应改为:while(*s)。 第二处: 取字符串指针s的下一个位置,所以应改为:s++;。 ***************************************************

请编写函数fun, 函数的功能是: 移动一维数组中的内容; 若数组中有n个整 数, 要求把下标从0到p(含p,p小于等于n-1)的数组元素平移到数组的最后。 例如, 一维数组中的原始内容为: 1,2,3,4,5,6,7,8,9,10; p的值为3。移动 后, 一维数组中的内容应为: 5,6,7,8,9,10,1,2,3,4。 注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入

你编写的若干语句。 给定源程序: #include #define N 80

void fun(int *w, int p, int n) { } main()

{ int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; int i,p,n=15;

printf(\

for(i=0; i

printf(\ for(i=0; i

解题思路:

本题是考察一维数组的操作。

1. 定义一维数组中间变量b,把n值后面数组中的内容存入b中。 2. 再把m前的数组中的内容存入b中。 3. 最后把数组b的内容依次存放到w中。 参考答案:

void fun(int *w, int p, int n) {

int i, j = 0, b[N] ;

for(i = p + 1 ; i < n ; i++) b[j++] = w[i] ; for(i = 0 ; i <= p ; i++) b[j++] = w[i] ; for(i = 0 ; i < n ; i++) w[i]= b[i] ; }

※※※※※※※※※※※※※※※※※※※※※※※※※

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

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