首页 > 软考
题目内容 (请给出正确答案)
[主观题]

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】 设有3n+2个球互连,将自然数1~

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。

【说明】

设有3n+2个球互连,将自然数1~3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,…,3n+1中的各数,如下图所示:

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】 设有3n+2个球互连,将自然

其中填自然数的思想如下;

(1)先自左向右,第1列中间1个填数,然后第2列上、下2个填数,每次2列;但若n为偶数,最后1次只排第1列中间一个数。

(2)自右向左,先右第1列中间填数;若n是奇数,再右第2列中间填数。然后依次右第1列上、下2个填数,再右第2列中间1个填数,直到左第2列为止。

【程序】

include <stdio.h>

define size 10

int a[3][size];

void main()

{

int i,k,m,n;

printf("imput the n:");

scanf("%d",&n);

k=1;

for(i=0; i<=n/2; i++)

{

a[1][2*i]=k; k++;

if((i==n/2)&& (1) ||(i<n/2))

{

a[0][2*i+1]=k;

k++;

(2)

k++;

}

}

if(n%2==1)

{

(3)

k++;

m=n;

}

else

(4)

for(i=0; i<n/2; i++)

{

a[1][m-2*i]=k; k++;

(5)

k++;

a[2][m-2*i-1]=k; k++;

}

a[1][1]=k;

printf("\n");

printf(" ");

for(i=1; i<=n; i++)

printf("%6d",a[0][i]);

printf("\n\n");

for(i=0; i<=n+1; i++)

printf("%6d",a[1][i]);

printf("\n\n");

printf(" ");

for(i=1; i<=n; i++)

printf("%6d",a[2][i]);

printf("\n");

}

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内…”相关的问题
第1题
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 下面的程序构造一棵以二叉链

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

下面的程序构造一棵以二叉链表为存储结构的二叉树算法。

【函数】

BTCHINALR *createbt (BTCHINALR *bt )

