首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C程序代码,将应填入______处的语句写在答题纸的对应栏内。 [说明] 函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成 B(2≤B≤16)进制数并输出。该函数先将转换过程中
阅读以下说明和C程序代码,将应填入______处的语句写在答题纸的对应栏内。 [说明] 函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成 B(2≤B≤16)进制数并输出。该函数先将转换过程中
admin
2007-03-10
120
问题
阅读以下说明和C程序代码,将应填入______处的语句写在答题纸的对应栏内。
[说明]
函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成 B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:
# define MAXSIZE 32
typedef struct{
int * elem; /* 栈的存储区 */
int max; /* 栈的容量,即栈中最多能存放的元素个数 */
int top; /* 栈顶指针 */
}Stack;
[C代码]
int InitStack(Stack * S,int n) / * 创建容量为n的空栈 */
{ S->elem=(int *)malloc(n * sizeof(int));
if(S->elem==NULL)return-1;
S->max=n; (1)=O;return 0;
}
int Push(Stack * S,int item) / * 将整数item压入栈顶 * /
{ if(S->top==S->max){ printf(“Stack is full! \n”);return-1;}
(2)=item;return 0;
}
int StackEmpty(StackS) {return (! S.top)? 1:0;} / * 判断栈是否为空 * /
int Pop(Stack *S ) / * 栈顶元素出栈 * /
{ if(! S->top){printf(“Pop an empty stack! \n”);return-1;}
return (3);
}
void MultibaseOutput(long n,int B)
{ int m;StackS;
if (InitStack(&S,MAXSIZE)){printf(“Failure! \n”);return;}
do {
if(Push(&S, (4) )){printf(“Failure! \n”);return;}
n=(5);
}while(n!=0);
while(! StackEmpty(S)){ / * 输出B进制的数 * /
m=Pop(&S);
if(m<10)printf(“%d”,m); / * 小于10,输出数字 * /
else printf(“%c”,m+55); / * 大于或等于10,输出相应的字符 * /
}
printf(“\n”);
}
选项
答案
(1)S->top (2)S->elem[S->top++] (3)S->elem[--S->top] (4)n%B (5)n/B
解析
对于一个栈,首先应对它进行初始化,设置它的容量、栈顶等,一般有2种做法:
(1)top=0。在这种做法下,如果要进行入栈操作,则先将压人栈的元素值赋给栈顶指针所指向的单元,然后栈顶指针加1;如果要进行出栈操作,则将栈顶指针减1,然后将要出栈的元素弹出栈。
(2)top=-1。在这种做法下,如果要进行入栈操作,则首先将栈顶指针加1,然后把压人栈的元素值赋给栈顶指针所指向的单元;如果要进行出栈操作,则首先将要出栈的元素弹出栈,然后再将栈顶指针减1。
显然,在本题中使用的是第一种方法。(1)空填写S->top,使S->top=0。这样将整数item压入栈顶的语句为S->elem[S->top++]=item,即(2)空填写 S->elem[S->top++)。出栈操作是返回S->elem[--S->top)t这是(3)空的答案。
将十进制数n转换为二进制数时,把n除以2的余数压入栈,而用n除以2的商代替 n,依次类推,直到n等于0为止。这时,再把栈中的值一一弹出,就可得到二进制数据。类似地,把十进制数n转换成B进制数的过程也是如此,一般算法描述为(其中S为栈):
do{
n%B入栈;
n=n/B;
}while(n);
转载请注明原文地址:https://kaotiyun.com/show/gzjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
Word2007可以同时打开多个文档窗口,但是,文档窗口打开的越多,占用内存会()。
对两个或多个数据进行比较,常用对比分析法,通过分析其间的差异,揭示变化情况和规律。以下关于对比分析法的叙述中,不正确的是________。
在Access中,报表的主要目的是______。
1,2,…,5五个数中,任取两个数都可以算出平均值,其中有些平均值是相等的。那么,不同的平均值共有(26)个。
在某机床上加工一批零件,要求其直径控制在1.5±0.2cm。检验员定时抽查测量了产品的直径,并绘制了如下的质量控制图。检验结论是:有()次检查发现质量问题,需要进一步查明原因并改进。
在Excel的A1单元格中输入函数“=LEFT(“信息处理技术员”,2)”,按回车键后,A1单元格中的值为()。
字符串编辑有3种基本操作:在指定位置插入一个字符、在指定位置删除一个字符、在指定位置用另一个字符替换原来的字符。将字符串ABCDE,编辑成ECDFE,至少需要执行(6)次基本操作。
在Excel2007中,设单元格A1中的值为-1,B1中的值为1,A2中的值为0,B2中的值为1,若在C1单元格中输入函数“=IF(AND(A1>0,B1>0),A2,B2)”,按回车键后,C1单元格中的值为______。
在实施项目过程中,信息处理员小王在“时间T-项目剩余工作量R”平面坐标系上动态地记录了项目实施进度,并与计划进度做了对比。在项目实施中途,从图上可以看出该项目()。
随机试题
《行政诉讼法》规定,人民法院审理上诉案件时间,可以做出()等决定。
通过G蛋白耦联通路发挥作用的有()
关于宫颈癌,下列正确的是( )
A.变更注册B.注销注册C.重新注册D.不予注册E.暂缓注册医师在医疗活动中因医疗事故造成患者死亡,由县级以上卫生行政部门对其
下列项目中,不属于劳务报酬所得的是()。
______技术常用来对依恋进行研究,是在一系列标准事件的进程中实施的综合测量方法。
一位博士生导师说:现在的博士生论文,语句越来越难读懂,本届学生交给我的博士生论文都写得很差,句子不通,还有不少错别字。下列哪一个选项最能削弱这位大学博导的论证?()
2018年,B市新经济实现增加值10057.4亿元,比上年增长9.3%,占全市地区生产总值的比重为33.2%,比上年提高0.4个百分点。全年全市新设立的企业中,信息服务业、科技服务业企业合计达到70661家,占比为38.5%,注册资本
Theusualwaytoensurereliabledeliveryistoprovidethe(71)withsomefeedbackaboutwhatishappeningattheotherendof
「木村専務はいらっしゃいますか。」「あいにく木村は______が、何か急用でございましょうか。」
最新回复
(
0
)