C 概念基础讲解1(4)

2018-11-24 15:43

赋值给它。 cin>>a; max=a;

for(i=1;i

{ cin>>a; if(a>max) max=a;} 循环退出后max中存储的就是最大值

8、求最小值

先假设输入的第一个数即为最小数,然后用它去和后面的数一一进行比较,如果后面的数比它小,则将小的数交换给它。 cin>>a; min=a;

for(i=1;i

{ cin>>a; if(a

9、字符的处理

输入一串字母和数字,以? . ?号结束,统计其中字母和数字的个数。 char a;

zimu=0; shuzi=0; for( cin>>a; a!=?.?;){

if(a>=?a?&&a<=?z?||a>=?A?&&a<=?Z?) zimu++; if(a>=?0?&&a<=?9?) shuzi++; cin>>a; }

10、穷举的思想

穷举法也称为?枚举法?,这种算法基本思想是依题目的部分条件,确定答案的大致范围;在此范围内,对所有可能的情况一一列举,逐一验证,直到全部情况验证完毕,或者得到了需要的结果。

若某个情况经验证符合题目的全部条件,则它就是本题的一个答案;若全部情况经验证后,都不符合 题目的全部条件,则原题无解。 用穷举法解题的大致步骤如下:

1)分析题目,确定所要求的解是什么? 2)确定解的可能取值范围是什么? 3)穷举出所有可能的解 4)验证每一个可能的解 5)优化

例:鸡兔同笼问题

一个笼子里有鸡和兔,现在只知道里面一共有a个头,b只脚,问鸡和兔各有多少只(要求鸡和兔至少1只)?

int i,j,a,b; cin>>a>>b;

