Copy code
#include <stdio.h>
int main() {
int n = 5, i, j
double sum = 0, s = 1
for (i = 2i <= ni++) {
for (j = 1j <= ij++) {
s += 1.0 / j
}
sum += s
s = 0 // 将 s 重置为 1
}
printf("sum = %.2lf\n", sum)
return 0
}
在程序中,我们使用了两层嵌套的 for 循环,外层循环控制求和的个数,内层循环控制求每个数的值。
变量 s 表示当前数字的和,初始值为1,每次内层循环计算时,将当前数字的和加入 s 中。
内层循环结束后,将 s 加入最终的结果 sum 中,同时重置 s 为1,即下一次的循环从 1 + 1/2 开始计算。
最后,我们使用 printf 输出计算得到的结果 sum 。
《C语言》综合练习题一注意:以下“□”为空格,为回车一、单选题1、阅读以下程序,当输入数据的形式为:25,13,10,正确的输出结果为()voidmain(){intx,y,zscanf("%d%d%d",&x,&y,&z)printf("x+y+z=%d\n",x+y+z)}A)x+y+z=48B)x+y+z=35C)x+y+z=38D)不确定值2、下面程序的输出是()voidmain(){inty=0while(y--)printf("y=%d\n",y)}A)y=0B)while构成无限循环C)y=-1D)y=13、在以下各组标识符中,合法的用户标识符是()。A)xy_B)longdoubleC)*pD)CHAR变量1signedhistoryFloat4、以下能正确计算1*2*3…*10的程序段是()A)do{i=1s=1s=s*ii++}while(i,则输出结果为()A)2,3B)3,5C)5,2D)2,5#includevoidmain(){intv1=0,v2=0charchwhile((ch=getchar())!='#')switch(ch){case'a':case'h':v1++default:v2++}printf("%d,%d\n",v1,v2)}7、有如下程序voidmain(){inti,sum=0for(i=1i=0‖b>=0)&&(a=0&&b>=0)&&(a0)&&(a+b09、下列定义数组正确的是()A)#definesize10B)intn=5charstr1[size],str2[size+2]inta[n][n+2]C)charstr[]D)intnum['10']10、以下程序的功能是计算:s=1+1/2+1/3+……+1/10voidmain(){intnfloatss=1.0for(n=10n>1n--)s=s+1/nprintf("%6.4f\n",s)}程序运行后输出结果错误,导致错误结果的程序行是A)s=1.0B)for(n=10n>1n--)C)s=s+1/nD)printf("%6.4f\n",s)11、以下说法正确的是()A)输入项可以为一个实型常量,如scanf("%f",3.5)B)只有格式控制,没有输入项,也能进行正确的输入,如scanf("a=%d,b=%d")C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f)D)当输入数据时,必须指明变量的地址,如scanf("%f",&f)12、设x=2.5、a=7,则算术表达式x+2*++a/3%3的值为()。A)2.5B)3.5C)4.5D)5.513、若有说明:inta[3][4]={0}则下面正确的叙述是()A)只有元素a[0][0]可得到初值0B)此说明语句不正确C)数组a中个元素都可以得到初始值,但其值不一定为0D)数组a中个元素都可得到初值014、设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为()。A)6.5B)6C)0D)115、在下列有关#include命令的叙述中,错误的一条是()A)在#include命令中,文件名可以用双引号或尖括号括起来B)在一个包含文件中又可以包含另一个被包含文件C)在一个#include命令中可以指定一个包含文件D)在一个#include命令中可以指定多个包含文件16、以下不正确的if语句形式是()A)if(x>y&&x!=y)B)if(x==y)x+=yC)if(x!=y)scanf("%d",&x)elsescanf("%d",&y)D)if(x=0){【】count++}printf("ave=%f\n",【】)}6、下面程序为求最小正整数n,使调和级数前n项之和大于预先给定的实数a。>a,main(){intn=0floats=0.0while(【】){【】n++}print("“所求的数值为%f\n",s)}7、设数组a的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。main(){inta[10]={1,2,3,4,5,6,7,8,9,10};intk,sifloatavefor(k=s=i=0imax){max=a[i]【】}【】printf("\nThepositionofminis:%3d\n",k)printf("Thepositionofmaxis:%3d\n",j)for(i=0i则下面程序段的执行结果是:【】。#includemain(){while(putchar(getchar())!='?')}19、main(){intnumber=3while(――number>0)printf(“*%d,”,number)printf(“**%d”,number)}这个程序的输出结果是:【】。20.华氏和摄氏的转换公式为C=5/9*(F-32),其中C表示摄氏的温度,F表示华氏的温度。以下程序输出从华氏0度到华氏300度,每隔20度输出一个值,请填空。main(){intupper,stepfloatfahr=0,celsiusupper=300step=20while(fahryx>ua1=1a2=1b1=0b2=1131415161718sum=19j=ik=ia[j]=maxa[k]=min(x>=1)&&(x<10)9**Howareyou?19202122*2,*1,**0Celsius=5/9*(fahr-32)fahr+=stepi=1i<=20i++f2-f1&a[i]continue三、编程题(答案不唯一!)#defineE1E5voidmain(){intn=1,k=-1floats=0do{k=-ks=s+(float)k/nn++while(n<=E)printf(“s=%f\n”,s2)}欢迎分享,转载请注明来源:内存溢出
评论列表(0条)