




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序设计练习题 语言程序设计第13章练习题一、选择题1、一个语言程序总是从A、主过程开始执行B、主函数开始执行C、子程序开始执行D、主程序开始执行2、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为A、4B、16C、32 D、523、下面四个选项中,均是C语言关键字的选项是A、auto enum includeB、switch typedef continueC、signed union scanfD、if struct type4、下面四个选项中,均是合法整型常量的选项是A、160 -0xffff 011B、-0xcdf 01a 0xeC、-01 986,012 0668 D、-0x48a 2e5 0x5、下面四个选项中,均是合法浮点数的选项是A、+1e+1 5e-9.4 03e2B、-.60 12e-4 -8e5C、123e 1.2e-.4 +2e-1D、-e3 .8e-4 5.e-06、下面四个选项中,均是合法转义字符的选项是A、 n B、 017 C、018 f xabD、0 101 xlf7、下面正确的字符常量是A、X17 B、80 C、 D、n8、下面四个选项中,均是正确的八进制数和十六进制数的选项是A、-10 0x8f -011B、0abc -017 0xcC、010 -0x11 0xf1D、0a12 -0x123 -0xa9、下面四个选项中,均是正确的数值常量或字符常量的选项是A、0.0 0f 8.9e &B、a 3.9E-2.5 1e1 C、3 011 0xFF00 0aD、+001 0xabcd 2e2 50.10、若有代数式,则正确的C语言表达式是A、2*ln(x)*cos(x)/3*xB、2*ln(x)*cos(x)/(3*x)C、2*log(x)*cos(x)/3*xD、2*log(x)*cos(x)/(3*x)11、若有说明语句:char ch1=065;char ch2=2;char ch3=2;则:ch1中,ch2中,ch3中A、包含1个字符 B、包含2个字符C、包含3个字符 D、字符个数不确定,说明不正确12、若有运算符:、*=、?:、%、sizeof,则将它们按运算的优先级排列的正确次序为(由低至高)A、*=?:%sizeof B、?: *=%sizeofC、*=?: sizeof% D、*=?: %sizeof13、若有以下类型说明语句:char a; int b; float c; double d; 则表达式a*b+d-c的结果类型为A、floatB、charC、intD、double14、若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是A、a=9+b+c=a+9B、a=9+b;c=a+9;C、a=(9+b,b+)D、a=9+b+=a+715、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1=A+6-3;后,ch1中的值为A、D B、68C、一个不确定的值D、C16、以下运算符中优先级最高的运算符是A、&B、+C、?:D、!=17、若有定义:int k=7;float a=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是A、2.500000B、2.7500000C、3.500000D、0.00000018、sizeof(float)是A、双精度型表达式B、一个整型表达式C、一个函数调用 D、一个不合法的表达式19、设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A、y=(y*100+0.5)/100.0B、x=y*100+0.5,y=x/100.0C、y=y*100+0.5/100.0D、y=(y/100+0.5)*100.020、设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是A、0255 B、065535C、-32768+32767D、-256+25521、若有以下定义,则能得到值为3的表达式是(int m=7,n=12)A、n%=(m%=5)B、n%=(m-m%5)C、n%=m-m%5D、(n%=m)-(m%=5)22、若有说明:int a=1,b=2,c=3,d=4;则表达式ab?a:cd?c:d的值是A、4B、3C、2D、123、若x为int类型,则逗号表达式(x=4*5,x*5),x+25的结果是,x的值是A、20 B、100 C、表达式不正确 D、4524、putchar函数可以向终端输出一个A、整型变量值B、实型变量值C、字符串D、字符或字符型变量值25、若有以下变量说明和数据的输入方式,则正确的输入语句为(代表空格)变量说明:float x1,x2;数据的输入方式:4.523.5A、scanf(%f,%f,&x1,&x2);B、scanf(%f%f,&x1,&x2);C、scanf(%3.2f%2.1f,&x1,&x2);D、scanf(%3.2f%2.1f,&x1,&x2);26、若运行以下程序时,从键盘输入25,13,10,则输出结果为main( ) int a1,a2,a3; scanf(%d%d%d,&a1,&a2,&a3); printf(a1+a2+a3=%dn,a1+a2+a3);A、a1+a2+a3=48B、a1+a2+a3=25B、a1+a2+a3=10D、不确定值27、已知a、b、c为int类型变量,若有输入语句:scanf(a=%db=%dc=%d,&a,&b,&c);为使a值为1,b值为3,c值为2,从键盘输入数据的正确形式应当是A、132 B、a=1b=3c=2C、132 D、a=1b=3c=228、以下能正确定义整型变量x、y和z并为其赋初值5的语句是A、int x=y=z=5; B、int x,y,z=5;C、int x=5,y=5,z=5; D、x=5,y=5,z=5;29、执行下面程序段后,x的值是int x;printf(%dn,(x=3*5,x+5);A、10B、15C、20D、530、下面程序段的输出结果是int a=023;printf(%dn,-a);A、23B、17C、18D、2431、已知ch是字符型变量,则不正确的赋值语句是A、ch=5+9; B、ch=0;C、ch=7+9;D、ch=a+b;32、设x,y是float型变量,则不正确的赋值语句是A、+x; B、y=int(5);C、x*=y+1;D、x=y=0;33、设有说明:double b=0.5,c=1.5; int a=10;则正确使用了C语言库函数的赋值语句是A、c=asin(c)+fabs(a); B、b=log10(b)+pow(b);C、c=sqrt(b-c); D、a=(int)(atan2(double)a,b)+exp(b-0.2);34、以下程序段的输出结果是int i=1,j=4,k=2;float x=5.5,y=9.0,z;z=(i+j)/k+sqrt(double)y)*1.2/k+x;printf(%fn,z);A、9.800000B、9.300000C、8.500000D、8.00000035、若a为int类型变量,则执行以下程序段后a的值为a=5;a*=a/=a+;A、2B、1C、40D、336、若a和b均为int型变量,则执行以下程序断后x的输出是x=15;y=15;printf(%dn,x%=(y%=2);A、0B、1C、6C、1237、若x为unsigned int类型变量,则执行以下程序段后x的值是x=65535;printf(%dn,x);A、65535B、1C、无定值D、-138、以下语句的执行结果是printf(%dn,NULL);A、1B、0C、-1无定值39、若x为int类型变量,则执行以下程序段后的输出结果是x=0xDEF;printf(%4d,%4o,%4xn,x,x,x);A、3567,6757,def B、3567,6757,xdefC、3567,06757,0xdef D、3567,6757,0def40、若a、b、c均为int型变量,则执行以下程序段后的输出结果为b=(a=10,a+5,c=10);printf(a=%d,b=%d,c=%dn,a,b,c);c=(a=10,b=5,a+b);printf(a=%d,b=%d,c=%dn,a,b,c);A、a=10,b=15,c=10B、a=10,b=10,c=10 a=10,b=5,c=10 a=10,b=5,c=10C、a=10,b=10,c=10D、a=10,b=10,c=10 a=10,b=5,c=15a=10,b=5,c=541、若a1、a2、a3、a4均为char类型变量,则执行以下程序段后的输出结果为a1=1; a2=2; a3=3; a4=4;printf(%1cn,a1);printf(%2cn,a2);printf(%3cn,a3);printf(%4cn,a4);A、1 B、1 C、1 D、输出格式的描述符不正确 2 2 02 3 3 003 4 4 000442、执行语句printf(The programs name is c:toolsbook.txt);后的输出是A、The programs name is c:tools book.txtB、The programs name is c:tools book.txtC、The programs name is c:tools book.txtD、The programs name is c:toolook.txt43、设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是scanf(%4d+%3d+%2d+%1d,&a,&b,&c,&d);printf(%4d+%3d+%2d+%1d,a, b, c, d);A、1234123121 B、1234123412341234C、1234+1234+1234+1234 D、1234+123+12+144、设c1、c2均是char类型变量,则以下不正确的函数调用是A、scanf(c1=%cc2=%c,&c1,&c2); B、getchar( )C、putchar(c2); D、putchar(c1,c2)45、逻辑运算符两侧运算对象的数据A、只能是0或1 B、只能是0或非0正数C、只能是整型或字符型数据 D、可以是任何类型的数据46、判断char型变量c1是否为大写字母的正确表达式是A、A=c1=A)&(c1=A)&(c1=Z) D、(A=c1)47、执行以下程序段后的a值是,b的值是,c的值是int a=5,b=6,c=1,x=2,y=3,z=4;c=(a=cx)&(b=yz);A、0B、6C、1D、548、设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是A、i&jB、i=jC、i|j+k&j-k D、!(i=A&chy)+(y!=z)|(x+y)&(y-z) 、x+-y+(+z)18、设x、y、z均为int类型变量,请用C语言的表达式描述以下命题。、x或y中有一个小于z、x、y和z中只有两个为负数、y是奇数19、以下程序的输出结果为main( ) int x,y,z=246;x=z/100%9;y=(-1)&(-1);printf(%d,%dn,x,y);语言程序设计第4章练习题一、选择题51、以下正确的if语句是A、if (n0) printf(%f,n) printf(%f,-n);B、if (n0) n=n+m; printf(%f,n); else printf(%f,-n);C、if (n0) n=n+m; printf(%f,n); ; else printf(%f,-n);D、if (n0) n=n+m; printf(%f,n) ; else printf(%f,-n);52、以下程序main( ) int x1=3, x2=0, x3=0; if(x1=x2+x3)printf(* * * *); else printf(# # # #);A、输出:* * * *B、输出:# # # #C、存在语法错误D、无输出结果53、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与A、缩排位置相同的if配对 B、其之前最近且不带else的if配对C、其之前最近的if配对 D、第一个if配对54、若w、x、y、z、k均为int类型变量,则执行下面语句后的k的值是w=1; x=2; y=3; z=4;k=(wx)?w:x;k=(ky)?k:y;k=(k0) x=1;else x=0; -1 (a0) 1 (a0) 0 (a0)0 (a0) -1 (a0) 0 (a0)56、以下关于switch语句和break语句的描述中正确的是A、在switch语句中必须使用break语句B、break语句只能用于switch语句体中C、break语句只能用于循环语句中D、在switch语句中使用break语句或continue语句的作用相同57、设有说明:int a=1,b=0; 则执行以下语句后的输出结果是switch(a) case 1:switch(b) case 0: printf(* 0 *n); break; case 1: printf(* 1 *n);break;case 2: printf(* 2 *n); break;A、* 0 * B、* 0 * * 2 *C、* 0 *D、switch语句中存在语法错误 * 1 * * 2 *58、设有程序段int x=10;while (x=0) x=x-1;A、while循环执行10次 B、循环是无限循环C、循环体语句一次也不执行 D、循环体语句只执行一次59、语句while (!y)中的表达式 !y 等价于A、y=0 B、y!=1 C、y!=0 D、y=160、以下关于do-while循环不正确的描述是A、d0-while的循环体至少执行一次B、do-while循环由do开始,用while结束,在while (表达式)后面不能写分号C、在do-while循环体中,一定要有能使while后面表达式的值变为零(假)的操作D、do-while的循环体可以是复合语句61、设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是for (y=100; x!=y; +x,y+) printf(*n);A、循环体只执行一次B、是无限循环C、循环体一次都不执行D、for语句中存在语法错误62、以下程序段中的do-while循环m=-1;do m=m*m;while(!m);A、是死循环B、执行二次 C、执行一次D、有语法错误63、以下关于for循环的正确描述是A、for循环只能用于循环次数已经确定的情况B、for循环是先执行循环体语句,后判断表达式C、在for循环中,不能用break语句跳出循环体D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来64、语句for (表达式1; ; 表达式3)等价于A、for (表达式1; 0 ; 表达式3)B、for (表达式1; 1 ; 表达式3)C、for (表达式1; 表达式1; 表达式3)D、for (表达式1; 表达式3; 表达式3)65、若k为整型变量,则以下for循环的执行次数是for (k=2; k=0; ) printf(%d,k-);A、无限次B、0次C、1次D、2次66、以下程序段的执行结果是int x=-3;do printf(%dn, x+);while(!x);A、-3 D、-3B、-2 -2C、陷入死循环 -167、执行以下程序段后,y的值是,x的值是int x=1, y=10;do y-=x; x+;while(y-0);A、9 B、8 C、-2 D、2 E、4 F、368、执行以下程序段后a的值是,b的值是int a, b;for (b=1,a=1; b=10) break; if (a%2=1) a+=5; continue;a-=3;A、10 B、6 C、7 D、8 E、469、以下程序段的执行结果是int a, b;for (a=1; a5; a+=2) for (b=1; b5; b+) printf(%2d,a*b);if (b=5)printf(n);A、 1 2 3 4B、1 2 3 43 6 9 12 6 9 12 15C、 2 3 4 6 9 12D、 2 3 4 6 9 12 10 15 2070、以下程序段中是死循环的是A、int n=1;B、int n=1;while (!n) do n-;n+; while(n);C、int n=1; D、for (n=5; n1; ) ; do n+; while(n);71、下面程序的运行结果是main( ) int m=0; while (m=2) m+; printf(%dn, m); A、1B、 1 2C、1 D、1 2 2 3 3 472、以下能正确计算12310的程序段是 A、do B、do k=1; n=1; k=1; n=0; n=n*k; n=n*k; k+; k+; while(k=10); while(k=10);C、k=1; n=1; D、k=1; n=0; do do n=n*k; n=n*k; k+; k+; while(k=10); while(k=10);73、下面程序的功能是计算1至10之间的奇数之和以及偶数之和。请选择填空。main( ) int x, y, z, k; x=z=0; for (k=0; k=10; k+=2) x+=k; ; z+=y; printf(偶数之和 = %dn, x); printf(奇数之和 =%dn, );、A、y=k- B、y=k+1 C、y=k+ D、y=k-1、A、z-10 B、z C、z-11 D、z-y74、下面程序段的功能是计算1000!的末尾含有多少个零。请选择填空。(提示:只要算出1000!中含有因数5的个数即可。)for (m=0,n=5; n=1000; n+=5) t=n; while () m+; t=t/5; A、t%5 B、t=t%5=0 C、t%5=0 D、t%5!=075、若有以下程序段:for (m=1; m=100; m+) scanf(%d, &y); if (y0) continue; printf(%3d, m); 正确的描述是A、当y=0时什么也不输出C、printf函数永远也不执行D、最多允许输出100个非负整数76、以下程序段等价于for (k=100; k=200; k+) if (k%3=0) continue; printf(%4d, k); A、for (k=100; (k%3)&k=200; k+) printf(%4d, k);B、for (k=100; (k%3)|k=200; k+) printf(%4d, k);C、for (k=100; k=200; k+) if (k%3!=0) printf(%4d, k);D、for (k=100; k=a & c1=v & c1=a & ch10) m=m+1; if (xy) n=m+n;else if (x=y) n=5; elsen=2*m; printf(m=%d, n=%d, m, n);问题:为了使输出n=4,x的输入值应当为,y的输入值应当为。24、以下程序的功能是:根据输入的三条边的值判断是否能组成三角形,若能组成则输出三角形的面积和三角形的类型。请填空。#include math.hmain( ) float a1, a2, a3; float s, area; scanf(%f%f%f, &a1, &a2, &a3); if () s=(a1+a2+a3)/2; area=sqrt(s*(s-a1)*(s-a2)*(s-a3); printf(%f, area); if () printf(等边三角形); else if () printf(等腰三角形); else if (a1*a1+a2*a2=a3*a3)| (a1*a1+a3*a3=a2*a2)| (a2*a2+a3*a3=a1*a1) printf(直角三角形); else printf(一般三角形); else printf(不能组成三角形);25、以下程序的功能是判断输入的年份是否是闰年。请填空。main( ) int year, yes; scanf(%d, &year); if (year%400=0) year=1; else if () yes=1; else ; if (yes) printf(%d is, year); elseprintf(%d is not, year); printf( a leap year.n);26、以下程序段根据输入的截止日期(年:yend,月:mend,日:dend)和出生日期(byear,bmonth,bday),计算出实际年龄。请填空。int yend, mend, bend, byear, bmonth, bday, age;age=yend-byear;if (mendbmonth) age-;else if (mendbmonth &dendbday) age-;27、如果运行以下程序段时输入字符“t”,则程序段的运行结果是main( ) char c1; scanf(%c, &c1); c1=(c1=A & c1=a & c1=z) ? (c1-32) : c1; printf(%c,c1);28、以下程序的功能是找出x、y、z三个数中的最小值。请填空。main( ) int x=4, y=5, z=8; int u, v; u=xy ? ; v=uz ? ; printf(%d, v);29、若运行以下程序时,输入下面指定数据,则运行结果为#include main( ) int ch; while (ch=getchar( )!=n) switch(ch-1) case 0: case 1: putchar(ch+3); case 2: putchar(ch+3); break; case 3: putchar(ch+3); default: putchar(ch+1); break; printf(n);输入数据(从第一列开始):123430、将以下嵌套的if语句改写成对应的switch语句,使其完成相同的功能。请填空。(假设mark的取值在1至100之间。)if 语句: if (mark60) k=1; else if (mark70) k=2; else if (mark80) k=3; else if (mark90) k=4; else if (mark=100) k=5;switch语句: switch() k=1; break; case 6 : k=2; break; case 7 : k=3; break; case 8 : k=4; break; k=5;31、将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段,请填空。含有switch语句的程序段: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;含有非嵌套if语句的程序段:int s, m;if () m=5;if (s=90) m=4;if (s=80) m=3;if (s=70) m=2;if (s=60) m=1;if () ;32、用switch语句实现以下数学关系,请填空。 -1 (x0)switch(x0) case 1: y=-1; case 0: switch(x=0) case 1: y=0; y=1; 33、将以下含有switch语句的程序段改写成对应的含有嵌套if语句的程序段,请填空。含有switch语句的程序段:int s, t, m;t=(int)(s/10);switch( t ) case 10: m=5; break; case 9: m=4; break; c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件工程师面试题库精 编
- 小学文言文讲解
- 新北师大版小学数学六年级下册总复习图形的认识
- 学生资产评估汇报
- 团建活动游戏策划与实施方案
- 学术期刊出版伦理问题分析
- 细胞生物核糖体
- 项目进度状态汇报
- 特岗教育技术学
- 乡村建设年度汇报
- 中国联通省公司组织架构项目决策徐亚
- 电信网络维护保障方案
- 智能健康监测技术
- 酒店前厅简介课件
- 2024-2030年光传输行业市场深度调研及发展趋势与投资前景研究报告
- 《河道疏浚砂石综合利用方案编制导则》
- 【浅谈中式面点的造型与制作规范4500字(论文)】
- 汽车技师3000论文范文(篇一)
- 外科主治医师考试-外科学基础知识讲义03外科休克
- ISO9001、ISO14001及ISO45001质量环境及职业健康安全三体系内审及管审资料
- 土壤学-土壤矿物质
评论
0/150
提交评论