第13套:
给定程序中,函数fun的功能是将带头节点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序
后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:

#include <stdio.h>
#include <stdlib.h>
#define N 6
typedef struct node {
int data;
struct node *next;
} NODE;
void fun(NODE *h)
{ NODE *p, *q; int t;
p = __1__ ;
while (p) {
q = __2__ ;
while (q) {
if (p->data __3__ q->data)
{ t = p->data; p->data = q->data; q->data = t; }
q = q->next;
}
p = p->next;
}
}
NODE *creatlist(int a[])
{ NODE *h,*p,*q; int i;
h = (NODE *)malloc(sizeof(NODE));
h->next = NULL;
for(i=0; i<N; 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("The list is NULL!\n");
else
{ printf("\nHead ");
do
{ printf("->%d", p->data); p=p->next; }
while(p!=NULL);
printf("->End\n");
}
}
main()
{ NODE *head;
int a[N]= {0, 10, 4, 2, 8, 6 };
head=creatlist(a);
printf("\nThe original list:\n");
outlist(head);
fun(head);
printf("\nThe list after sorting :\n");
outlist(head);
}

解题思路:
本题是考察使用链表方法,对链表的结点数据进行升序排列。
第一处:使用结构指针p,来控制链表的结束,p必须指向h结构指针的next指针,来定位p 的初始位置。所以应填写:h->next。
第二处:使用while循环,对链表中结点的数据进行排序,q必须指向p结构指针的next指针。所以应填写:p->next。
第三处:如果当前结点中的数据大于(大于等于)循环中的结点数据,那么进行交换,所
以应填写:>(或>=)。


给定程序MODI1.C是建立一个带头结点的单向链表, 并用随机函数为各结点数 据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值, 并且作为函数值返回。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:

#include <stdio.h>
#include <stdlib.h>
typedef struct aa
{ int data;
struct aa *next;
} NODE;
fun ( NODE *h )
{ int max=-1;
NODE *p;
p=h ;
while(p)
{ if(p->data>max )
max=p->data;
p=h->next ;
}
return max;
}
outresult(int s, FILE *pf)
{ fprintf(pf,"\nThe max in link : %d\n",s);}
NODE *creatlink(int n, int m)
{ NODE *h, *p, *s, *q;
int i, x;
h=p=(NODE *)malloc(sizeof(NODE));h->data=9999;
for(i=1; i<=n; i++)
{ s=(NODE *)malloc(sizeof(NODE));
s->data=rand()%m; s->next=p->next;
p->next=s; p=p->next;
}
p->next=NULL;
return h;
}
outlink(NODE *h, FILE *pf)
{ NODE *p;
p=h->next;
fprintf(pf,"\nTHE LIST :\n\n HEAD ");
while(p)
{ fprintf(pf,"->%d ",p->data); p=p->next; }
fprintf(pf,"\n");
}
main()
{ NODE *head; int m;
head=creatlink(12, 100);
outlink(head , stdout);
m=fun(head);
printf("\nTHE RESULT :\n"); outresult(m, stdout);
}

解题思路:
程序中是使用while循环语句和结合结构指针p来找到数据域中的最大值。
第一处: p指向形参结构指针h的next指针,所以应改为:p=h->next;。
第二处: p指向自己的下一个结点,所以应改为:p=p->next,


请编写函数fun, 函数的功能是: 将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中, 一维数组中数据的个数存放在形参n所指的存储单元中。
例如, 二维数组中的数据为:
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的内容应是:
33 33 33 33 44 44 44 44 55 55 55 55。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:

#include <stdio.h>
void fun(int (*s)[10], int *b, int *n, int mm, int nn)
{
}
main()
{ int w[10][10] = {{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j ;
int a[100] = {0}, n = 0 ;
printf("The matrix:\n") ;
for(i = 0 ; i < 3 ; i++)
{ for(j = 0 ; j < 4 ; j++) printf("%3d",w[i][j]) ;
printf("\n") ;
}
fun(w, a, &n, 3, 4) ;
printf("The A array:\n") ;
for(i = 0 ; i < n ; i++) printf("%3d",a[i]);printf("\n\n") ;
NONO() ;
}

解题思路:
本题是把二维数组中的数据按行存放到一维数组中。

  1. 计算存放到一维数组中的位置。
  2. 取出二维数组中的数据存放到一维数组(已计算出的位置)中。
    参考答案:
void fun(int (*s)[10], int *b, int *n, int mm, int nn)
{
int i, j, k ;
for(i = 0 ; i < mm ; i++)
for(j = 0 ; j < nn ; j++) {
k = i * nn + j ;
b[k] = s[i][j] ;
}
*n = mm * nn ;
}
main()
{ int w[10][10] = {{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j ;
int a[100] = {0}, n = 0 ;
printf("The matrix:\n") ;
for(i = 0 ; i < 3 ; i++)
{ for(j = 0 ; j < 4 ; j++) printf("%3d",w[i][j]) ;
printf("\n") ;
}
fun(w, a, &n, 3, 4) ;
printf("The A array:\n") ;
for(i = 0 ; i < n ; i++) printf("%3d",a[i]);printf("\n\n") ;
NONO() ;
}

全国计算机等级考试题库二级C操作题100套(第13套)相关推荐

  1. 全国计算机等级考试题库二级C操作题100套(第88套)

    第88套: 函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中:再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中: ...

  2. 全国计算机等级考试题库二级C操作题100套(第99套)

    第99套: 函数fun的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换.形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动. 例如:若a所指数组中的数据依次为:1.2. ...

  3. 全国计算机等级考试题库二级C操作题100套(第97套)

    第97套: 函数fun的功能是:逆置数组元素中的值.例如:若a所指数组中的数据依次为:1.2.3.4.5.6.7.8.9,则逆置后依次为:9.8.7.6.5.4.3.2.1.形参n给出数组中数据的个数 ...

  4. 全国计算机等级考试题库二级C操作题100套(第95套)

    第95套: 给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回.注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值.例如,若N=3,有下列 ...

  5. 全国计算机等级考试题库二级C操作题100套(第93套)

    第93套: 给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun 函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表 缩短. 请在程序的下划线处填入正确的 ...

  6. 全国计算机等级考试题库二级C操作题100套(第78套)

    第78套: 给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换.例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 交换后为: 3 2 ...

  7. 全国计算机等级考试题库二级C操作题100套(第77套)

    第77套: 给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回. 例如,输入一个整数:27638496,函数返回值为:64 ...

  8. 全国计算机等级考试题库二级C操作题100套(第75套)

    第75套: 给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序.ss所指字符串数组中共有M个字符串,且串长<N.请在程序的下划线处填入正确的内容并把下划 ...

  9. 全国计算机等级考试题库二级C操作题100套(第58套)

    第58套: 给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制 到形参t所指字符数组中,形成一个新串.若s所指字符串的长度小于n,则将整个 字符串复制到形参t所指字符数组中.例如 ...

  10. 全国计算机等级考试题库二级C操作题100套(第53套)

    第53套: 函数fun的功能是:计算请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果. 注意:源程序存放在考生文件夹下的BLANK1.C中. 不得增行或删行,也不得更改程序的结构! ...

最新文章

  1. OpenCV | 二值图像分析的技巧都在这里
  2. 计算机组成原理cache命中率
  3. 零基础可以学python吗-零基础适合学Python吗?小白能否学会Python?
  4. 关于SpringBoot中的多数据源集成
  5. 光纤收发器出现死机故障怎么解决
  6. [Python入门及进阶笔记]Python-魔术方法小结(方法运算符重载)
  7. 【python VS Code】调用自定义模块 ModuleNotFoundError: No module named XXX
  8. sh文件在linux下如何运行_RTMP协议安防视频平台EasyDSS在Linux系统下运行报错,如何处理?_...
  9. 思维导图案例之VeritasDCG
  10. 未来编程语言展望——G语言的神奇新要素
  11. mysql8.0.17 汉化
  12. 调研之路 --- MXF
  13. JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@xxx] will not be managed by Spring
  14. python收取126或163邮件
  15. Andorid检测支付宝客户端是否安装
  16. CAJViwer安装提示:请求的操作需要提升
  17. 学校创客教育实施方案
  18. DDD领域驱动设计浅谈
  19. 【Python】检测下载不完整、半截灰色的JPG、JPEG、PNG图片脚本
  20. CCleaner科学使用方法

热门文章

  1. C#学习笔记:预处理指令
  2. 无限“递归”的python程序
  3. static的应用以及静态与非静态的区别
  4. iOS APP网络分析之rvictl(可以捕捉除了Wifi以外的网络类型)
  5. Silverlight 3 全系列开发工具发布
  6. ABB RAPID SOCKET编程
  7. 【图像处理】——图像内插法
  8. linux创建zip+函数,linux+shell基础知识
  9. 其中一个页签慢_渭南提升一个大专学历的有效方法
  10. 翻译python语言命令_有道词典命令行快速翻译,Python编程的利器