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

第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() ; 
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git版本回退命令_Git学习版本回退和管理文件的修改及删除操作

版本回退前面我们成功的提交了一次mygit.txt&#xff0c;下面咱对它进行修改&#xff0c;内容如下&#xff1a;Hello GitGit is so easy.然后用git status来跟踪该文件的状态&#xff1a;可以看到hellogit.txt已经被修改过了&#xff0c;到底这次修改的内容与上次的内容有什么不…

如此理解面向对象编程

从Rob Pike 的 Google上的一个推看到了一篇叫《Understanding Object Oriented Programming》的文章&#xff0c;我先把这篇文章简述一下&#xff0c;然后再说说老牌黑客Rob Pike的评论。 先看这篇教程是怎么来讲述OOP的。它先给了下面这个问题&#xff0c;这个问题需要输出一段…

node 版本升级_Node-RED: 自动化事件触发工具的安装与介绍

Node-RED 介绍Node-RED 是一种基于流程的编程工具由 IBM 的新兴技术服务团队原创开发Node-RED 是一种事件触发工具&#xff0c;和 StackStorm 类似, 可以归类为上层的自动化工具&#xff0c;可以用来触发与之相对应的下层自动化工具&#xff0c;比如 ansible&#xff0c;来更加…

用Python写网络爬虫pdf

下载地址&#xff1a;网盘下载 作为一种便捷地收集网上信息并从中抽取出可用信息的方式&#xff0c;网络爬虫技术变得越来越有用。使用Python这样的简单编程语言&#xff0c;你可以使用少量编程技能就可以爬取复杂的网站。 《用Python写网络爬虫》作为使用Python来爬取网络数据…

python处理mysql数据结构_python环境下使用mysql数据及数据结构和二叉树算法(图)...

python环境下使用mysql数据及数据结构和二叉树算法(图)&#xff1a;1 python环境下使用mysql2使用的是 pymysql库3 开始-->创建connection-->获取cursor-->操作-->关闭cursor->关闭connection->结束45 代码框架6 import pymysql.cursors7 ###连接数据库8 con…

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

第14套&#xff1a; 给定程序中, 函数fun的功能是用函数指针指向要调用的函数,并进行调用。 规定在__2__处使f指向函数f1&#xff0c;在__3__处使f指向函数f2。当调用正确时&#xff0c;程序输出: x15.000000, x23.000000, x1x1x1x240.000000 请在程序的下划线处填入正确的内容…

2012.12.26日学习笔记

DNS架构由根&#xff0c;最高层域&#xff0c;第二层域&#xff0c;子域的树状结构构成 FQDN: FULLY QUALIFIED DOMAIN NAME:WWW.SAYMS.COM可以在POWERSHELL内使用HOSTNAME查看主机名称&#xff0c;就是FQDNDNS服务器分为授权服务器&#xff0c;主服务器&#xff0c;辅助服务器…

大数据工作流_大数据和人工智能时代下的数字化工作流

点击上方“Bentley软件”可以订阅哦本文作者Bentley 软件公司高级技术经理赵顺耐大数据、人工智能以及与之相伴相生的物联网已经成为现代社会的运行方式&#xff0c;信息技术的急速发展&#xff0c;和数据量爆炸式增长&#xff0c;改变了整个社会传统的运行方式。人类与信息技术…

00x1 python分支循环

三大结构 顺序分支循环分支 分支的基本语法 if 条件表达式&#xff1a; 语句1语句2语句3......条件表达式就是计算结果必须为布尔值的表达式表达式后面的冒号不能少注意if后面的出现的语句&#xff0c;如果属于if语句块&#xff0c;则必须同一个锁紧等级条件表达式结果为True执…

多租户系统技术实现mysql_SaaS “可配置”和“多租户”架构的几种技术实现方式...

1、数据存储方式的选择多租户(Multi-Tenant )&#xff0c;即多个租户共用一个实例&#xff0c;租户的数据既有隔离又有共享&#xff0c;说到底是要解决数据存储的问题。常用的数据存储方式有三种。方案一&#xff1a;独立数据库一个Tenant&#xff0c;一个Database“的数据存储…

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

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

iOS如何判断当前网络的运营商

2019独角兽企业重金招聘Python工程师标准>>> 在IOS上存在retain屏&#xff0c;经常需要在一些时刻用到高清图&#xff0c;有些时候也要到普通图。 在网络条件很爽的情况下&#xff0c;这当然不在话下。如果咱是iphone用户&#xff0c;又正好用的是移动卡。 如果还用…

Py函数直接传入root是啥意思_Python内部函数——用处何在?

这是一篇译文&#xff0c;原文地址&#xff1a;https://realpython.com/inner-functions-what-are-they-good-for/1. 封装内部函数可以免受函数之外的情况的影响&#xff0c;也就是说&#xff0c;对于全局命名空间而言&#xff0c;它们是隐藏的。下面是一个简单的例子&#xff…

高级计算机网络的基本知识

请同学们自由组队&#xff0c;每队2-3人&#xff0c;每对从以下网络基本问题中选取一个作为课题研究内容&#xff0c;题目自拟&#xff0c;写一篇研究性论文。在本学期结束之前完成&#xff0c;并在课堂上进行汇报。 1. 网络基础理论1.1. 容量与可扩展性 1.2. …

java 树面试题_java——二叉树面试题

12 importjava.util.ArrayList;3 importjava.util.Iterator;4 importjava.util.LinkedList;5 importjava.util.List;6 importjava.util.Queue;7 importjava.util.Stack;89 /**10 *http://blog.csdn.net/luckyxiaoqiang/article/details/7518888轻松搞定面试中的二叉树题目11 *h…

Linux 和 Windows 平台不同的 UCS-2 编码

2019独角兽企业重金招聘Python工程师标准>>> 以下是有关两个平台 UCS-2 编码的潜规则&#xff1a; 1, UCS-2 不等于 UTF-16。 UTF-16 每个字节使用 ASCII 字符范围编码&#xff0c;而 UCS-2 对每个字节的编码可以超出 ASCII 字符范围。UCS-2 和 UTF-16 对每个字符至…

vld检测不输出_输出轴热处理形变超差,找找原因

这里有最实用的技术&#xff0c;点击↑↑关注作者&#xff1a;阚亚威单位&#xff1a;镇江液压股份有限公司来源&#xff1a;《金属加工(热加工)》杂志我公司摆线液压马达输出轴材料主要为20CrMnTi&#xff0c;热处理工艺为渗碳直接淬火低温回火&#xff0c;工艺如图1所示。近期…

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

第16套&#xff1a; 给定程序中&#xff0c;函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度&#xff0c;将其余字符串右边用字符*补齐,使其与最长的字符串等长。ss所指字符串数组中共有M个字符串&#xff0c;且串长<N。 请在程序的下划线处填入正确的内容并…

H5横向滚动提示

<marquee>啦啦啦&#xff0c;Hello World</marquee>转载于:https://www.cnblogs.com/Dingcps/p/9353625.html

java 独占锁_锁分类(独占锁、分拆锁、分离锁、分布式锁)

一、java内存模型提到同步、锁&#xff0c;就必须提到Java的内存模型&#xff0c;为了提高程序的执行效率&#xff0c;java也吸收了传统应用程序的多级缓存体系。在共享内存的多处理器体系架构中&#xff0c;每个处理器都拥有自己的缓存&#xff0c;并且定期地与主内存进行协调…