计算机2级.docx
- 文档编号:7143625
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:21
- 大小:28.12KB
计算机2级.docx
《计算机2级.docx》由会员分享,可在线阅读,更多相关《计算机2级.docx(21页珍藏版)》请在冰豆网上搜索。
计算机2级
例:
从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。
编程思路
1:
定义chara,ch;
2:
输入a;
3:
ch=(a>=’A’&&a<=‘Z’)?
(a+32):
a
4:
输出ch
#include
main()
{
chara,ch;
printf("Inputacharacter:
");
scanf("%c",&a);
ch=(a>='A'&&a<='Z')?
(a+32):
a;
printf("ch=%c\n",ch);
}
第二
#include
voidmain()
{
longge,shi,qian,wan,x;
printf("\n请输入一个五位整数:
");
scanf("%ld",&x);
wan=x/10000;//分解出万位数
qian=x%10000/1000;//分解出千位数
shi=x%100/10;//分解出十位数
ge=x%10;//分解出个位数
if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
printf("\n这个数是回文数\n");
else
printf("\n这个数不是回文数\n");
}
综合题:
输入一学生的学号(8位数字)、生日(年-月-日)、性别(M:
男,F:
女)及三门功课(语文、数学、英语)的成绩,现要求计算该学生的总分和平均分,并将该学生的全部信息输出(包括总分、平均分)。
#include
voidmain()
{
longintno;//学号
intyear,month,day;//生日(年、月、日)
charsex;//性别
floatchinese,math,english;//语文、数学、英语成绩
floattotal,average;//总分、平均分
printf("inputthestudent'sNO:
");
scanf("%8ld",&no);
printf("inputthestudent'sBirthday(yyyy-mm-dd):
");
scanf("%4d-%2d-%2d",&year,&month,&day);
fflush(stdin);//清除键盘缓冲区
printf("inputthestudent'sSex(M/F):
");
scanf("%c",&sex);
printf("inputthestudent'sScores(chinese,math,english):
");
scanf("%f,%f,%f",&chinese,&math,&english);
total=chinese+math+english;//计算总分
average=total/3;//计算平均分
printf("\n===NO=======birthday==sex==chinese==math==
english==total==average\n");
printf("%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之间为小写字母,其余则为其它字符。
voidmain()
{
charc;
printf("\n请输入一个字符:
");
c=getchar();
if(c<32)
printf("\n该字符是一个控制字符。
\n");
elseif(c>='0'&&c<='9')
printf("\n该字符是一个数字。
\n");
elseif(c>='A'&&c<='Z')
printf("\n该字符是一个大写字母。
\n");
elseif(c>='a'&&c<='z')
printf("\n该字符是一个小写字母。
\n");
else
printf("\n该字符是其他字符。
\n");
}
例:
当a的值是1、2、3时,将b的值加2,当a的值是4、5、6时,将b的值减2。
inta,b=4;
scanf("%d",&a);
switch(a)
{
case1:
case2:
case3:
b+=2;break;
case4:
case5:
case6:
b-=2;break;
default:
b*=2;break;
}
printf("b=%d\n",b);
【例1】用while语句求1~100的累计和。
#include
voidmain()
{
inti=1,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("sum=%d\n",sum);
}
【习题1】用下列公式计算π的值。
π/4=1-1/3+1/5-1/7+…+(-1)n1/n(精度为|1/n|<10-6)
分析:
每项由一个分数组成,其中分子为1,分母逐次递增2。
且相邻项的正负号刚好相反。
#include
#include
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;
}
printf("piis%f\n",pi*4);
}
【习题2】猴子吃桃问题:
第一天吃了总数的一半再加一个;第二天又吃了剩下的一半又加一个;以后每天都吃剩下的一半再加一个,直到第10天只剩下1个桃子,问一共有多少桃子?
#include
main()
{intday,x1,x2;
day=9;
x2=1;
while(day>=1)
{
x1=2*(x2+1);
x2=x1;
day--;
}
printf("total=%d\n",x1);
}
计算结果:
total=1534
【例2】猜数游戏。
要求猜一个介于1~10之间的数字,根据用户猜测的数与标准值进行对比,并给出提示,以便下次猜测能接近标准值,直到猜中为止。
intnumber=5,guess;
printf(“guessanumbetween1and10:
\n");
do
{
printf(“Inputyouguess:
");
scanf("%d",&guess);
if(guess>number)
printf(“toolarge\n");
elseif(guess printf(“toosmall\n"); }while(guess! =number); printf(“Bingo! Answeris%d\n",number); 【例2】从键盘输入10个数,从中找出最小数并输出。 #include voidmain() { inta,min,i; printf("inputthefirstnumber: \n"); scanf("%d",&a); min=a; printf("inputthenextninenumbers: \n"); for(i=1;i<10;i++) { scanf("%d",&a); if(a } printf("min=%d\n",min); } 【习题3】一个球从100米高处落下,每次落地后弹回原来高度的一半,再落下。 求它在第10次落地时,共经过了多少距离,第10次反弹的高度是多少? #include main() { 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);} 【例】将用户输入的小写字母转换成大写字母,直到输入非小写字母字符。 #include voidmain() { charc,ch; while (1) { c=getchar();//读取一个字符 if(c>=‘a’&&c<=‘z’)//是小写字母 {ch=c-32; putchar(ch);}//输出其大写字母 else//不是小写字母 break;//循环退出 } } 【例】求输入的十个整数中正数的个数及其平均值。 #include voidmain() { inti,a,num=0; floatsum=0; for(i=0;i<10;i++) { scanf("%d",&a);//输入一整数 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张,有哪几种组合? #include #include main() { 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++; printf("%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 #include voidmain() { inti,j; for(i=1;i<10;i++) for(j=1;j<=i;j++) { printf(“%2d*%2d=%2d”,i,j,i*j); if(i==j)printf(“\n”); } } 例2】用“*”打印一个直角三角形图案。 图案如下所示: * ** *** **** ***** ****** ******* ******** ********* ********** #include main() { inti,j; for(i=1;i<=10;i++) for(j=1;j<=i;j++) { printf("*"); if(i==j)printf("\n"); } } 【例1】输入一行字符,统计其中各个大写字母出现的次数。 #include voidmain() {charch; intnum[26]={0},i; while (1)//输入字符串,判断统计 { ch=getchar(); if(ch! ='\n') { if(ch>='A'&&ch<='Z')//是否为大写字母 num[ch-65]++; } else break; } for(i=0;i<26;i++)//输出结果 { if(i%9==0) printf("\n"); printf("%c(%d)",65+i,num[i]); } } 冒泡法 #include #defineNUM10 voidmain() { inta[NUM],i,j,t,flag; printf("input%dnumbers: \n",NUM); for(i=0;i scanf("%d",&a[i]); for(i=1;i { flag=0; for(j=0;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; } printf("thesortednumbers: \n");//输出排好序的数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机