高级程序设计课后习题及答案_第1页
高级程序设计课后习题及答案_第2页
高级程序设计课后习题及答案_第3页
高级程序设计课后习题及答案_第4页
高级程序设计课后习题及答案_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高级程序设计课后习题及答案第一章概述一、单项选择题1.二进制语言是属于()A.面向机器语言B.面向问题语言C.面向过程语言D.面向汇编语言解:A.人们研制了许许多多计算机程序设计语言,其中二进制语言直接来自计算机的指令系统,与具体计算机紧密相关,所以是一种面向机器语言.面向问题语言是为了易于描述和求解某类特定领域的问题而专门设计的一种非过程语言.面向过程语言是一种能方便描述算法过程的计算机程序设计语言.有汇编语言,但没有面向汇编语言.汇编语言也是一种面向机器的语言,与机器语言比较,汇编语言用有助于记忆的符号来代表二进制代码.2.将汇编语言编写的程序翻译成目标程序的是()程序A.解释B.编译C.汇编D.源解:C.3.不属于面向机器语言的是()A.符号语言B.二进制语言C.汇编语言D.C语言解:D.4.下列语言中不属于面向过程的语言是()A.高级语言B.低级语言C.C语言D.ALGOL语言解:B.C语言和ALGOL等程序设计语言都是高级语言,它们用于描述复杂加工的处理过程,所以也称它们是面向过程语言.低级语言是指机器语言和汇编语言,低级语言是面向机器的语言,而不是面向过程的语言.5.将高级语言编写的程序翻译成目标程序的是()程序A.解释B.编译C.汇编D.源解:B.6.不属于高级语言的计算机语言是()语言A.BASICB.CC.ALGOLD.符号解:D.二、填空题1.汇编语言属于面向____语言,高级语言属于面向____语言.解:汇编语言与具体计算机密切有关,是属于面向机器的语言;而高级语言用来描述求解题的算法,所以是面向过程的语言.所以解答是:机器,过程.2.用高级语言编写的程序称为____程序,它可以通过____程序翻译一句执行一句的方式执行,也可以通过____程序一次翻译产生____程序,然后执行.解:用高级语言编写的程序称为源程序,源程序不能在计算机上直接运行,运行源程序有种方式:一种是通过解释程序,对源程序逐句解释执行;另一种是先让编译程序将源程序翻译产生目标程序(目标程序是计算机可直接执行的机器语言程序,它是一种二进制代码程),然后执行目标程序.所以解答时:源,解释,编译,二进制.3.从计算机角度出发,程序就是____,程序设计就是____.解:用某种计算机能理解并执行的计算机语言描写解决问题的方法步骤;分析解决问题的方法步骤,并将其记录下来的过程.第二章C语言的基本知识一、单项选择题1.属于C语言字符集中可显示字符的是()A.\B.\nC.\tD.\b解:A2.不属于C语言字符集中的符号是()A.\B.|C.≤D.^解:C3.下列选项中,不是转义字符的是()A.\\B.\'C.074D.\0解:C4.下列选项中,正确的转义字符是()A.\0F1B.\"C.\094D.\0xF1解:B5.下列给出的符号串中,不属于C语言保留字的是()A.swithB.cherC.caseD.else解:B6.下列给出的符号串中,属于C语言保留字的是()A.ifB.iFC.IfD.IF解:A7.下列给出的符号串中,可作为标识符的是()A.?aB.a=2C.a.3D.a_3解:D8.下列给出的符号串中,不能作为C语言标识符的是()A.a_2B._2aC._a2D.2_a解:D9.下列给出的符号串中,可以作为C语言标识符的是()A.staticB.doC.registerD.GOTO解:D10.下列说法中错误的是()A.主函数可以分为2个部分:主函数头和主函数体B.主函数可以调用任何不是主函数的其他函数C.任何函数可以调用不是主函数的其他函数D.程序总是从排在程序最前面的某个函数开始执行解:D程序总是在主函数中开始执行,并在主函数中结束二、填空题1.转义字符是由____符号开始的单个字符或者若干个字符组成的.解:反斜杠2.C语言的保留字规定全部由____字母组成,解:英文小写3.C语言标识符是由____或____开头的字母、数字、下划线组成的一串符号.ANSIC规定标识符的长度≤____个字符;而PC机上规定前____个字符有效.解:字母,下划线,32,84.C语言词类主要分为____,____,____,____,____和____6类.解:常量,变量,运算符,函数调用,表达式,保留字5.C语言的语句主要分为____语句,____语句,____语句,____语句,____语句,____语句,____语句和____语句.解:数据定义,赋值,函数调用,表达式,流程控制,复合,空,其他6.在C语言中既是词类,又能单独组成语句的有____和____两类.解:保留字,标识符7.C语言的程序是由若干个函数组成的,其中有且仅有一个函数名规定为____的主函数.解:main8.C程序的执行总是由____函数开始,并且在____函数中结束.解:主,主9.C语言程序的注释可以出现在程序中的任何地方,它总是以____符号作为开始标记,以____符号作为结束标记.解:/*,*/10.C语句的最后一定要有一个____号.解:分11.使用TurboC调试C程序的主要操作步骤分为____,____,____,____,____,____.解:输入新程序或调入已存在的程序,编辑修改源程序,源程序清单存盘,编译连接生成目标程序,执行目标程序,显示运行结果.第三章基本数据类型、运算符和表达式一、单项选择题1.下列选项中属于C语言字符常量的是()A.'abc'B."\n"C.'a'D.'a\0'解:C2.下列选项中属于字符串常量的是()A.ABCB."ABC"C.'abc'D.'a'解:B.C程序中,一个字符串常量是表示一个字符序列,书写时,用双引号字符前后括住这个字符序列.所以只有"ABC"是一个正确的字符率常量,其余都不是.其中,ABC可作为标识符,字符列'abc'不能出现在C程序中,'a'是一个字符常量.3.在PC机中,'\n'在内存占用的字节数是()A.1B.2C.3D.4解:B.一般来说,一个字符在内存中只占1个字节,'\n'是转义字符,其意义是换行符,它作为一个字符存储,在内存占2个字节.4.下列字符串常量中,占用内存字节数为2的字符串常量是()A."12"B."1"C."1\0"D."\n\n"解:B5.字符串"ABC"在内存占用的字节数是()A.3B.4C.6D.8解:B.字符串中的每个字符占1个字节,但C程序在存储字符串时,要在最后一个有效字符后面接上1个字符串结束的标记符'\0'.这样,存储字符串常量"ABC"需要4个字节.6.在C语言中,合法的长整型常量是()A.0LB.4962C.0.054838743D.2.1869el0解:A.为表示不同范围的整数,整型数据分短整型、基本型和长整型,并对三种整型内部表示的最高位的不同理解,又分别分成无符号和带符号两种.若要明确指明一个整数是长整型的,必须在整数之后接上字符'L'.所以0L是一个长整型的整型常量,而4962是基本整型数据;0.054839743和2.1869el0都是double型的实数.7.下列符号常量的定义中正确的是()A.#defineN3B.defineN3C.#defineN_13D.#defineN13解:C8.设有宏定义"#defineR2+3",则R*R的宏替换结果正确的是()A.(2+3)*(2+3)B.2+3*2+3C.5*5D.5.0*5.0解:B9.char型数据在内存中存放的是()A.ASCII代码值B.二进制代码值C.八进制代码值D.十进制代码值解:A.计算机存储字符,通常是存储字符的某种代码值.有许多种字符编码的方法,最流行的是ASCII代码.在C语言中,char型数据用ASCII代码表示.10.下列说法中错误的是()A.整形变量可以存放字符常量的值B.字符型变量可以存放任意整形常量的值C.变量必须先定义,后使用D.字符串的长度不等于它占用的字节数解:B11.设整型变量i的值为3,则表达式i---i的值为()A.0B.1C.2D.3解:A.有些运算符只有一个字符,也有许多运算符由两个字符组成.特别是有些字符既可是单个字符的运算符,又能组成双字符的运算符.编译系统在识别源程序时,通常是尽量多地读字符,能组成多字符单词的先尽量组成多字符单词.所以表达式i---i,被编译器理解为(i--)-i.另外,当表达式中某变量有后缀自增和自减运算时,先按变量的原值计算表达式,然后再对变量进行自增和自减运算.同样地,当表达式中某变量有前缀自增和自减运算时,先对变量进行自增和自减运算,然后再按变量的新值计算表达式.按这个约定,求表达式(i--)-i是计算i-i的值为0,然后再对i作自减运算,这样,表达式i---i的值为0.12.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是()A.6B.9C.8D.12解:A.与上一小题解答的理由相同,表达式a+++b+++c++被系统理解成(a++)+(b++)+(c++).表达式"变量++"的值是变量的原来值,所以在变量a,b,c均为2的前题下,执行上述表达式,得到结果为6.13.表达式"10!=9"的值是()A.trueB.非0值C.0D.1解:D.关系运算的结果只有0和1,若关系成立,则结果为1;若关系不成立,则结果为0.因关系式10!=9成立,所以表达式的结果为1.14.设a为整型变量,下列C表达式中,不能表达数学关系式:10<a<a10&&a<15D.!(a<=10)&&!(a>=15)解:A.数学关系式10<a10&&a<15,或!(a<=10)&&!(a>=15)或a==11||a==12||a===13||a==14,若写成10<a10的结果0或1,然后以这个结果与15比较,是否小于15.显然这与数学式子的意义是不一致的.15.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是()A.'a'&&'b'B.a<=bC.a||b+c&&b-cD.!((a<b)&&!c||1)解:D.对于表达式'a'&&'b',两个非O运算分量的逻辑与结果为1.对于表达式a<=b,由于关系式成立,结果也为1,又由于变量a为非0,表达式a||b+c&&b-c的结果也为1.对于表达式!((a<b)&&!16.设x为整型变量,和表达式!(!x)的值完全相同的表达式是()A.x==0B.x==1C.x!=0D.x!=1解:C17.设有代码inta=3;,则执行了语句a+=a-=a*a;后,变量a的值是()A.3B.0C.9D.-12解:D.由于赋值运算符的结合性自右至左,语句a+=a-=a*a,的执行是先计算a*a,得到值9,再计算a-=a*a,使a的值为-6,接着计算,a+=a,使a的值为-12.18.下列表达式中,正确的C赋值表达式是()A.a=7+b+c=a+7B.c=7+b++=a+7C.a=(7+b,b++,a+7)D.a=7+b,c=a+7解:C.赋值运算符是运算符之一,赋值运算也可以出现在一般表达式中.赋值运算时,出现在赋值运算符左边的表达式应该是引用一个存储对象,例如变量.不可以是一个数值计算表达式.如表达式a=7+b+c=a+7因算术运算符比赋值运算符的优先级高要把a+7的结果赋给7+b+c,这是错误的.同样理由,表达式a=7+b++=a+7也是错误的.而表达式a=(7+b,b++,a+7)就是正确的赋值表达式,它是先计算赋值号左边的括号内的表达式,括号表达式内是一个逗号表达式,远号表达式要求顺序逐一计算各子表达式,并以最后一个子表达式的值作为逗号表达式的结果,最后将该结果赋给变量a.而表达式a=7+b,c=a+7则不是一个赋值表达式,而是一个逗号表达式,它由两个赋值子表达式组成.19.设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是()A.0,0B.0,1C.1,0D.1,1解:C.计算(m=a==b)||(n=c==d)的过程是先计算逻辑或的左运算分量(m=a==b)的值.由于赋位运算符的优</b)&&!></b)&&!c||1)></a</a</a先级比关系运算符==的优先级低,又先计算a==b.因a,b均为0后,所以比较结果值为1.将1赋给变量m,使变量m的值变为1.同时这个赋值运算的结果也是1,这样逻辑运算的左运算分量的值为1.由于逻辑或运算的左运算分量值为1,按照C语言对逻辑或运算优化计算的规定,不再计算逻辑或的右运算分量,而直接得到逻辑或运算的结果为1,由于逻辑或的右运算分量不曾计算过,所以变量n的值也不为变化.这样上述表达式计算后,变量m的值为1,变量n的值为0.20.设整型变量m,n,a,b,c,d均为1,执行"(m=a>b)&&(n=a>b)"后m,n的值是()A.0,0B.0,1C.1,0D.1,l解:B.表达式(m=a>b)&&(n=a>b)是一个逻辑表达式,它的计算过程是先计算逻辑与的左分量m=a>b,其中又是先计算a>b.因a>b不成立,结果为0,将0赋给变量m,最后逻辑与的左分量结果为0.由于逻辑运算采用特别的优化计算规则,当逻辑与的左分量结果为0时,不再计算逻辑与的右分量,而直接以0为逻辑与的结果.所以,上述表达式计算使m的值变为0,而n的值没有变,依旧为l.21.若已定义x和y为double类型,则表达式:x=1,y=x+3/2结果是()A.1B.2C.2.0D.2.5解:C.由于变量x和y都是double类型,表达式x=l,y=x+3/2是先计算x=1,由于1是整型的x是double类型的,该计算先将整数1转换成double类型的1.0,并将1.0赋给变量x.计算y=x+3/2是先求3/2的值,因是两整数相除,结果是整型值1,然后在计算x+1时,也先将1转换成1.0,然后求得x+l的值为2.0,最后将该值赋给变量y,并得到整个表达式的值为2.0.22.执行语句"x=(a=3,b=a--);"后,x,a,b的值依次为()A.3,3,2B.2,3,2C.3,2,3D.2,3,3解:C.计算表达式x=(a=3,b=a--)时,先计算赋值号右端圆括号内的逗号表达式.逗号表达式要求各子表达式顺序计算,并以最后予表达式的值为整个逗号表达式的结果,所以该表达式计算时,先让变量a的值为3,a--的值是a当时的值,以该值为结果赋给变量b,并以该值为逗号表达式的值赋给变量x,然后a的值被减少1.所以计算该表达式后,使变量x,a,b的值依次为3,2,3.23.设a为5,执行下列计算后,b的值不为2的是()A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?3:2解:C.因两个整型数据相除,结果是整数,当a的值为5时,计算表达式b=a/2后,使b的值为2.计算表达式b=6-(--a)是先计算子表达式(--a)的,先让a的值减1变成4,并以减1后的a为子表达式的结果,所以子表达式的结果为4,最后使b的值为2.在计算表达式b=a%2时,求余运算a%2的结果为1,最后使变量b的值为1.计算表达式b=a>3?3:2时,先计算条件表达式a>3?3,2,以2为结果,最后也使变量b的值为2.24.设a=1,b=2,c=3,d=4则表达式a<b?a:c解:D.条件运算符的优先级比关系运算符的优先级低,并且它的结合性是自右向左的,所以表达式a<b?a:c<d?a</b?a:c<d?a</b?a:c:d可用圆括号等价地写成(a<b?a:((c<d)?a:d).因a<b成立,计算结果为a的值1.25.设charch='A',则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch的值是()A.'A'B.'a'C.'Z'D.'z'解:B.由于字符型变量ch的值为'A',计算表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch.先计算其中条件表达式,由于条件(ch>='A'&ch<='Z')成立,该条件表达式以ch+32=97为结果,将该值赋给变量ch,以字符表达这个值为'a'.26.在C语言中,结果不等于4的表达式是()A.sizeof(double)B.sizeof(long)C.sizeof(float)D.sizeof(unsignedlong)解:A27.用十进制数表示表达式"12|012"的运算结果是()A.1B.0C.14D.16解:C.按位运算将运算分量视作二进位的位运算,对两运算分量的对应位进行运算,产生进位的位串信息结果.整数12最低8位二进位是00001100,整数012是八进制数,它的最低8位二进位是00001010.这两个二进位位串信息按位或运算,得到结果是00001110,对应十进制数14,八进制数是016.28.设有定义"chara=3,b=6,c;"计算表达式c=(a^b)<<2后c的二进制值是()A.00011100B.00000111C.00000001D.00010100解:D.a的值为3,写成8位二进制数形式是00000011,b的值为6,写成8位二进制数形式是00000110.表达式c=(a^b)<<2,先计算a与b的按位加,得到结果00000101,将这结果向左移2位,得到二进位的位串信息是00010100.29.设有定义shorti=013,j=0x13,k;,计算表达式k=~i|j>>3;后,k的值是()A.06B.0177776C.066D.0177766解:D.将变量i的八进制数值013写成二进制形式为00001011,将变量j的十六进制值0xl3写成二进制数形式为00010011.表达式k=~i|j>>3的计算过程是先求~i,结果用八进制代码表示为0177764,接着计算j>>3,结果为02,对它们进行按位或运算结果为0177766.30.设整型变量x,y,z均已赋值,下列选项中,正确的赋值表达式是()A.<解:B31.在以下一组运算符中,优先级最高的运算符是()A.<=B.=C.%D.&&解:C.常规运算符的优先级自高到低的排列顺序是算术运算符,移位运算符,关系运算符,按位运算符逻辑运算符,条件运算符,赋值运算符,逗号运算符.所以问题所给的四个运算符按优先级自高到低的排列顺序是%,<=,&&,=.32.在以下一组运算符中,优先级最高的运算符是()A.--B.==C.||D.&&解:A33.若有以下定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为()A.floatB.intC.charD.double解:D.基本类型的数据可以混合运算,但运算时,对要求运算分量类型相同的运算来说,如运算分量的类型不是全相同则会有自动类型转换发生.类型自动转换规则规定类型低(简单)的向类型高(复杂)的转换.各类型由高到低的排列顺序是:longdouble,float,unsignedlong,long,unsignedint,int.这样,若有定义:chara;intb;floatc;doubled;则表达式a*b+d-c的值的类型是double的.首先计算a*b,得到int类型的值,接着计算a*b+d,得到double类型的值,最后计算a*b+d-c,得到double类型的值.34.关于运算时的数据类型转换,下列说法中错误的是()A.表达式计算中,数据要转换成数据长度最长的数据类型再运算B.赋值时,右边表达式的运算结果转换成左边变量的数据类型再赋值C.赋值时,左边变量的数据类型转换成右边表达式的运算结果类型再辅助D.(float)(n+m)是先计算n+m,然后再将结果强行转换成单精度实型解:C二、填空题1.C语言中的常量有4种类型:整型,实型,____型,____型.解:数值,字符2.用十进制表示整型常量-017为____,表示整型常量-0xF为____.解:-15,-143.无符号短整型数据的表示范围是____至____.解:0,655354.在内存中存储"A"要占用____个字节,存储字符'A'要占用_____个字节.解:计算机存储一个字符用1个字节,存储字符串时,每个字符要占用1个字节,另在字符串的有效字符之后存储1个字符串的结束标记符.所以存储"A"要占用2个字节,存储字符'A'只要1个字节.5.在内存中存放字符串,其最后一个字符为"空字符",对应的转义字符为____,其值为____.解:\0,06.符号常量的定义方法是____.解:定义符号常量用预处理命令的宏定义,其定义的一般形式是:#define符号常量常量7.设有宏定义#defineX3-2;则2*X的宏替换结果是____.解:2*3-28.定义变量的语句格式是____.解:数据类型符变量1,变量2,…;9.无符号基本整型的数据类型符为____,双精度实型数据类型符为____,字符型数据类型符为____解:无符号的基本整型的类型符为unsignedint,或简写成unsigned.双精度实型数据类型符为double,字符型数据类型符为char.10.定义整型有名常量nn的初值为199,正确的定义语句是____.解:constintnn=199;11.设x和y均为int型变量,且x=l,y=2,则表达式1.0+x/y的值为____.解:计算表达式1.0+x/y,先求x/y,因x和y是整型变量,其中的除运算是整除,1/2的结果为0.接着计算1.0+0,计算时,先将右分量转换成0.0,最后得到结果1.0.12.请写出数学式a/bc的C语言表达式____.解:数学式子表述的是a除以b乘c的积,写成表达式可以写为x/(y*z),或可等价地写成x/y/z.13.设a=3,b=2,c=l,则c>b的值为____,a>b>c的值为______.解:0,0.因a的值为3,b的值是2,条件a>b为真,其值为1.表达式a>b>c的求值顺序是计算a>b,结果为1,接着计算1>c,因c的值为1,条件1>c为假.结果为0.14.C语言中作为运算对象时的逻辑值真是用____表示的,逻辑值假是用____表示的.逻辑表达式值为真时是用____表示的,逻辑表达式值为假时是用____表示的.解:在C程序中,判逻辑值时,用非0值表示真,用值0表示假;但逻辑表达式计算结果,逻辑表达式值为真是用1表示的,而逻辑表达式的值为假,则用0表示.15.若已知a=10,b=20,则表达式!a解:计算表达式!a<b,先计算!a,因a的值为1o,!a的值为0.关系表达式0<20为真,所以表达式!a16.能表述20<x<30或x<-100的c语言表达式是____.解:首先表述20<x<30的c表达式可写成20<x&&x<30.所以表述20<x<30或x<-100的c表达式为20<x&&x<30||x<-100.17.设变量x,y,z均为实型,表示其中至少有一个负数的表达式是____.解:x<0||y<0||z<018.表达式'a'>'A'>=1<=0==1!=0的值等于____.解:表达式计算时可按照顺序(((('a'>'A')>=1)<=0)==1)!=0,首先计算'a'>'A'得到1,然后计算1>=1得到1,再计算1<=0得到0,再计算0==1得到0最后计算0!=0得到0,故表达式的值为0.19.设二进制数A是00101101,若想通过异或运算A^B使A的高4位取反,低4位不变,则二进制数B应是____.解:按位加运算的一个重要应用是让某个整型变量的二进位位串信息的某些位信息反向,0变成1,而1变成0.这只要设计这样一个位串信息,让要变反的位为1,不要改变的位为0,用这个位串信息与整型变量按位加就能得到希望的结果.要使字节的高4位取反,低4位不变,则需要位串信息是11110000,写成八进制数是0360,写成十六进制数为0xF0.20.设整型变量x,y,z均为5:A.执行x-=y-x后,x=____;B.执行x%=y+z后,x=____;C.执行x=(y>z)?x+2:x-2,3,2后,x=____.解:在变量x,y,z的值均为5的情况下,计算各表达式.由于表达式x-=y-z等价于表达式x=x-(y-z),所以计算后x的值为5.表达式x%=y+z等价于表达式x=x%(y+z),所以计算后x的值也为5.表达式x=(y>z)?x+2:x-2,3,2的计算过程用圆括号描述其计算顺序是:x=(y>z)?x+2:x-2,3,2,即这是一个逗号运算表达式,由一个赋值表达式和两个数值构成,逗号表达式要求顺序求各子表达式的值.表达式x=(y>z)?x+2:x-2的计算是先求赋值号右边的条件表达式,因条件(y>z)为假,求出x-2的值为3,将该值赋给变量x,使x的值为3.21.设有下列运算符<<,+,++,&&,<=,其中优先级最高的是____,优先级最低的是____.解:对运算符<<,+,++,&&,<=,按它们的优先级自高到低的顺序排列为:++,+,<<,<=,&&,所以优先级最高的是++,优先级最低的是&&.22.C语言中运算结果可以当成逻辑值使用的表达式有____表达式,____表达式,____表达式,____表达式,____表达式和____表达式.解:算术,关系,逻辑,赋值,逗号,条件.在c语言中,逻辑判断以非0值为真,以0值为假.所以,几乎所有的表达式的运算结果都可以当成逻辑值使用,如算术表达式,关系表达式,逻辑表达式,赋值表达式,逗号表达式,条件表达式等.第四章顺序结构、选择结构和循环结构的程序设计一、单项选择题1.设a=3,b=4,执行"printf("%d,%d",(a,b),(b,a));"的输出是()A.</x<30的c表达式可写成20<x&&x<30.所以表述20<x<30或x<-100的c表达式为20<x&&x<30||x<-100.></x<30或x<-100的c语言表达式是____.></b,先计算!a,因a的值为1o,!a的值为0.关系表达式0<20为真,所以表达式!a3,4B.4,3C.3,3D.4,4解:B.在调用格式输出函数的语句中,其中每个格式符对应一个输出项,格式符%d要求输出项内容以十进制整数形式输出.第一个输出项(a,b)是一个逗号表达式,该表达式的值是b的值,输出4.接着输出字符逗号.第二个输出项(b,a)的值是a的值,输出3.所以语句执行将输出4,3.2.使用语句"scanf("x=%f,y=%f",&x,&y)",要使x,y均为1.25,正确的输入是()A.1.25,1.25B.1.251.25C.x=1.25,y=1.25D.x=1.25y=1.25解:C.格式输入函数的格式字符串中的字符可以分成三类:空格类字符,其它普通字符和格式转换说明.其中空格类字符用来跳过一个空格类字符序列,直至下一个非空格类字符.普通字符要求输入字符与其完全相同.格式转换说明对输入字符列按格式转换说明进行转换,得到内部值存储到对应输入项所指定的存储位置中.函数调用scanf("x=%f,y=%f,&x,&y)以普通字符x=开头,输入时也要先输入x=.接着是一个浮点数输入格式,所有能构成一个浮点数1.25的字符序列都能满足要求.接着是普通字符列",y=",在输入的浮点数之后也要有字符列",y=".最后又是浮点数输入格式,同样所有能构成一个浮点数1.25的字符序列都能满足要求.问题给出的供选择答案中只有x=1.25,y=1.25是能满足上述要求的.3.设有inti=010,j=10;则执行"printf("%d,%d\n",++i,j--);"的输出是()A.ll,10B.9,10C.010,9D.10,9解:B.变量i和j的初值分别为八进制数010和十进制数10,函数调用printf("%d,%d\n",++i,j--)中,++i的值是变量i增1后的值,原来值是八进制数010,等于十进制数8,输出9.j--的值是变量j减1之前的值,输出10.格式字符申中的逗号是普通字符照原样输出.所以问题给出的格式输出函数调用将输出9,10.4.设a,b为字符型变量,执行"scanf("a=%c,b=%c",&a,&b);"后使a为'A',b为'B',从键盘上的正确输入是()A.'A''B'B.'A','B'C.A=A,B=BD.a=A,b=B解:D.函数调用scanf("c=%c,b=%c",&c,&b)中,普通字符必须按格式字符串要求照原样输入,c格式对紧接的任何字符都输入.所以实现问题的要求,输入字符列应为"a=A,b=B".另外要特别指出,在程序中,为表示字符常量,字符前后需加单引号.但用字符格式输入字符时,在要输入字符前后不必另键人单引号.若键人单引号,则这个单引号也将作为字符被输入.5.设x,y,z,t均为int型变量,则执行以下语句后,t的值为()x=y=z=1;t=++x||++y&&++z;A.不定值B.2C.lD.0解:C.语句序列"x=y=z=1;t=++x||++y&&++z;"使变量x的值为1,变量t是赋一个逻辑表达式的值.在C语言中,由逻辑与和逻辑或构成的逻辑表达式有特别的计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑表达式的结果时,就立即结束逻辑表达

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论