1、40下列变量定义中合法的是( )。 Afloat _a = 1-.1e-1; Bdouble b = 1 + 5e2.5; Clong do = 0xfdaL; Dfloat 2_and = 1 - e - 3;44以下选项中不属于字符常量的是( )。AC BC CxCC0 D07246题与17题重了47题A项选择:a=1 后面加分号就合法了,所以只有“B”项合法12345678910CABDBD11121314151617181920AD212223242526272829303132333435363738394041424344454647484950BC二、填空题1. 2552.a/(
2、b*c)3.4.1.05.x=0或(x=0)?1:6.x7.97或字符 a8.9.2.510.3.511.12.9, 11, 9, 1013.a+=a;24, a-=2;10, a*=2+3;60, a%=(n%=2);0, a/=a+a;0, a+=a-=a*=a;0 14.15.习 题 3 (参考答案)1编程实现:用字符输入/输出函数输入3个字符,将它们反向输出。参考代码(尽量运用本章所学知识)#include main() char c1,c2,c3; c1=getchar(); c2=getchar(); c3=getchar(); putchar(c3); putchar(c2);
3、putchar(c1);2编程实现:用格式输入/输出函数输入3个字符,将它们反向输出并输出它们的ASCII值。scanf (ccc, &c1, &c2, &c3) printf(c d,c d,c d , c3,c3,c2,c2,c1,c1)3变量k为float 类型,调用函数:scanf(dk);不能使变量k得到正确数值的原因是:中的格式控制类型与变量k的定义类型不匹配,应将d改为f.习题4答案6若有以下定义:中B答案的switch(int)x)选择题1 B 2 A 3 B 4B 5 C 6B阅读程序,写结果7 12 813 9 *0*2* if(s=90) m=4; else if(s=8
4、0) m=3;=70) m=2;=60) m=1; else m=0;11有4个整数a,b,c,d,编写程序按大小输出#includemain() int a,b,c,d,t;%d%d%d%d,&a,&b,&c,&d);if(ab) t=a;a=b;b=t;c) t=a;a=c;c=t;d) t=a;a=d;d=t;if(bc) t=b;b=c;d) t=b;b=d;if(cc)&(a+cb)&(b+ca)&(fabs(a-b)(fabs(a-c)(fabs(b-c)3x+10110) y=3*x+10; else if(x1) y=x*x+2*x; else y=x*x-3*x+10; %l
5、f n,y);习题5答案1A 2 A 3 D 4C 5 D 6A 7 D 8 D 9B 10 C11 1 -2 12 2 0 13 * 14 2,4,6,8,10,15 46.000000 16 852 17.利用公式公式求。math.hdouble pi=0,i=1,j=1,k; do k=i/j; pi=pi+k; i=-i; j=j+2; while (fabs(k)1.0e-6);pi is %lf,4*pi);18.求两个数的最大公约数和最小公倍数。最大公约数:用大数整除小数,得到余数1; 再用小数整除余数1,得到余数2;再用余数1整除余数2,直到余数为0。最小公倍数:两数相乘再除以
6、最大公约数。 int m,n,r,x,y;%d%dm,&n); x=m; y=n; if (mn) r=m;m=n;n=r; while( (r=m%n)!=0) m=n; n=r; the max common divisor is %d,the min common multiple is %d,n,x*y/n);19.从三个红球、五个白球、六个黑球中任意取出六个球,且其中必须有白球,编程输出所有可能的组合。int i,j,k;n hong bai hein for(i=0;i=3;i+) for(j=1;j=0) printf( %3d %3d %3dn,i,j,k);20.如果一个数等
7、于其所有真因子(不包括该数本身)之和,则该数为完数。例如:6的真因子有1、2、3,且6=1+2+3,故6为完数。求2,1000内的: (1)最大的完数; (2)完数数目。int a,i,m,number=0,max=0; for(a=1;a=1000;a+) m=0; for(i=1;=a/2; if(a%i=0) m=m+i; if(m=a) number+,max=m;number is %d,max is %dn,number,max);第6章 函数与编译预处理1C 2A 3A 4D 5A 6A 7C8B 9B 10C 11B 12B 13A 14D15C 16C 17C 18C 19A
8、 20D 21B22B 23C 24A 25C 26D 27C 28D二、写出下列程序的运行结果17 212 39 48,17 55 668,8 73 6 9 12 810 97 5 1064 54 11300 126 132三、编程题(以下各题均用函数实现)1超级素数:一个素数依次从低位去掉一位、两位若所得的数依然是素数,如239就是超级素数。试求1009999之内:(1)超级素数的个数;(2)所有超级素数之和;(3)最大的超级素数。解:(1)spn=30 (2)sps=10012 (3)spm=73932其平方等于某两个整数平方和的正整数称为弦数,例如因52=32+42,故5是弦数,求(1
9、21,130)这间的弦数个数以及最大和最小的弦数。n=4 max=130 min=1223有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数。3844编写程序,求的结果。40379135已知y =,其中,f(x, n) = 1 - x2 / 2! + x4 / 4! - (-1)nx2n / (2n)!(n0),当x = 5.6,n = 7时,求y的值。-0.0745216编写程序,求三个数的最小公倍数。int fun(int x,int y,int z) int j,t,m,n; j=1; t=j%x; m=j%y; n=j%z; while(t!=0|m!=
10、0|n! j=j+1; m=j%y; n=j%z; return j; int x1,x2,x3,j;Input x1 x2 x3: %d%d%dx1,&x2,&x3);x1=%d,x2=%d,x3=%dn,x1,x2,x3); j=fun(x1,x2,x3);The minimal common multiple is: %dn,j);7已知:,编写程序,求S的值。例如,当k为10时,S的值应为:1.533852。double fun(int k) int n; double s,w,p,q; n=1; s=1.0; while(n=k) w=2.0*n; p=w-1.0; q=w+1.0;
11、 s=s*w*w/p/q; n+; return s;%fn,fun(10);第7章 数组1C 2A 3C 4D 5D 6C 7A8A 9A 10B 11A 12D 13D 14C15C 16D 17D 18D 19B 20A 21B22B 23B 24C 25D 26D 27D 28D 29C1abcdabcdabcdabcdbcdabcdabcdcdabcdd 2431,2,3,8,7,6,5,4,9,10, 49,8三、程序填空1. (1) k (2) -12. (1) n%base (2)d3. (1) xi+或yi+ (2)i+ 4. (1) a+h-10 (2)si=(n9)?n+
12、0:a+n-105. (1)si!=0 (2)sj+=si6. (1)sj!=0& tk!=0 (2)tk=0四、编程题(每个程序的数据结构均用数组)1编写程序:从键盘上输入一个字符,用折半查找法找出该字符在已排序的字符串a中的位置。若该字符不在a中则输出*。 char c,a10=abcdefghi int top,bot,mid;input c:n%cc=%c,c); for(top=0,bot=10;topamid) top=mid+1; else bot=mid-1; if(topbot) printf(*n);2编写程序:输出某数列的前20项,该数列第1、2项分别为0和1,以后每个奇
13、数编号的项是前两项之和,每个偶数编号的项是前两项之差的绝对值。生成的20个数存在一维数组x中,并按每行4项的形式输出。 int x21,i; x1=0,x2=1; i=3; do xi=xi-2+xi-1; xi+1=fabs(double)(xi-1-xi); i=i+2; while(ivoid fun(char *s,char t) int i,j=0;strlen(s);i+=2) if(i%2=1&si%2!=0)tj+=si; tj=0 char s100,t100;nPlease enter string s:%s,s); fun(s,t);nThe result is:%sn,
14、t);4编写程序:一个自然数平方的末几位与该数相同时,称此数为自同构数。例如,因252=625,故25为自同构数。求出1,700之间的: 最大的自同构数; 自同构数数目。 int i,n,ns,flag,count,r,rs; static int a50; count=0;700; n=i; ns=i*i;flag=1; while(n0&flag) r=n%10;n=n/10; rs=ns%10;ns=ns/10; if(rs!=r) flag=0; if(flag) acount=i;count+;%5d,i);ncount=%d,max=%dn,count,acount-1);(1)最
15、大的自同构数:625 (2)自同构数数目:7个(1、5、6、25、76、376、625)5已知:f(0) = f(1) = 1f(2) = 0f(n) = f(n - 1) - 2*f(n - 2) + f(n - 3) (n2)编写程序:求f(0)f(50)中的最大值。 double f181,max=0; f0=f1=1;f2=0; for(n=3;n=50;n+) fn=fn-1-2*fn-2+fn-3; if(maxfn) max=fn;n max=%.0lf,max);f(0)到f(50)中的最大值:5983256编写程序:自然数11000按顺时针围成一圈,首先取出1,然后顺时针方向按步长L = 50取数(已取出的数不再参加计数),直至所有的数均取完为止,最后一个取出的数是多少? int a1001,i,s=0,n=1;i+
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1