首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序MODl1.C中函数fun的功能:将一个十进制整数n转换成r(二~十六)进制形式。 示例如下。 输入125 16,则输出:7D 输入9 2,则输出:1001 请改正程序中的错误,使它能得出正确的结果。
给定程序MODl1.C中函数fun的功能:将一个十进制整数n转换成r(二~十六)进制形式。 示例如下。 输入125 16,则输出:7D 输入9 2,则输出:1001 请改正程序中的错误,使它能得出正确的结果。
admin
2022-10-25
69
问题
给定程序MODl1.C中函数fun的功能:将一个十进制整数n转换成r(二~十六)进制形式。
示例如下。
输入125 16,则输出:7D
输入9 2,则输出:1001
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
void fun(int num,int r)
{int i=0,a[32];
char b[16]={’0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’};
do
{
a
=num%r;
/************found************/
num%=r;
i++:
/************found************/
}while(num==0);
/************found************/
for(i;i>0;--i)
printf(”%c”,b[a
]);
}
int main()
{ int num,r;
printf(”\n请输入整数和进制:”);
scanf(”%d%d”,&num,&r);
fun(num,r);
printf(”\n”);
return 0;
选项
答案
(1)num/=r;或者num=num/r; (2)while(num>0);或者while(num!=0); (3)for(﹣﹣i;i>=0;﹣﹣i)或者for(i﹣﹣;i>=0;﹣﹣i)
解析
将十进制整数转换为r进制数可以采用基数除法,即除基数取余法,余数反序排列。
(1)数组a中存放变量num除以r的余数。nun等于变量num除以r的商。此处将“num%=r;”修改为“num/=r;”或者“num=num/r;”。
(2)当变量num的值为0时循环退出。正常进行循环的条件为nun不等于0,或者num>0。此处将“while(num==0);”修改为“while(num>0);”或者“while(num!=0);”。
(3)将得到的余数逆序存放,此时的i为余数的个数,此处需要i减1后,作为循环变量遍历数组a,循环条件为i>=0。此处将“for(i;i>0;﹣﹣i)”修改为“for(﹣﹣i;i>=0;﹣﹣i)”或“for(i﹣﹣;i>=0;﹣﹣i)”。
转载请注明原文地址:https://kaotiyun.com/show/tCkp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。下列所示的输入形式中正确的是(注:口代表空格字符)()。
有以下程序#include<stdio.h>#defineFNA(x)x*x#defineFNB(x)x+xmain(){inta=2,b=4;printf("%d,%d
有定义:inta=64,b=8;,则表达式(a&b)||(a&&b)和(a|b)&&(a||b)的值分别为()。
有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入555667777abc后,y的值为()。
有以下程序:#include<stdio.h>voidfun(intp){intd=2;p=d++;printf("%d",p);}main(){inta=1:fun(a);printf(
给定程序MODI1.C中函数fun的功能是:用下面的公式求x的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能输出正确的结果。注意:不要改动smain
有以下程序:#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是()。
设有定义:intx=0,*p;紧接着的赋值语句正确的是()。
随机试题
某实验室血糖参加室间质量评估活动,其测定结果为5.1mmol/L,靶值为5.0mmol/L,其室间评价血糖的偏倚为A.10%B.5%C.3%D.2%E.1%
男性,48岁。腹泻2天,每天10余次,大便黄稀,有少许黏冻伴轻度左下腹痛及里急后重感就诊。体检:除左下腹轻压痛及肠鸣音活跃外,无其他异常,临床疑为急性细菌性痢疾普通型。该患者诊断急性细菌性痢疾,其发病机制为
肋骨斜位摄影,主要是观察
右上角未标明法定标识的统计报表属于非法统计调查。()
随机变量x的概率分布表如下:则随机变量x的期望值是()。
下列词语中有错别字的一组是:
利用已知展开式把下列函数展开为x的幂级数,并确定收敛域.
设有如下程序:PrivateSubForm_Click()num=InputBox(”请输入一个实数”):P=InStr(num,",")IfP>0ThenP
Theworstagoniesofthewarwerenowbeginning,
U.S.healthofficialsareincreasingsurveillancemeasuresatdoctors’officesandinternationalborderstoguardagainstthes
最新回复
(
0
)