{

BTCHINALR *q;

struct node1 *s [30];

int j,i;

char x;

printf ("i,x =" ); scanf ("%d,%c",&i,&x );

while (i!=0 && x!='$')

{ q = (BTCHINALR* malloc (sizeof (BTCHINALR )); //生成一个结点

(1);

q->1child = NULL;

q->rchild = NULL;

(2);

if((3);)

{j=i/2 //j为i的双亲结点

if(i%2==0

(4) //i为j的左孩子

else

(5) //i为j的右孩子

}

printf ("i,x =" ); scanf ("%d,%c",&i,&x ); }

return s[1]

}

点击查看答案
第2题
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 编写程序,利用带参数的主

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

编写程序,利用带参数的主函数main(),实现二进制文件的复制。比如,若该程序已生成可执行文件filebin.exe,在DOS操作系统命令状态下键入如下命令行:

filebin f0.fil f1.fil

则实现将已存在的二进制文件f1.fil依原样复制给名为f0.fil的二进制文件。

【函数】

include<stdio.h>

void fcopy(FILE *fout, FILE *fin)

{

char k;

do{

k=fgetc((1));

if(feof(fin))

break;

fputc((2));

}while(1);

}

void main(int argc,char *argv[])

{

FILE *fin,*fout;

if(argc!=(3))

return;

if((fin=fopen(argv[2],"rb"))==NULL)

return;

fout=(4);

fcopy((5));

fclose(fin);

fclose(fout);

}

点击查看答案
第3题
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】 计算n的合数。一个整数n可以有

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。

【说明】

计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:

5

4 1

3 2

3 1 1

2 2 1

2 1 1 1

1 1 1 1 1

共有7种划分。这种划分的程序如下所示。

【程序】

include <stdio.h>

int n[1000],m,k;

void output sum()

{

int j;

for(j=0;n[j]!=0;j++)

printf("%d\t",n[j]);

printf("\n");

}

void sum(int i)

if(m-n[i]<n[i])

{ m=m-n[i];

(1)

i++;

n[i+1]=0;

}

else

{

(2)

m-=n[i];

i++;

}

if(m!=n[i])

sum(i);

else

output_sum();

if(n[i]>1)

{

n[i]--;

(3)

}

else

{

while((n[i]==1)&&(i>O))

{

i--;

(4)

}

if(i!=0)

{

(5)

sum(i);

}

}

}

void main()

{

int i;

scanf("%d",&n[0]);

m=k=n[0];

for(i=1;i<=k;i++)

n[i]=0;

while(n[0]!=1)

{

n[0]--;

i=0;

sum(0);

m=k;

}

}

点击查看答案
第4题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明2.1】 以下C语言函数用二分插

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

【说明2.1】

以下C语言函数用二分插入法实现对整型数组a中n个数的排序功能。

【函数2.1】

void fun1 (int a[])

{ int i,j,k,r,x,m;

for(i=2;i<=n;i++)

{ (1);

k=1;r=i-1;

while(k<=r)

{ m=(k+r)/2;

if(x<a[m])r=m-1;

else (2);

}

for(j=i-1;j>=k;j--)

a[j+l]=a[j];

(3);

}

}

【说明2.2】

以下程序可以把从键盘上输入的十进制数(long型)以二~十六进制形式输出。

【程序2.2】

include<stdio.h>

main()

{ charb[16]={'0','l','2','3 ,4,'5','6','7','8','9','A','B','C','D','E','F'};

int c[64],d,i=0,base;

long n;

printf("enter a number:\n");

scanf("%1d",&n);

printf("enter new basc:\n");

scanf("%d", &base);

do

{ c[i]=(4);

i++; n=n/base;

} while(n!=0);

printf("transmite new base:\n");

for(--i;i>=0;--i)

{ d=c[i];

printf("%c",(5));

}

}

点击查看答案
第5题
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 将A,B,C,D,E,F这6个变量排成

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

将A,B,C,D,E,F这6个变量排成如图(a)所示的三角形,这6个变量分别取[1,6]中的整数,且均不相同。求使三角形三条边上的变量之和相等的全部解。图(b)就是一个解。

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 将A,B,C,D,E,F这6

程序引入变量a,b,c,d,e,f,并让它们分别顺序取1~6的整数,在它们互不相同的条件下,测试由它们排列成的如图(a)所示的三角形三条边上的变量之和是否相等,如果相等即为一种符合要求的排列,就输出它们。

【程序】

void main()

{ int a, b, c, d, e, f;

for(a=1;a<=6;a++)

for(b=1;b<=6;b++) {

if((1)) continue;

for(c==1;c<=6;c++) {

if((2))continue;

for(d=1;d<=6;d++) {

if((3)) continue;

for(e=1;e<=6;e++) {

if((4)) continue;

f=21-(a+b+c+d+e);

if((5)){

printf("%6d",a);

printf("%4d%4d",b,f);

printf("%2d%4d%4d",c,d,e);

scanf("%*c"); /*按回车键,继续找解*/

}

}

}

}

}

}

点击查看答案
第6题
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明] 完成以下中序线索化二叉树的

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

[说明]

完成以下中序线索化二叉树的算法。

[函数]

Typedef int datatype;

Typedef struct node {

Int ltag, rtag;

Datatype data;

*lchild,* rchild;

}bithptr;

bithptr pre;

void inthread (p );

{if

{inthread (p->lchild );

if (p->lchild==unll ) (1);

if (P->RCHILD=NULL) p->rtag=1;

if (2)

{if (3) pre->rchild=p;

if (p->1tag==1 )(4);

}

INTHREAD (P->RCHILD );

(5);

}

}

点击查看答案
第7题
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。 【说明】 以字符流形式读入一个文件,

阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。

【说明】

以字符流形式读入一个文件,从文件中检索出6种C语言的关键字,并统计、输出每种关键字在文件中出现的次数。本程序中规定:单词是一个以空格或'\t'、'\n'结束的字符串。其中6种关键字在程序中已经给出。

【程序】

include <stdio.h>

include <stdlib.h>

FILE *cp;

char fname[20], buf[100];

int NUM;

struct key

{ char word[10];

int count;

}keyword[]={ "if", 0, "char", 0, "int", 0,

"else", 0, "while", 0, "return", 0};

char *getword (FILE *fp)

{ int i=0;

char c;

while((c=getc(fp))!= EOF &&(1));

if(c==EOF)

return (NULL);

else

buf[i++]=c;

while((c=fgetc(fp))!=EOF && c!="&& c!='\t' && c!='\n' )

buf[i++]=c;

buf[i]='\0';

return(buf);

}

void lookup(char *p)

{ int i;

char *q, *s;

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

{ q=(2);

s=p;

while(*s && (*s==*q))

{ (3))

if((4))

{ keyword[i].count++;

break;

}

}

return;

}

void main()

{ int i;

char *word;

printf("lnput file name:");

scanf("%s", fname);

if((cp=fopen(fname, "r"))==NULL)

{ printf("File open error: %s\n", fname);

exit(0);

}

NUM=sizeof(keyword)/sizeof(struct key);

while((5))

lookup(word);

fclose(cp);

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

printf("keyword:%-20s count=%d\n",keyword[i].word,keyword[i].count);

}

点击查看答案
第8题
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 下面一段程序从给定的数组b中

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

下面一段程序从给定的数组b中找出值最小的元素,并输出该元素的数组下标、内存地址minaddr以及元素值本身。函数findmin负责在给定的数组中查找最小值,并返回最小值所在的内存地址,函数有三个参数:array是所要处理的数组;size是数组的大小;index负责从函数返回具有最大值的元素在数组中的数组下标。请填充空白,使其成为一个合乎要求的完整程序。

【程序】

//程序开始

include<iostream.h>

int *findmin(int *array, int size, int &index);

void main()

{

/****** 变量定义部分 ***********/

int b[10] = {34, 34, 23, 89, 1, 2, 13, 42, 5, 54};

(1);

int idx;

/******* 寻找最小值 ************/

minaddr = findmin(b, sizeof(b)/sizeof(int), idx);

/******* 输出最小值的有关信息 ************/

cout << "Min value index: "<<idx<<end1

<<"Min value address: "<<minaddr<<end1

<<"Min value: "<<(2)<<end1;

}

/******* 函数findmin的定义部分 ************

int *findmin(int *array, int size, int &index)

{

int min = 0;//max 是当前具有最小值的数组元素下标值

for(int i = 1;(3); i++)

{

if(array[i]<(4))

min = i;

}

(5);

return array + min;//返回最小值所在内存地址

}

点击查看答案
第9题
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明] 本程序实现对指定文件

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

[说明]

本程序实现对指定文件内的单词进行计数。其中使用二叉树结构来保存已经读入的不同单词,并对相同单词出现的次数进行计数。此二叉树的左孩子结点的字符串值小于父结点的字符串值,右孩子结点的字符串值大于父结点的字符串值。函数getword(char*filename,char*word)是从指定的文件中得到单词。char*strdup(char*S)是复制S所指向的字符串,并返回复制字符串的地址。

[C程序]

include <stdio.h>

include <ctype.h>

include <string.h>

define MAXWORD 100

struct node {

char*word;

int count;

struct node*left;

struct node*right;

}

struct node*addtree(struct node*P,char*w)

{ int cond;

if(p==NULL){ /*向树中插入结点*/

P=(struct node*)malloc(sizeof(struct node));

P->word=strdup(w);

P->count=1;

(1) ;

}

elseif((oond=strcmp(w,p->word))==0) (2) ;

else if(cond<0)p->left=(3);

else p->right=(4);

return p;

}

