如图,在C++语言中,int不是只能表示整数吗?为七龙珠悟空红毛第几集一行写个int i = 34.7?那i的值是

用C语言求水仙花数!_百度知道
用C语言求水仙花数!
思路:求100到999直接的水仙花数,可以通过for循环依次遍历各数,分别求出每个数各位上数的立方和是否等于该数,等于该数说明是水仙花数,输出该数。参考代码:#include&math.h&#include&stdio.h&int&main(){ int&i,a,b,c;
for(i=100;i&=999;i++){
a=i/100;//求百位上数&
b=(i/10)%10;//求十位上数
c=i%10;//求个位上数
if(i==a*a*a+b*b*b+c*c*c)
printf(&%d&is&right\n&,i); }
return&0;}/*输出:&153&is&right370&is&right371&is&right407&is&right*/
其他类似问题
为您推荐:
提问者采纳
不过:while(n&gt,当n==0的时候循环结束; for(i=1,s,不然它会从第一个开始一直累加上去的; printf(&10; / s=n%10;i&lt,上面也有程序; { do { n=i; sum=sum+s*s*s;%d&*所以你这里可以直接从i=100开始。 #include&lt,水仙花数好像是指一个n位数(n&i++) /,至于你这个sum=0,然后值得出了一个不是水仙花数的水仙花数,*&#47.h&stdio。在百度百科上有介绍的;*do-while循环是指当while后面的表达式值为真的,而你的本意是指当n&gt,继续执行循环思路没大问题,每次循环之后得给sum重新归零;的语句是放在do-while循环的后面还是前面就由你自己了*/0),所以你这里应该改成; 还有,i; n=n&#47,所以你这个就是当n==0的时候,sum);=3)的各个位的n次方的和等于这个数,那这个数就是水仙花数;0的时候执行循环,,就继续执行循环,sum=0; void main() {
} while(n==0);=10000,记得我以前也忘记了重新归零; if(i==sum),
提问者评价
!我老是搞不清终止条件!
其他3条回答
&code c #narcissus-number.c&
#include&stdio.h&
#include&stdlib.h&
int ipow(int b, int n)
int r = n & 0 ? b : 0;
for (int i = 1; i & i++)
int main(int argc, char* argv[])
n = atoi(argv[1]); // 数字的位数,至少3位的正整数
char buf[8 * sizeof(int) + 1];
for (int i = ipow(10, n - 1); i & ipow(10, n); i++)
sprintf(buf, &%d&, i);
int sum = 0;
for (int i = 0; buf[i] != '\0'; i++)
sum += ipow(buf[i] - '0', n);
if (sum == i)
printf(&%d\n&, sum);
下面是编译和运行结果:
&code bash&
$ gcc --std=c99 -Wall -o narcissus-number narcissus-number.c
有好的方法&#include&&stdio.h&int&main(void){&&&&int&a,b,c;&&&&for(a=1;a&=9;a++)&&&&&&&&for(b=0;b&=9;b++)&&&&&&&&&&&&for(c=0;c&=9;c++)&&&&&&&&&&&&&&&&if(100*a+10*b+c==a*a*a+b*b*b+c*c*c)&&&&printf(&%d%d%d\n&,a,b,c);&&&&return&0;&}
你这样做只能求出1到10000里面的一部分水仙花数,因为你的SUM是一直都在增加的,应该在外循环里的最后+个将sum清零
水仙花数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁计算机二级考试题_百度知道
计算机二级考试题
}(9) 有以下程序段;n&quot,b,4.dat”; printf(&quot,20 C)11;
y2=fun( 【19】 ),21
C)2、填空题(每空2分,6:case ′I′:CCDAB
41-50;t=x[p1];
while(a:18;(k*(k+1));#include &lt,a;
i+=m+1.dat&}else if(x[m]}t=x[p0];n&
C)y=x:v1+=1; printf(&quot,p;!=b)
while(a&,2;j) { printf(&,i,*(z++)),b); p0=m.1f,&c),即将t所指字符串复制两次到s所指内存空间中, k=2;&#92,++*x,b=14,int n){ int p0。若运行时输入命令行,(37)以下程序的输出结果是#include void prt (int *x;a[p]);3){i+=2; p=&a[0][0];} main() { int a=10;
程序的运行结果是A)CDEF B)ABEF
C)ABCD D)CDAB(43)有以下程序
#include &lt,u,12345;fun(while((_【16】_______);%d,&x),x[1][0]);m=i+x+y、选择题((1)-(10)每题2分;=3,1.age).c=101;回车&}(13)以下程序统计从终端输入的字符中大写字母的个数,%2,3,&a,v1=4,否则可能导致数据丢失(50)有以下程序
#include &lt,int y)
{static int m=0.h&
f=add,int n) { int i,v2=7
D)v0=13,b=13,c=%d\ &#47,5
B)5,&b;%d&quot,2,42;%d\;n&%d&
i1=f(2),20
12;10,6),&c);}
char a= ‘A’,m;
B)12, bbxxyyC)%lf&quot,22,3
B)2,若运行时从键盘输入,bbxxyy
D)} } main() { int i=0,不会改变对应实参的值B)函数可以返回地址值C)可以给指针变量赋一个整数作为地址值D)当在程序的开头包含文件stdio,a+b);,7,ps&
printf(&func1(i);n\} } void func2(int i) { printf(&
ps=&s[0],8;
{ prinf(&} main() {int a=1,正确的是 x=-1; %d%d&n\ /
main(int argc,c);
程序执行后的输出结果是
C)b D)a二;i++) printf(&quot: case ′e′,合法的一组C语言数值常量是A) 0x8A
C);k=N*N*5.10
则以下函数调用语句错误的是
A)k=(*f)(a;En&quot,y2,b=10;
int *p1=&a,c=%d\n&quot,sin(x)
4; x=y=1,c=3,21 D)11; printf(&quot,k,b);i&;n&quot,使下面程序段的功能为完全相同s=1.0;10;%d&
printf(&}x,c=19 (19)下列程序段的输出结果是 int a=1234; B)x;,char *t){ char *p=t;i++){ n=n[i-1]*2+1;for(u=0:BDDBA
21-30;0;.h&quot,&b,c=19.0;
fun2(‘E’,&I++) scanf(&quot:#define N 100 则以下叙述中正确的是A)宏定义行中定义了标识符N的值为整数100B)在编译程序对C源程序进行预处理时用100替换标识符NC) 对C源程序进行编译时用100替换标识符ND)在运行时用100替换标识符N(49)以下叙述中正确的是
A)C语言中的文件是流式文件;
strcpy2(str1 , B)scanf(“%d”; } } while(c;n&%d %d\n&quot,3; printf(&quot,j;;printf(&quot,从键盘输入 ADescriptor(表示回车),i2); while(;;
fp=fopen(“abc,char *argv[])
{int i=1:proc。(6) 以下程序的输出结果是【6】;,b=3,++m; char st[]=&quot. 程序调试
6,%d& D)printf(“%d\A)-1
D)32(48) 若程序中有宏定义行.0&#47,b,8;for(u=0,2,123;
scanf(&quot。#include &lt:%d\***a=%d; } A)3
D)随机数 (36) 有以下程序#includevoid fun(int *a;
while(b>后,主函数中将调用fun函数计算;
for(i=0;,int b){return+b},-2L;
y1=fun( 【18】 );%c&quot,s),1:case ′A′,则能正确执行的语句是A)scanf(&quot.177
D) 028(15)以下叙述中正确的是 A)构成C程序的基本单位是函数 B)可以在一个函数中定义另一个函数 C)main()函数必须放在其他函数之前 D)所有被调用的函数一定要在调用之前进行定义 (16)若在定义语句,123;for(i=0;n&} while(;}(12)下列程序中的函数strcpy2()实现字符串两次复制, ‘F’),bbxxyy(39) 有以下程序 #include main() { FILE *w&(46)若有以下定义和语句
union data
{}(14)以下程序中, j=10,调用strcpy2后;;%d& p=j;3;;{int t,*s++
13;}}(7)以下程序运行后的输出结果是 【7】 ;
printf(“%d %d\ D)scanf(“%d”,把最大的数与最后一个数对换,123;回车&gt:case ′E′;efgh&);;double fun(double x)
return(x*x-2*x+6); s[0]=k;stdio,5(29)有以下程序
fun(int x)
{int p:int a,其它依次类推;math.54321,7,i+' fclose(fp),判断i& printf(& for(i=j;
D)k=f(a.k&%d\n& sum=fun((a++?,c);
k=fun(j;string:int a=25.队列是一种特殊的线性表;%d\n&quot,aa),i2;#'.s--;,共40分)(1)在面向对象方法中,j; float b=123;I&v0=%d:1-10;26,z; } } A)4
D)6 (34)以下函数返回a所指数组中最大值所在的下标值 fun(int *a; }}(11)以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数; prt (&a,20,fun(7)),%d;}printf(&\n&;i&lt.x[0]
12;%d\age);%d&#92,x,a;}程序的运行结果是A)732
D)874(23) 设有以下程序段 int x=0;%d&quot,a,将其中最小的数与第一个数对换; n/ 【13】______=t; printf(&
程序的运行结果是A)12
7(44)设有以下语句
typedef struct TT
{char c,st[i]),v2=8
C)v0=7,m); fclose(fp),它的根结点数目是A)有且只有1
B)1或多于1
D)至少2(3)在面向对象方法中; float f,&quot,b); x[n-1]=t; void func2(int i)、填空题答案; x[p0]=x[n-1]!='for( y&
{FILE *fp,i,当执行p++,8;while(n,11
C)11,&p).共60分))(1)下列选项中不属于软件生命周期开发阶段任务的是
A)详细设计
B)概要设计
C)软件维护
D)软件测试(2)树是结点的集合; printf(&quot,(*f)(),v1=4;C)scanf(&quot,a;jif (a}main(){int c[10]={1;n&
while(i& fscanf(fp,类之间共享属性和操作的机制称为 【1】 ;;}(8)有以下程序, char b){printi(“%b%c”,1fp,*p=&c,则输出结果为A)2 0 0
D)2 4 6(41)有以下程序
int add(*fun函数的功能是将a所指数组元素从大到小排序*/\sex)); int v0=1;,若t所指字符串为efgh,b;;
if(x==0║x= =1) return(3),sum),1;
C)k=*f(a; fp=fopen(&
printf(&%d&void strcpy2(char *s; printf(&quot,n); } 在下划线处应填入的内容是 A)i=p
B)a[p]=a[i]
D)p=i (35)下列程序执行后的输出结果是 main() { int a[3][3];%d\n&
char sex,v1=%d. 3 7 5
B)0;之后.#include #include main(){ int num[26]={0},b=14,k, s[2];;n”,%d&#92,str2),接着执行以下选项中的语句,9;*给a赋值 b=20.4,3;=n
B)scanf(&}main(){char ss[10]=”acc”,k);j共执行的次数是 main() { int i=0;
fseek(fp,7; i++)p[i]=i+1,&(ps&
k=fun(j:case ′U′,7:&while(_【9】_______){ s=s+1. 1
9;printf(“%s; if(i&lt,21,y2);scanf(&quot,str1),&quot,v1=4,s);;
则以下语句正确的是A)x=10;%d& } s+=i!=0)s+=++x,4. 54321
7; printf(&quot,v2=%d\n& _【10】_______,s); do{ switch(c=getchar()) { case ′a′。例如、选择题答案,2; printf(& } A)11;
D) scanf(&quot,(11)-(50)每题1分; for (;%d,v2=0; char c,&n);s=%f&#92,aa[10]=”bbxxyy”;%3d%3d%3d\;abcd&quot,v1,10);n&quot,41,0。main(){
int m=011;),SEEK_END);3){i+=2,i;i=j=x[0],11&lt,b=13;
while( 【15】 =*p++).5
D)1234;k=1;);d1;
若运行时输入,2,b, int*z) { printf(&,”wb+”),&quot,t;}CIN,num[1]中统计字母B的个数,则以下语句的输出结果是
s=32;i++)Printf(&n”;%s\
}s[5]。请填空;
则下面叙述中正确的是
A)可以用TT定义结构体变量
B)TT是struct类型的变量C)可以用CIN定义结构体变量
D)CIN是struct TT类型的变量(45)有以下结构体说明,str2[]=&quot,因此只能顺序存取数据
B)打开一个已存在的文件并进行了写操作后:CABCD
BBBDB二;b) a-=b.5,实现信息隐蔽是依靠A)对象的继承
B)对象的多态
C)对象的封装 D)对象的分类(4)程序设计语言的基本成分是数据成分;for (i=0;,a;s=%f\ifor(j=i+1,22 (38) 有以下程序,则下面程序的运行结果是 #include main() { char c,9:v0+=1,&quot, int*y;n&quot,p).h&gt。#include &Enter a,s); A)是死循环
B)循环执行两次
C)循环执行一次
D)有语法错误 (28)有以下程序 fun(int x,a).5、运算成分,42;n&quot,下列说法错误的是
A)p向高地址移了一个字节
B)p抽高地址移了一个存储单元C)p向高地址移了两个字节
D)p与a+1等价(31)有以下程序
{int a=1;n”,11
D)11;,41; } 程序运行后的输出结果是 A)2;%d\ printf(&quot,&b),b;,a=5;%d&u++) printf(&
B)k=add(a. (x+8),c=19
C)### a=25,函数fun的功能是计算x2-2x+6!=0)t++,b;%3d%3d&#92,&k,y;!&; }
printf( “%c%c”:y1=(x+8)2-2(x+8)+6y2=sin2(x)-2sin(x)+6请填空,c).用#号结束输入,b),1(18) 若已定义; if(i&gt,5;;n&
则以下scanf函数调用语句中错误引用结构体变量成员的是
A)scanf(“%s”,z),c),7,5!x;
while(*s++=*t++);while((*t++=*s++).#include #define M 5#define N M+Mmain(){%c&i++,则程序输出结果是 【8】 ;}main(){ int a[10];printf(&quot,n)。 (4)线性表的存储结构主要分为顺序存储结构和链式存储结构,b);,v1=0,合并形成一个新的字符串,a; if(i&(17) 有以下程序 main() {int x!=0){ d=n%10,21.h时;%d&m{ if(x[m]&gt.(5) 【5】 的任务是诊断和改正程序中的错误,才能读到第1个数据D)当对文件的读(写)操作完成之后;i&n&quot. 元组
{int j=1,i1; }
程序运行后输出结果是 A)30
D)出错(21)若运行以下程序时:& printf(& prt (&a,k;k++) s=s+1,变量k中的值为 int k=3; p0=p1=0,x);4;}一,4,v1=4,v2),3;2
D)n(n+1)&#47.#include main(){ int i.继承
2,9,c++), *p.#include viod f(int x[];
char ch[]=”abcd”,y1;
for(I=0;n”,b=%d:1;
执行后的输出结果是A)1
D)4(32)下列程序执行后的输出结果是 void func1(int i),1234,9;y--)if(y%3= =0) printf(&quot,41 B)11;;d1;2(6)下列叙述中,++y,原有文件中的全部数据必定被覆盖
C)在一个程序中当对文件进行了写操作后;,n[4]={1},int n)&#47,x[0][1];,1;iif(a[i]&gt,c);,其中 【3】 反映了模块内各成分之间的联系;程序输出的结果是
A)***a=25,可以给指针变量赋NULL(27)以下程序段的描述,b=2,%d。(3)耦合和内聚是评价模块独立性的两个主要标准;n&a) b-=a;.dat&u&lt: case ′u′:#include void fun(char *t;; k=s[1]*10;i++)fwriter&ch[];%d&#92:DCBCA
31-40.0/请填空,c),5,a,3;n&,1.c=getchar()
i2=f(1+1)。 (2)一个关系表的行称为 【2】 ,*p=&a;);u&lt,k);
void fun1( ){ a= ‘C’l b= ‘D’;}main(){ char str1[100]=&quot,且变量已正确定义和赋值for(s=1,0};
#define N 5
#define M N+1
#define f(x) (x*M)
{int i1.h&gt,5; printf(& return(p).h&gt,d),i,请填空、控制成分和 A)语句成分
B)变量成分
C)对象成分
D)传输成分(5)冒泡排序在最坏情况下的比较次数是 A)n/ double c=12345,30};}
printf(“%d&#92.1f&
printf(&quot,1,num), 31
12;),t,%s\,n=0;以下三目运算符(.5 (20)有以下程序 main() {int a=0;,2,&s[0],k=1;for(i=1;%d;=10,b;
}main(){ A)不定值
D)20 (26)以下叙述中错误的是A)改变函数形参的值.#include main(){ int n=12345;r&
fread(&t;}
执行后的输出结果是A)7
D)0(30)在16位编译系统上; void func1(int i) { printf(&quot.h&gt:)所构成语句的执行后a&u++) scanf(&quot,4;n”;2
C)n(n-1)/ a=10;; int i=20,y2=%lf&#92,n); fp=fopen(&)if(isupper(c)) num[c-‘A’]+= 【17】_______,fp);* 输出计算结果 *&#47,v2=12 (22) 有以下程序#includemain(){int y=9,可以作为软件开发工作的基础和依据 C)便于用户,j);-;}
{ do {x=x*x?printf(&quot!=′\n′),*ps,s[0];
p=x-fun(x=2),x[i]);
printf(&quot,i,v0,s); int a[4]:case ′O′,*p=&c,b++b:printf(&quot.顺序 5;=25&&b--&lt,%d\n&}程序运行的结果是A)1,y1,右有定义int a[ ]={10; fprintf( }(15) 以下程序的输出结果是_【20】______;
printf(&quot.5,2; for(i=1,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是 A)每个C程序文件中都必须有一个main()函数 B)在C程序的函数中不能定义另一个函数
C)C程序可以由一个或多个函数组成
D)在C程序中main()函数的位置是固定的(11)将E-R图转换到关系模式时;,6.name);10,int y){return(x+y);A' return m,a[1][2]);;=2&&c,b=14,&a);
printf(“%c\%c;C)scanf(“%c”, s=0: case ′o′,4,8,n,c=19
D)### a=26;func2(i);
该程序生成的可执行文件名为;fun(c+4;;(41)有以下程序
#include &x[p1]= _【12】_______.456:246&lt:CACDC
11-20,6;arge){n=n+strlen(argv[i]),num[0]中统计字母A的个数;;
fclose(fp);%d&
s= 【14】 ,s=0,a,不属于软件需求规格说明书的作用的是A)作为确认测试和验收的依据B)反映出用户问题的结构,j=30;%d&quot,C) 0,实体与联系都可以表示成 A)属性
D)域 (12)下列定义变量的语句中错误的是
A)double int_,5, bbxxyy
B) acc,12345,d; func1(i),b),for(m=0,char *s){while(*t,0,b= ‘B’.5
C)1234;(k*(k+1))、开发人员进行理解和交流D)便于开发人员进行需求分析 (7)下列叙述中错误的是
A)一个C语言程序只能实现一种算法 B)C程序可以由多个程序文件组成 C)C程序可以由一个或多个函数组成 D)一个函数可单独作为一个C程序文件存在(8)下列不属于软件工程的3个要素的是A)方法
D)环境 (9)下列叙述中正确的是A)数据库系统是一个独立的系统,i);f(a; 给b赋值 *&#47,++*y; i&v2+=1!x);a+b=%d\} A)hello
D)hlm (33)在下述程序中,&quot,
*p=*p1*(*p2),6;y1=%lf,c;),a+b); printf(&k&lt,必须将它关闭;i) {i=x[m],j=0,3,40
11: case ′i′; default!=0),6,*p2=&b2010年9月全国计算机等级考试二级C语言笔试试题及答案一; }
A)v0=11,b=0,aa); printf(&quot,1
D)2,n++),v2=11
B)v0=8;%d%d%d&}程序运行结果是A) accxyy ,42;) { i+=k;9; s^=32;),c=20,必须先关闭该文件然后再打开;%d& 则 A)运行程序段后输出0
B)运行程序段后输出1 C)程序段中的控制表达式是非法的
D)程序段执行无限次 (24)有以下程序 fun(int x,I,t);%d,y,i=2.exe,m=I,--y);(47)若变量已正确定义,y++; z=x++,x[0][0],%2;printf(&(10)执行以下程序的输出结果是【11】______:
proc 123 45 67
则程序的输出结果是A)3 B)5
C)7 D)11(42)有以下程序
void fun2(n&quot,9,c=19
B)***a=26,m),b=40,b=%d.请填空;fprintf(###a=%d,c); } 执行后的输出结果是
D)3(25)执行下面的程序段后;
C)char For
D)float USS(13)下列叙述中正确的是 A)C语言编译时不检查语法
B)C语言的子程序有过程和函数两种 C)C语言的函数可以嵌套定义 D)C语言的函数可以嵌套调用(14)以下选项中,循环队列是队列的【4】存储结构;,st[i]);;。main(){,friend,s所指字符串为n&n&quot,b),k)
执行后的输出结果是A)5;i&lt,n=11; } 程序运行后的输出结果是 A)20 30
D)30 20 (40) 有以下程序
{int x[3][2]={0},p1、变量定义和赋值语句
struct STD
{char name[10];;%d
%d\for(i=0; B)int _printf(“%d”
其他类似问题
为您推荐:
计算机二级考试的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言求救2_百度知道
C语言求救2
int main(){
int k,n的值为(
(D) 31!’,j);printf(& printf(&quot.14
(D) *p=&m27. 用来统计字符串长度的函数是(
) (A) strcat( )
(B) strcmp( )
(C) strcpy( )
(D) strlen( ) 29. 已知日期记录描述为,且n=2。 int aa = 2 ; 2 ) && (n = 1) 运算后。在主函数中输入圆的半径; i-- )
,在主函数中输出结果;t%d&i=%d
j=%d &quot,80;34. 设
(D) date1;}
j=6132. 下列程序段中printf语句执行的次数为(
)#include&lt, int ) .h&gt!”,j). 编写函数求3个学生的成绩的平均值, m=3;
(D) 833. 以下是死循环的程序段是(
(A) int x.14, b ) 。(A)p=&m; }
int i=5!’ ,’d’;
while ( a ) { a--,关于函数说法正确的是(
函数的定义可以嵌套(B)
函数的调用可以嵌套(C)
函数的定义和函数的调用均不可以嵌套(D)
以上选项均错误21. 以下正确的函数原型声明是( ) (A)void f2 (抽检的产品总数);=0); 则a[3]的值为(
(D) 9023. 假设int a=45; (A) 0
(D) 626. 若有float *
语句之后。(A) date, b=36;; }
}while(k&gt,’o’, b ) ; x&
(B) void f2 (
{ ++k ,aa);22. 有数组int a [5] = {50. 编写函数求圆的周长。 (A) char str[6]=” (D) char str[6]={‘g’,调用编写的函数求出平均值并返回结果,计算并输出产品的合格率(合格率=合格产品数量/
return 0;%d\
k&int main(){
int k,60,k;
(D) void f2 ( *p = 4;2010&; (B) char str[]=”
for ( j =2;
{ printf(& for ( k =1;
(B) month=6;0’}。2;
(C) char str[6]=’}date1,调用编写的函数求出圆的周长并返回结果,4,则正确的赋值方式是(
),i. 某厂家现要对产品进行抽检,’\%d&25. 以下程序段的执行结果是(
);=2; j++,90};
(C) void f2 (
k++ ) i++,从屏幕上输入待检测的产品的检查结果:struct date{
int year,已知待检测的产品数目是1000;30. 下列程序的输出是(
)#include&lt,在主函数中输出结果20. C语言中.year=2010; for ( k =1,j=60; 则使指针变量p指向变量m的正确的赋值语句是(
); 则执行完if(a) b++!”; int a ) :“日”,0表示不合格.year=&,70:用1表示合格, *p = &4 .h&gt,’o’。在主函数中输入三个学生的成绩, n为整型变量,则逻辑表达式(m = 7 &
j .day=1,’;假设现有日期;(C) date1;;
{ x++, i=50;
return 0;for(x=0 。3,b的值是( ) (A) 36
(D) 4624. 下面对字符串赋初值的语句中错误的是(
&#47:C32,(float)sum/int main(void){;
int i.14*r*2:&#92,累计合格数
if(temp==1)
printf(&请输入第%d个学生的成绩;double girth(double r);1000);n&n&quot,&score[i]);i&lt,哈哈,temp=0;
for(i=1;/float Avg(float fenshu[];int main(void){
float score[3]={0},int length):%f\}float Avg(float fenshu[];
printf(&quot.h&;
printf(&quot:#include&i++)
scanf(&quot:;
return 0;}程序题2;} 第3题;n&}double girth(double r){
printf(&quot,girth(temp)),&temp);n&stdio,sum=0:%lf\
for(i=0:#include&;请输入半径;产品合格率为;%lf&
scanf(&quot:A程序题1;length,
printf(&quot:BDCBCC26-27;
return (float)(sum&#47楼上少了一题:AD28题空,C语言的题目用C++来回答;;%f&周长为;;3个学生的平均成绩是;n&quot:B34;,你没写
printf(&quot:\3;i&i++)
sum+=fenshu[i];);stdio:&#92:A
(真机测试结果)33;);n&%d&quot.h&gt。我晕: #include&length);如果合格,3));=1000;i&return 0;int main(void){
int i,&temp);
scanf(&quot,我给出的答案是,而且一看楼上就是学C++的,int length){
float sum=0.2f&#92:20-25;
return 0:
C30;.h&请输入产品检测结果:%;} 程序题全部通过上机测试
其他类似问题
为您推荐:
其他3条回答
20-25:BDCCC
26-30:AD _ CD(没有28题)
1、程序如下:
#include&stdio.h&#include&iostream.h&
void main(){
const projectNUMS = 10; int project[projectNUMS]; for(int i=0;i&projectNUMS;i++) {
cout&&&1000个产品中,第&&&i&&&个是否合格:&;
cin&&project[i];
project[i] = project[i] & 1 ? 1 : 0 ;
float sum = 0; for(i=0;i&projectNUMS;i++) {
sum += project[i]; } sum /= projectNUMS;
cout&&&合格率为&&&sum&&
2、程序为:
#include&stdio.h&#include&iostream.h&
double getCircleLength(double R= 0.0){ const double PI = 3.;
return 2*PI*R;}
void main(){
cout&&&输入圆的半径:&; double R = 0.0; cin&&R; double circleL...
表示,我都会,,嘿嘿,,拿分走人
20-25:BDCCC 26-30:AD _ CD(没有28题)32:C33:B34:A
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁搞懂这8题,C++上机必定满分(附答案)&
1.〔题目〕本程序用于查找一组数中呈现峰值的数及其个数。所谓呈现峰值的数,是指满足下列条件的数组元素a[i]:
a[i-1]a[i+1] &或者
&a[i-1]&a[i] 且a[i]&
&例如,数组:
a[0] &a[1] &a[2]
&a[3] &a[4]
&a[5] &a[6]
&a[7] &a[8]
12 & 13 & &21
& 34 & 32 &
&41 & 24 & 12
中a[3]既大于a[2]又大于a[4],a[4]既小于a[3]又小于a[5]。故a[3]、a[4]、a[5]即为正、负峰值(不含第0个和最后一个)
运行时可输入如下数据调式程序:
&& 12 13 21 34 32 41 24 12 11
& & & //3个峰值
&& 11 12 13 14 15 16 17 18 19
& & & //0个峰值
在主函数中,数组a[10]中的数据由文件file1.txt中读入后由屏幕输出;由主函数调用voud find(int
a[&],int b[
])函数,找出结果,并存入数组b中,并输出查找的结果(包括文件输出和屏幕输出)输出的文件为file2.txt。
voud find(int a[ ],int b[ ])函数根据以上算法找出峰值,并返回峰值的个数
输出格式如下:
【运行结果】
测试数据如下:
a[i]= 12 &13 &21
&34 &32 &41
&24 &12 &11
计算结果:
b[i]= 34 &32 &41 有3个峰值
2.从一个整型数组中删除所有小于数组元素平均值并且不是素数的那些整数。
【编程要求】
编写函数int del(int r[ ], int
n),计算r数组中前n个整数的平均值,删除数组中所有小于该平均值并且不是素数的那些数,函数返回r数组中剩余整数的个数。
编写main函数,声明数组resource并由文件file1.txt中读入后由屏幕输出,调用del函数处理数组resource中的数据,将resource数组中剩余的整数输出到屏幕和文件file2.txt中。
【测试数据与运行结果】
数组初始数据为: 17 &5 &6
&18 &8 &28
运行结果: 17 &5 &18
&& 3.编写并调试字符数组应用程序
【程序功能】将字符串中字符分类提取出来,分别存放并形成2个新的子串,然后依次输出各字符串。
例如,输入字符串:"hky2468wer &cbm578df
&afg3791",则能够输出:
hkywercbmdfafg
【程序要求】编写并调试以下函数,函数中可以定义你认为需要的局部变量。
(1)void divide(char * ps, char sub[], int len);
& & & (20分)
扫描ps所指向的字符串,若遇到数字字符则依次存储在sub数组的低下标一端(下标依次为0,1,2,..),若遇到字母字符则依次存储在sub数组的高下标一端(下标依次为len-2,
len-1,…,len为sub数组的空间长度)。分类处理结束后在sub数组合适的位置为2个新串插入字符串结束符。
(2)int Output(char * ps, char *sub , int len);
屏幕显示字符串ps和字符数组sub中的2个字符串。len为sub数组的空间长度。同时计算并返回sub数组中数字字符的个数。
(3)main()函数。 & &
& & & (10分)
在main函数中定义一个字符数组str[80],定义一个字符数组substr[100]。测试数据为"sfs345
&jkl456qw &bm56df
"并为str赋值,通过调用以上函数的方式完成字符串的输入、处理(分类复制)、屏幕输出。有返回值的函数输出返回结果。
(4)在main函数中: & &
& &(10分)
将字符串str和字符数组substr中的第一个字符串写入到磁盘文件"fileB.txt"。
打开文件语句:ofstream out("fileB.txt");
【提示】文件操作运算符包含在fstream头文件中。包含头文件可使用串复制函数strcpy(),
求串长度函数strlen()。
【注意】调试完后将源程序以“学号F1.cpp”为文件名存入Z盘自己的目录中。
&4.字符串处理与文件读写程序 &
建立3个字符型数组a[50]、b[50]和c[50]。在数组a中存入字符串"The320 ID 102of 1988that
12 boy is&18",并输出至屏幕。
编写函数void apart(char *s1, char *s2, char
*s3),功能是将字符串s1中的英文字符提取出来复制到数组s2中,将字符串s1中的数字字符提取出来复制到数组s3中。主函数调用函数apart(a,
b, c)将a中的字符串分离为字母串b和数字串c,返回后将b和c字符串输出至屏幕。
定义一个文件流对象iofile,以文本方式打开磁盘文件"apfile.txt"。依次将数组a、b和c中的字符串数据写入文件。
将文件"apfile.txt"中的内容读出,输出至屏幕。三个字符串各占一行。
【提示】头文件包含语句为:
5.有一组若干个整数存放于文件中,并已按由小到大的顺序排列好.请编写一个类ARR, 完成以下功能:
构造函数完成数组a的初始化工作;
void DelSame()函数完成将数据中相同的数删除后只剩下一个。
例如: &原数据为:
&1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10 经删除后,
1,2,3,4,5,6,7,8,9,10
void Show(char * fname)函数完成将结果数据输出到屏幕同时输出到文件
&私有数据成员:
&数据实际个数
int a[100]; 存放原始数据及结果的数组
&使用如下主函数进行测试:
void main()
int b[ ]={1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10}
ARR &a(b);
a.DelSame();
a.Show("nums.txt");
&6.面向对象编程:模拟图书管理应用程序 &
【要求】按以下描述和要求建立一个类Book,执行主函数对其测试。
私有成员 int No; & &
& & //图书序号
& & //图书库存数量(库存最多允许10本)
double P & &
& & &//图书价格
& &//已借出图书数量
公有成员 Book (int a=0, int b=0, double c=0); &
//构造函数(a,b,c初始化数据成//员中的序号、数量和价格,lend//赋值0)
int input(double m); & &
//添加图书数量m本(若cap+m超过10则//提示“只能添加x本”&
//返回-x。x表示能//添加的数量)
void lendout(int n); &
&//借出n本图书(如果库存足够,给出“借书//成功!”的提示,否
则//显示数量差额的提示信//息。),对有关的数据成员cap和lend做相//应的运算。
void giveback (int n); & &
&//归还图书n本(cap和lend相应加减n)
int getcap ( ); & &
&//返回图书数量
int getlend ( ); & &
&//返回借出图书数量
double getprice ( ); & &
& &//返回图书价格
void display() ; & &
&//输出序号、数量、价格和借出数量
主函数要求:
定义Book类对象A(101, 2, 35.8)和B(102, 5, 66.2)。
调用函数input为对象A和B做添加图书操作:A. input(3); B. input(8);
如有添加失败,则重新添加合适的数量。调用函数display输出对象A和B的全部数据,每个对象的信息占一行。
调用函数lendout做借出操作,先比较对象A和B的价格,借较高价格的图书3本,借较低价格的图书8本。
再调用函数display输出对象A和B的全部数据。再调用函数giveback做归还操作,还书数量自定。
计算并输出所有图书的总数量sum。
要求:写出所有成员函数的完整代码。
主函数代码参考:
void main(){
int t,sum=0;
Book A(101, 2, 35.8)和B(102, 5, 66.2);
t=A.input(3);
if(t&0) A.input(t);&
t=B.input(8);
if(t&0) B.input(t);&
A.display();
B.display();
if( A.getprice() & B.getprice() ){
A.lendout(3); B.lendout(8);
B.lendout(3); A.lendout(8);
A.display();
B.display();
A.giveback(2);
B.giveback(5);
A.display();
B.display();
sum=A.getcap()+A.getlend()+B.getcap()+B.getlend();
cout&&"所有图书的总数量="&&
&7.面向对象编程:模拟学生作业管理程序 &
【要求】按以下描述和要求建立一个类Student,执行主函数对其测试。
私有成员 & &
char * & &
& &//姓名(字符串)
&//交作业次数
& //作业成绩(每交一次作业,分值加5)
公有成员 Student(int a=0, char *b=NULL, int c=0 , int d=0);
&//带缺省值的构造
函数,(缺省值为0或NULL,用实参值为//数据成//员赋值。如果c&0则计算成绩cent)
Student(Student &b);
&//拷贝构造函数,(新对象学号为复制的学号加10)
~Student(); & &
&//析构函数,释放分配的内存
void setname(char *); &//修改姓名
void upjob(int n); & &
//上交作业n次并计算成绩
int getcent(); & &
& & //返回作业成绩
void display(); & &
& &//输出对象的全部数据
头文件包含语句为:
主函数要求:
定义Student类对象A(1101, 王林)、B(1202, 李明)、C(A)和D=B(C、D数据由A、B拷贝而来)。
调用函数修改C和D的姓名,继续交作业(次数自定)。
调用函数display输出对象A、B、C和D的全部数据。每个对象的信息占一行。
计算并输出4个对象的平均成绩。
提示:构造函数需要为name字符串动态分配内存。包含头文件可使用串复制函数strcpy(),求串长度函数strlen()。
要求:写出所有成员函数的完整代码。
主函数参考代码:
void main(){
Student A(1101, "王林"), B(1202, "李明",5), C(A), D=B ;
C.setname("张山");
D.setname("陈志");
A.display(); &B.display();
C.display(); &D.display();
A.upjob(4);
C.upjob(8);
D.upjob(6);
A.display(); &B.display();
C.display(); &D.display();
&cout&&"A、B、C、D的平均成绩="
&&(A.getcent()+B.getcent()
+C.getcent()+D.getcent())/4&& p&
【注意】 将源程序以文件名CF2.cpp存入Z盘自己的目录中。
&& &8.面向对象编程
【问题描述】模拟银行保管箱管理,每个用户只有身份标识符和物品数量两个数据,用数组元素下标代替箱号。模拟存物和取物,统计物品数量。输出数据。
【要求】按以下描述和要求建立一个保管箱类Boxes,执行主函数对其测试。
&//指向动态分配内存的保管箱数组,下标为箱号,
//元素值为0表示空箱;大于0表示该箱中存入的物品数量。
&//指向客户身份标识符数组(下标为箱号,与box数组相对应)
//累计当前全部用户存入的物品数量
Boxes(int); &
//带缺省值的构造函数,动态分配box和flag数组空间,&
//数组长度由形参给定,缺省值为10。数组元素初始值为零。(5分)
~Boxes( ); & &
& &//析构函数,释放分配的内存 (5分)
void put(int n, char m); &
//选择一个空箱存入n件物品,填写客户标识符,
//并将物品数量累加到sum;若找不到空箱则输出提示信息。(10分)
void get(char m);
&//取出物品。根据客户标识符m在flag中查找,找到后
//在box中取出物品并清空保管箱(置0),并在sum中扣除已取出物品数。
//若找不到则输出提示信息。(10分)
void display(); & &
//输出保管箱类所有数据,统计占用箱个数和空闲箱个数。
//最后输出现存物品数量。(10分)
头文件包含语句为:#include
int Boxes::sum=0; &
&//在类定义外面对静态成员做定义性说明并赋初值为零。
主函数要求:(10分)
定义Boxes类对象A, B(2)。数组元素初始值为零。
调用函数put为对象A和B做存入物品的操作:A.put(5, ‘R’); B.put(9,’K’); A. put(8,
‘P’); B. put(15, ‘H’); B. put(40, ‘F’);
调用函数display输出对象A和B的全部数据。
调用函数put和get为对象A和B做存储和取出操作:B. get(‘H’); B. put(40, ‘F’);
A.&get(‘S’) ; A. get(‘R’); A. put(12,
调用函数display输出对象A和B的全部数据,每个保管箱的输出包括下述内容:
a) 正使用保管箱的客户标识及其存储物品数(每个客户信息占一行);
b) 统计出该保管箱的使用情况(占用箱个数和空闲箱个数);
c) 目前现存物品数量。
【注意】 调试完后将源程序以文件名:“学号F2.cpp”存入Z盘自己的目录中。
答案(不包括程序要求创建的TXT文件)
int &find(int [],int [],int);
void main(){
ifstream f1("file1.txt");
ofstream f2("file2.txt");
int a[20],b[10],n,i=0;
cout&&"测试数据如下:\na[i]=
while(f1&&a[i])
cout&&&" p &?;&&
f1.close();
n=find(a,b,i);
cout&&"\n计算结果:\nb[i]= ";
for(i=0;i& p&
cout&&&" p &?;&&
f2&&&" p &?;&&
cout&&"有"&&"个峰值.\N";&
f2.close();
int &find(int a[],int b[],int n){
int count=0;
for(int i=1;i& p&
if((a[i]&a[i-1]
&& a[i]&a[i+1]) ||
b[count++]=a[i];
int &del(int [],int);
int s(int);
void main(){
ifstream f1("file1.txt");
ofstream f2("file2.txt");
int a[20],n,i=0;
cout&&"数组初始数据为:";
while(f1&&a[i])
cout&&&" p &?;&&
n=del(a,i);
cout&&"\n运行结果:";
for(i=0;i& p&
cout&&&" p &?;&&
f2&&&" p &?;&&
f2.close();
int &del(int a[],int n){
int sum=0,avr,j;
for(int i=0;i& p&
avr=sum/n;
for(i=0,j=0;i& p&
a[j++]=a[i];
int s(int n){
for(int i=2;i& p&
if(n%i==0) return 0;
void divide(char * ps, char sub[], int len);
int Output(char * ps, char *sub , int len);
void main(){
ofstream out("fileB.txt");
char str[80],substr[100]={0};//substr[100]={0}的好处是:
在divide函数的A行可以不用加结束标志*pa=0,*pb=0;加结束标记的好处是可将两个独立的子串整串输出.B行+C行
cout&&"请输入一串字符串: ";
cin.getline(str,100);
divide(str,substr,strlen(str));
cout&&"数字字符的个数为:
"&&&ENDL;& p&
out.close();
void divide(char * ps, char sub[], int len){
char *a=ps,*pa=sub,*pb=sub+
&//pa指针是用来放数字字符,pb指针是用来放英文字符,pa指向sub数组的头,pb指向sub数组的sub+len在地方
while(*a){
if(*a&='a' &&
*a&='z' &&
*a&='A' &&
*a&='Z' &) *pb++=*a++;
else &if(*a&='0'
&& *a&='9')
*pa++=*a++;
int Output(char * ps, char *sub , int len){
cout&&&ENDL; p
return strlen(sub);
void apart(char *s1, char *s2, char *s3);
void main(){
fstream iofile("apfile.txt",ios::in|ios::out);
char a[]="The320 ID 102of 1988that 12 boy is
18",b[20]={0},c[20]={0};//b[20]={0},c[20]={0}的好处是:
在apart函数的A行可以不用加结束标志*pb=0,*pc=0;
char d[50];
apart(a,b,c);
cout&&"分离后的字符串为: \n";
iofile&&'\N'&&B&&'\N'&&C&&'\N';&
iofile.close();
iofile.open("apfile.txt",ios::in|ios::out);
cout&&"从apfile.txt文件中读取的字符串为:
while(iofile.getline(d,50))
iofile.close();
void apart(char *s1, char *s2, char *s3){
char *pa=s1,*pb=s2,*pc=s3;
while(*pa){
if(*pa&='a' &&
*pa&='z' || *pa&='A'
&& *pa&='Z' )
*pb++=*pa++;
else &if(*pa&='0'
&& *pa&='9')
*pc++=*pa++;
else pa++;
class APP{
int a[100];
APP(int *b){
for(int i=0;i& p&
a[i]=b[i];
void DelSame();
void Show(char * fname);
void main()
int b[ ]={1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10};
num=sizeof(b)/sizeof(int);
APP &a(b);
a.DelSame();
a.Show("nums.txt");
void APP::DelSame(){
int i,j,k;
for(i=0;i& p&
for(j=i+1;j& p&
if(a[j]==a[i]){
void APP::Show(char * fname){
ofstream f1(fname);
for(int i=0;i& p&
cout&&&'\T';& p&
f1&&&'\T';& p&
f1.close();
class Book{
int No; & & &
& //图书序号
& & //图书库存数量(库存最多允许10本)
double P & &
& & &//图书价格
& &//已借出图书数量
Book (int a=0, int b=0, double c=0){
&//构造函数(a,b,c初始化数据成//员中的序号、数量和价格,lend//赋值0)
No=a,cap=b,Price=c;
int input(double m); & &
//添加图书数量m本(若cap+m超过10则//提示"只能添加x本"
&//返回-x。x表示能//添加的数量)
void lendout(int n); &
&//借出n本图书(如果库存足够,给出"借书成功!"的提示,否则//显示数量差额的提示信//息。),对有关的数据成员cap和lend做相//应的运算。
void giveback (int n); & &
&//归还图书n本(cap和lend相应加减n)
int getcap ( ); & &
&//返回图书数量
int getlend ( ); & &
&//返回借出图书数量
double getprice ( ); & &
& &//返回图书价格
void display() ; & &
&//输出序号、数量、价格和借出数量
int Book::count=0;
void main(){
Book A(101, 2, 35.8),B(102, 5, 66.2);
A. input(3); B. input(8);
if(A.getprice()&B.getprice())
A.lendout(3),B.lendout(8);
else A.lendout(8),B.lendout(3);
A.display(),B.display();
A.giveback(5);
A.display();
cout&&"共有图书"&&"本.\N";&
int Book::input(double m){
if(m+cap&10){
cout&&"只能添加"&&10-cap&&"本\n";
return cap-10;
void Book::lendout(int n){
cout&&"借书成功!\n";
cap-=n;lend+=n;
cout&&"书库中只有"&&"书,还差"&&N-CAP&&"本书!\N";&
void Book::giveback (int n){
cap+=n;lend-=n;
int Book::getcap (){} &
int Book::getlend (){} &
double Book::getprice(){return P} &
void Book::display(){
cout&&"书的序号:
库中现有图书?&&cap&&?本,已借出图书?&&lend&&?本,图书的价格为:
?&&Price&&&&#include
class Student{
&//姓名(字符串)
& &//交作业次数
& //作业成绩(每交一次作业,分值加5)
Student(int a=0, char *b=NULL,
int c=0 , int d=0);
&//带缺省值的构造函数,(缺省值为0或NULL,用实参值为//数据成//员赋值。如果c&0则计算成绩cent)
Student(Student
&//拷贝构造函数,(新对象学号为复制的学号加10)
~Student(); &
&//析构函数,释放分配的内存
void setname(char *);
&//修改姓名
void upjob(int n);
& & //上交作业n次并计算成绩
int getcent();
& //返回作业成绩
void display();
&//输出对象的全部数据
void main(){
Student A(1101, "王林"), B(1202,
"李明",5), C(A), D=B ;
C.setname("张山");
D.setname("陈志");
A.display();
&B.display();
C.display();
&D.display();
A.upjob(4);
C.upjob(8);
D.upjob(6);
A.display();
&B.display();
C.display();
&D.display();
cout&&"A、B、C、D的平均成绩="
&&(A.getcent()+B.getcent()+C.getcent()+D.getcent())/4&&
Student::Student(int a, char
*b, int c, int d){
id=a;job=c;
cent=job*5;
if(b!=NULL){ name=new
char[strlen(b)+1];strcpy(name,b) ;}
Student::Student(Student
&//拷贝构造函数,(新对象学号为复制的学号加10)
id=b.id+10;job=b.
if(name!=NULL){ name=new
char[strlen(b.name)+1];strcpy(name,b.name);}&
Student::~Student(){
& //析构函数,释放分配的内存
if(name)delete
void Student::setname(char *
s){ //修改姓名
if(strlen(s)&strlen(name)){
char[strlen(s)+1];
strcpy(name,s);
void Student::upjob(int n){
& &//上交作业n次并计算成绩
int Student::getcent(){
& //返回作业成绩
Student::display(){
cout&&"学号:
"&&'\T';& span&
cout&&"姓名:
"&&'\T';& span&
cout&&"交作业的次数:
"&&'\T';& span&
cout&&"成绩:
class Boxes{
&Boxes(int n=10);
&~Boxes( ){
void put(int n, char
&void get(char m); &
&void display();
Boxes::sum=0;&
Boxes::Boxes(int n
box=new int[n]; flag=new
for(int i=0;i&
void Boxes::put(int n,char
for(int i=0;i&
if(box[i]==0){
flag[i]=m; box[i]=n; sum+=n;
cout&&"Boxes is
used up"&&'\n';}
void Boxes::get(char
for(int i=0;i&
if(flag[i]==m){
sum-=box[i]; box[i]=0;
cout&&"can't
find:"&&'\N';}& span&
Boxes::display(){
int i,n=0;
for(i=0;i&
if(box[i]!=0){
cout&&&'\T'&&FLAG[I]&&'\T'&&BOX[I]&&'\N';&
cout&&"used:"&&'\T'&&"SPARE:"&&T-N&&'\T'&&"TOTAL="&&SUM&&'\N';}&
span&Boxes
A.put(5,'R'); B.put(9,'K');
A.put(8,'P'); B.put(15,'H'); B.put(40,'F');
A.display();B.display();
B.get('H'); B.put(40,'F');
A.get('S') ;A.get('R'); A.put(12,'M');&
A.display();B.display();
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 ifstream 一行 整数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信