C语言6.1~6.55

更新时间:2023-09-12 16:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

6.1

【题目描述】

从键盘输入正整数n,编程计算并输出1~n的和。 【输入】 正整数n 【输出】 1~n的和

#include #include

int main() {

int n,Sum;

scanf(\

Sum=n*(n+1)/2; printf(\

return 0; }

6.2

【题目描述】

从键盘输入整数n,编程计算并输出n!。 【输入】 整数n 【输出】

n的阶乘

#include #include

int main() {

long long int i,n,m=1; scanf(\for(i=1;i<=n;i++) {

m*=i; }

printf(\return 0; }

6.3

【题目描述】

编写程序在一行中输出 N 个星号。 【输入】

星号个数值N 【输出】

一行中N个星号 【样例输入】 10

【样例输出】 **********

#include int main() {

int a,b;

scanf(\

for(b=1;b<=(a-1);b++) {

printf(\ }

printf(\ return 0; }

6.4

【题目描述】

输入图形的每行有n个星号,高 n ,输出对应的图形 . 【输入】 整数n例如 5 【输出】

每行由5个*组成的,高为5的平行四边形 【样例输入】 5

【样例输出】 ***** ***** ***** ***** *****

#include int main() {

int n,b,c,d;

scanf(\ for(c=1;c<=n;c++) {

for(d=1;d<=(c-1);d++)

{ printf(\ }

for(b=1;b<=(n-1);b++) {

printf(\ }

printf(\ } return 0; }

6.5

【题目描述】

编写程序,输入n的值,求 :1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n (保留四位小数) 【输入】 n的值 【输出】

上述算式的求和结果(结果保留四位小数) 【样例输入】 1

【样例输出】 sum=1.0000

#include int main() {float n,a,b; scanf(\ b=0;

for(a=1;a<=n;a++) {

if((int)a%2==0) {

b=b-1/a; } else {

b=b+1/a; } }

printf(\ return 0; }

6.6

【题目描述】

有一个分数序列:【输入】 整数n 【输出】

上述分数序列的前n项之和

提示:输出语句格式为 printf(\ 【样例输入】 1

【样例输出】

sum= 2.0000000000

,输入整数n,求出其前n项的和。

#include int main()

{double n,a,b,c,sum; scanf(\ a=1,b=2; sum=0;

for(c=1;c<=n;c++)

{

sum=sum+b/a; b=a+b; a=b-a; }

printf(\ }

6.7

【问题描述】

编写程序,从键盘输入整数 n , 求 e 的值。e=1+1/1!+1/2!+1/3!+..+1/n! 数据计算。 【输入】 整数n 【输出】 e的值

提示:输出语句printf(\ 【样例输入】 2

【样例输出】 e= 2.5000000000

#include int main() {

double n,c,i,sum,sum1; scanf(\ sum1=sum=0; i=n;

for(i=1;i<=n;i++) {

for(c=1,sum=1;c<=i;c++)

注意:用 double 型 {

sum=sum*c; }

sum1=sum1+1/sum; }

printf(\

return 0; }

6.8

【输入】

两个正整数m和n 【输出】

m和n的最大公约数和最小公倍数 【输入样例】 2 8 【输出样例】

the greatest common divisor is 2 the least common multiple is 8

#include int main() {

int a,b,c,r,max,min; scanf(\ max=a>=b?a:b; min=a<=b?a:b; r=max%min; if(r!=0)

{while(r!=0) {

if(b%r==0) break; r=b%r; } } else {

r=min; }

printf(\ c=max; while(1) {

if(c%max==0&&c%min==0) break; c++; }

printf(\

return 0; }

6.9

【题目描述】

输出所有的水仙花数。所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153是一水仙花数,因为153=1+5+3 【输入】 无 【输出】

所有的水仙花数 提示:输出语句printf(\

3

3

3

#include int main() {

int a,b,c,d; a=100;

for(a=100;a<=999;a++) {b=a;

c=(a/10);

d=(a/100);

if(a==b*b*b+c*c*c+d*d*d) {

printf(\ }

} return 0; }

6.10

【题目描述】

一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,且6=1+2+3,因此6是完数。 【输入】 一个正整数n 【输出】

判断n是否为完数。如果是,则输出Yes和它的所有因子;否则,输出No 【输入样例】 6

【输出样例】

Yes,its factors are 1 2 3

#include int main() {

int n,a,sum,c; sum=0;

scanf(\ for(a=1;a

if(n%a==0) {

sum=sum+a; } }

if(sum==n) {

printf(\ for(a=1;a

if(n%a==0) { printf(\ } }

printf(\ } else {

printf(\ } return 0; }

6.11

【题目描述】

输入两个正整数m和n,求出[m,n]区间的所有素数 【输入】 两个整数m和n 【输出】

[m,n]区间的所有素数 【输入样例】 2 10 【输出样例】 2 3 5 7

return 0; }

6.16

利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。 xn+1=cos(xn) 迭代步骤如下: (1)输入数据给x1;

(2)x0=x1,把x1的值赋给x0; (3)x1=cos(x0),求出一个新的x1;

(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);

(5)所求x1就是方程cos(x)-x=0的一个实根,输出x1,输出语句为printf(\。 提示:本题x0和x1定义为double类型

#include #include #include int main() {

double x0,x1; scanf(\do { x0=x1; x1=cos(x0);

}while(fabs(x0-x1)>=0.000001);

printf(\

return 0; }

6.17

【题目描述】

编写程序,求某三位数,该数值的大小正好是组成这个数的三个位上的数字阶乘之和。 【输入】 无 【输出】

满足上述条件的三位数。提示:输出格式为printf(\

#include #include #include int main() {

int a,b,c,g,i,p,q,n1,n2,n3; for(i=100;i<=999;i++) {

a=i;

b=(i/10); c=i/100;

for(p=1,n1=1;p<=a;p++) n1=n1*p; for(q=1,n2=1;q<=b;q++) n2=n2*q; for(g=1,n3=1;g<=c;g++) n3=n3*g; if(n1+n2+n3==i) printf(\

}

return 0; }

6.18

【题目描述】

自守数是指一个数的平方的尾数等于该数自身的自然数。例如25=625,76=5776。 输入一个自然数,判断其是否为自守数。如果是,则输出Yes,否则输出No 【输入】 一个自然数 【输出】

如果是自守数,输出Yes,否则输出No 【样例输入】 25

【样例输出】 Yes

22

#include #include #include int main() {

int a,b,n;

scanf(\ a=n*n; if(a==1)

printf(\else if(a<=10) printf(\else if(a<=100) {

b=a; if(n==b)

printf(\else

printf(\ } else { if(n<100) {

b=a0; if(n==b)

printf(\else

printf(\ } if(n>=100) {

b=a00; if(n==b)

printf(\else

printf(\ } }

return 0; }

6.19

【题目描述】

若正整数A的全部约数(包括1,不包括A本身)之和等于B ; 且整数B的全部约数(包括1,不包括B本身)之和等于A,则 A 、 B 为亲密数。编程,输入正整数A,输出亲密数 A , B(A<=B) ,若不存在亲密数,则输出 No output 。

例如:220的约数是:1、2、4、5、10、11、20、22、44、55、110,约数之和是284;284的约数是:1、2、4、71、142,约数之和是220。所以220和284就是一对亲密数。 【输入】 一个正整数 【输出】

如果有亲密数,按照220-284格式输出;否则输出No output 【样例输入】

220

【样例输出】 220-284

#include #include #include int main() {

int a,b=0,n,i,sum=0; scanf(\for(i=1;i

a=n%i; if(a==0) sum=sum+i; }

for(i=1;i

if(sum%i==0)

b=b+i; } if(b==n)

printf(\else

printf(\

return 0; }

6.20

【题目描述】

输入2个正整数m和n,求m的末三位数。比如输入m和n的值分别为13和13,则13的后三位数字为253。 【输入】

两个正整数m和n

n

13

return 0; }

6.39

【题目描述】 我国有4大淡水湖。

A说:洞庭湖最大,洪泽最小。鄱阳湖第三。

B说:洪泽湖最大,洞庭湖最小,鄱阳湖第二。太湖第三。 C说:洪泽湖最小,洞庭湖第三。

D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。 4个人每人仅答对了一个,请你编程给出4个湖从大到小的顺序。 【输入】 无 【输出】

四大湖从大到小的顺序,格式为鄱阳湖 洞庭湖 太湖 洪泽湖

#include

#include

int main() {

int a,b,c,d; for(a=1;a<=4;a++) {

for(b=1;b<=4;b++) {

for(c=1;c<=4;c++) {

for(d=1;d<=4;d++) {

if(((a==1)+(b==4)+(c==3)==1)&&((a==4)+(b==1)+(c==2)+(d==3)==1)&&((b==4)+(a==3)==1)&&((a==3)+(b==2)+(c==1)+(d==4)==1))

{

printf(\鄱阳湖\\n\); printf(\洞庭湖\\n\); printf(\太湖\\n\); printf(\洪泽湖\\n\); goto a; }

}

}

} } a: return 0; }

6.40

【题目描述】

某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析: (1) A 、 B 至少有一人作案;

(2)A 、 E 、 F 三人中至少有两人参与作案; (3)A 、 D 不可能是同案犯;

(4)B 、 C 或同时作案,或与本案无关; (5) C 、 D 中有且仅有一人作案;

(6)如果 D 没有参与作案,则 E 也不可能参与作案。 试编一程序,将作案人找出来。 【输入】 无 【输出】

格式为(以下结果不是最终答案): A:不是罪犯 B:是罪犯 C:是罪犯 D:不是罪犯 E:不是罪犯 F:是罪犯

#include #include

int main() {

int a,b,c,d,e,f; for(a=0;a<=1;a++) {

for(b=0;b<=1;b++) {

for(c=0;c<=1;c++) {

for(d=0;d<=1;d++) { for(e=0;e<=1;e++) { for(f=0;f<=1;f++)

{ if((a==1)||(b==1))

{

if(((a==1)&&(e==1))||((a==1)&&(f==1))||((e==1)&&(f==1))) {

if(((a==1)&&(d==0))||((a==0)&&(d==1))) {

if(((b==1)&&(c==1))||((b==0)&&(c==0))) { if(((c==1)&&(d==0))||((c==0)&&(d==1))) { if(d==0)

{ if(e==0)

printf(\是罪犯\\n\

printf(\是罪犯\\n\

printf(\是罪犯\\n\

printf(\不是罪犯\\n\

printf(\不是罪犯\\n\

printf(\是罪犯\\n\goto a;

} else if(d==1)

printf(\

} } } } } } } } } } } a:

return 0; }

6.41

【题目描述】

一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方,请根据以上线索求出车号。 【输入】 无 【输出】

车牌号printf(\

#include #include

int main() {

int a,b,c,d,e,f; for(a=0;a<=9;a++) {

for(b=0;b<=9;b++) {

for(c=0;c<=9;c++) {

for(d=0;d<=9;d++) { if(a==b)

{ if((c==d)&&(c!=a))

{ for(e=0;e<=100;e++)

{

f=a*1000+b*100+c*10+d; if(e*e==f)

{ printf(\ } } } } } } }

}

return 0; }

6.42

【题目描述】

一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物

本文来源:https://www.bwwdw.com/article/yjjh.html

Top