您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 程序设计基础习题及答案
1《程序设计基础》习题参考答案【习题1基本概念】一、简答题(在课本中寻找答案,略)1.1C程序的基本结构包括哪些内容?1.2如何定义标识符?1.3输入格式、输出格式的组成包括哪些内容?1.4C语言函数分为哪两类?1.5计算表达式的值应该考虑哪些方面?1.6上机调试程序的步骤如何?1.7常量与变量的区别?1.8C语言中的标识符的定义规则?1.9变量为什么要“先定义,后使用”?1.10字符常量'a'与字符串常量a有何区别?1.11大小写字母转换的规则是什么?1.12变量的具有哪三种属性?二、单项选择题1.13C语言中,int型数据在内存中的存储形式是(D)。A)ASCII码B)原码C)反码D)补码1.14下面四个选项中,均是不合法的用户标识符的选项是(C)。A)BA、x_0、doB)float、1a0、_YC)x-y、goto、123D)_123、tmp、CHAR1.15下列选项中不正确的常数的选项是(D)。A)0x12FB)-1.23E-2C)12.0D)03881.16下面正确的字符常量是(B)。A)aB)'\\'C)\nD)\3761.17下面正确的字符串常量是(C)。A)'a'B)'376'C)\\nD)3761.18表达式'A'+4*25.0-'b'的正确结果是(B)。A)67B)67.0C)不确定D)67L1.19执行printf(%x,100);后的输出结果是(C)。A)100B)0x100C)0X64D)641.20int型的-1在内存中的存储形式是(A)。A)1111111111111111B)0000000000000001C)1111111111111110D)10000000000000011.21存储字符串\\\'abc\376需要的字节数是(D)。A)11B)13C)6D)7三、判断并改错21.22C程序执行的入口是main()函数,所以main函数必须放在程序的开头。错误:main函数可以放在程序的任何位置。并不限定在程序的开头。1.23定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。错误:不可以交叉出现,数据说明部分在执行语句部分的前面。1.24编辑与编译不是一回事。错误:不是一回事。编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。1.25scanf(%d,%d,&x,&y);的正确输入格式:3,4回车。正确1.26注释内容太多会影响程序的执行效率。错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。1.27所有的数学公式可以直接出现在源程序中。错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。四、编程题1.28在屏幕上输出自己名字的拼音。提示:中文名字叫“张三”,对应的拼音为“ZhangSan”,输出用printf()函数。1.29输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f3【习题2运算符与表达式】一、计算题2.12.8+7%3*11%2/4(答案:2.8)2.25/2+5.0/2+7%6(答案:5.5)2.3a=12,a*=2+3(答案:a=60)2.4a=3,b=4,c=5,a+bc&&b==c(答案:0)2.535?3:58?25:40(答案:25)2.6设a=1,b=2,c=3,d=4,m=n=1,有表达式(m=ab)&&(n=cd),计算表达式后m,n的值?(答案:m=0,n=1)2.7设intb=7;floata=2.5,c=4.7;求下面表达式的值。a+(int)(b/2*(int)(a+c)/2)%4(答案:4.5)二、单项选择题2.8若有代数式bcxy8,则不正确的C语言表达式是(C)。A)x/b/c*y*8B)8*x*y/b/cC)8*x*y/b*cD)x*y/c/b*82.9有如下类型说明:intk,a,b;unsignedlongw=8;doublex=2.9则以下不符合C语言语法的表达式是(A)。A)x%(-3)B)w*=-2C)k=(a=6,b=4,a-b)D)a*=a+=a-=(b=4)*(a=3)2.10有如下类型说明:floatn;intm;则以下能实现将n中的数值保留小数点后两位,第三位四舍五入的表达式是(B)。A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.02.11设k=7,x=12;则下列表达式值为3的是(D)。A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)2.12已知m=48,ch='a',n=0;则表达式(m=n&&ch'b'&&!n)的值是(B)。A)0B)1C)真D)非02.13下面哪个式子在b为奇数时结果为假(C)。A)a%2==1B)!(a%2==0)C)!(a%2)D)a%22.13执行printf(%f,(x=3,y=5,xy?1:1.5));后的输出结果是(D)。A)语法错误B)1C)1.5D)1.5000002.14能表示条件0≤x≤100的表达式是(D)。A)0=x=100B)x=0,x=100C)0≤x≤100D)x=0&&x=1002.15判断char型变量ch为数字的正确表达式是(B)。A)ch=0&&ch=9B)ch='0'&&ch='9'C)'0'≤ch≤'9'D)ch='0'||ch='9'4三、编程题(应用条件运算)2.16输入一个整型成绩x,如果大于等于60分,输出“pass”,否则输出“fail”。提示:printf(%s,x60?pass:fail);2.17输入一个年份y,如果是闰年,输出“yisaleapyear”,否则输出“yisnotaleapyear.”提示:printf(%dis%s,y%4==0&&y%100!=0||y%400==0?aleapyear.:notaleapyear.);2.18输入三条边a,b,c,如果它们能构成一个三角形,输出“Yes”,否则输出“No”。提示:printf(%s,a+bc&&a+cb&&b+ca?Yes:No);2.19输入三个数x,y,z,按从小到大的输出结果。提示:分别用max0,min0代表最大、最小值,mid0表示中间值。max0=(xy?x:y)z?(xy?x:y):z;max0=(xy?x:y)z?(xy?x:y):z;mid0=x+y+z-max0-min0;2.20输入一个平面上的点坐标,判断它是否落在圆心(0,0),半径为1的圆内,如果在圆内,输出“Yes”,否则输出“No”。提示:分别用x,y代表平面上一个点。printf(%s,x*x+y*y=0?Yes:No);2.21自增、自减运算符的用法与运算规则示例。2.22计算下列表达式。(1)(2)提示:模仿例2.272.23字母的大小写转换。2.24计算圆柱体的体积V=πr2h,其中π=3.14159。提示:模仿2.272.25输入两个整数,输出其中最大者。提示:模仿P292.26输入三个整数,输出其中最小者。提示:min(min(a,b),c);2.27设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。参考源程序:main(){floatr,h,C1,Sa,Sb,Va,Vb;scanf(%f,%f,&r,&h);C1=2*3.14*r;Sa=3.14*r*r;Sb=4*Sa;Va=4*3.14*r*r*r/3;Vb=Sa*h;printf(C1=%.2f\n,C1);printf(Sa=%.2f\nSb=%.2f\nVa=%.2f\nVb=%.2f\n,Sa,Sb,Va,Vb);}aacbbx2421xxxytancossin5【习题3控制流】3.1编程实现,输入一个整数,判断它是否为偶数,并显示相应的信息。提示:x代表输入的整数,if(x%2==0)printf(\neven);elseprintf(\nodd);3.2编程实现,输入一个平面上的点,判断它是否落在单位圆上,并显示相应的信息。提示:x,y代表平面坐标,if(x*x+y*y==1)printf(\nYes);elseprintf(\nNo);3.3编程实现,输入一个成绩等级(A-E),显示相应的百分制成绩段。A:90-100B:80-89C:70-79D:60-69E:60提示:chargrade;if(grade=='A')printf(\n90-100);elseif(grade=='B')printf(\n80-89);....3.4写出下面程序的运行结果:#includestdio.hmain(){inta=-1,b=1,c=5;switch(a0){case1:switch(b-20){case1:printf(&);break;case2:printf(*);break;}case0:switch(c==5){case0:printf(!);break;case1:printf(#);break;default:printf(%%);}default:printf(@);}}运行结果:@3.5将以下语句改写成switch语句。if((t0)&&(t=10))if((t=3)&&(t=6))x=2;elseif((t1)||(t8))x=3;elsex=1;elsex=0;提示:intt;if(t=0||t10)c=0;elsec=t;switch(t)6{case0:x=0;break;case1:case2:x=3;case3:case4:case5:case6:x=2;case7:case8:case9:x=3;case10:x=2;}3.7编程实现一个具有简单四则运算功能的计算器。提示:参照例4.18,随机产生3个数,其中一个数用来判断是哪种运算。3.8编程实现,输入一行字符,将其中的数字字符对应的整数值加起来并输出结果。如:a45b8&*3则是4+5+8+3,结果为20。提示:charc;intsum=0;while((c=getchar())!='\n')if(c='0'&&c='9')sum=sum+c-'0';3.9编程实现,求201!n的值。提示:先计算n!,再在计算阶乘的外面套上一层循环。注意:20!是一个很大的值,floats=1;inti;例如:计算6!:for(i=1;i=6;i++)s=s*i;3.10编程实现,找出1000之内的所有完数,并按下面格式输出其因子:6itsfactorsare1,2,3,所谓“完数”是指一个数如果恰好等于它的因子之和,因子是指能够整除该数的数。提示:先判断数是否为完数,如果是再考虑输出因子。以6为例输出因子:for(i=1;i6;i++)if(6%i==0)printf(%d,,i);3.11编程实现,计算序列的前20项之和,12,23,35,58,813,1321,...提示:这是一个累加式,每项是一个分式,用a、b分别表示分子、分母。注意:如果a、b都是整数,则是整除。floatsum=0,a=2,b=1;inti;for(i-1;i=20;i++){sum=sum+a/b;a=a+b;b=a-b;}3.12编程实现,求Sn=a+aa+aaa+...+aa...a之值,其中a是一个数字。如:2+22+222+2222+22222(此时n=5),n,a由键盘输入。提示:这是一个累加式,后1项可以由前一项表示,譬如:第2项可以由第1项表示:第1项t=a;第2项:t=t*10+a;3.13编程实现,把从键盘输入的金额
本文标题:程序设计基础习题及答案
链接地址:https://www.777doc.com/doc-2150937 .html