首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
字符串str由数字字符组成(长度不超过5个字符),可看作任意进制的数,请补充函数fun(),该函数的功能是:把 str字符串转换成任意进制的数,结果保存在数组xx中,由函数返回转换后数组腆的实际长度。其中x表示str原来的进制, y表示要转换成的进制。例如
字符串str由数字字符组成(长度不超过5个字符),可看作任意进制的数,请补充函数fun(),该函数的功能是:把 str字符串转换成任意进制的数,结果保存在数组xx中,由函数返回转换后数组腆的实际长度。其中x表示str原来的进制, y表示要转换成的进制。例如
admin
2013-06-12
65
问题
字符串str由数字字符组成(长度不超过5个字符),可看作任意进制的数,请补充函数fun(),该函数的功能是:把 str字符串转换成任意进制的数,结果保存在数组xx中,由函数返回转换后数组腆的实际长度。其中x表示str原来的进制, y表示要转换成的进制。例如,输入str=“1111”,x=2,y=10,结果输出:15。如果输入str=“15”, x=10,Y=2,结果输出: 1111。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 8
int xx[N];
int fun(char *str,int x,int y)
{
int sum;
int i=0;
char *p=str;
for(i=0; i<N; i++)
xx
=0;
sum=*p-’0’;
p++;
while (*p)
{
sum=【 】;
p++;
}
i=0;
while(sum!=0)
{
xx
=【 】;
【 】;
i++;
}
return i;
}
main ()
{
char str[6];
int i;
int n;
int x;
int y;
printf("Enter a string made up of ’0’ to
’9’ digits character:");
gets(str);
if(strlen (str) >5)
{
printf("Error:string too longer!,
please input again!\n\n");
exit(0);
}
for(i=0;str
;i++)
if(str
<’0’||str
>’9’)
{
printf("Error:%c not is ’0’ to
’9’ digits character!\n\n",
str
);
exit(0);
}
printf("The original string: ");
puts(str);
printf("\nINPUT x= ");
scanf("%d",&x);
printf("\nINPUT y= ");
scanf("%d",&y);
n=fun(str,x,y);
printf("\n%s is convered to",str);
for (i=n-1; i>=0; i--)
printf("%d",xx
);
}
选项
答案
sum*x+*p-’0’ sum%y sum=sum/y
解析
第一空:为了进行数字运算,必须要将字符串中的数字字符转换为数字,用数字字符减去字符’0’的ASCII码,就得到对应的数字。将x进制数转换为十进制数的算法是:以1001为例,对应的十进制数为l*x3+0*x2+O*x+1=x*(x*(x*1+0) +0)+1。第二空:将十进制数转换为y进制数的算法与将y进制数转换为十进制数的算法正好相反,十进制数对y取余,得到y进制数的最低位。第三空:将十进制数整除y后得到的数,再对y取余,则得到y进制数的次低位,如此循环,得到y进制数的各位,转换的结果存于数值xx[N]中。
转载请注明原文地址:https://kaotiyun.com/show/PrJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序______。 #define P 3 void F(int x){ return(P*x*x); } main() { printf("%d\n",F(3+5));} 程序运行后的输出结果是______。
有以下程序intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){returnf2(x)-f1
下列程序的输出结果是______。 struct abc { int a,b,c;}; main () { struct abc s[2]={{1,2,3},{4,5,6}}; int t;t=s[0].a+s[1].b; printf("%d\n",t)
有如下程序______。 long fib (int n) { if(n>2) returb(fib(n-1)+fib(n-2)); else return(2); } main() {printf("%d\n",fib(3));} 该程序的输出结果是__
若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是______。
软件工程研究的内容主要包括:______技术和软件工程管理。
执行以下程序后,输出’*’号的个数是______。#include<stdio.h>main(){inti,j;for(i=1;i<6;i++)for(j=2;j<=i;j++)putch
语句printf("a\bhow\’s\\\bhe\n");的输出结果是______。(说明:’b’是退格符)
下列程序的输出结果是______。 #include<stdio.h> main() { double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf("%d\n",d*y); }
数据的______包括集合、线性结构、树型结构和图状结构四种基本类型。
随机试题
关于脐膨出的叙述,正确的是
正确采集血样本是获得准确、可靠实验结果的关键。在样本采集前,应根据实验要求,决定采血方法、所需血量及适用抗凝剂。红色盖子采血管的添加的抗凝剂是
关于应激性溃疡不恰当的是
下列关于金融市场上利率的表述中不正确的是()。
下列不属于幼儿园教师职责的是()。
李某出生在浙江省宁波市,大学毕业后户口登记在杭州,1998年开始到上海经商,并定居在上海,李某也常去看望在苏州工作的妻子,问:李某的住所在()。
设行列式不具体计算D,试利用行列式的定义证明D=0.
对于连接到计算机网络上的计算机______。
宇宙是如何起【162】的,这是人类一直探索的奥妙。在很久以前,就有盘古开天地的神话传说。相【163】,天地本来是黑暗混沌的一团,好像一个大鸡蛋,盘古就孕育在中间。过了一万八千年,突然山崩地裂一【164】巨响,大鸡蛋裂开了。重而浊的东西渐渐下降变成了地,轻而
Moderntechnologyandsciencehaveproducedawealthofnewmaterialsandnewwaysofusingoldmaterials.Fortheartistthism
最新回复
(
0
)