main()

{ Struct node*root;

char word[MAXWORD];

root=NULL;

filename="example.dat";

while(getword(filename,word)!=EOF))

root=(5);

}

点击查看答案
第10题
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 给定函数fun的功能是:将

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

【说明】

给定函数fun的功能是:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用“.”结束输入。

【函数】

int fun(char *c,int status)

{

if((1)=='')

return 1;

else

{

if((2)&&(3)&&(4))

(5)='A'-'a';

return 0;

}

}

main()

{

int flag=1;

char ch;

printf("请输入一字符串,用点号结束输入!\n");

do {

ch=getchar();

flag=fun(&ch,flag);

putchar(ch);

}while(ch!='.');

printf("\n");

}

点击查看答案
第11题
()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]设有定义#define I

()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]设有定义 #define ITEM struct item #define SIZE sizeof(ITEM) ITEM { int num; ITEM *next; }; ITEM *head=NULL; 下述函数定义实现按插表尾形式(即每一新表元素插入至当前所生成链表的表尾之后)生成一个正向线性链表。最后指向所生成链表表头的指针作为函数值返回。为生成一个线性链表,要求输入一批整型数据,并以-1作为结束标志。请填空完善程序。 ITEM *gene(ITEM *head) { ITEM *temp,*tail;/*tail指向当前链表尾结点*/ int intno; printf("Enter integer NO.,-1 to stop:\n"); scanf("%d",&intno); while (intno!=-1) { temp=(____(1)_____)malloc(SIZE); temp->num=intno; if (head==_____(2)_____) /*空表*/ { head=temp; tail=______(3)______; } else /*非空表*/ { ____(4)_______=temp; tail=temp; } scanf("%d",&intno); } return (_______(5)_______);

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改