计算机2级Word格式文档下载.docx

上传人:b****5 文档编号:20240536 上传时间:2023-01-21 格式:DOCX 页数:21 大小:28.12KB
下载 相关 举报
计算机2级Word格式文档下载.docx_第1页
第1页 / 共21页
计算机2级Word格式文档下载.docx_第2页
第2页 / 共21页
计算机2级Word格式文档下载.docx_第3页
第3页 / 共21页
计算机2级Word格式文档下载.docx_第4页
第4页 / 共21页
计算机2级Word格式文档下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

计算机2级Word格式文档下载.docx

《计算机2级Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机2级Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。

计算机2级Word格式文档下载.docx

//分解出万位数

qian=x%10000/1000;

//分解出千位数

shi=x%100/10;

//分解出十位数

ge=x%10;

//分解出个位数

if(ge==wan&

shi==qian)/*个位等于万位并且十位等于千位*/

printf("

\n这个数是回文数\n"

else

\n这个数不是回文数\n"

}

综合题:

输入一学生的学号(8位数字)、生日(年-月-日)、性别(M:

男,F:

女)及三门功课(语文、数学、英语)的成绩,现要求计算该学生的总分和平均分,并将该学生的全部信息输出(包括总分、平均分)。

voidmain()

longintno;

//学号

intyear,month,day;

//生日(年、月、日)

charsex;

//性别

floatchinese,math,english;

//语文、数学、英语成绩

floattotal,average;

//总分、平均分

printf("

inputthestudent'

sNO:

scanf("

%8ld"

&

no);

sBirthday(yyyy-mm-dd):

%4d-%2d-%2d"

year,&

month,&

day);

fflush(stdin);

//清除键盘缓冲区

sSex(M/F):

sex);

printf("

sScores(chinese,math,english):

%f,%f,%f"

chinese,&

math,&

english);

total=chinese+math+english;

//计算总分

average=total/3;

//计算平均分

\n===NO=======birthday==sex==chinese==math==

english==total==average\n"

%08ld%4d-%02d-%02d%c%-5.1f%-5.1f

%-5.1f%-5.1f%-5.1f\n"

no,year,month,day,sex,

chinese,math,english,total,average);

下一题

例4要求判别键盘输入字符的类别。

可以根据输入字符的ASCII码来判别类型。

ASCII码值小于32的为控制字符。

在0~9之间的为数字,在A~Z之间为大写字母,在a~z之间为小写字母,其余则为其它字符。

charc;

\n请输入一个字符:

c=getchar();

if(c<

32)

\n该字符是一个控制字符。

\n"

elseif(c>

0'

c<

9'

\n该字符是一个数字。

\n该字符是一个大写字母。

a'

z'

\n该字符是一个小写字母。

\n该字符是其他字符。

当a的值是1、2、3时,将b的值加2,当a的值是4、5、6时,将b的值减2。

inta,b=4;

%d"

switch(a)

{

case1:

case2:

case3:

b+=2;

break;

case4:

case5:

case6:

b-=2;

default:

b*=2;

}

b=%d\n"

b);

【例1】用while语句求1~100的累计和。

inti=1,sum=0;

while(i<

=100)

{

sum+=i;

i++;

sum=%d\n"

sum);

【习题1】用下列公式计算π的值。

π/4=1-1/3+1/5-1/7+…+(-1)n1/n(精度为|1/n|<

10-6)

分析:

每项由一个分数组成,其中分子为1,分母逐次递增2。

且相邻项的正负号刚好相反。

math.h>

voidmain()

floatpi=0,fenzi=1,fenmu=1,temp=1;

while(fabs(temp)>

=1e-6)

pi=pi+temp;

fenzi=(-1)*fenzi;

fenmu=fenmu+2;

temp=fenzi/fenmu;

piis%f\n"

pi*4);

【习题2】猴子吃桃问题:

第一天吃了总数的一半再加一个;

第二天又吃了剩下的一半又加一个;