for(i=1;i

11、递推的思想 迭代的方法

例:斐波那契数列(从第三项起为前面两项之和) 1 1 2 3 5 8 13…

F1=1 (n=1) F2=1 (n=2) Fn=Fn-1+Fn-2 (n≥3)

cin>>n; a1=1; a2=1;

for(i=3; i<=n; i++){ a3=a1+a2; a1=a2; a2=a3; }

cout<

猴子吃桃问题。猴子摘了一堆桃,第一天吃了一半,还嫌不过瘾,又吃了一个;第二天又吃了剩下的一半零一个;以后每天如此。到第N天,猴子一看只剩下一个了。问最初有多少个桃子? cin>>n;

for(s=1,i=2;i<=n;i++) s=(s+1)*2; cout<

练习(循环)

一、选择

1、下列关于if语句的描述中,错误的是

A.If语句中可以没有 else if 子句,也可以没有else子句

B.If语句中只能有1个else子句

C.If语句中只能有不超过5个的else if 子句 D.If语句中<条件>可以是任意表达式

2、下列关于break语句和continue语句的描述中,错误的是

A.break语句可以用来退出循环体 B.Break语句可以用来退出if语句

16

C.Continue语句只能用于循环句的循环体内 D.Break语句和continue语句都属于转向语句

3、下列循环语句中,执行循环体的次数是 while(100) cout<<”ABC”;

A.100 B.0 C.无限 D.10

4、下列循环语句中,错误的是 A.int a=1,b=2;while(b--);

B.int a=1.b=2;do a++;while(a==b); C.int a=1,b=2;while(a==3); D.do b—while(b==0);

二、看程序写结果。 int main(){//题11 int m=0,n,k; cin>>k;

for(n=2;n

输入:5

int main(){//题12 int y=2,k; cin>>k;

while (y<=k) y=y*y; cout<

输入:32

int main(){//题13 int x=1,y=0; while(x) { y+=x; cin>>x; }

cout<

输入:2 8 6 0

int main(){//题14 char ch,c,d; cin>>d;

for(ch=?b?;ch<=d;ch++) {c=ch-1;cout<

}

输入:e

int main(){//题15 char a;

int zimu=0; shuzi=0; for( cin>>a; a!=?.?;){

if(a>=?a?&&a<=?z?||a>=?A?&&a<=?Z?) zimu++; if(a>=?0?&&a<=?9?) shuzi++; cin>>a; }

cout<

输入:My telephone number is 63003828.

int main(){//题16 int s=0,i,n; cin>>n;

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

if(i%3==0&&i%4==0) s+=i; cout<<”s=”<

输入:500

int main(){//题17 int s=1,i,n; cin>>n;

for(i=1;i<=n;i++) s*=i; cout<

输入:5

int main(){//题18 int s=0,n; cin>>n; while (n) { n=n/10; s++; }

cout<

输入:1234

int main(){//题19 int s=0,i=1,n;

17

cin>>n; do{ s+=i; i++;

}while(i<=n); cout<

输入:5

int main(){//题20 int a,min,i,n; cin>>n>>a; min=a;

for(i=1;i

{ cin>>a; if(a

输入:6 9 32 45 23 4 70

int main(){//题21 int n,f,j; cin>>n; f=1;

for( j=2;j

输入:17

#include//题22 int main(){ int g=0,m,n; double k=0,t; cin>>n;

for(m=1;m<=n;m++){ g++;

k+=1/(g*(g+1)); }

cout<

输入:49

int main(){//题23 int s=0,x,t;

cin>>x; do{

t=x % 10; s+=t; x/=10 ; }while(x); cout<

输入:123456789

#include//题24 int main(){ int i,n; cin>>n;

for(i=1;i<=n;i++) if(i%2==0){

cout<

if(i%5==0) cout<<”\\n”; } }

输入:50

int main(){//题25 int n,i,a1=3,a2=5,a3; cin>>n;

cout<

cout<

输入:10

int main(){//题26 int p,q,s,t; cin>>p;

for(q=p+1;q<=2*p;q++){ t=0;

s=(p*q)%(q-p); if(s==0){

t=p+q+(p*q)/(q-p); cout<

18

} }

输入:12

(三)单循环 1)计数器

1144、统计a的个数(程序文件名:count)

【问题描述】输入若干个字符,它的终止符是’#’,计算输入的字符中字母'a’出现的次数(包括大小写)。 【输入说明】输入若干个字符,以'#'结束. 【输出说明】字母'a’出现的次数 【样例输入】huang# 【样例输出】1

2.求出100之内自然数中偶数之和

3.求出100之内自然数中最大的能被31整除的数

1540. 乒乓球

题目说明:华华最近对乒乓球比赛的统计数据进行了一些分析,首先将比赛每个球的胜负列成一张表,然后计算在11分制下双方的比赛结果(截至记录末尾)。 比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):

WWWWWWWWWWWWWWWWWWWWWWLW 在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。如果一局比赛刚开始,则此时比分为0比0。 (规定10平后需要双方的分差为2分时才能分出胜负) 你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。

输入说明:输入包含若干行字符串(每行至多20个字母),字符串有大写的W、L和E组成。其中E表示比赛信息结束,程序应该忽略E之后的所有内容。

输出说明:输出有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。 样例输入:

WWWWWWWWWWWWWWWWWWWW WWLWE 样例输出: 11:0 11:0 1:1

1145.整数求和(初级)

题目说明:求输入的一个整数n(n<1000000)的各位数字之和。

输入说明:输入一个整数n 输出说明:输出各位数字之和 样例输入:123 样例输出:6

1536.累加求和(题目见顺序结构) 求出下列分数序列的前15项之和 2\\1,3\\2,5\\3,8\\5,13\\8,21\\13...

求出1-1\\2+1\\3-4\\1+........+1\\99-1\\100的值

9、购物问题(程序文件名:shopping)

【问题描述】dog同学喜欢去购物,但是他不想花很多钱,所以他总是挑那些自己喜欢的东西来买,现在给你一张他买东西的购物清单,上面有他喜欢的和不喜欢的商品,问他这购买所有喜欢的物品一共需要花多少钱? 【输入说明】第一行一个n(1<=n<=100)表示这张购物单上有多少个商品。后面紧接n行,每行描述购买的一种物品:

每行一个实数ai和一个字符bi(1<=ai<=10000),之间用空格分开,其中ai表示物品的价格,bi表示dog对这个物品喜欢还是不喜欢,喜欢用Y来表示,不喜欢用N来表示。

【输出说明】输出只有一行表示dog购买所有喜欢的商品一共需要花多少钱。(结果保留两位小数) 【样例输入】3 10000 Y 10.9 N 20.5 Y

【样例输出】10020.50

10、正方形的数量(存储文件名:square)

小明接到一个任务:统计由边长为1的小正方形组成的n×n的大正方形中正方形的数量。如n=3时,正方形数量为14个。小明希望编一个程序,输入n后,立马就输出正方形数量,省得他一个一个去数。 【样例输入】3 【样例输出】14

11、求和(程序文件名:sumn)

【问题描述】根据输入的自然数n求1+1/2+1/3+1/4+…+1/n的和。

【输入说明】输入n。

19

【输出说明】输出和(保留两位小数)。 【样例输入】2 【样例输出】1.50

1142、约数求和(程序文件名:divisor) 【问题描述】键入一个自然数x(x<10000),求这个自然数的所有约数之和s。 【输入说明】自然数x 【输出说明】约数之和s 【样例输入】6 【样例输出】12

1927.购物(程序文件名money) 题目说明:Dog同学喜欢去购物,但是他不想花很多钱,所以他总挑打折的东西来买,现给出他买的所有东西的购物清单,清单每行两个数,第一个数ai表示物品价格,第二个数bi表示物品打几折(1表示打一折),问他这次购物一共花了多少钱? 输入说明:第一行一个n(1<=n<=100)表示dog一共买了多少个东西。

后面紧接n行,每行描述购买的一种物品: 每行2个整数ai,bi(1<=ai<=10000,1<=bi<=10)

输出说明:一行,一个实数为dog一共花了多少钱,答案保留2位小数 样例输入: 2

10000 10 1 1

样例输出: 10000.10

1534. 求最大值

题目说明:求恰好使s=1+1/2+1/3+…+1/n的值不大于m时n的最大值,(m<15) 输入说明:输入m 输出说明:输出n 样例输入:2 样例输出:3

1058.津津的储蓄计划(题目见选择结构)

3)累乘器

1145、整数求和(程序文件名:intsum)

【问题描述】求输入的一个整数n(n<1000000)的各位数字之和。

【输入说明】输入一个整数n. 【输出说明】输出各位数字之和 【样例输入】123 【样例输出】6

3)求最值

1146、最小公倍数(程序文件名:lcm)

【问题描述】求两个自然数m,n的最小公倍数。 【输入说明】输入两个自然数m,n(0<=m,n<=10000) 【输出说明】输出最小公倍数 【样例输入】16 24 【样例输出】48

1147、最大数(程序文件名:max)

【问题描述】从n(n<1000)个数中挑选出最大的数 【输入说明】输入第一个数为n,后面为n个数 【输出说明】最大数

【样例输入】4 9 6 3 8 【样例输出】9

1542. 数的位置

题目说明:输入n个数,输出其中的最大数及其位置。 输入说明:输入第一行为一个数n(n<=100),第二行为n个用空格分开的整数(都小于10000,没有相等的数字)。

输出说明:输出其中的最大数及其位置。之间用空格隔开

样例输入: 3 1 3 2

样例输出:3 2

4)穷举

1143. 四位数分解

题目说明:把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,(30+25)2=3025计算结果又等于原数。求所有符合这样条件的四位数。 输入说明:无

输出说明:符合这样条件的四位数,每个之间用一个空格分开.

1537.阿姆斯特朗数

题目说明:阿姆斯特朗数:如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(也称自恋数),如407=4^3+0^3+7^3,试编程求出n(n<=10000)

20


C 概念基础讲解1(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011届高三数学一轮复习测试-不等式(文)

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

马上注册会员

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