首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
给定程序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
84
问题
给定程序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全国计算机二级
相关试题推荐
下列给定程序中,函数fun的功能是:从低位开始依次取出长整型变量s中偶数位上的数,构成一个新数存放在t中。高位仍在高位,低位仍在低位。例如,当S中的数为7654321时,t中的数为642。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文
有以下程序:#lnclude<stdio.h>structtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};
有以下程序#include<stdio.h>main(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=
有以下程序:#includestruetord{intx,y;}dt[2]={1,2,3,4};main(){struetord*p=dt:printf("%d,",++
下列定义变量的语句中错误的是()。
若有定义 inta,b,c;以下选项中的赋值语句正确的是()。
有以下程序:#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是()。
有如下程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);其输出结果是()。
设有定义:intx=0,*p;紧接着的赋值语句正确的是()。
若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。
随机试题
计算定积分
一患者右大腿、小腿和踝部收缩压与上肢收缩压相比明显降低。但整个下肢血压相差不大,此时应进行的检查是
急性白血病化疗诱导缓解后,病人头痛、呕吐、颈强直,但不发热,最可能发生
下述上颌侧切牙与上颌中切牙相比较错误的是
患者,女,28岁。手术后出现表情淡漠、嗜睡、烦躁、腹胀、心率加快,心电图早期T波低平、双相倒置,继之S—T段下降、Q—T间期延长和u波出现,是因为
下列选项中,属于管理类标准的是()。
脚手架搭设施工中,以下正确的是()。
招标文件中工程量清单标明的工程量,下列说法错误的是()。
网络营销中产品和服务的定价要考虑的因素包括()。
下列关于非货币性资产交换的表述中,不正确的是()。
最新回复
(
0
)