C语言程序设计 - 上机实验指导与习题 - 第三版 - (陈湘骥 - 编(4)

2020-03-26 19:37

参考程序: #include main()

{ long n,sum=0,i,t=1;

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

t=t+2; }

printf(\} 或

#include main() { long n,sum; scanf(\sum=n*n;

printf(\

}

注:评判系统不对程序实现细节进行分析,只对运行结果进行评测。[题目 1026:累加一行字符中的数字]

由键盘输入一行字符(总字符个数从 1 个至 80 个均有可能,以回车符表示结束),将其中每个数字

字符所代表的数值累加起来,输出结果。

[第一组自测数据] [键盘输入] abc123↙ [正确输出] 6

[第二组自测数据] [键盘输入]

A6H7T+65↙

[正确输出] 24

[提示](1)可以使用下面程序段逐个读入键盘输入的一行字符

char ch; {??}

while((ch=getchar())!='\\n')

(2)数字字符转为对应的数值可用 a=ch-'0'

参考程序: #include main() {

char c; int s=0,a;

while((c=getchar())!='\\n') { if(c>='0'&&c<='9')

{ a=c-48;

s=s+a; } }

printf(\}

10

[题目 1029:求最大公约数]

由键盘输入两个正整数 m、n(m、n 用长整数表示),计算它们的最大公约数。 [第一组自测数据] [键盘输入] 16,24↙ [正确输出] 8

[第二组自测数据] [键盘输入] 17,25↙ [正确输出] 1

[提示]公约数是既能整除 m 又能整除 n 的数,题目要求满足这一条件的最大的一个。 参考程序: #include main()

{ long r,m,n,temp;

scanf(\while(m!=0) { r=n%m;

n=m; m=r; }

printf(\} 或

#include main() {

long m,n,t,i,s;

scanf(\t=m>n?n:m; for (i=t-1;i>=1;i--) { }

printf(\}

if (m%i==0&&n%i==0) { s=i; break; }

[题目 1030:字符变换]

由键盘输入一个句子(总字符个数从 1 个至 80 个均有可能,以回车符表示结束),将其中的大写字 符变成小写(其它类型的字符不变),最后输出变换后的句子。 [第一组自测数据] [键盘输入] How Are You?↙ [正确输出] how are you?

[第二组自测数据] [键盘输入]

ThiS IS My fIrSt C ProgrAm!↙ [正确输出]

this is my first c program!

11

参考程序: #include main() {

char c;

while((c=getchar())!='\\n') {

if(c>='A'&&c<='Z')

c=c+32; putchar(c); } }

[题目 1037:计算数列和]

有数列:

编程实现,由键盘输入 n,计算输出数列前 n 项和。(结果保留四位小数) [第一组自测数据] [第二组自测数据 ] [键盘输入] [键盘输入

] 20↙ 30↙

[正确输出] [正确输出 ] 32.6603

参考程序: 88.0403

#include

main() {

int i,t,n;

float a=2,b=1,s=0; scanf(\ for(i=1;i<=n;i++) { s=s+a/b;

t=a;a=a+b;b=t;

}

printf(\

}

[题目 1044:输出最小值]

从键盘输入十个整数,输出最小值 [自测数据] [键盘输入] 12 45 76 87 5 87 43 55 99 21↙

[正确输出] 5

12

参考程序: #include \main() { int i,t,min;

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

scanf(\if(t

printf(\}

*[题目 1031:统计单词个数]

由键盘输入一个句子(总字符个数从 1 个至 80 个均有可能,以回车符表示结束),以空格分割单词,

要求输出单词的个数。 [第一组自测数据] [键盘输入] How Are You?↙ [正确输出] 3

参考程序: #include main() {

int i,num=0,word=0; char c;

if(c==' ')word=0; else if(word==0) { }

word=1; num++;

[第二组自测数据] [键盘输入]

There are many students and many

trees!↙

[正确输出] 7

for(i=0;(c=getchar())!='\\n';i++)

printf(\

}

*[题目 1042:百万富翁]

一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你 m 元, 而你第一天只需给我一分钱。第二天我仍给你 m 元,你给我 2 分钱。第三天,我仍给你 m 元,你给我 4 分钱。依次类推,你每天给我的钱是前一天的两倍,直到一个月(38)天。百万富翁很高兴,欣然接受这 个契约。现要求,编写一个程序,由键盘输入 m,计算多少天后,百万富翁开始亏钱。 [第一组自测数据] [键盘输入] 100↙ [正确输出]

18

[第二组自测数据] [键盘输入] 10000↙

13

[正确输出]

25

参考程序: #include #include main() {

int n,m,i;

scanf (\for (i=1;i<=38;i++)

if (0.01*(pow(2,i-1)-1)-i*m>=0) break; printf(\}

14


C语言程序设计 - 上机实验指导与习题 - 第三版 - (陈湘骥 - 编(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于成立高坝中学教育强县创建工作领导小组的通知

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

马上注册会员

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