题目详情
当前位置:首页 > 职业培训考试
题目详情:
发布时间:2023-10-16 15:29:02

[简答题]

给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#include
typedef struct aa
{ int data;
struct aa *next;
} NODE;
NODE *Creatlink(int n, int m)
{ NODE *h=NULL, *p, *s;
int i;
p=(NODE )malloc(sizeof(NODE));
h=p;
p->next=NULL;
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;
}
return p;
}
outlink(NODE *h)
{ NODE *p;
p=h->next;
printf("/n/nTHE LIST :/n/n HEAD ");
while(p)
{ printf("->%d ",p->data);
p=p->next;
}
printf("/n");
}
main( )
{ NODE *head;
head=Creatlink(8,22);
outlink(head);
}


更多"给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的"的相关试题:

[填空题]给定程序MODI1.C中函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0~(m-1)的值。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
文件MODI1.C内容如下:
#include<stdio.h>
#include<stdlib.h>
typedef struet aa
int data;
struct aa *next;
NODE;
NODE *Creatlink(int m)
NODE *h=NULL,*p,*s;
int i;
/**********found**********/
P=(NODE)malloc(sizeof(NODE));
h=p;
p->next=NULL;
for(i=0;i<m;i++)
s=(NODE *)malloc(sizeof(NODE));
s->data=i:
s->next=p->next;
p->next=s;
p=p->next;

/**********found**********/
return p;

void outlink(NODE *h)
NODE *p;
p=h->next;
printf("/n/nTHE LIST: /n/n HEAD");
while(p)
printf("->%d",p->data);
p=p->next;

printf("/n");

void main( )
NODE *head;
head=Creatlink(8);
outlink(head);

[填空题]给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
文件MODI1.C内容如下:
#include<stdio.h>
#include<stdlib.h>
typedef struet aa
int data;
struet aa *next;
NODE;
int fun( NODE *h)
int max=-1:
NODE *p;
/**********found**********/
p=h;
while(p)t
if(p->data>max)max=p->data;
/**********found**********/
p=h->next;

return max;

void outresult(int s,FILE *pf)fprintf(pf,"/nThe max in link: %d/n",s);
NODE *creatlink(int n,int m)
NODE *h,*p,*s;
int i;
h=p=(NODE *)malloc(sizeof(NODE));
h->data=9999;
for(i=1;i<=n;i++)
S=(NODE$)malloe(sizeof(NODE));
s->data=rand( )%m;
s->next=p->next;
p->next=s;
p=p->next;

p->next=NULL;
return h;

void outlink(NODE *h,FILE *pf)
NODE *p;
p=h->next;
fprintf(pf,"/nTHE LIST: /n/n
[简答题]下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数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;
/***********found************/
p=h;
while(p)

if(p->data>max)
max=p->data;
/************found************/
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)