以后每天都吃剩下的一半再加一个,直到第10天只剩下1个桃子,问一共有多少桃子?

#include<

{intday,x1,x2;

day=9;

x2=1;

while(day>

=1)

x1=2*(x2+1);

x2=x1;

day--;

total=%d\n"

x1);

 

计算结果:

total=1534

【例2】猜数游戏。

要求猜一个介于1~10之间的数字,根据用户猜测的数与标准值进行对比,并给出提示,以便下次猜测能接近标准值,直到猜中为止。

intnumber=5,guess;

printf(“guessanumbetween1and10:

do

printf(“Inputyouguess:

guess);

if(guess>

number)

printf(“toolarge\n"

elseif(guess<

printf(“toosmall\n"

}while(guess!

=number);

printf(“Bingo!

Answeris%d\n"

number);

【例2】从键盘输入10个数,从中找出最小数并输出。

inta,min,i;

inputthefirstnumber:

min=a;

inputthenextninenumbers:

for(i=1;

i<

10;

i++)

if(a<

min)min=a;

min=%d\n"

min);

【习题3】一个球从100米高处落下,每次落地后弹回原来高度的一半,再落下。

求它在第10次落地时,共经过了多少距离,第10次反弹的高度是多少?

floatsn=100,hn=sn/2;

intn;

for(n=2;

n<

=10;

n++)

{sn=sn+2*hn;

hn=hn/2;

printf(“afterthe10th,thedistanceis%fm\n"

sn);

printf(“afterthe10th,thehighis%fm\n"

hn);

【例】将用户输入的小写字母转换成大写字母,直到输入非小写字母字符。

charc,ch;

while

(1)

c=getchar();

//读取一个字符

if(c>

=‘a’&

c<

=‘z’)//是小写字母

{ch=c-32;

putchar(ch);

}//输出其大写字母

else//不是小写字母

//循环退出

【例】求输入的十个整数中正数的个数及其平均值。

inti,a,num=0;

floatsum=0;

for(i=0;

10;

//输入一整数

if(a<

=0)continue;

//如果为负,则输入下一个整数

num++;

//正数个数增1

sum+=a;

//正数和累加

printf(“%d个正整数的和为:

%.0f\n"

num,sum);

printf(“平均值为:

%.2f\n"

sum/num);

【例1】:

将一张面值为100元的人民币等值换成5元、1元和5角的零钞,要求每种零钞不少于1张,有哪几种组合?

stdlib.h>

inti,j,k,count=0;

//i,j,k分别表示5元,1元和5角的张数

for(i=1;

i<

=20;

i++)

for(j=1;

j<

=100;

j++)//1元的最多为100张

for(k=1;

k<

=200;

k++)//5角的最多为200张

if(i*5+j*1+k*0.5==100)

count++;

%3d%3d%3d\n"

i,j,k);

if(count%5==0)

system("

pause"

【例1】循环嵌套,输出九九乘法表

1*1=1

2*1=22*2=4

3*1=33*2=63*3=9

4*1=44*2=84*3=124*4=16

5*1=55*2=105*3=155*4=205*5=25

6*1=66*2=126*3=186*4=246*5=306*6=36

7*1=77*2=147*3=217*4=287*5=357*6=427*7=49

8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64

9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81

inti,j;

=i;

j++)

printf(“%2d*%2d=%2d”,i,j,i*j);

if(i==j)printf(“\n”);

例2】用“*”打印一个直角三角形图案。

图案如下所示:

*

**

***

****

*****

******

*******

********

*********

**********

inti,j;

*"

if(i==j)printf("

【例1】输入一行字符,统计其中各个大写字母出现的次数。

voidmain()

{charch;

intnum[26]={0},i;

while

(1)//输入字符串,判断统计

ch=getchar();

if(ch!

\n'

{

if(ch>

='

ch<

)//是否为大写字母

num[ch-65]++;

}

else

break;

26;

i++)//输出结果

if(i%9==0)

%c(%d)"

65+i,num[i]);

冒泡法

#defineNUM10

voidmain()

inta[NUM],i,j,t,flag;

input%dnumbers:

\n"

NUM);

NUM;

i++)//输入NUM个整数

a[i]);

i++)//轮次,共NUM-1次

