题目详情
当前位置:首页 > 计算机考试 > 中级软件设计师
题目详情:
发布时间:2023-10-21 15:17:30

[简答题]【程序说明】 本程序先从文件读人各考生的准考证号(设为整型数)及成绩,并将其存放在一棵检索二叉树上,二叉树结点的健值是成绩,每个结点带一链表,链表结点存放取得该成绩的考生的准考证号。然后,程序按中序遍历检索二叉树,从高分到低分输出结果,使每行输出成绩及其取得成绩的考生的准考证号。 【程序】 #include < stdio. h > typedef struet idnode { int id; struct idnode * next; } ldNode; typedef struct marknode I int mark; ldNode * head; struct marknode * left, * right; } MarkNode; char fname [ ] = "sp07.dat"; main( ) { int id, mark; MarkNode * root = null; FILE * fp = fopen(fname," r" ); if(!fp) { printf("file%s open error, /n" , fname); exit(0); } while (!feop(fp)) { fscanf(fp," %d%d", &id, &mark); btree(&root, id, mark); } fclose(fp); print(root); } btree(MarkNod * * mpptr, int id, int mark) { ldNode * ip; MarkNode *mp = * mpptr; if (1) { if (mark==p->mark) addldNODE ( (2) , id); else if ( mark >mp -> mark) btree (&top -> left, id, mark); else btree(&mp-> right, id, mark); } else Imp = (

更多"【程序说明】 本程序先从文件读人各考生的准考证号(设为整型数)及成"的相关试题:

[简答题]【程序说明】
本程序先从文件读人各考生的准考证号(设为整型数)及成绩,并将其存放在一棵检索二叉树上,二叉树结点的健值是成绩,每个结点带一链表,链表结点存放取得该成绩的考生的准考证号。然后,程序按中序遍历检索二叉树,从高分到低分输出结果,使每行输出成绩及其取得成绩的考生的准考证号。
【程序】
#include < stdio. h >
typedef struet idnode
int id;
struct idnode * next;
ldNode;
typedef struct marknode I
int mark;
ldNode * head;
struct marknode * left, * right;
MarkNode;
char fname [ ] = "sp07.dat";
main( )
int id, mark;
MarkNode * root = null;
FILE * fp = fopen(fname," r" );
if(!fp)
printf("file%s open error, /n" , fname);
exit(0);

while (!feop(fp))
fscanf(fp," %d%d", &id, &mark);
btree(&root, id, mark);

fclose(fp);
print(root);

btree(MarkNod * * mpptr, int id, int mark)
ldNode * ip;
MarkNode *mp = * mpptr;
if (1)
if (mark==p->mark) addldNODE ( (2) , id);
else if ( mark >mp -> mark) btre
[填空题]用typedef定义整型一维数组: typedef char CHARACTER 则对整型数组a[5],b[5]可以定义为______。
[填空题]下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
void fun(long s,long*t)

int d;
long s1=1;
/*********found*********/
t=0;
while(s>0)

d=s%10;
/*********found*********/
if(d%2==0)

*t=d*s1+*t:
s1*=10:

s/=10;


void main( )

long s,t;
system("CLS");
printf("/nPlease enter s:");
scanf("%id",&s);
fun(s,&t);
printf("The result is:%id/n",t);

[填空题]下列给定程序中函数proc( )的功能是:将长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如,当s中的数为12345678时,则t中的数为8642。
请修改函数proc( )中的错误,使它能得出正确的结果。
注意:不要改动main( )函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
void proc(10ng s,long *t)

int d;
long s1=1, i=1;
*t=0;
while(s/i>0)
i=i*10;
i=i/10;
while(s>0)

d=s/i;
//************found*************
if(d%2! =0)

//************found*************
t=d*s1+t;
s1*=10;

s=s%i;
i=i/10;


void main( )

long s, t;
system("CLS");
printf("/nPlease enter S: ");
scanf("%1d", &s);
proc(s, &t);
printf("The result is: %1d/n", t);

[填空题]下列给定程序中函数fun( )的功能是:将长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如当s中的数为25846513时,t中的数为6482。
请改正函数fun( )中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conio.h>
void fun(long s,long *t)

int d;
long sl=l,i=1;
*t=0;
while(s/i>0)
i=i*10;
i=i/10;
while(s>0)

d=s/i
/*************found*************/
if(d%2!=0)

/*************found*************/
t=d*sl+t;
sl*=l0;

s=s%i;
i=i/10;


main( )

long s,t;
clrscr( );
printf("/nPlease enter s:");
scanf("%ld",&s);
fun(s,&t);
printf("The result is:%ld/n",t);

[填空题]下列给定程序中函数fun( )的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在冲。高位仍在高位,低位仍在低位。例如当s中的数为87653142时,t中的数为7531。
请改正函数fun( )中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conlo.h>
void fun (long s, long *t)
int d;
long s1=1;
/*************found**************/
t=0;
while(s>0)
d=s%10;
/*************found**************/
if(d%2==0)
*t=d*s1+*t;
s1*=10;

s/=10;


main( )
long s, t;
clrscr( );
printf("/nPlease enter s:");scanf("%ld",&s);
fun(s,&t);
printf("The result is:%ld/n",t);

[填空题]下列给定程序中,函数fun( )的功能是:将长整型数中每一位上为偶数的数依次取出,构成一个新数放在冲。高位仍在高位,低位仍在低位。例如,当s中的数为87653142时,t中的数为8642。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main,~数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <conio.h>
#include <stdio.h>
void fun(long s,long *t)
/**********************************/
int d;
long s1=l;
*t=0;
while(s>0)
d=s%10;
/**********************************/
if(d%2=0)
*t=d*sl+*t;
sl*=10

/**********************************/
s/=10;


main ( )
long s,t;
clrscr( );
printf("/nPlease enter s: "); scanf
("%ld",&s);
fun(s,&t);
printf("The result is :%ld/n",t);

[填空题]整型数分整型常量和_______。
[简答题][说明]
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:
m=a[k]×10k-2+a[k-1]×10k-3+…+a[3]×10+a[2]
其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、1表示负数。
运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注意,不考虑溢出情况,即数组足够大。
[函数]
int cmp(int *LA, int *LB);
/*比较长整数LA与LB的绝对值大小*/
/*若LA绝对值较大返回正值,LA较小返回负值,相等则返回0*/
int ADD (int *LA, int *LB, int *LC)
/*计算长整数LA与LB的和,结果存储于LC中*/
/*注意:正数与负数的和相当于正数与负数绝对值的差*/
/*数据有误返回0,正常返回1*/

if(LA == NULL || LB == NULL || LC == NULL)return 0;
int *pA, *pB, i, N, carry, flag;
flag = LA[0] + LB[0];
switch(flag) /*根据参与运算的两个数的符号进行不同的操作*/
case 0:
case 2:
Lc[0] = LA[0];/*LA与LB同号,结果符号与LA(LB)相同*/
pA = LA;
pB = LB;
(1) ;
break;
case 1: /*LA与LB异号*/
/*比较两者的绝对值大小,结果符号与较大者相同*/
flag = (2) ;
if(flag > 0) /*LA较大*/
LC[0] = LA[0];
pA = LA;
pB = LB;

else if(flag < 0)(/*LB较大*/

我来回答:

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

订单号:

截图扫码使用小程序[完全免费查看答案]
请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码