[填空题]下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun( )的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <stdio.h> #include <conio.h> #include <stdlib.h> typedef struct aa { int data; struct aa *next; } NODE; /*************found**************/ fun (NODE *h) { int max=-1; NODE *p; p=h->next; while(p) { if(p->data>max) max=p->data; /*************found**************/ 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;
[简答题]给定程序中,函数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) { q = __1__ ; while (__2__) { if (p->data > q->data) { t = p->data; p->data = q->data; q->data = t; } q = q->next; } p = __3__ ; } } NODE *creatlist(int a[]) { NODE *h,*p,*q; int i; h=NULL; for(i=0; idata=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("The list is NULL!/n"); else { printf("/nHead "); do { printf("->%d", p->data); p=p->next; } while(p!=NULL); printf("->End/n"); } } main( ) {
[填空题]在给定程序中,函数fun的功能是:将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
文件BLANK1.C内容如下:
#include<stdio.h>
#include<stdlib.h>
#define N 5
typedef struct node
int data;
struct node *next;
NODE;
/**********found**********/
(1) fun(NODE *h)

NODE *p,*q,*r;
p=h;
if(p==NULL)return NULL;
q=p->next:
p->next=NULL;
/**********found**********/
while( (2) )
r=q->next;
q->next=p;
p=q;
/**********found**********/
q= (3)

return p;

NODE *creatlist(int a[]) NODEh,*p,*q;
int i;
h=NULL;
for(i=0;i<N;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)prin
[填空题]由N个有序整数组成的数列已放在一维数组中,下列给定程序函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low<high),然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中,直到low>high,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 10
/**********found**********/
void fun(int a[],int m)
int low=0,high=N-1,mid;
while(low<=high)
mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
/********found**********/
else if(m>a[mid])
low=mid+1;
else return(mid);

return(-1);

void main( )
int i,a[N]=(-3,4,7,9,13,45,67,89,100,180),
k,m;
printf("a数组中的数据如下:");
for(i=0;i<N;i++)
printf("%d",a[i]);
printf("Enter m:");
scanf("%d",&m);
k=fun(a,m);
if(k>=0)
printf("m=%d,index=%d/n",m,k);
else printf("Not be found /n");

[填空题]给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在数组sfname中,目标文件名放在数组tfname中。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
文件BLANK1.C内容如下:
#include<stdio.h>
#include<stdlib.h>
int fun(char *source,char *target)
FILE *fs,*ft;
char ch;
/**********found**********/
if((fs=fopen(source, (1) ))==NULL)return 0;
if((ft=fopen(target,"w"))==NULL)return 0;
printf("/nThe data in file: /n");
eh=fgetc(fs);
/**********found**********/
while(!feof( (2) ))

putehar(ch);
/**********found**********/
fpute(ch, (3) );
ch=fgetc(fs);

fclose(fs);
fclose(ft);
printf("/n/n");
return 1;

void main( )
char sfname[20]="myfile1",tfname[20]="myfile2";
FILE *myf;
int i;
char c;
myf=fopen(sfname,"w");
printf("/nThe original data: /n");
for(i=1;i<30;i
[填空题]下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(int a,int b)

int r,t:
if(a<b)
/*********found*********/
t=a;b=a;a=t;
r=a%b;
while(r!=0)
a=b;b=r;r=a%b;
/*********found*********/
return(a);

void main( )

int num1,hum2,a;
printf("Input num1 num2:");
scanf("%d%d",&num1,&num2);
printf("num1=%d num2=%d/n/n",num1,num2);
a=fun(num1,num2):
printf("The maximun common divisor is%d/n/n",a);

[简答题]给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时, 程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include double f1(double x) { return x*x; } double f2(double x, double y) { return x*y; } __1__ fun(int i, double x, double y) { if (i==1) return __2__(x); else return __3__(x, y); } main( ) { double x1=5, x2=3, r; r = fun(1, x1, x2); r += fun(2, x1, x2); printf("/nx1=%f, x2=%f, x1*x1+x1*x2=%f/n/n",x1, x2, r); }
[简答题]下列给定程序中函数fun的功能是:统计substr所指的字符串在str所指的字符串中出现的次数。 例如,若字符串为aass 1kaaas,子字符串为as,则应输出2。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include <stdio.h> int fun(char *str, char *substr) { int i, j, k, num=0; /********** found**********/ for(i=0, str[i], i++) for(j=i, k=0; substr[k]==str[j]; k++, j++) /********** found**********/ If(substr[k+1]==’/0’) { num++; break; } return num; } main( ) { char str[80], substr[80]; printf("Input a string:"); gets(str); printf("Input a substfing: "); gets(substr); printf("%d/n", fun(str, substr)); }
[简答题]给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本 文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include void fun(char *s, int a, double f) { __1__ fp; char str[100], str1[100], str2[100]; int a1; double f1; fp = fopen("file1.txt", "w"); fprintf(fp, "%s %d %f/n", s, a, f); __2__ ; fp = fopen("file1.txt", "r"); fscanf(__3__,"%s%s%s", str, str1, str2); fclose(fp); a1 = atoi(str1); f1 = atof(str2); printf("/nThe result :/n/n%s %d %f/n", str, a1, f1); } main( ) { char a[10]="Hello!"; int b=12345; double c= 98.76; fun(a,b,c); }
[简答题]改错题 下列给定程序中,函数fun( )的功能是计算并输出high以内的素数之和。high由主函数传给fun( )函数。若high的值为100,则函数的值为1060。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include int fun(int high) { int sum=0,n=0, j, yes; while(high>=2) { yes = 1; for(j=2; j<=high/2; j++) /**********************found***********************/ ifhigh%j==0 { yes=0; break; } /**********************found***********************/ if(yes==0) { sum+=high; n++; } high--; } return sum; } main( ) { clrscr( ); printf("%d/n",fun(100)); }

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码