flag=0;

for(j=0;

j<

NUM-i;

j++)//实现一次冒泡操作

if(a[j]>

a[j+1])//交换a[j]和a[j+1]

{t=a[j];

a[j]=a[j+1];

a[j+1]=t;

flag=1;

if(flag==0)break;

thesortednumbers:

//输出排好序的数据

%d"

a[i]);

选择排序法

inta[10],i,j,k,x;

Input10numbers:

i<

=9;

k=i-1;

for(j=i;

j++)

if(a[j]<

a[k])k=j;

if((i-1)!

=k)

{x=a[i-1];

a[i-1]=a[k];

a[k]=x;

Thesortednumbers:

1.输入某学生的成绩,经处理后给出学生的等级,等级分类如下:

90分以上(包括90):

A

80至90分(包括80):

B

70至80分(包括70):

C

60至70分(包括60):

D

60分以下:

E

方法一:

(用if嵌套`)

分析:

由题意知如果某学生成绩在90分以上,等级为A;

否则,如果成绩大于80分,等级为B;

否则,如果成绩大于70分,等级为C;

否则,如果成绩大于60分为D;

否则,如果成绩小于60分,等级为E;

但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。

因此,再用if嵌套前,应先判断输入的成绩是否在0~100之间。

intscore;

chargrade;

printf("

\npleaseinputstudentscore:

scanf("

score);

if(score>

100||score<

0)

\ninputerror!

else

=90)

grade='

;

=80)

B'

=70)

C'

=60)

D'

E'

\nthestudentgrade:

grade);

输入测试数据,调试程序。

测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。

2.有一函数:

x(x<

1)

2x-1(1=<

x<

10)

3x-11(x>

=10)

用scanf函数输入x的值(分别为x<

1,1~10,>

=10三种情况),求相应的y值。

y是一个分段表达式。

要根据x的不同区间来计算y的值。

所以应使用If语句。

intx,y;

printf(“pleaseinputx:

”);

scanf(“%d”,&

if(x<

y=x;

printf(“y=%d\n”,y);

elseif(x<

y=2*x-1;

y=3*x-11;

1.打印下列图案

inti,j;

for(i=1;

=4;

for(j=1;

=4-i;

printf(“”);

=2*i-1;

printf(“*”);

printf(“\n”);

2.判断m是否是素数。

intm,i,k;

m);

k=sqrt(m+1);

for(i=2;

=k;

if(m%i==0)

break;

if(i>

=k+1)

printf(“%disaprimenumber\n”,m);

else

printf(“%disnotaprimenumber\n”,m);

1.输入两个正整数m和n,求其最大公约数和最小公倍数。

(根据定义来做)

intm,n,i,t;

inputm&

n:

%d%d"

m,&

n);

if(m>

n)

t=m;

m=n;

n=t;

for(i=m;

i>

=1;

i--)

if(n%i==0&

m%i==0)break;

最大公约数为%d\n"

i);

for(i=n;

=m*n;

i=i+n)

if(i%m==0)break;

最小公倍数为%d\n"

2.

3.}打印下列图案。

intn,i,j;

inputn:

=(n+1)/2;

for(j=1;

printf("

for(i=(n-1)/2;

4.编一个程序,按以下格式输出乘法九九表:

1*1=1

1*2=22*2=4

1*3=32*3=63*3=9

……

1*9=92*9=183*9=27……9*9=81

%2d*%2d=%2d"

j,i,i*j);

5.用for循环结构编程序输出以下图形:

intn,i,j,shang,xia;

shang=(n+1)/2;

xia=(n-1)/2;

=shang;

=shang-i;

for(i=xia;

1.有一个已排好序的数组{1,4,6,9,13,16,19,28,40,100},现输入一个数,要求按原来排序的规律将它插入数组中。

#include

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1