[试题]

试题三

阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

(说明)

下面的程序功能的功能是以行为单位对字符串按下面的条件进行排序。排序条件为:从字符串中间一分为二,右边部分按字符的ASCⅡ值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上

例如:位置:0 1 2 3 4 5 6 7

源字符串:h g f e a b c d

则处理后字符串:d c b a h g f e

函数ReadDat()实现从文件in.dat中读取数据(每行字符串长度均小于80),函数WriteDat()把结果dat输出到文件out.dat中。

(程序)

#include<stdio.h>

#include<siring.h>

#include<conio.h>

char dat[20][80];

void jsSort()

{

int i,j,k,strl;

char ch;

for(i=0;i<20;i++)

{

strl=strlen(dat[i]);

for(j= (1) ;j<strl;j++)/*对后半部分的字符串进行排序*/

for(k=j+1;k<strl;k++)

if( (2) )

{

ch=dat[i][j];

dat[i][j]=dat[i][k];

dat[i][k]=ch;

}

for(j=0; (3) j++)/*前后两部分进行交换*/

{

ch=dat[i][j];

dat[i][j]=dat[i][(strl+1)/2+j];

dat[i][(strl+1)/2+j]=ch;

}

}

}

void main()

{

readDat();

jsSort();

writeDat();

}

readDat()

{

F.ILE*in;

int i=0;

char*p;(4) ;

while(i<20 && fgets(dat[i],80,in)!=NULL)

{

p=strchr(dat[i],"\n");

if(p)*p=0;

i++;

}

fclose(in);

}

writeDat()

{

F.ILE*out;

int i;

clrscr();

out=fopen("out.dat","W");

for(i=0;i<20;i++)

{

printf("%s\n",dat[i]);

printf( (5) );

}

fclose(out);

}

参考答案与解析:

相关试题

试题三 阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 (

[试题]试题三阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)本题给出四个函数,它们的功能分别是:1.int push(PNODE *top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。2.int pop(PNODE *top,int *e)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。3.int enQueue(PNODE *tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。4.int deQueu

  • 查看答案
  • 试题五 阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题五阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(程序5说明)著名的四色定理指出任何平面区域图均可用四种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过四种颜色的着色方案。程序中用1~4表示四种颜色。要着色的N个区域用0~N-1编号,区域相邻关系用adj[][]矩阵表示,矩阵的i行j列的元素为1,表示区域i与区域j相邻;矩阵的i行j列的元素为0,表示区域i与区域j不相邻。数组color[]用来存储着色结果,color[i]的值为区域i所着颜色。

  • 查看答案
  • 试题四 阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题四阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)本程序从若干个原始文件合并成的合并文件中恢复出其中一个或全部原始文件。所有文件均作为二进制文件进行处理。合并文件中先顺序存储各原始文件,然后顺序存储各原始文件的控制信息,即文件名、文件长度和在合并文件中的位置(偏移量 )。其结构为:typedef struct{char fname [256]/*原始文件名*/long length;/*原始文件长度(字节数)*/long offset;/*原始文件在合并文件中的位

  • 查看答案
  • 试题四 阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题四阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(程序4.1说明)"背包问题"的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,..,wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。如下程序均能求得"背包问题"的一组解,其中程序4.1是"背包问题"的递归解法,而程序4.2是"背包问题"的非递归解法。(程序4.1)#include<stdio.h>#def

  • 查看答案
  • 试题五 阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题五阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(程序5说明)设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根结点的值部分(设为一个字符)和用"()"括起来的各子树的列表(如有子树的话),各子列表间用","分隔。例如下面的三叉树可用列表a(b(c,d),e,f(g,h,i))表示。本程序输入列表,生成一棵M叉树,并由M叉树输出列表。假定输入无错误。(程序5)#include<stdio.h>#include<stdliB.h

  • 查看答案
  • 试题三 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题三阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次L.Locate(x)操作时,令元素值x的结点的访问频度freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。(函

  • 查看答案
  • 试题三 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题三阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)函数diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求L3中的所有整数都是L1,并且不是L2中的整数,还要求L3中的所有整数都两两不等。(函数)#include<malloC.h>typedef struct node{int d;struct node *next}Node;void diff(Node *A,Node

  • 查看答案
  • 试题三 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题三阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明3.1)假设以带头结点的单循环链表作非递减有序线性表的存储结构。函数deleteklist(LinkList head)的功能是删除表中所有数值相同的多余元素,并释放结点空间。例如:链表初始元素为:(7,10,10,21,30,42,42,42,51,70)经算法操作后变为:(7,10,21,30,42,51,70)(函数3.1)void deleteklist(LinkList head){LinkNode*p,*

  • 查看答案
  • 试题三 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。

    [试题]试题三阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)函数move(int*a,int n)用于整理数组a[]的前n个元素,使其中小于0的元素移到数组的前端,大于0的元素移到数组的后端,等于0的元素留在数表中间。令a[0]~a[low-1]小于0(初始为空);a[low]~a[i-1]等于0(初始为空);a[i]~a[high]还未考察,当前考察元素为a[i]。a[high+1]~a[n-1]大于0(初始为空)。(函数)move(int*a,int n){int i,

  • 查看答案
  • 试题二 阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 (

    [试题]试题二阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:#define MAXSIZE 32typedef struct{int *elem;/*栈的存储区*/int max; /*栈的容量

  • 查看答案
  • 试题三 阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。