首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,功能是:判断形参n中的正整数是几位数(输入数据的位数不超过4位),并将结果通过函数值返回。 例如:若输入的数据为123,则输出结果为:输入的数字是3位。 注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函
请编写函数fun,功能是:判断形参n中的正整数是几位数(输入数据的位数不超过4位),并将结果通过函数值返回。 例如:若输入的数据为123,则输出结果为:输入的数字是3位。 注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函
admin
2017-07-27
93
问题
请编写函数fun,功能是:判断形参n中的正整数是几位数(输入数据的位数不超过4位),并将结果通过函数值返回。
例如:若输入的数据为123,则输出结果为:输入的数字是3位。
注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
1 #include<stdio.h>
2 void NONO();
3 int fun(int n)
4 {
5 }
6 main()
7 {int n,place;
8 do{
9 printf(’’请输入一个4位以内的正整数:’’);
10 scanf(’’%d’’,&n);
11 } while(n<0 || n>9999);
12 place=fun(n);
13 printf(’’输入的数字是%d位\n’’,place);
14 NONO();
15 }
16 void NONO()
17 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/
18 FILE *fp,*wf;
19 int i,n,place;
20 fp=fopen(’’in.dat’’,’’r’’);
21 wf=fopen(’’out.dat’’,’’w’’);
22 for(i=0;i<10;i++)
23 {fscanf(fp,’’%d’’,&n);
24 place=fun(n);
25 fprintf(wf,’’%d\n’’,place);
26 }
27 fclose(fp);
28 fclose(wf);
29 }
选项
答案
3 int fun(int n) 4 { 5 int k=0; 6 if (n>999) k=4; 7 else if(n>99) k=3; 8 else if(n>9) k=2; 9 else k=1; 10 return k; 11 }
解析
主函数中首先要定义数据,然后需要手动输入一个用来进行判断的数字,注意数字要不超过4位,见程序代码第14~16行,而且这里为了防止输入时不小心的错误或者是有人故意错误输入而引发的不好的后果,在数据进入fun函数处理之前还要一个while函数来进行判断数据是否合理在进行处理,见程序代码第17行。然后数字进入fun函数,这里很明显会出现四种情况,数字的位数为1位,2位,3位或4位,所以我们用if…else if来区别这四种情况见程序第6~9行,在判断完之后我们就可以返回数字位数k的值然后再到主函数main函数中进行输出处理。
转载请注明原文地址:https://kaotiyun.com/show/0KDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<stdio.h>intf(intt[],intn);main(){inta[4]={1,2,3,4},s;s=f(a,2);printf("%d\n",s);}i
有以下程序:#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%5)==0)break;elsei--;}i+
有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4:printf("%d\n",F(a++,b++));}程序运行后的输出结果是()。
关系表中的每一行记录称为一个()。
本程序用冒泡法对数组a[]的元素从大到小排序,请在程序空白处填空。voidbubble(inta[],intn){inti,j,max,temp;max=n-1;do{j=0;for(i=0;i<max;i++)
诊断和改正程序中错误的工作通常称为()。
以下有关宏替换的叙述不正确的是()。
设x和y都是int类型,且x=1,y=2,则printf("%d%d",x,y,(x,y))的输出结果是()。
下面程序运行后的输出结果是()。#include<stdio.h>main(){inta[5]={1,0,4,2,0},b[5]={1,2,3,4,5},i,s=0;for(i=0;i<5;i++)s=s+b[a[
某二叉树中度为2的节点有18个,则该二叉树中有()个叶子节点。
随机试题
患者,男性,54岁。2个月前发现左肩胛骨及左上肢内侧疼痛,逐渐加重,伴有低热,2年前胸部X线检查正常。查体:左眼睑下垂,瞳孔缩小,眼球内陷。X线显示左前第2肋以上至肺尖部有高密度阴影。其诊断是()
孕妇,25岁。月经6~7天/40~44天,末次月经2010—10—09。超声检查胎儿较孕龄小2周左右,护士推算其预产期为
下列抗菌药物中,可影响细菌细胞壁合成的是()。
PMC模式下,在项目实施阶段,代表或协助建设项目业主进行的主要工作不包括()。
下列不宜采用海砂的是()。
背景资料:某公司中标修建新建道路,全长2.5km,双向四车道,其结构从下至上为:20cm厚石灰稳定碎石底基层,38cm厚水泥稳定碎石基层,8cm厚粗粒式沥青混合料底面层,6cm厚中粒式沥青混合料中面层,4cm厚细粒式沥青混合料表面层。项
国务院和地方各级人民政府用于实施义务教育财政拨款的增长比例应当()财政经常性收入的增长比例。
蓝蓝的天空中蓝色形成的原因是()
ReadthememoandtheCVofanapplicationbelow.Completethecandidateinformationthatfollows.Writeawordorphrase(inCA
TheValueofWritingWell[A]It’sthattimeofyearagain.No,not"theholidayseason".Imean,itisholidaytime,butfor
最新回复
(
0
)