首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数void fun(int x,int pp[],int * n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为30,则有4个数符合要求,它们是1、3
请编写函数void fun(int x,int pp[],int * n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为30,则有4个数符合要求,它们是1、3
admin
2018-03-28
56
问题
请编写函数void fun(int x,int pp[],int * n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为30,则有4个数符合要求,它们是1、3、5、15。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void fun(int x,int pp[],int * n)
{
}
void main()
{
FILE * wf;
int x,aa[1000],n,i;
system("CLS");
printf("\nPlease enter aninteger number:\n");
scanf("%d",&x);
fun(x,aa,&n);
for(i=0;i<n;i++)
printf("%d",aa
);
printf("\n");
/*********found*********/
wf=fopen("out.dat","w");
fun(30,aa,&n);
for(i=0;i<n;i++)
fprintf(wf,"%d",aa
);
fclose(wf);
/*********found*********/
}
选项
答案
void fun(int x,int pp[],int*n) { int i,j=0; for(i=1;i<=x;i:i+2) /*i 的初始值为1,步长为2,确保i为奇 数*/ if(x%i==0)/*将能整除x的数存入数组pp中*/ pp[j++]=i; *n=j;/*传回满足条件的数的个数*/ }
解析
本题考查:偶数的判定方法;整除的实现。
本题题干信息是:能整除x且不是偶数的所有整数。循环语句中变量i从1开始且每次增2,所以i始终是奇数。
整除的方法,已经讲过多次,这里就不再赘述了。对于本题目要求的不是偶数的判定方法,即该数对2求余不为0。除本题描述的方法外,还可以通过for循环语句直接把偶数筛出去,确保参与操作的数均为奇数。
转载请注明原文地址:https://kaotiyun.com/show/HJxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下函数用来求出两整数之和,并通过形参将结果传回。请填空。voidfunc(intx,inty,【】z){*z=x+y;}
函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,当s<t时返回负值。请填空。my_cmp(char*s,char*t){while(*s=
若i是int型变量,且有下面的程序段:for(i=4;i<6;i++)printf((i%2)?("**%d\n"):("##%d\n"),i);上面程序段的输出结果是______。
下列是用户自定义标识符的是
以下程序的功能是计算:s=1+12+123+1234+12345。请填空。main(){intt=0,s=0,i;for(i=1;i<=5;i++){t=i+【】;s=s+t;}print
以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符@作为输入结束标志。请填空。#includelong_______________;/*函数说明语句*/main(){longn
下面程序运行后的输出结果是_____。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a
下列程序的输出结果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;
若程序中定义了以下函数:doublemyadd(doublea,doubleB){return(a+B);}并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是______
以下函数调用语句中实参的个数是()func((exp1,exp2),(exp3,exp4,exp5));
随机试题
具有祛湿退黄功效的药物是()(2010年第41题)
分泌生长激素的器官是
横向磁矩减少至最大值的37%时,所需要的时间称为
下列递氢体中,为脂肪酸合成提供氢的是
下列与重组DNA技术直接相关的工作或过程是
甲是某公司起重机司机,1年前通过《特种作业人员操作证》复审,因工作调整离岗8个月,现又调回起重机司机岗位,则甲必须经(),确认合格后才可上岗工作。
某商品流通企业经销某种商品,销售单价为3000元/吨,单位商品的变动成本为2500元/吨,固定成本分摊为56万元,计划期预计销售量为2200吨。该种商品计划期的经营安全率是()。
下列古希腊哲学家中,唯物主义的代表人物是()。
一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【】的联系。
A、Itneedscleaning.B、Itneedsregularservicing.C、Itneedsanewbattery.D、Itwasruinedbywater.C细节题。开头男士就说他的表有问题,女士说这块表需
最新回复
(
0
)