C语言 - 中国石油大学(华东)c语言上机题及答案大全- 副本(3)

2019-04-13 19:43

printf(\ k++; } l=1;

while(l<=i) {

printf(\ l++; }

printf(\ i++; } i=1;

while(i<=2*n-1) {

printf(\ i++; }

printf(\ return 0; }

选做 5.9 画个空心的梯形吧

编程,输入 n ,输出如下例( n=5 )所示的 高和上底均为 n 的等腰空心梯形。 #include #include

int main() {

int n,i=1,j,k; scanf(\ while(i<=n) {

j=1;

while(j<=n-i) {

printf(\ j++; }

printf(\ if(i==1) {

for(k=1; k<=n-2; k++) printf(\

}

else if(i==n) {

for(k=1; k<=3*n-4; k++) printf(\ } else {

for(k=1; k<=n+2*i-4; k++) printf(\ }

printf(\ j=1;

while(j<=n-i) {

printf(\ j++; }

printf(\ i++; }

return 0; }

选做 5.10 输出菱形图案

输入 n ,输出如下例( n=3 )所示的菱形: * *** ***** *** *

#include #include int main() {

int n,i,j,k;

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

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

printf(\ }

for(k=1; k<=2*i-1; k++) {

- 11 -

printf(\ }

printf(\ }

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

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

printf(\ }

for(k=1; k<=2*n-2*i-1; k++) {

printf(\ }

printf(\ }

return 0; }

5.11 最大公约数

输入两个正整数m和n,求它们的最大公约数和最小公倍数

比如,输入m和n的值分别为14和21,则最大公约数为7,最小公倍数为42。 #include void main() {

int m,n,i,j;

scanf(\ for(i=m;i>=1;i--) {

if (n%i==0&&m%i==0)

{printf(\greatest common divisor is %d\\n\ } }

for (j=m;;j++) {

if (j%m==0&&j%n==0)

{printf(\least common multiple is %d\\n\ } } }

5.12 水仙花数

输出所有的水仙花数。所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153是一水仙花数,因为153=13+53+33 输出语句:printf(\#include void main() { int n, i, j, k; for(n=100; n<=999; n=n+1) { }

i = n/100; // 取出n的百位数 j = (n/10); // 取数n的十位数 k = n; // 取出n的个位数 if(n==i*i*i+j*j*j+k*k*k) printf(\}

5.13 完数

一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,且6=1+2+3,因此6是完数,从键盘上输入一个正整数,判断其是否为完数。如果是,则按照如下格式输出。比如,输入6,则输出Yes,its factors are 1 2 3;如果输入8,则输出No

#include #include int main() {

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

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

if(n==sum) {

printf(\ for(c=1; c

printf(\

- 12 -

} else printf(\ }

5.14 素数

输入两个正整数m和n,求出[m,n]区间的所有素数 #include #include void main() {int m,n,i,j,k;

scanf(\ for(i=m;i

for(j=2;j<=k;j++) if(i%j==0) break; if(j>k) printf(\ }

printf(\}

5.15 找出最大素数

素数是指一个只能被1和它本身整除的数,在数论中占有重要的研究地位,在当代密码学中也被广泛应用。

输入:取值范围

输出:该范围内的最大素数 #include int main() {

int a,i,j;

scanf(\ for(i=a;i>1;i--) {

for(j=2;j

if(i%j==0) break; } if(j==i) { printf(\ break;

}

} }

5.16 回文数 输入一个数,判断是否为回文数,如果是,输出Yes,否则输出No

#include #include #include char *chan(int count) ;

int main(int argc, char* argv[]) {

char *str; int i,n;

str=chan(0); n=strlen(str);

for (i = 0; i<(n-1)/2; i++) { if (str[i]!=str[n-1-i]) { n=0; break; } }

if (n) {

printf(\ }

else printf(\ free(str);

system(\ return 0; }

char *chan(int count) {

char a;

static char * p;

if ((a=getchar())!='\\n') {

count++; chan(count); } else {

p=malloc(sizeof(char)*(count+1)); *(p+count)=0; return p;

- 13 -

}

*(p+count-1)=a; return p; }

选做 5.17 自守数

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

#include #include int main() {

int n,i,j,a=0,b=1,c; scanf(\ i=n*n; j=i-n;

while(n>0) {

n=n/10; a++; }

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

b=b*10; }

if(j%b==0) {

printf(\ } else {

printf(\ }

return 0; }

选做 5.18 求亲密数

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

例如:220和284就是一对亲密数。220的约数是:

1、2、4、5、10、11、20、22、44、55、110,约数之和是284;284的约数是:1、2、4、71、142,约数之和是220。 #include #include int main() {

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

if(n%a==0) {

b=a+b; } }

for(a=1; a

if(b%a==0) {

c=c+a; } }

if(n==c) {

printf(\ } else {

printf(\ }

return 0; }

选做 5.19 高次方的尾数

输入2个正整数m和n,求mn后三位数。比如输入m和n的值分别为13和13,则1313的后三位数字为253。 #include #include int main() {

int m,n,a,b=1,c;

scanf(\ for(a=1; a<=n; a++)

- 14 -

{

b=b*m; b=b00; }

printf(\last 3 digits of %d ** %d is: %d\\n\ return 0; }

选做 5.20 阶乘尾数零的个数

输入一个正整数n,求其阶乘尾数0的个数。比如,输入n的值为100,则其阶乘尾数0的个数为24。 #include #include int main() {

int n,a,b,c;

scanf(\ a=n/25; b=n/5; c=a+b;

printf(\number of 0 in the end of %d! is:%d.\\n\ return 0; }

5.21 看看是谁做的好事

某四位同学中有一个做了好事 , 不留名 , 表扬信来了,校长问是谁做的好事 . 以下四个人中有三个人说的是真话. A 说 : 不是我 B 说 : 是 C C 说 : 是 D

D 说 : 他说的不对 !

编写程序:输出是谁做的好事,只输出对应的大写字母,输出格式printf(\ 。 #include #include int main() {

char ch;

for(ch='A'; ch<='D'; ch++) {

if(ch=='A'&&ch=='C'&&ch=='D'&&ch!='D') printf(\

if(ch!='A'&&ch!='C'&&ch=='D'&&ch!='D')

printf(\

if(ch!='A'&&ch=='C'&&ch!='D'&&ch!='D') printf(\

if(ch!='A'&&ch=='C'&&ch=='D'&&ch=='D') printf(\ } }

5.22 贪吃的猴子

有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上都吃了前一天剩下的一半加天数个(例如,第5天吃了前一天剩下的一半加5个)。到第n天早上再想吃的时候,就只剩下一个桃子了。 输入:天数n

输出:第一天的桃子个数,输出语句为printf(\monkey got %d peachs in first day.\\n\ Smaple: Input: 5

Output

The monkey got 114 peachs in first day. #include #include int main() {

int n,i;

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

m=(n-i+m)*2; }

printf(\monkey got %d peachs in first day.\\n\ return 0; }

5.23 百马百担

有100匹马,驮100担货,其中大马驮3担,中马驮2担,两匹小马驮1担 输入:无

输出:大、中、小马的个数,用逗号分隔。例如:2,30,68

- 15 -


C语言 - 中国石油大学(华东)c语言上机题及答案大全- 副本(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高中历史总结 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: