阅读程序写结果试题(第四第五章)if_switch_do_while(五)
switch语句练习
switch语句练习第五章switch语句练习题1.若运⾏时输⼊:3 5/<回车>,则以下程序的运⾏结果是________main( ){float x,y;char o;double r;scanf(“%f %f %c”,&x,&y,&o);switch(o){case ’+’:r=x+y;break;case ’-‘:r=x-y;break;case ’*’:r=x*y;break;case ’/’:r=x/y;break;}printf(“%f”,r);}2. 根据以下嵌套的if语句所给条件,填写switch语句,使它完成相同的功能. (假设mark的取值在1~100之间的整数.) if语句:if(mark<60)k=1;else if(mark<70)k=2;else if(mark<80)k=3;else if(mark<90)k=4;else if(mark<100)k=5;switch语句:switch( [1] ){[2] k=1; break;case 6: k=2: break; case 7: k=3; break;case 8: k=4; break;[3] k=5;3.设有程序⽚段:switch(grade){case ’A’:printf(“85-100\n”);case ’B’:printf(“70-84n”);case ’C’:printf(“60-69\n”);case ’D’:printf(“<60\n”);default:printf(“error!\n”);}若grade的值为’C’,则输出结果是_________.4.以下程序段的运⾏结果是_____.int x=1,y=0;switch(x){case 1:switch(y){case 0:printf(“**1**\n”);break;case 1:printf(“**2**\n”);break;}case 2:printf(“**3**\n”);}5.根据以下函数关系,对输⼊的每个x值,计算出相应的y值,请在程序的( ) 内填正确内容main( ){int x,c,m;float y;scanf(“%d”,&x);if(1)c=-1;else c=(2);switch(c){case -1;y=0;break;case 0:y=x;break;case 1:y=10;break;case 2:case 3:y=-0.5*x+20;break; default:y=-2;}if(3)printf(“y=%f”,y);else printf(“error\n”);} 6.以下程序的运⾏结果是( ) main( ){int a=2,b=7,c=5;switch(a>0){case 1:switch(b<0){case 1:printf(“@”);break; case 2:printf(“!”);break;} case 0:switch(c= =5){case 0:printf(“*”);break; case 1:printf(“#”);break;default:printf(“#”);break;}default:printf(“&”);}printf(“\n”);}7.请读程序:#includemain( ){int x=1,y=0,a=0,b=0;switch(x){case 1:switch(y){case 0:a++;break;case 1:b++;break;}case 2:a++;b++;break;}printf(“a=%d,b=%d”,a,b);}上⾯程序的运⾏结果是( )8.假设奖⾦税率如下(a代表奖⾦,r代表税率)a<500 r=0%500<=a<1000 r=5%1000<=a<2000 r=8%2000<=a<3000 r=10%3000<=a r=15%以下程序对输⼊的⼀个奖⾦数,求税率和应交税款以及实得奖⾦数(扣除奖⾦税后).题中r代表税率,t代表税款,b代表实得奖⾦数.在( )内填正确内容main( ){float a,r,t,b;int c;scanf(“%f”,&a);if(a>=3000)c=6;else c=[1];switch(c){case 0:r=0;break;case 1:r=0.05;break;case 2:case 3:[2];break;case 4:case 5:r=0.1;break;case 6:r=0.15;break;}t=a*r;b=a-t;printf(“r=%f,t=%f,b=%f”,r,t,b);}9.某个⾃动加油站有’a’,b’,’c’三种汽油,单价分别为 1.50,1.35,1.18(元/千克),也提供了“⾃⼰加”或“协助加”两个服务等级,这样⽤户可以得到5%或10%的优惠.本程序针对⽤户输⼊加油量a,汽油品种b和服务类型c(‘f’--⾃动,’m’-- ⾃⼰,’e’--协助 ),输出应付款m请在[ ]内填⼊正确内容.main( ){float a,rl,r2,m;char b,c;scanf(“%f%c%c”,&a,&b,&c);switch(b) {case ’a’:r1=1.5;break;case ’b’:[ 1];break;case ’c’:rl=1.18;break;}switch(c){case ’f’:r2=0;break;case ’m’:r2=0.05;break;case [2]:r2=0.1;break;}m=[3];printf(“%f”,m);}10.以下程序计算某年某⽉有⼏天.其中判别闰年的条件是:能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年.请在[ ]内填⼊正确内容.main( ){int yy,mm,len;printf(“year,month=”);scanf(“%d %d”,&yy,&mm);switch(mm){case 1:case 3:case 5:case 7:case 8:case 10:case 12:[1];break;case 4:case 6: case 9:case 11:len=30;break;case 2:if(yy%4= =0&&yy%100!=0||yy%400= =0)[2];else[3];default:printf(“input error”)break;}printf(“the length of %d %dis%d\n”,yy,mm,len);}11.以下程序⽤以计算y年ml⽉dl⽇与同年的m2⽉d2之间的天数(m2>=m1),并打印计算结果.若m1=m2且d1=d2则算1天.在闰年时,2⽉有29天.闰年的年号由以下⽅式确定:该年号能被4整除但不能被100整除,或者该年号能被400整除则是闰年.例:输⼊1997,2,27,3,10<回车>时,输出为12.表明从1997年2⽉27⽇到3⽉10⽇共有12天,在( )填正确内容main( ){int y,ml,dl,m2,d2;int i ,dscanf(“%d,%d,%d,%d,%d,”&y,&ml,&dl,&m2,&d2);y=(y%4= =0( )y%100!=0( )y%400= =0))1:0;d=0-d1;for(i=m1;iswitch(i){case 1:case 3:case 5:case 7:case 8:case 10:case 12:d+=31;break;case2:d=d+28+y;break;case4:case6:case9:case11:( );}printf(“%d”,d+d2+1);}12.将以下程序段改⽤⾮嵌套的if语句实现int s,t,m; t=(int)(s/10);switch(t){case 10:m=5,break;case 9:m=4;break;case 8:m=3,break;case 7:m=2,break;case 6:m=1,break;default m=0;}13.⽤switch编程实现:y=>=<-)0(1)0(0)0(1xxx14.将以下程序段改⽤嵌套的if语句实现int s,t,m;t=(int)(s/10);switch(t){case 10:m=5,breakcase 9:m=4,breakcase 8:m=3,breakcase 7:m=2,breakcase 6:m=1,breakdefault:m=0}15.将以下语句改写成switch语句if((s>0)&&(s<=10))if((s>=3)&&(s<=6))x=2;else if((s>1)||(s>8))x=3;else x=1else x=016.编程实现以下功能:读⼊两个运算数(datal和data2)及⼀个运算符(op),计算表达式data1 op data2的值,其中op可为+,-,*,/(⽤switch语句实现)17.编⼀程序,对于给定的⼀个百分制成绩,输出相应的五分制成绩,设90分以上为’A’80~89为’B’70~79为’C’60~69为’D’60以下’E’(⽤switch语句实现)。
python程序设计基础课后习题答案(第五章)
第五章答案5.2:实现i s o d d()函数,参数为整数,如果参数为奇数,返回t r u e,否则返回f a l s e。
def isodd(s):x=eval(s)if(x%2==0):return Falseelse:return Truex=input("请输入一个整数:")print(isodd(x))请输入一个整数:5True5.3:实现i s n u m()函数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回t r u e,否则返回f a l s e。
def isnum(s):try:x=eval(s)if((type(x)==int)|(type(x)==float)|(type(x)==complex)):return Trueelse:return Falseexcept NameError:return Falsex=input("请输入一个字符串:")print(isnum(x))请输入一个字符串:5True题5.4:实现m u l t i()函数,参数个数不限,返回所有参数的乘积。
def multi(x):xlist=x.split(",")xlist = [int(xlist[i]) for i in range(len(xlist))] #for循环,把每个字符转成int值num=1for i in xlist:num=num*iprint(num)s=input("请输入数字,并用,号隔开:")multi(s)请输入数字,并用,号隔开:5,420题5.5:实现i s p r i m e()函数,参数为整数,要有异常处理,如果整数是质数返回t u r e,否则返回f a l s e。
try:def isprime(s):i=2m=0for i in range(2,s-1):if(s%i==0):i+=1m+=1else:i+=1if(m>0):return Falseelse:return Trueexcept NameError:print("请输入一个整数!")s=eval(input("请输入任意一个整数:")) print(isprime(s))请输入任意一个整数:9False。
第5章 习题与思考题和答案
4.下段程序执行的输出结果是。
S=0:T=0:U=0
For i=1 To 3
For j=1 To i
For K=j To 3
S=S+1
Next K
T=T+1
Next j
U=U+1
Next i
Print S;T;U
A.3 6 14B.14 63C.14 3 6D.16 4 3
Next j
If j>Int (Sqr(n-m))ThenPrint n,m,n-m
EndIf
Next m
Next n
EndSub
六
(1)编程序计算:1!+3!+5!+….+11!
(2)输入两个正整数m和n,求其最大公约数a和最小公倍数b,计算最大公约数a的方法如下:先算出m/n余数r,若r等于0,则n为最大公约数;若r不为0,则把原来的n值作为新的m值,把原来的r值作为新的n值,继续运算。这样辗转相除,直到r为0,此时的n值为最大公约数a,最小公倍数则可用原始m与n值的积除以最大公约数求得。
Private Sub Form_click()
Dim k,a,b as integer
a=20
b=2
k=2
Do While k<=a
b=b*2
k=k+5
Loop
Print b
End Sub
5.写出以下程序在单击命令按钮后的输出结果。
Private Sub Form_click()
k=0
fori=1 to 5
If n <= 0 Or m <= 0 Then
阅读程序写结果(函数)
1.有以下程序段,运行后的输出结果是【1】:float fun〔int x,int y〕{ return〔x+y〕;}main〔〕{ int a=2,b=5,c=8;printf〔"%3.0f\n",fun〔〔int〕fun〔a+c,b〕,a-c〕〕; } 2. 以下程序段执行后的输出结果是【2】void func1〔int i〕;void func2〔int i〕;char st[]="hello,friend!";void func1〔int i〕{ printf〔"%c",st[i]〕;if〔i<3〕{ i+=2;func2〔i〕;} }void func2〔int i〕{ printf〔"%c",st[i]〕;if〔i<3〕{i+=2;func1〔i〕;}} main〔〕{ int i=0; func1〔i〕; printf〔"\n"〕; }3. 有以下程序段,运行后的输出结果是【3】:int f〔int n〕{ if〔n==1〕return 1;else return f〔n-1〕+1; }main〔〕{ int i,j=0;for〔i=1;i<3;i++〕j+=f〔i〕;printf〔"%d\n",j〕; }4.有如下程序段,运行后的输出结果是【4】:long fib〔int n〕{ if〔n>2〕return〔fib〔n-1〕+fib〔n-2〕〕;else return〔2〕; }main〔〕{ printf〔"%d\n",fib〔3〕〕; }5. 以下函数的运行结果是【5】int f〔int a,int b〕{ int c;if〔a>b〕c=1;else if〔a==b〕c=0;else c=-1;return〔c〕;}main〔〕{ int i=2,p; int j,k; j=i; k=++i;p=f〔j,k〕; printf〔"%d",p〕;}6.阅读以下程序段,当运行函数时,输入asd af aa z67,那么输出为【6】int fun 〔char *str〕{ int i,j=0;for〔i=0;str[i]!=′\0′;i++〕if〔str[i]!=′′〕str[j++]=str[i];str[j]= ′\0′;}main〔〕{ char str[81]; int n; clrscr〔〕;printf〔"Input a string : "〕; gets〔str〕;puts〔str〕; fun〔str〕; printf〔"%s\n",str〕; } 7.以下程序段的输出结果是【7】long fun〔int n〕{ long s;if〔n==1||n==2〕s=2;else s=n-fun〔n-1〕;return s;}main〔〕{ printf〔"%ld\n", fun〔3〕〕; }8.已有变量定义和函数调用语句:int a=25;print_value〔&a〕;下面函数的正确输出结果是【8】void print_value〔int *x〕{ printf〔"%d\n",++*x〕; }9. 以下程序段的输出结果是【9】int f〔〕{ static int i=0; int s=1;s+=i; i++; return s; }main〔〕{ int i,a=0;for〔i=0;i<5;i++〕a+=f〔〕;printf〔"%d\n",a〕;}10. 阅读下面程序段段,那么执行后输出的结果是【10】main〔〕{ char fun〔char,int〕;char a=′A′; int b=13;a=fun〔a,b〕; putchar〔a〕;}char fun〔char a,int b〕{ char k; k=a+b; return k; }11.现有如下程序段,程序段的输出结果是【11】int fun〔int x〕{ printf〔"x=%d\n",++x〕; }main〔〕{ fun〔12+5〕; }12.现有如下程序段,程序段的输出结果是【12】int aa〔int x,int y〕{ int w; while〔y〕{ w=x%y; x=y; y=w; }return x; }main〔〕{ int a=24,b=16,c; c=aa〔a,b〕;printf〔"%d\n",c〕; }13.以下程序段的输出结果是【13】#define N 3#define M 3void fun〔int a[M][N]〕{ printf〔"%d\n",*〔a[1]+2〕〕; }main〔〕{ int a[M][N]; int i,j;for〔i=0;i<M;i++〕for〔j=0;j<N;j++〕a[i][j]=i+j-〔i-j〕;fun〔a〕; }14. 阅读下面程序段,那么执行后的结果为【14】fun1〔〕{ int k=20; return k; }fun2〔〕{ int a=15; return a; }fun3〔int a,int b〕{ int k; k=〔a-b〕*〔a+b〕; printf〔"%d\n",k〕; }main〔〕{ fun3〔fun1〔〕,fun2〔〕〕; }15. 阅读下面程序段,那么程序段执行后的结果为【15】main〔〕{ int a=4,b=6,c=7; double d;double fun〔int,int,int〕;d=fun〔a,b,c〕; printf〔"%lf\n",d〕; }double fun〔int a,int b,int c〕{ double s; s=a%b*c; return s; }16. 现有如下程序段,那么程序段的输出结果为【16】int f〔int a,int b〕{ int c;if〔a>0&&a<10〕c=〔a+b〕/2;else c=a*b/2;return c; }main〔〕{ int a=8,b=20,c; c=f〔a,b〕; printf〔"%d\n",c〕;} 17.阅读如下程序段,执行后的输出结果为【17】main〔〕{ char c; int i; char count〔〕; int p〔char〕;for〔i=0;i<30;i++〕c=count〔〕; p〔c〕; }char count〔〕{ char str=′A′; str+=1; return〔str〕; } p〔char c〕{ putchar〔c〕; putchar〔′\n′〕;}18. 阅读程序段,那么执行后的结果为【18】test1〔〕{ int x=0; x++; return x; }test2〔〕{ static int x=0; x++; return x; } main〔〕{ int i,m,n;for〔i=0;i<3;i++〕{ m=test1〔〕; n=test2〔〕; }printf〔"%d,%d\n",m,n〕; }19.以下程序段的输出结果是【19】。
《C语言学习知识程序设计》阅读程序写结果试题汇总
阅读程序写结果试题第四章选择结构(共20道题)1.(于蕾)#include <stdio.h>void main(){mt x yt;x=7;y=9;if(x<y){t=x;x=y;y^t;}piiDtf(”%d.%d\iT, x,y );}运行结果:9,72.(于蕾)#include <stdio.h>void main(){mt x=l,a=2,b=3;switch(x){case 1: a-; break;case 2: b++; break;case 3: a++;b++;} pTintfC\na=%dqb=%d\n”,a,b); }运行结果:a=l,b=33.(于蕾)#include <stdio.h>void main()cliai- chi = E; if(chl >= A')chl++「elsechl+=32「pHndf ・chl H*c\n・「chi);chinF4・(罷)^include Asrdlo.hv voidmaix )宀h x 》yj; xdy=3- lf(xvy)宀Y x n c p l s-t f (・・*dWd\iT Vx 》y )八3.5W(出玉)^includeA s a l o .h v r n rmain()宀h u p b Q s LplB-tfv ・Ell@threehucgcls..)八scaDfrfd<d%dJ<&pp?bdc)「inaAnb) m=p else m giKCAm) B H O -pmHf(hH*d\irD 匚【ctum0八 彗>“212223人回-m v111H216.(王伟)#include <stdio.h>mt mam()char chl=8,ch2=B,cli3=E;if(chl>cli2)if(ch2>ch3)ch3++;else-ch3;piintf(M ch3=%c\ii,\ch3); return 0;}运行结果:ch3=D7.(王伟)#include <stdio.h> mt mam(){float x、y;scanf(H%f\&x);switch((int)X/z10){case 0:尸l・0; prmtf(n y=%f\n,\y);bieak;case 1:尸2*x+l; prmtf(n y=%f\n,\y);bieak;case 2:尸3*x*x+2; prmtf(n y=%f\n,\y);bieak;default:printff'No defmition.\n");}return 0;}输入:15.3<回车〉运行结果:V=31.600000J8.(王伟)^include <stdio.h>mt mam()chai- chl=,A\cli2=B,; switch(chl)caseswitch(ch2) {case B1: prmtf(n Good! \ii n) ;break;case W: printfC^Betteil^^ibreak;}case B1: printf("Best!\n H); break;}return 0;}运行结果:Good!Best?9.(王锋)#include <stdio.h>void main(){float score;score = 100;if (score<60) piiiitf(n E^i H);elseswitch( (int) score /10 ){ case 10:case 9:case 8: prmtf(H B\n M);case 7: prmtf(n C\n M); break; case 6:prmtf(H D\ii H); break; default: pnntffEnoAnJ;}} 运行结果:ABC10.(王锋)#include <stdio.h>void main(){int i=0, a=2:if(i==0)pnntfT$$) pmitfD}运行结果:11.(王锋)#iiiclude<stdio.h>void main(){int m= 10.n=0 ,p=4,q=20; if (m)if(n)q=15-m;elseq=25+m;else if (p)q=q+p; piintfC<q=%d,n,\q);}运行结果:q=3512.(王锋)#iiiclude<stdio.h>void main()int a=l.b=0; switch(a)case 1: switch (b)case 0: piintf("**0**”); break; case1:print^^**! **^);break;}case 2: pimtfC c**2**n);break;运行结果:**Q****2**13.(宋昕)# iiiclude<stdio.h> mt maiii()int a=2°b=7,c=5;switch (a>0){case 1: switch (b<0){case 1: pnntff@”); break ;case 2: prmtf(n!M); break ;case 0: switch (c==5){case l:prmtf(n*H); break; default:pnntff#”); break ;} pnntfC,\n M); leturn 0;}运行结果:*&14.(宋昕)#iiiclude<stdio.h> mt mam()int a=O,b= 1 ,c=0,d=20; if(a) d=d-10;else if (!b)if(!c) d=15;elsedH25;d\n=d)八 ictum sdH2015・(汩淳)#includcAsrdlo ・hvmrnlaho宀inranl 八swirchsf ease 9pnmff畫o f )cr 「ca ?rcascr-pnndc黑一M£b§K caseNpnnrfc¥2M£b§K【cnlnl八**1**16・(汩淳)^include A s a l o .h vr n rmain()宀hx・y 「scaDfcfd=p?xxynxvl2?x+10*lNy);ictum0 八人回卅17・(汩淳)^includeA s a lo .h v r n rmain()宀floarX-y-chai op_;(02-一62)七T e =a(.SCUTP O A・・q .2p」s =QpnoUT非 (報SR田)・8T9.0人紺回v s .cn“ <皐宀 o amp」Y二J T ・f ・・)七/CQ 】q「A /乂H】<・<D S C O召 Q 】q>.* xH」••*・<D SC O>.丨 x H】:/<DSC O「acpKI >;+ xH 」一+QseoY&・)七Y =r )七 (?)七冃d“总。
C程序设计(第四版)(谭浩强)第五章课后习题答案
C程序设计(第四版)(谭浩强)第五章课后习题答案循环结构程序设计P115 5.1 用while计算1至100的合.#include<stdio.h>int main(){int i=1,sum=0;while(i<=100) //对于需要运算的值,要么在运算前可以赋值,要么一开始要指定.{sum=sum+i;i++;}printf("The sum is %d .\n",sum);return 0;}P117 5.2 用do-while来做1至100的合.#include<stdio.h>int main(){int i=1,sum=0;do// do-while可以做的事,用while都可以做到.{ //do-while先做一次执行,再判断条件,而while却是先做一个条件,再执行.sum=sum+i;i++;}while(i<=100);printf("The sum is %d .\n",sum);return 0;}#include<stdio.h>int main(){int i,sum=0;printf("Please input a number :");scanf("%d",&i); //输入10以内,正常,11的话,则sum仍然是0.while(i<=10){sum=sum+i;i++;}printf("The sum of 1-10 is %d .\n",sum);return 0;}#include<stdio.h>int main(){int i,sum=0;printf("Please input a number :");scanf("%d",&i); //输入10以内,结果一样.输入11的话,先做操作,所以sum=11.do{sum=sum+i;i++;}while(i<=10); //此重点在于理解二者的差别.printf("The sum of 1-10 is %d .\n",sum);return 0;}#include<stdio.h>int main(){int i,b=0,a,c;for(i=0;i<=1000;i++){printf("Please input amount :"); //循环体内套有输出语句以及跳出语句.scanf("%d",&a);b=b+a;if(b>=100){break; //break是用于跳出循环,对if无效,对while for switch 这一类.}}c=b/i;printf("conut is %d , aver is %d ",i+1,c); //注意%号后的形式,否则可能输出错误.return 0;}P127 5.5 continue的例子.#include<stdio.h>int main(){int i;for(i=1;i<20;i++){if(i%3!=0){continue; //跳过本次I,执行下一个i.}printf("%d ",i);}printf("\n");return 0;}P128 5.6 形成一个4*5的矩阵.#include<stdio.h>int main(){int i,j,a=0; //没有给初值,会出现警告: 使用了未初始化的局部变量“a”.for(i=1;i<=4;i++){for(j=1;j<=5;j++,a++) // a用来控制换行.{if(a%5==0){printf("\n");}printf("%d\t",i*j);}}printf("\n");return 0;}P131 5.7 用一个交错的式子求哌的近似值.#include<stdio.h>#include<math.h>int main() //四分之哌等于(1)-(1/3)+(1/5)-(1/7)+(1/9)-(1/11).{float s=1,n=1,m,sum=0,t;for(m=1;;m=m+2) //不确定哪项才会小于等于十的负六次方,所以不指定,无限下去.{ //不指定第二项,执行语句中应该有控制跳出的句子,否则死循环.t=(s)*(n/m); //这是第一项,s是符号,if(fabs(t)<=1e-6) //应该写在这里,题目要求这一项不累加进去.{break;}sum=sum+t; //因为累加项在这里,所以,一旦跳出就不会累加进来了.s=s*(-1); //变号一次.}printf("四分之一哌的值是%f.\n",sum);printf("一个完整哌的值是%f.\n",sum*4);return 0;}//下面这段小代码用来验证关于数值型数据类型的关系.去掉注释,可运行.//如果出现类似值为全1或是全零的话,一般可以考虑数据类型赋值或是定义错了的问题.//#include <stdio.h> //这是关于int float double三者关复杂关系的,乱啊,如果看不懂,可以通过实验自己明白来.////int main() //在C语言中,1.0认为是实数,即是double型,所以,如果你把它用float输出的话,会有警告:警告 1 warning C4305: “=”: 从“double”到“float”截断.//{// float m,a,b,c; //一旦定义了是这种类型的话,输出或是赋值的时候只能扩展不能截断,意思就是能变成double型,不能变成int型啦.而且后面的赋值会跟着它变成相应的类型.比如下面的m=1,其实得到的是m=1.0.// int d,e,f;// m=1;// a=1.0/3;// b=1/3;// c=m/3;// d=1.0;// e=1/4;// f=1.0/4;// printf("%lf(float用double的%lf来输出是可以的.)\n%f\n%f\n%f\n",m,a,b,c); //不管上面定义什么,这边写的输出类型是什么,就按相应的类型输出,有可能会出错,所以建议按定义的类型来输出.当然扩展的是不会错的,截断的是会错的,比如float可以用%lf来输出,而不能用%d来输出.// printf("%d\n%d\n%d\n",d,e,f); //但是,不相应的int型不可以用%f来输出的.因为int float就不同种类,一个是整数,一个是小数,float double同样是有小数点的// return 0;//}#include<stdio.h>int main() //这个就是著名的Fibonacci(费波那契数列问题){int f1=1,f2=1,f3,i;printf("%12d\n%12d\n",f1,f2);for(i=1;i<=38;i++) //注意,这是个基础问题,(i=1;i<=5;i++)这里其实进行了次运算,因为有f1,f2,要求有个,所以要有个.要么写<=38,要么写<39,边界问题一定要注意,不可以太随意{f3=f1+f2;printf("%12d\n",f3); //这个问题同样适用于"一对兔子一个月生一对"的问题.,f1=f2; //f1=f1+f2;此时它们各是,所以,现在的f1是.f2=f3; //f2=f2+f1;此时的f1已经是最先二者之和了.可以不用到f3.}return 0;}#include<stdio.h>#include<math.h>int main(){double num;int i;printf("Please input a number :");scanf("%lf",&num); //因为sqrt要求是浮点型,那就给它浮点型,需要时再强制转换.for(i=2;i<=sqrt(num);i++) //这边是<=号没错.{if((int)num%i==0) //如果在这期间有任何一个可以为零的话,则不是素数.{break; //当然跳出.}} //执行到这里的时候,i=5,已经变成了!!if(i<=sqrt(num)){printf("Not %d",(int)num);}else//如上所述,i=5,超出了求根的值,所以是素数.{printf("Yes %d",(int)num);}return 0;}P137 5.10 求100至200间的素数.#include<stdio.h>//不解释,HOHO>>>>...#include<math.h>int main(){double j;int i,k=0;for(j=100;j<=200;j++){for(i=2;i<=sqrt(j);i++){if((int)j%i==0){break;}}k=k+1; //这里是布局的开头.学习一下,有助逻辑.if(i<=sqrt(j)){printf("Not %d ",(int)j);if(k%5==0) //5个换一次行.{printf("\n");}}else{printf("Yes %d ",(int)j);if(k%5==0){printf("\n");}}}return 0;}P139 5.11 密码转换.#include<stdio.h>int main(){char c;c=getchar();while(c!='\n') //这也可以用数组来实现.{if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){if((c>='w'&&c<='z')||(c>='W'&&c<='Z')){c=c-22;}else{c=c+4;}printf("%c",c);c=getchar(); //套在循环里,依次得到字母,而while中判断回车为结束.}}printf("\n"); //这是布局问题.return 0;}P140 0.3 最大公约数和最小公倍数.#include<stdio.h>//最大公约数用累除法,除到无余数时的被除数是最大公约数.main (){int m, n, c, d;int gcd(); //这是最大公约数的缩写,此处调用函数,可以不写里面的实参.int lcm(); //这是最小公倍数的缩写,此处调用函数,可以不写里面的实参.printf("Please input two number :\n");scanf("%d %d",&m,&n);c=gcd(m,n); //c获取最大公约数d=lcm(m,n); //d获取最小公倍数printf("The GCD of %d and %d is : %d !\n", m, n, c);printf("The LCM of %d and %d is : %d !\n", m, n, d);return 0;}int gcd(int x, int y) //最大公约数Greatest Common Divisor{int temp;while(x%y!=0){temp=y; //y在下一轮中作为除数,即是下一轮中的X,所以先闪一边去.y=x%y; //x,y的余数作为下一轮中的Y,由x%y来取得.x=temp; //刚才temp中存储了y的值,现在拿出来作为下一轮中的X使用.}return y; //这是每一轮中的被除数,按原理来,这就是最大公约数,即累除法的原理. }int lcm(int x, int y) //最小公倍数Lowest Common Multiple{int i, temp;if(x<y) //此段代码结果是保证二者大的数在X上,小的数在Y上.即小于号降序.{ //以下为经典三行码,实现两个数的互换.temp=x;x=y;y=temp;}for(i=1; i<=y; i++) //设定一个区间,从1至大的数之间的循环.{if(!((x*i)%y)) //此式子如有余数,加上"!"号,会是假,则不返回,进行下一轮.{ //如此往复,直到取模无余数,那么小的数X乘以区间当前的I值,就是最小公倍数.return x*i;}}}P140 0.4 判断一串输入的字符.#include<stdio.h>int main(){char ch;int a=0,b=0,c=0,d=0,e=0;printf("Please input the string\n");while((ch=getchar())!='\n') //直到回车.{if(ch<='z'&&ch>='a'){a++;}else if(ch==' '){c++;}else if(ch<58&&ch>47){d++;}else if(ch<='Z'&&ch>='A'){b++;}else{e++;}}printf("大写%d 小写%d 空格%d 数字%d 其它%d\n",a,b,c,d,e); }#include<stdio.h>//不理解时可以百度或是谷歌更多的信息.int main() //想办法既快速做完,又要消化理解{int temp,i,a,n,sum=0; //主逻辑,友好性暂时放松.scanf("%d %d",&a,&n); //a是数字,n是要乘的个数.temp=a; //先把第一阶的值存起来.for(i=0;i<n;i++){sum=sum+a;printf("%d + ",a); //事关布局.a=a*10+temp; //重点是每次乘,然后加上上一个数.}printf("= %d .",sum);return 0;}P140 0.6 1!+2!+3!+4!.....的值.#include<stdio.h>int main() //1!+2!+3!+4!.....{int i,j,k,sum=0,m=1;scanf("%d",&k); //比如设定为,值为.for(i=1;i<=k;i++) //第一层循环,指定到.{for(j=1;j<=i;j++) //第二层循环,指定至当前数.{m=m*j;} //到此是阶乘的结构.sum=sum+m;m=1;}printf("%d",sum); //完全不理解时,搜索并参考.return 0; //尝试自己做,第一次做出来就是自己的东西了.}P140 0.7 1至100,1至50平方,1至10倒数的总和. #include<stdio.h>int main(){int a,b;double c,asum=0,bsum=0,csum=0;for(a=1;a<=100;a++) //三个块分别注释验证结果.{asum=asum+a;}for(b=1;b<=50;b++) //在VS运行中,注意*.cpp为C++语言.{bsum=bsum+b*b; //为了避免语言差别,请注意文件名为*.c.}for(c=1;c<=10;c++) //c作浮点运算,所以定义在double类型中.{csum=csum+1/c;}printf("%lf",asum+bsum+csum);return 0;}PP#include<stdio.h>#include<math.h>int main(){int j,k,s[6],x=100,y,sum=0;for(j=153;j<=154;j++){for(k=2;k>=0;k--){s[k]=j%(int)pow(10,k+1)/(int)pow(10,k);y=pow(s[k],3);sum+=y;printf("%d-%d--%d\t",k,s[k],j);printf("%d\n",sum);}return 0;}P140 0.8 水仙花数.//#include <stdio.h> //一步步的发现问题.////int main() //在%和/号之间,以前pow.以后再做.//{// int i,j,k,a,b,c,sum=0; //这里逻辑对,算出来却错了.// for(i=2;i<=4;i++) //计算机在想什么,看来它的大脑难以模拟.// {// for(j=pow(10,i);j<=pow(10,i+1)-1;j++) //我不完全明白它遵守的逻辑. // {// for(k=0;k<=i;k++)// {// sum+=pow((j%pow(10,i+1)/pow(10,i)),3);// }// if(sum==j)// {// printf("%d 是水仙花数!\n",j);// }// sum=0;// }// }// return 0;//} //为什么还是无法实现?!#include<stdio.h>#include<math.h>int main(){int a,b,c,i,sum=0; //这里只计算三位数的.for(i=100;i<1000;i++){a=i/100;b=i%100/10;c=i%10;sum+=a*a*a+b*b*b+c*c*c;if(sum==i)printf("%d 是水仙花数.\n",i);}sum=0;}return 0;}P141 0.9 完数.#include<stdio.h>int main(){int i,j,r;for(i=1;i<=1000;i++) //零是个临界值,不能包括它.{r=0; //每次清零重来.类似水仙中的sum.for(j=1;j<i;j++){if(i%j==0) //除得尽即是因子.{r=r+j; //然后累加进去.}}if(r==i) //若相等.{printf("%d 是完数.\n",i);}}return 0;}P141 0.10 2/1+3/2+5/3+8/5+13/8…#include<stdio.h>int main() //10.007051{double i,a=2,b=1,c,s=0; //a是分子,b是分母.for(i=0;i<6;i++) //二十可以用户指定.{s+=a/b; //中间储值变量.c=a+b;b=a;a=c;}printf("%lf\n",s);return 0;}#include<stdio.h>int main() //从一百开始,减一半再自加两次,下降一次,反弹一次.{double sum=100,high=100,up,donw,i;for(i=1;i<10;i++) //不管指定到哪个数,都不会超过三百.{up=high/2;donw=up;high=donw; //自咬尾巴问题.sum+=donw*2;}printf("%lf %lf\n",donw,sum);return 0;}P141 0.12 猴子吃桃子.#include<stdio.h>int main() //从一百开始,减一半再自加两次,下降一次,反弹一次.{int i,sum=1;for(i=1;i<=10;i++) //临界要清楚,结果要与手算的前几个实例相匹配.{printf("倒数第%d天还剩有%d个桃子.\n",i,sum);sum=(sum+1)*2;}//printf("%d\n",sum);return 0;}P141 0.16 输出星号棱形图案.#include<stdio.h>#include<conio.h>main() //只关注左半部分.右半部分无视空格.{int i,j,k,m=6; //m可指定,指定中心点位置.可任意奇偶.for(i=1;i<=m;i++) //上半部分.其实也是正三角.{for(j=1;j<=m-i;j++) //一到中心点前i个位置填充空格.printf(" ");for(k=1;k<2*i;k++) //空格后向前填充星号的个数.是奇数.一,三,五... printf("*");printf("\n");}for(i=m-1;i>0;i--) //下半部分.其实也是倒三角.{ //减一是因为行数问题.这是中心行以下的.for(j=m-1;j>=i;j--)printf(" ");for(k=1;k<2*i;k++)printf("*");printf("\n");}getch(); //用户反应后结束.但,没必要.}。
程序阅读及填空(答案)
程序阅读及填空(答案)一.程序阅读题1.若运行时输入100↙,写出以下程序的运行结果。
main ( ) { int a ;scanf(“%d”,&a);printf(“%s”,(a%2!=0)?”No”:”Yes”);}答案: Yes2.写出以下程序的运行结果。
main ( ){ int a=2,b=7,c=5;switch (a>0) {case 1: switch (b<0) {case 1: printf(“@”); break ;case 2: printf(“!”); break ;}case 0: switch (c==5) {case 1: pritnf(“*”) ; break ;case 2: printf(“#”) ; break ;default : printf(“#”) ; break ;}default : printf(“&”);}printf(“\n”);}答案: *&3.写出下面程序运行的结果。
main ( ){ int i,b,k=0 ;for (i=1; i<=5 ; i++) {b=i%2;while (b--==0) k++ ;}printf(“%d,%d”,k,b);}答案:2 04.写出下面程序运行的结果。
main ( ){ int k=1,n=263 ;do { k*= n%10 ; n/=10 ; } while (n) ; printf(“%d\n”,k);}答案:365.写出下面程序运行的结果。
{ int a=10,y=0 ;do {a+=2 ; y+=a ;if (y>50) break ;} while (a=14) ;printf(“a=%d y=%d \n”,a,y) ;}答案:a=16 y=60数组部分:1.写出下面程序的运行结果。
main ( ) { int a[6][6],i,j ;for (i=1; i<6 ; i++)for (j=1 ; j<6 ; j++)a[i][j]=(i/j)*(j/i) ;for (i=1;i<6 ; i++) {for (j=1 ; j<6 ; j++) printf(“%2d”,a[i][j]) ;printf(“\n”);}}2.写出下面程序的运行结果。
dowhile循环语句例题及解析
dowhile循环语句例题及解析do-while循环语句例题及解析do-while循环是一种后测试循环语句,它先执行循环体中的代码,然后再进行条件判断。
这意味着无论条件是否满足,循环体中的代码至少执行一次。
在本文中,我们将介绍一些do-while循环的例题,并提供详细的解析。
例题一:请编写一个程序,使用do-while循环打印出1到10的数字。
解析:```c#include <stdio.h>int main() {int i = 1;do {printf("%d ", i);i++;} while (i <= 10);return 0;}```在这个例子中,我们使用do-while循环打印出了1到10的数字。
首先,我们将变量i初始化为1。
然后,循环体中的代码打印出当前的i值,并将i增加1。
然后,do-while循环会再次进行条件判断,如果i仍然小于等于10,则继续执行循环体中的代码。
当i等于11时,循环终止。
例题二:请编写一个程序,使用do-while循环计算1到10的和,并输出结果。
解析:```c#include <stdio.h>int main() {int i = 1;int sum = 0;do {sum += i;i++;} while (i <= 10);printf("1到10的和为:%d\n", sum);return 0;}```在这个例子中,我们使用do-while循环计算了1到10的和,并输出结果。
首先,我们将变量i初始化为1,将变量sum初始化为0。
然后,循环体中的代码将当前的i值加到sum中,并将i增加1。
再次进行条件判断,如果i仍然小于等于10,则继续执行循环体中的代码。
当i等于11时,循环终止。
最后,我们输出结果,即1到10的和。
通过以上两个例题,我们了解了do-while循环的基本用法和语法结构。
计算机科学与技术专业《C语言程序设计》科目考试大纲
计算机科学与技术专业《C语言程序设计》科目考试大纲一、课程性质与考试基本要求《C语言程序设计》课程是计算机专业的专业基础课程。
这门课程的主要特点是实践性强,不仅要学习基本理论知识,更要注重上机实践,通过上机实践验证程序的正确性,掌握和巩固算法的设计知识。
设立本门课程的目的是通过学习C语言,使学生学会用计算机语言编程序解决实际问题。
通过本课程的学习,使学生了解算法的基本概念,会根据算法编制相应的程序,并初步掌握软件开发的基本技巧,同时也为后继课程的学习打下坚实的基础。
提高学生分析和解决问题的能力。
二、考试方式与试题类型(含各题型分数)1 .考试方式:闭卷、笔试。
2 .试卷结构:考试题型为单项选择题(70分)、读程序写结果(30分)、程序填空(20分)、编程题(30分)。
3 .试卷分数:试卷满分150分。
4 .考试时间:120分钟。
三、课程考试内容及要求第1部分程序设计和C语言本章重点:C语言的结构与上机的环境、上机步骤。
考试内容:程序的构成要素:main函数,其他的函数等。
源程序的书写格式。
C语言的风格。
C语言出现的历史背景。
C语言的特点。
简单的C程序介绍。
C程序的上机步骤。
考核要求:(1)了解C语言的背景。
(2)理解C语言程序的结构,C语言程序设计的风格。
(3)应用C程序的上机环境、步骤。
第2部分顺序程序设计本章重点:常用数据类型、常用运算符、数学公式转化为C语言表达式的基本能力、数据的输入输出,顺序结构程序设计。
主要内容:C的数据类型(基本类型、构造类型、指针类型、空类型)及定义变量的方法;C运算符的种类、运算优先级和结合性;不同类型数据间的转换与运算;数据的输入与输出、输入输出函数的调用:常用输入输出函数:scanf›Printf、getchar、PUtChar、gets、puts等。
考核要求:(1)了解基本类型及其常量的表示法。
(2)理解变量的定义及初始化方法,运算符与表达式的概念,C语言的自动类型转换和强制类型转、赋值的概念。
第十八届全国青少年信息学奥林匹克联赛初赛C
第十八届全国青少年信息学奥林匹克联赛初赛提高组C++语言试题(竞赛时间:2012年10月13日14:30~16:30)选手注意:●试题纸共有15页,答题纸共有2页,满分100分。
请在答题纸上作答,写在试题纸上的一律无效。
●不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选择题(共10题,每题1.5分,共计15分;每题有且仅有一个正确选项)1.目前计算机芯片(集成电路)制造的主要原料是(),它是一种可以在沙子中提炼出的物质。
A.硅B.铜C.锗D.铝2.()是主要用于显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。
A.资源管理器B.浏览器C.电子邮件D.编译器3.目前个人电脑的()市场占有率最靠前的厂商包括Intel、AMD等公司。
A.显示器B.CPUC.内存D.鼠标4.无论是TCP/IP模型还是OSI模型,都可以视为网络的分层模型,每个网络协议都会被归入某一层中。
如果用现实生活中的例子来比喻这些“层”,以下最恰当的是( )。
A.中国公司的经理与伊拉克公司的经理交互商业文件B.军队发布命令C.国际会议中,每个人都与他国地位对等的人直接进行会谈D.体育比赛中,每一级比赛的优胜者晋级上一级比赛5.如果不在快速排序中引入随机化,有可能导致的后果是()。
A.数组访问越界B.陷入死循环C.排序结果错误D.排序时间退化为平方级6.1946年诞生于美国宾夕法尼亚大学的ENIAC属于()计算机。
A.电子管B.晶体管C.集成电路D.超大规模集成电路7.在程序运行过程中,如果递归调用的层数过多,会因为()引发错误。
A.系统分配的栈空间溢出B.系统分配的堆空间溢出C.系统分配的队列空间溢出D.系统分配的链表空间溢出8.地址总线的位数决定了CPU可直接寻址的内存空间大小,例如地址总线为16位,其最大的可寻址空间为64KB。
如果地址总线是32位,则理论上最大可寻址的内存空间为()。
解析JAVA程序设计第五章课后答案
第5章习题解答1.流的主要特征有哪些,用流来实现JAVA中的输入输出有什么优点?答: 一是单向性,即数据只能从数据源流向数据宿;二是顺序性,先从数据源流出的数据一定比后流出的数据先到达数据宿;三是数据流必须而且只能和一个数据源与一个数据宿相连。
优点是体现了面向对象程序设计的概念,通过流可以把对不同类型的输入/输出设备的操作统一为用流来实现。
2.对字节流和字符流进行读写操作的一般步骤是什么?答:声明流对象,创建流对象,通过流对象进行读(写)操作,关闭流对象。
3. 有哪些常用的字节流和字符流,他们的主要区别是什么?答: InputStream/OutputStrem:普通字节流,所有字节流的基类。
FileInputStream/ FileOutputStream:用于从文件中读写数据。
BufferedInputStream/ BufferedOutputStream:用于从缓冲区输入流中读写数据。
采用缓冲区流可减少实际上从外部输入设备上读写数据的次数,从而提高效率。
DataInputStream/ DataOutputStream:按读写数据对象的大小从字节流中读写数据,而不是象其它字节流那样以字节为基本单位。
PipedInputStream/ PipedOutputStream:管道输流用于从另一个线程中读写数据。
4.么是异常?说明Java中的异常处理机制?试述JAVA中异常的抛出和传递过程?答: 异常是程序设计语言提供的一种机制,它用于在程序运行中的非常规情况下,控制程序对非常规情况进合理的处理。
Java提供了try-catch-finally语句来对异常进行处理。
先按照正常顺序执行try子句中的语句,若在执行过程中出现异常,则try子句中还未被执行的语句将再也不会被执行。
而程序控制立即转移到catch子句,将发生的异常与catch子句中的异常进行匹配,若找到一个匹配,就执行该catch子句中的语句。
阅读程序写结果试题(第四第五章)
case '*': r = x * y; break;
case '/': r = x / y; break;
}
printf("%.1f", r);
return 0;
}
输入:3.5<回车>
运行结果:
8.#include "stdio.h"
void main( )
运行结果:
5.#include <stdio.h>
int main()
{
int a,b,c,m;
printf("Enter three integers:");
scanf("%d%d%d",&a,&b,&c);
if(a<=b)
m=a;
else
m=b;
if(c<m)
m=c;
printf("m=%d\n",m);
for(i = 1; i < 10; i++)
{
s += i * i;
case 1:printf("**1**");break;
case 2:printf("**2**");break;
}
return 0;
}
运行结果:
6. #include <stdio.h>
int main()
{ intx, y;
scanf("%d",&x);
y = x>12 ? x + 10 : x - 12;
国家开放大学javascript 程序设计第五章测试题与答案解析-精品
国家开放大学《javascript程序设计》第五章测试题与答案解析(正确答案已红色标注)一、判断题试题1满分1.00未标记标记试题试题正文关于BOM,history对象的父对象是window对象。
选择一项:对错反馈正确答案是“对试题2满分1.00未标记标记试题试题正文定时器在执行过程中,会阻塞下面代码的执行。
选择一项:对错反馈正确答案是“错”。
试题3满分1.00未标记标记试题试题正文改变浏览器当前浏览的网页可以通过设置window.location来实现。
选择一项:对错反馈正确答案是“对。
试题4满分1.00未标记标记试题试题正文replace。
方法与assign。
方法的作用相同。
选择一项:对错反馈正确答案是“错”。
试题5满分1.00未标记标记试题试题正文Location即是window对象的属性,也是document对象的属性。
选择一项:对错反馈正确答案是“对二试题信息未标记标记试题信息文本二、单项选择题试题6满分1.00未标记标记试题试题正文在JavaScript中,下列关于window对象方法的说法错误的是()。
选择一项:a.window对象包括location对象、history对象和docuement对象b.window.close彩蛋方法用于关闭浏览器窗口c.window.onload彩蛋方法中的代码会在一个该页面加载完成后执行d.window.open彩蛋方法用于在当前浏览器窗口加载指定的URL 文档反馈你的回答正确正确答案是:window.open彩蛋方法用于在当前浏览器窗口加载指定的URL文档试题7满分1.00未标记标记试题试题正文如何在浏览器的状态栏放入一条消息()。
选择一项:a.statusbar="putyourmessagehere"b.window.status="putyourmessagehere"c.status("putyourmessagehere")d.window.status("putyourmessagehere")反馈你的回答正确正确答案是:window.status="putyourmessagehere" 试题8满分1.00未标记标记试题试题正文history能访问前一页面方法是()。
C语言复习提纲(含答案)
5.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。
A) float
Logo
B) char
C) int
D) double
14
表达式
不同类型数据间的转换与运算。 例如:int a=123; 则a/100的值为(1),
2、找出最大数、最小数和平均数 3、判断某一年是否为闰年 4、判断某个数是否为素数 5、冒泡、选择、插入排序
6、求多项式的值
Logo
7
第3章 顺序程序设计
常量:整型、实型、字符(普通、转义)、字符串、 符号
字符常量:ASCII码存储 空格为32
字符变量: char c1=100; 与c1=„e‟等价 字母小写→ 大写 c=c-32;或c=c-„a‟-„A‟;
Logo
18
数据的输入与输出
printf(格式控制,输出表列) 例如:
printf("i=%d,ch=%c\n",i,ch);
(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字 符串”,它包括两种信息:
①格式说明:由“%”和格式字符组成,它的作用是将输出的
数据转换为指定的格式输出。 ②普通字符,即需要原样输出的字符。
} 4. 假设变量a和b均为整型,以下语句可以不借助任何变量把a、 b中的值进行交换。请填空。 a+=【4】; b=a-【5】; a-=【6】;
b
b
b
Logo
23
第4章 选择结构
用if语句实现选择结构。 用switch语句实现多分支选择结构。根据表达式的 具体值进行多分支选择、表达式的类型要求、语句中 的break。 选择结构的嵌套
(完整版)C语言程序设计阅读程序题库及答案
阅读程序题
导读:学会阅读程序对于初学者来说很重要,一方面可以 巩固所学的语法知识,另一方面通过阅读别人写好的程序 来打开自己的思路,就所谓见多识广。读者通过阅读理解 程序,从给出的四个备选参考答案中,选择程序的正确输 出。如果选择有误,就要认真分析原因,是概念方面的错 误还是对程序逻辑理解不对,从而加深对语法规则的理解, 提高程序设计能力。程序设计语言是开发程序的一个工具, 学习语言的目的是为了编写程序来解决实际问题,所以特 别提倡通过实际上机来检验备选答案,增强动手能力。习 题基本上是按照教材的章节来安排的,读者可以根据学习
hing at a time and All things in their being are good for somethin
float f=2.0; printf("%d\n",(!(a==0),f!=0&&c=='A')); } A) 0 B) 1
【2.8】下面程序的输出结果是____。 main() { int a=1,i=a+1; do { a++ ; }while( !~i++ > 3); printf("%d\n",a); } A) 1 B) 2 C) 3 D) 4
【2.6】以下程序的输出结果是____。 main() { int x=0x02ff,y=0x0ff00; printf("%d\n",(x&y)>>4|0x005f); } A) 127 B) 255 C) 128 D) 1
阅读程序写结果试题(第四第五章)
程序阅读理解(一)1. #include <stdio.h>void main( ){int x,y,t;x=7;y=9;if(x<y){ t=x;x=y;y=t;}printf("%d,%d\n" , x,y );}运行结果:2. #include <stdio.h>void main( ){int x=1,a=2,b=3;switch(x){case 1: a--; break;case 2: b++; break;case 3: a++;b++;}printf("\na=%d,b=%d\n",a,b); }运行结果:3. #include <stdio.h>void main( ){char ch1 = 'E';if(ch1 >= 'A')ch1++;elsech1+=32;printf("ch1 = %c\n", ch1);}运行结果:4. #include <stdio.h>void main( ){int x,y,t;x=5;y=3;if(x>y){ t=x;x=y;y=t;}printf("%d,%d\n" , x,y );}运行结果:5. #include <stdio.h>int main(){int a,b,c,m;printf("Enter three integers:");scanf("%d%d%d",&a,&b,&c);if(a<=b)m=a;elsem=b;if(c<m)m=c;printf("m=%d\n",m);return 0;}输入:21 22 23<回车>运行结果:6. #include <stdio.h>int main(){char ch1='a',ch2='B',ch3='E';if(ch1>ch2)if(ch2>ch3)ch3++;else--ch3;printf("ch3=%c\n",ch3);return 0;}运行结果:7. #include <stdio.h>int main(){float x,y;scanf("%f",&x);switch((int)x/10){case 0: y=1.0;printf("y=%f\n",y);break;case 1: y=2*x+1;printf("y=%f\n",y);break;case 2: y=3*x*x+2;printf("y=%f\n",y);break;default:printf("No definition.\n");}return 0;}输入:15.3<回车>运行结果:8. #include <stdio.h>int main(){char ch1='A',ch2='B';switch(ch1){case 'A':switch(ch2){case 'B':printf("Good!\n");break;case 'A':printf("Better!\n");break;}case 'B': printf("Best!\n"); break;}return 0;}运行结果:9.#include <stdio.h>void main(){float score;score = 100;if (score<60) printf("E\n");elseswitch( ( int ) score / 10 ){ case 10:case 9: printf("A\n");case 8: printf("B\n");case 7: printf("C\n"); break;case 6: printf("D\n"); break;default: printf("Error\n");}}运行结果:程序阅读理解(二)10.#include <stdio.h> void main(){int i=0,a=2;if(i==0)printf(“**”);elseprintf(“$$”);printf(“*”);}运行结果:1. #include<stdio.h>void main(){int m=10,n=0,p=4,q=20;if (m)if (n)q=15-m;elseq=25+m;else if (p)q=q+p;printf(“q=%d\n”,q);}运行结果:2.#include<stdio.h>void main(){int a=1,b=0;switch(a){case 1: switch (b){case 0: printf(“**0**”); break;case 1:printf(“**1**”);break;}case 2: printf(“**2**”);break;}}运行结果:3. #include<stdio.h>int main( ){int a=2,b=7,c=5;switch (a>0){case 1: switch (b<0){case 1: printf("@"); break ;case 2: printf("!"); break ;}case 0: switch (c==5){case 1: printf("*") ; break ;default : printf("#") ; break ;}default : printf("&");}printf("\n");return 0;}运行结果:4. #include<stdio.h>int main(){int a=0,b=1,c=0,d=20;if(a) d=d-10;else if (!b)if(!c) d=15;else d=25;printf("d=%d\n",d);return 0;}运行结果:5. #include<stdio.h>int main(){ int a=1;switch(a){case 0: printf("**0**");break;case 1:printf("**1**");break;case 2:printf("**2**");break;}return 0;}运行结果:6. #include <stdio.h>int main(){ int x, y;scanf("%d",&x);y = x>12 ? x + 10 : x - 12;printf("%d\n", y);return 0;}输入:12<回车>运行结果:7. #include <stdio.h>int main(){float x, y;char op;double r;scanf("%c%f%f",&op,&x,&y);switch(op){ case '+': r = x + y; break;case '-': r = x - y; break;case '*': r = x * y; break;case '/': r = x / y; break;}printf("%.1f", r);return 0;}输入:3.5<回车>运行结果:8. #include "stdio.h"void main( ){int a=7;if(a>9 || a<10)a=a/3;elsea=a%3;printf("a=%d", a);}运行结果:9.#include<stdio.h>void main(){int a=20;switch(a%3){case 0: printf("0");case 1: printf("1");case 2: printf("2");default: printf("3");}printf("4");}运行结果:10.#include <stdio.h>void main(){int a=2,b=5,c=8,t;if ( a < b ) { t = a; a = b; b = t; }if ( b < c ) { t = b; b = c; c = t; }if ( a < b ) { t = a; a = b; b = t; }printf( "%d,%d\n", a++, --c );}运行结果:程序阅读理解(三)1.#include <stdio.h>void main(){int number , digit;number = 1234;while ( number != 0 ){digit = number%10 ;printf( "%d" , digit ) ;number = number / 10 ;}}运行结果:2.#include <stdio.h>#define N 5void main( ){int i;for(i=1;i<N;i++)printf("%d\n",i*i);}运行结果:3.#include<stdio.h>void main( ){int i,s,x;s=0;x=15;for(i=1;i<=5;i++)if (x%i==0)s= s + i;printf("i=%d,s=%d\n",i,s);}运行结果:4.#include <stdio.h>void main(){int counter=1;while(counter <= 5){printf("%d \n", counter );counter++;}}运行结果:5.#include<stdio.h>int main(){int i,sum,m,a;sum=0;m=5;for(i=0;i<=3;i++){scanf("%d",&a);if(a>m)sum+=a;}printf("sum=%d\n",sum);return 0;}输入:2 10 8 3<回车>运行结果:6.#include<stdio.h>int main(){int i,j,k;for(i=1;i<=4;i++){for (j=1;j<5-i;j++)printf(" ");for(k=1;k<=i;k++)printf("*");printf("\n");}return 0;}运行结果:7.#include <stdio.h>int main(){int i,j;i=1;while(i<5){for(j=1;j<2*i+1;j++)printf("%c",'#');printf("\n");i++;}return 0;}运行结果:8.#include <stdio.h>int main(){int i=10,m=0,n=0;do{if(i%2!=0)m=m+i;elsen=n+i;i--;}while(i>=0);printf("m=%d,n=%d\n",m,n);return 0;}运行结果:9.#include <stdio.h>void main(){int sum=0,n;scanf("%d",&n);while(n<=5){sum+=n;n++;}printf("sum=%d",sum);}输入:1<回车>运行结果:10.#include <stdio.h>void main(){int i, j;for(i=2;i>=0;i--){for(j=1;j<=i;j++)printf("*");for(j=0;j<=2-i;j++)printf("!");printf("\n");}}运行结果:程序阅读理解(四)1.#include <stdio.h>void main(){int a,b;for(a=1,b=1;a<=100;a++){if(b>20) break;if(b%4==1){b=b+4;continue;}b=b-5;}printf("a=%d\n",a);}运行结果:2.#include <stdio.h>void main( ){char k;int i;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case '0': printf("another\n");case '1': printf("number\n");}}}输入:01<回车>运行结果:3.#include <stdio.h>int main(){int i, s = 0;for(i = 1; i < 10; i++){s += i * i;if(s > 10) break;}printf("i=%d, s=%d\n", i, s);return 0;}运行结果:4.#include <stdio.h>void main(){char ch;while((ch=getchar())!='\n'){if (ch>='A'&&ch<='Z')ch=ch+32;else if (ch>='a'&&ch<='z')ch=ch-32;printf("%c",ch);}}输入:ABCdef<回车>运行结果:5.#include <stdio.h>int main (){int a, b;for (a = 1, b = 1 ; a <= 100 ; a++){if (b >= 9) break;if (b % 3 == 1){b += 3 ;continue ;}b -= 5;}printf("%d,%d\n", a, b);return 0;}运行结果:6. #include<stdio.h>int main (){int i = 0,j = 0;while (i < 10) i++;while (j++ < 10) ;printf("i=%d,j=%d\n",i,j);return 0;}运行结果:7. #include "stdio.h"void main( ) {int i,j,t;for(i=1,j=10;i<3;i++,j--)t=i+j;t++;printf("%d,%d",j,t);}运行结果:8. #include "stdio.h"void main(){int i=10,j;do{j = i%2;printf( "%d",j );i--;} while ( i> 4 );}运行结果:9.#include "stdio.h"void main(){int i=7,j;while ( i> 2){j = i%2;printf( "%d",j );i--;}printf( "%d",i );}运行结果:10. #include <stdio.h>void main(){int i,j,t=0;for(i=3;i>0;i--)for(j=0;j<4;j++)t+=j;printf("t=%d",t);}运行结果:。
Python语言程序设计(工作手册式) 作业习题及答案 第五章
第五章一、单选题(共2题,10分)1、关于IiSt和String下列说法错误的是:A、IiSt可以存放任意类型。
B、1ist是一个有序集合,没有固定大小。
C、用于统计string中字符串长度的函数是string.IenO。
D、string具有不可变性,其创建后值不能改变。
正确答案:D2、关于字符串下列说法错误的是()A、%f用于格式化输出浮点类型数据B、字符串的子串查找函数find。
只能返回第一个符合子串的位置,否则返回为0。
C、既可以用单引号,也可以用双引号创建字符串D、在三引号字符串中可以包含换行回车等特殊字符正确答案:B二、简答题(共38题,190分)1、【字符串基础训练】在当前目录下创建一个"test.Iog w文件。
在test文件中写入w.查找当前文件操作标记的a He11oWord wβ在test文件“He11oWord“后面输入"Python位置(提示:Seek())。
把文件操作符的位置移动最前面。
以二进制方式输出test文件。
关闭test文件。
删除test文件。
编写代码输出当前Pythor1脚本工作的目录路径。
正确答案:2、【文件内容合并】有两个磁盘文件A和B,各存放一行字母,要求编写代码实现将这两个文件中的信息合并,并按字母先后顺序排列,最后输出到一个新文件C中。
正确答案:3、【文件存储】从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件'test'中保存,并实现循环输入,直到输入一个#为止。
正确答案:4、写出下面程序的功能。
假设文件a origina1”内容为Upgrcynpmepyk.Writeaprogram.那么文件αsavetoo”内存储的内容应该是什么?正确答案:5、使用之前所学的循环语句以及列表完成这样的一个输出结果(字典方法可能能更加方便的完成)正确答案:6、编写函数判断两个字符串是否包含相同的字母正确答案:7、现有字符串str=,thisisstringexamp1e....wow 编写代码把字符串的atex1分别改为12345并去除其中的s和h正确答案:8、添加指定长度字符串如a=“12345"b="abcde”从键盘读取n,若n=1则输出字符串“12345a”若n=2则输出字符串“12345ab”正确答案:9、已知a="aAsmr3idd4bgs7D1sf9eAF”请将a字符串的数字取出,并输出成一个新的字符串。
c 语言 while 循环题
标题:探究C语言中while循环的使用及应用摘要:C语言是一门广泛运用的编程语言,而其中的while循环作为一种常见的循环结构,在编程过程中具有重要的作用。
本文将对C语言中while循环的基本语法、应用场景以及一些常见的练习题进行详细的讲解,旨在帮助读者更好地掌握和运用while循环。
一、while循环的基本语法在C语言中,while循环是一种用于重复执行一段代码块的循环结构。
其基本语法如下所示:```while (条件){循环体;}```其中,条件是一个布尔表达式,如果条件为真,则执行循环体中的代码,并重复检查条件;如果条件为假,则跳出循环,执行后续的代码。
二、while循环的使用1. 基本的while循环使用while循环最常见的用法是用于需要重复执行一段代码直到某个条件不满足为止的情况。
计算1到100的整数之和可以使用while循环来实现:```int sum = 0;int i = 1;while (i <= 100){sum += i;i++;}```在上述示例中,当i的值小于等于100时,循环体会不断执行,直到i 大于100时跳出循环。
2. while循环的嵌套使用while循环可以嵌套在其他循环或者条件结构中,用于实现更复杂的逻辑。
实现一个打印九九乘法表的程序可以利用两层嵌套的while循环来实现:```int i = 1, j = 1;while (i <= 9){while (j <= i){printf("d * d = d\t", j, i, i * j);j++;}printf("\n");j = 1;i++;}```在上述示例中,外层的while循环用于控制行数,而内层的while循环用于控制每一行的列数。
三、while循环的应用场景1. 处理未知数量的数据在一些情况下,需要处理未知数量的数据时,while循环可以很好地发挥作用。
switch语句练习
switch语句练习第五章switch语句练习题1.若运⾏时输⼊:3 5/<回车>,则以下程序的运⾏结果是________main( ){float x,y;char o;double r;scanf(“%f %f %c”,&x,&y,&o);switch(o){case ’+’:r=x+y;break;case ’-‘:r=x-y;break;case ’*’:r=x*y;break;case ’/’:r=x/y;break;}printf(“%f”,r);}2. 根据以下嵌套的if语句所给条件,填写switch语句,使它完成相同的功能. (假设mark的取值在1~100之间的整数.) if语句:if(mark<60)k=1;else if(mark<70)k=2;else if(mark<80)k=3;else if(mark<90)k=4;else if(mark<100)k=5;switch语句:switch( [1] ){[2] k=1; break;case 6: k=2: break; case 7: k=3; break;case 8: k=4; break;[3] k=5;3.设有程序⽚段:switch(grade){case ’A’:printf(“85-100\n”);case ’B’:printf(“70-84n”);case ’C’:printf(“60-69\n”);case ’D’:printf(“<60\n”);default:printf(“error!\n”);}若grade的值为’C’,则输出结果是_________.4.以下程序段的运⾏结果是_____.int x=1,y=0;switch(x){case 1:switch(y){case 0:printf(“**1**\n”);break;case 1:printf(“**2**\n”);break;}case 2:printf(“**3**\n”);}5.根据以下函数关系,对输⼊的每个x值,计算出相应的y值,请在程序的( ) 内填正确内容main( ){int x,c,m;float y;scanf(“%d”,&x);if(1)c=-1;else c=(2);switch(c){case -1;y=0;break;case 0:y=x;break;case 1:y=10;break;case 2:case 3:y=-0.5*x+20;break; default:y=-2;}if(3)printf(“y=%f”,y);else printf(“error\n”);} 6.以下程序的运⾏结果是( ) main( ){int a=2,b=7,c=5;switch(a>0){case 1:switch(b<0){case 1:printf(“@”);break; case 2:printf(“!”);break;} case 0:switch(c= =5){case 0:printf(“*”);break; case 1:printf(“#”);break;default:printf(“#”);break;}default:printf(“&”);}printf(“\n”);}7.请读程序:#includemain( ){int x=1,y=0,a=0,b=0;switch(x){case 1:switch(y){case 0:a++;break;case 1:b++;break;}case 2:a++;b++;break;}printf(“a=%d,b=%d”,a,b);}上⾯程序的运⾏结果是( )8.假设奖⾦税率如下(a代表奖⾦,r代表税率)a<500 r=0%500<=a<1000 r=5%1000<=a<2000 r=8%2000<=a<3000 r=10%3000<=a r=15%以下程序对输⼊的⼀个奖⾦数,求税率和应交税款以及实得奖⾦数(扣除奖⾦税后).题中r代表税率,t代表税款,b代表实得奖⾦数.在( )内填正确内容main( ){float a,r,t,b;int c;scanf(“%f”,&a);if(a>=3000)c=6;else c=[1];switch(c){case 0:r=0;break;case 1:r=0.05;break;case 2:case 3:[2];break;case 4:case 5:r=0.1;break;case 6:r=0.15;break;}t=a*r;b=a-t;printf(“r=%f,t=%f,b=%f”,r,t,b);}9.某个⾃动加油站有’a’,b’,’c’三种汽油,单价分别为 1.50,1.35,1.18(元/千克),也提供了“⾃⼰加”或“协助加”两个服务等级,这样⽤户可以得到5%或10%的优惠.本程序针对⽤户输⼊加油量a,汽油品种b和服务类型c(‘f’--⾃动,’m’-- ⾃⼰,’e’--协助 ),输出应付款m请在[ ]内填⼊正确内容.main( ){float a,rl,r2,m;char b,c;scanf(“%f%c%c”,&a,&b,&c);switch(b) {case ’a’:r1=1.5;break;case ’b’:[ 1];break;case ’c’:rl=1.18;break;}switch(c){case ’f’:r2=0;break;case ’m’:r2=0.05;break;case [2]:r2=0.1;break;}m=[3];printf(“%f”,m);}10.以下程序计算某年某⽉有⼏天.其中判别闰年的条件是:能被4整除但不能被100整除的年是闰年,能被400整除的年也是闰年.请在[ ]内填⼊正确内容.main( ){int yy,mm,len;printf(“year,month=”);scanf(“%d %d”,&yy,&mm);switch(mm){case 1:case 3:case 5:case 7:case 8:case 10:case 12:[1];break;case 4:case 6: case 9:case 11:len=30;break;case 2:if(yy%4= =0&&yy%100!=0||yy%400= =0)[2];else[3];default:printf(“input error”)break;}printf(“the length of %d %dis%d\n”,yy,mm,len);}11.以下程序⽤以计算y年ml⽉dl⽇与同年的m2⽉d2之间的天数(m2>=m1),并打印计算结果.若m1=m2且d1=d2则算1天.在闰年时,2⽉有29天.闰年的年号由以下⽅式确定:该年号能被4整除但不能被100整除,或者该年号能被400整除则是闰年.例:输⼊1997,2,27,3,10<回车>时,输出为12.表明从1997年2⽉27⽇到3⽉10⽇共有12天,在( )填正确内容main( ){int y,ml,dl,m2,d2;int i ,dscanf(“%d,%d,%d,%d,%d,”&y,&ml,&dl,&m2,&d2);y=(y%4= =0( )y%100!=0( )y%400= =0))1:0;d=0-d1;for(i=m1;iswitch(i){case 1:case 3:case 5:case 7:case 8:case 10:case 12:d+=31;break;case2:d=d+28+y;break;case4:case6:case9:case11:( );}printf(“%d”,d+d2+1);}12.将以下程序段改⽤⾮嵌套的if语句实现int s,t,m; t=(int)(s/10);switch(t){case 10:m=5,break;case 9:m=4;break;case 8:m=3,break;case 7:m=2,break;case 6:m=1,break;default m=0;}13.⽤switch编程实现:y=>=<-)0(1)0(0)0(1xxx14.将以下程序段改⽤嵌套的if语句实现int s,t,m;t=(int)(s/10);switch(t){case 10:m=5,breakcase 9:m=4,breakcase 8:m=3,breakcase 7:m=2,breakcase 6:m=1,breakdefault:m=0}15.将以下语句改写成switch语句if((s>0)&&(s<=10))if((s>=3)&&(s<=6))x=2;else if((s>1)||(s>8))x=3;else x=1else x=016.编程实现以下功能:读⼊两个运算数(datal和data2)及⼀个运算符(op),计算表达式data1 op data2的值,其中op可为+,-,*,/(⽤switch语句实现)17.编⼀程序,对于给定的⼀个百分制成绩,输出相应的五分制成绩,设90分以上为’A’80~89为’B’70~79为’C’60~69为’D’60以下’E’(⽤switch语句实现)。
计算机阅读程序题
一、基本输入输出1.#include <stdio.h>main(){char c='a';printf("%c,%d\n",c,c);}运行结果为:2.#include <stdio.h>main(){char c1=‟a‟,c2=‟b‟,c3=‟c‟;printf("\na%cb%cc%c ",c1,c2,c3); }运行结果为:3.#include <stdio.h>main(){int z, x=6,y=5;char w=‟c‟;z=x+y+w;printf("\n%d,%d,%d",x,y,z);}运行结果为:4.#include <stdio.h>main(){ int i=128;float x=234.89;printf(“\n”);printf("%5d,%8.2f\n",i,x);printf("%2d,%4.1f\n",i,x);}运行结果为:5.#include <stdio.h>main(){int x=15,y=5;float f=1234.567,b=12345;printf(“%f_ _%10f_%10.2f_%.2f_%-10.2f\n”,f,f,f,f,f); printf("%-8.3f\n ",f,);printf("x+y=%d\n",x+y);printf("b=%8f",b);} 注:“_”代表一个空格运行结果为:6.#include <stdio.h>main( ){ int i=8, j=9;int x, y, z , w;x=i-- ; y=i ;z=++j; w=j;printf(“\n%d,%d,%d,%d”,x,y,z,w);}运行结果为:8,7,10,107.#include <stdio.h>main(){ int a=1,b=2;a=a+b;b=a-b;a=a-b;printf(“a=%d,b=%d\n”,a,b);}运行结果为:8.#include <stdio.h>main(){ int x=10;int y=79;printf("\n %5d,%5d,%5d ",!x,x||y,x&&y); }注:“_”代表一个空格运行结果为:9.#include <stdio.h>main(){ int z, x=2,y=4;char w=‟c‟;z=x+y;printf("\n%d,%d,%d,%c",x,y,z,w);}运行结果为:10.#include <stdio.h>main ( ){ char c1, c2;c1=getchar ( );printf (“%c, %d\n”, c1,c1 );c2=c1+32;printf (“%c,%d\n”, c2,c2 );}若敲进A,则运行结果为#include <stdio.h>main(){ int z,x=7,y=4;char w=‟c‟;z=x>y&&y+3<7||w;printf("\n%d,%d,%d",x,y,z);}运行结果为:7,4,112.#include <stdio.h>main( ){ int a=3, b=4;int z=a+b;printf(“z=%d\n”,z);}运行结果为:13.#include <stdio.h>main(){int x=6,a=4,y=2,b=6;x+=x;printf("x=%d\n",x); a=y; printf("a=%d\n",a); printf("Li is a \'cat\n。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序阅读理解(五)
1. #include <stdio.h>
main( )
{ int sum=10,n=1;
while(n<3)
{sum=sum-n; n++; }
printf(“%d,%d”,n,sum);
}
运行结果:
2. #include <stdio.h>
main()
{ int num=0;
while(num<=2)
{
num++;
printf("%d\n",num);
}
}
运行结果:
3.#include <stdio.h>
main() { float a,b,c,t;
a=3;
b=7;
c=1;
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%5.2f,%5.2f,%5.2f",a,b,c);
}
运行结果:
4. #include <stdio.h>
main()
{ int x=2,y= -1,z=5;
if(x<y)
if(y<0)
z=0;
else
z=z+1;
printf(“%d\n”,z);
}
运行结果:
5. #include <stdio.h>
main()
{ int m;
scanf("%d", &m);
if (m >= 0)
{if (m%2 == 0)
printf("%d is a positive even\n", m);
else
printf("%d is a positive odd\n", m);
}
else
{
if (m % 2 == 0)
printf("%d is a negative even\n", m);
else
printf("%d is a negative odd\n", m);
}
}
若键入-9,则运行结果为:
7. #include <stdio.h>
main()
{ int num,c;
scanf("%d",&num);
do
{ c=num%10;
printf("%d",c);
}while((num/=10)>0);
printf("\n");
}
输入:5
运行结果:
8.#include <stdio.h>
main()
{ int s=0,a=5,n;
scanf("%d",&n);
do { s+=1; a=a-2; }while(a!=n); printf("%d,%d\n",s,a);
}
运行结果:
9.#include "stdio.h"
main()
{
char c;
c=getchar();
while(c!='?')
{ putchar(c);
c=getchar();
}
}
如果从键盘输入abcde?fgh(回车)
运行结果为:
10. #include <stdio.h>
main()
{ char c;
while((c=getchar())!=‟$‟)
{ if(…A‟<=c&&c<=…Z‟)
putchar(c);
else if(…a‟<=c&&c<=…z‟)
putchar(c-32);
}
}
当输入为ab*AB%cd#CD$时,
运行结果为:
11. #include <stdio.h>
main()
{ char c;
while((c=getchar())!=‟$‟)
{ if(…A‟<=c&&c<=…Z‟)
putchar(c);
else if(…a‟<=c&&c<=…z‟)
putchar(c-32);
}
}
当从键盘输入字母A时,运行结果为:
12. #include <stdio.h>
main()
{ int i,sum=0; i=1;
do{ sum=sum+i; i++; }while(i<=10);
printf(“%d”,sum);
}
运行结果:。