jdy40程序C语言,C语言习题集

程序设计技术基础习题集C语言)太原理工大学理学院计算机基础教学部2011年2月1第一部分C程序设计基础知识第一、二章C语言概述与算法一、选择题四个选项中只有一个是正确的下同)1一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是A有零个或多个输入B有零个或多个输出C有穷性D可行性2以下叙述中正确的是AC语言的源程序不必通过编译就可以直接运行BC语言的每条可执行语句最终都将被转换成二进制的机器指令CC语言的源程序经编译形成的二进制代码可以直接运行DC语言的函数不可以单独进行编译3对用C语言编写的代码程序,以下叙述中哪个是正确的A可立即执行B是一个源程序C经过编译即可执行D经过编译解释才能执行4结构化程序由三种基本结构组成,由这三种基本结构组成的算法A可以完成任何复杂的任务B只能完成部分复杂的任务C只能完成符合结构化的任务D只能完成一些简单的任务5.有一个命名为C001C的C语言源程序,当正常执行后,在当前目录下不存在的文件是A)C001OBJB)C001DATC)C001EXED)C001C二、填空题1.结构化程序由、、三种基本结构组成。2.模块化程序设计的设计原则是和。3.组成C程序的基本单位是,其组成部分包括和。4.C程序中的MAIN称,它可以出现在程序的位置。5.由“/”和“/”括起来的内容称为,它的作用是。6.描述算法的常用方法有。第三章顺序程序设计一、选择题1.与十进制数97不等值的字符常量是A’A’B’\101’C’\X61’D’\141’2.在编写了一个C语言源程序C001C并正确执行之后,当前目录下哪个文件不存在2AC001CBC001OBJCC001DATDC001EXE3.以下选项中正确的整型常量是A5.B)10C)1000D)4/54.以下选项中正确的实型常量是A0B)31415C)003X102D)325.以下选项中不正确的实型常量是A)2670E1B)005E15C)7777D)456E26.以下选项中不合法的用户标识符是A)WB1B)FILEC)MAIND)PRINTF7.以下选项中不合法的用户标识符是A)_123B)PRINTFC)ASD)DIM8.C语言中运算对象必须是整型的运算符是A)B)/C)D)9.可在C程序中用作标识符的一组标识符是A)VOIDB)AS_B3C)FORD)2CDEFINE_123ABCDOWORDIFCASESIG10.若变量已正确定义并赋值,符合C语言语法的表达式是A)AA7B)A7BC,AC)INT1234D)AA7CB11.以下非法的赋值语句是ANI2,IBJCI1DXJ012.设A和B均为DOUBLE型变量,且A55、B25,则表达式INTAB/B的值是A6500000B6C5500000D600000013.已有定义INTX3,Y4,Z5,则表达式XYZ1B)DC)CBD)DC22B20.以下选项中不是C语句的是A){INTIIPRINTF“D\N”,I}B)C)A5,C10D){}21.以下合法的C语言赋值语句是A)AB58B)KINTABC)A58,B58D)I22.以下程序的输出结果是INTMAIN{INTX10,Y3PRINTF“D\N”,YX/YRETURE0}A)0B)1C)3D)不确定的值23.C语言中的简单数据类型有A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型24.C语言中,字符(CHAR)型数据在微机内存中的存储形式是A)反码B)补码C)EBCDIC码D)ASCII码25.设有语句CHARA‘\172’,则变量AA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法26.C语言中不合法的字符常量是A)’\XFF’B)’\65’C)’C)SCNAF“DDD”,D)SCANF“DDD”,29.若变量已正确说明为FLOAT类型,要通过以下赋值语句给A赋予10、B赋予22、C赋予33,以下不正确的输入形式是SCANF“FFF”,A)10B)100,220,330C)100D)102222220330333330.已知I、J、K为INT型变量,若从键盘输入1,2,3<回车>,使I的值为1、J的值为2、K的值为3,以下选项中正确的输入语句是ASCANF“2D2D2D“,BSCANF“DDD“,CSCANF“D,D,D“,DSCANF“ID,JD,KD“,31.若有以下程序INTMAIN{INTK2,I2,MMKIKPRINTF“D,D\N“,M,I4RETURE0}执行后的输出结果是A8,6B8,3C6,4D7,432.若变量已正确定义,要将A和B中的数进行交换,下面不正确的语句是A)AAB,BAB,AABB)TAABBTC)ATTBBAD)TBBAAT33.有以下程序INTMAIN{INTI10,J1PRINTF“D,D\N“,I,JRETURE0}执行后输出结果是A9,2B10,2C9,1D10,134.若变量已正确定义,以下程序段的输出结果是X516894PRINTF“F\N”,INTX100005/FLOAT1000A)输出格式说明与输出项不匹配,输出无定值B)517000C)5168000D)516900035.若有以下程序段,C3中的值是INTC11,C22,C3C3C1/C2A)0B)1/2C)05D)136.若有以下程序段,其输出结果是INTA0,B0,C0CAA5,AB,B3PRINTF“D,D,D\N”,A,B,CA)0,0,10B)0,0,5C)10,3,10D)3,3,1037.当运行以下程序时,在键盘上从第一列开始,输入9876543210此处表示ENTER,则程序的输出结果是INTMAIN{INTAFLOATB,CSCANF“2D3F4F”,PRINTF“\NAD,BF,CF\N”,A,B,CRETURN0}A)A98,B765,C4321B)A10,B432,C8765C)A98,B765000000,C4321000000D)A98,B7650,C4321038.以下程序的输出结果是INTMAIN{INTA2,B5PRINTF“AD,BD\N”,A,BRETURE05}A)A2,B5B)A2,B5C)AD,BDD)AD,BD39.若INT类型占两个字节,则以下程序段的输出是INTA1PRINTF“D,U\N”,A,AA)1,1B)1,32767C)1,32768D)1,6553540.以下程序段的输出是INTX496PRINTF“06D\N”,XA)496B)496C)000496D)输出格式不合法41.以下程序段的输出是FLOATA31415PRINTF“|60F|\N”,AA)|31415|B)|30|C)|3|D)|3|42.以下程序段的输出是PRINTF“|105F|\N”,12345678A)|234567800|B)|123456780|C)|1234567800|D)|12345678|43.若从终端输入以下数据,要给变量C赋以28319,则正确的输入语句是A)SCANFF”,CB)SCANF84F”,C)SCANF62F”,D)SCANF8F”,44.若变量已正确说明,要求用以下语句给A赋予312、给B赋予90,则正确的输入形式是SCANF“AF,BF”,A)31290B)A312B9C)A312,B90D)A312,B945.以下程序的输出结果是INCLUDE“MATHH”INTMAIN{DOUBLEA30,B2PRINTF“30F30F\N”,POWB,FABSA,POWFABSA,BRETURN0}A)98B)89C)66D)以上三个都不对46.以下程序的输出结果是INTMAIN{CHARC1‘A’,C2‘Y’PRINTF“D,D\N”,C1,C2RETURN0}A)因输出格式不合法,无正确输出B)65,90C)A,YD)65,89647.以下程序段的输出结果是INTMAIN{CHARX‘A’XX’A’FLAOTADOUBLEXSCANF“DFLF”,PRINTF“KD,AF,XF\N”,K,A,X19.以下程序段的输出结果是。8INTX0177PRINTF“X3D,X6D,X6O,X6X,X6U\N”,X,X,X,X,X20.以下程序段的输出结果是。DOUBLEA513789215PRINTF“A86F,A82F,A148F,A148LF\N”,A,A,A,A21.若要通过以下语句给A、B、C、D分别输入字符A、B、C、D,给W、X、Y、Z分别输入10、20、30、40,正确的输入形式是。请用代表ENTER键。SCANF“DCDCDCDC”,22.若有以下说明和输入语句,要求给C1、C2输入字符A和B,给A1、A2输入729和101298,从键盘正确输入数据的形式是。CHARC1,C2FLOATA1,A2SCANF“FF”,SCANF“CC”,23.若有以下说明和输入语句,要求给C1、C2、C3输入字符A、B和C,请写出从键盘正确输入数据的形式是。CHARC1,C2,C3SCANF“4C”,SCANF“4C”,SCANF“4C”,24.下列程序的输出结果是1600,请填空。INTMAIN(){INTA9,B2FLOATX,Y11,ZZA/2BX/Y1/2PRINTF(“52F\N“,Z)RETURN0}第四章选择结构程序设计一、选择题1.下面的程序片断所表示的数学函数关系是Y1IFX0Y1IFX0Y1ELSEY01X00X00X00X02.运行以下程序后,输出的结果是9INTMAIN{INTK3IFKBCPRINTF“D\N“,DELSEIFC1D1PRINTF“D\N“,D1ELSEPRINTF“D\N“,D2RETURN0}执行后输出结果是A2B3C编译时出错D45.有以下程序INTMAIN(){INTI1,J1,K2IF((J||K)RETURN010}执行后输出结果是A)1,1,2B)2,2,1C)2,2,2D)2,2,36.有如下程序INTMAIN(){FLOATX20,YIF(X’A’ELSEPRINTF“D\N”,ACBAACCB4.若变量已正确定义,以下语句段的输出结果是。X0Y2Z3SWITCHX{CASE0SWITCHY2{CASE1PRINTF“”BREAKCASE2PRINTF“”BREAK}CASE1SWITCHZ{CASE1PRINTF“”CASE2PRINTF“”BREAKDEFAULTPRINTF“”}}5以下程序的输出结果是。INTMAIN(){INTX100,A10,B20,OK15,OK20IF(A50)PRINTF(“D“,A)IF(A40)PRINTF(“D“,A)IF(A30)PRINTF(“D“,A)RETURN0}7.以下程序的执行结果是。INTMAIN(){INTK8SWITCH(K){CASE9K1CASE10K1CASE11K1BREAKDEFAULTK1}PRINTF(“D\N“,K)RETURN0}8.阅读下面程序,程序执行后的输出结果是。INCLUDE“STDIOH“INTMAIN(){INTX,Y,ZX1Y2Z3IF(XY)IF(XZ)PRINTF(“D“,X)ELSEPRINTF(“D“,Y)PRINTF(“D\N“,Z)RETURN0}9.C语言中用表示逻辑真,用表示逻辑假。10.根据C语言运算符的优先顺序和结合性,按从先到后的顺序写出以下表达式中,运算符“”、“”、“”、“则表达式的值为。12.将下列数学式改写成C语言的关系表达式或逻辑表达式是A)B)。A)AB或A413.请写出与以下表达式等价的表达式是AB。A)X0B)0第五章循环结构程序设计一、选择题1以下程序段的输出结果是。INTN10WHILEN7{NPRITNF“D”,N}A)1098B)987C)10987D)98762下面程序的输出结果是。INCLUDEINTMAIN(){INTY10DO{Y}WHILE(Y)PRINTF(“D\N“,Y)RETURN0}A)1B)1C)8D)03以下程序段的输出结果是。INTX3DO{PRINTF“3D”,X2}WHILEXA)1B)30C)12D)死循环4下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。INCLUDEINTMAIN(){14INTI0,J,KDO{IK31613I}WHILE(______)JK/11PRINTF(“31613D11D“,I,J)RETURN0}A)K/11B)K11C)K/110D)K1105以下不是死循环的语句是。A)FORXIB)WHILE1{X}C)FORI10ISUMID)FORCGETCHAR‘\N’PRINTF“C”,C6以下程序的输出结果是。INTMAIN{INTI,SUMFORI1IINTMAIN{INTIFORI1I’}PUTCHAR‘’RETURN0}A)B)D)0YIFY30{PRITNF“D”,YCONTINUE}RETURN0}A)741B)852C)963D)87542115在下述程序中,判断IJ共执行了次。INCLUDEINTMAIN{INTI0,J10,K2,S0FOR{IKIFIJ{PRINTF“D\N”,SBREAK}SI}RETURN017}A)4B)7C)6D)816以下叙述正确的是。A)DOWHILE语句构成的循环不能用其它语句构成的循环来代替。B)DOWHILE语句构成的循环只能用BREAK语句退出。C)用DOWHILE构成循环时,只有在WHILE后的表达式为非零时结束循环。D)用DOWHILE构成循环时,只有在WHILE后的表达式为零时结束循环。二、填空题1.以下程序段的输出结果是。INTK,N,MN10M1K1WHILEKAMAXAMAXXIFAMINX18SCANF“F”,}PRINTF“\NAMAXF\NAMINGF\N”,AMAX,AMINRETURN0}6.以下程序段的输出结果是。INTI0,SUM1DO{SUMI}WHILEIBBIWHILEACJDOKWHILEADPRINTF“ID,JD,KD\N”,I,J,KRETURN0}9.有以下程序段S10FORK1K代表ENTRE键。ABCDEF则程序的输出结果是INCLUDEDEFINEN6INTMAIN{CHARCNINTI0FORI0I’0’INTB34{{2,3,1,4},{5,1,3,6},{1,5,2,3}}INTI,J,C34FORI0IINTMAIN{CHARX80,Y40INTA,H0PRINTF“PLEASEINPUTXSTRING“GETSXPRINTF“PLEASEINPUTYSTRING“GETSYWHILEXH’\0’WHILEYA’\0’XHYAPRINTF“OUTPUTXSTRING“PUTSXRETURN0}第七章用函数实现模块化程序设计一、选择题1.以下语法中正确的是A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在MAIN函数中定义C)C语言程序总是从MAIN开始执行D)C语言程序中的MAIN函数必须放在程序的开始部分2.以下函数的类型是25FFFFLOATX{PRINTF“D\N”,X}A)与参数X的类型相同B)VOID类型C)INT类型D)无法确定3.以下函数调用语句中,含有的实参个数是FUNCEXP1,EXP2,EXP3,EXP4,EXP5A)1B)2C)4D)54.以下程序的输出结果是FUNCINTA,INTB{INTCCABRETURNC}INTMAIN{INTX6,Y7,Z8,RRFUNCX,Y,XY,ZPRINTF“D\N”,RRETURN0}A)11B)20C)21D)315.以下程序的输出结果是INTMAIN{INTI2,PPFI,I1PRINTF“D”,PRETURN0}INTFINTA,INTB{INTCCAIFABC1ELSEIFABC0ELSEC1RETURNC}A)1B)0C)1D)26.以下程序的输出结果是FUNINTA,INTB,INTC{CAB}VOIDMAIN{INTCFUN2,3,CPRINTF“D\N”,C26}A)0B)1C)6D)无定义7.以下程序的输出结果是DOUBLEFINTN{INTIDOUBLESS10FORI1I2RETURNFIBN1FIBN2ELSERETURN2}VOIDMAIN{PRINTF“DLD”,FIB6}A)8B)30C)16D)210.以下程序的输出结果是VOIDMAIN{INTI1,J3PRINTF“D,”,I{INTI0IJ2PRINTF“D,D,”,I,J}PRITNF“D,D\N”,I,J}A)1,7,3,2,3B)2,7,3,2,3C)1,6,3,2,3D)2,6,3,2,311.以下程序的输出结果是VOIDMAIN27{INTK4,M1,PPFUNCK,MPRINTF“D,”,PPFUNCK,MPRINTF“D\N”,P}FUNCINTA,INTB{STATICINTM,I2IM1MIABRETURNM}A)8,17B)8,16C)8,20D)8,812.以下程序的输出结果是INTM13INTFUN2INTX,INTY{INTM3RETURNXYM}VOIDMAIN{INTA7,B5PRINTF“D\N”,FUN2A,B/M}A)1B)2C)3D)413.有以下程序FLOATFUN(INTX,INTY){RETURN(XY)}VOIDMAIN(){INTA2,B5,C8PRINTF(“30F\N“,FUN((INT)FUN(AC,B),AC))}程序运行后的输出结果是A)编译出错B)9C)21D)9014.下列程序的运行结果是VOIDFUN(INTA,INTB){INTKKAABBK}VOIDMAIN(){INTA3,B6,XFUN(X,Y)28PRINTF(“DD“,A,B)}A)63B)36C)编译出错D)0015.以下正确的函数形式是A)DOUBLEFUNINTX,Y{DOUBLEZZXYRETURNZ}B)DOUBLEFUNINTX,Y{INTZZXYRETURNDOUBLEZ}C)DOUBLEFUNINTX,INTY{RETURNXY}D)DOUBLEFUNX,Y{INTX,YDOUBLEZZXYRETURNZ}16.对于建立函数的目的,正确的说法是A)提高程序的执行效率B)提高程序的可读性C)减少程序的篇幅D)减少程序文件所占的内存17.以下正确的说法是A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套18.C语言关于实参和形参说法正确的是A)在值传递时实参和与之对应的形参各占用独立的存储单元B)在值传递时实参和与之对应的形参占用同一存储单元C)只有当实参与形参同名时,才共占用同一存储单元D)形参是虚拟的,不占用存储单元19.下列说法正确的是A)在利用返回值方式传递数据时,可以省略数据类型说明符B)在函数间通过全局变量的传递数据,只能用外部变量,不能用内部变量C)利用地址返回值方式传递数据时,返回值可以赋予普通变量D)利用全局变量传递数据,可以简化程序,提倡使用20.以下正确的说法是A)定义函数时,形参的类型说明可以在函数体内B)RETURN后面的表达式不能是函数C)如果函数值的类型与返回值的类型不一致,以函数值类型为准D)如果形参与实参的类型不一致,以实参类型为准21.下列叙述中不正确的是A)C程序的MAIN函数可以没有参数B)C程序的MAIN函数可以有参数C)C程序的MAIN函数若有参数时,第一个参数的值最少是1D)MAIN函数的第一个参数必须是整数,其名字必须是ARGC第二个参数可以定义成CHARARGV,名字必须是ARGV。22.以下程序的输出结果是FINTB,INTN{INTI,R129FORI0IEPSN{STTNT/2N1}RETURN20}5.以下函数用以求X的Y次方。请填空。DOUBLEFUNDOUBLE,XDOUBLEY{INTIDOUBLEZ10FORI1IIZRETURNZ}6.以下程序的功能是计算。请填空。LONGFINTN{INTILONGSSFORI1I10{UUNT/10UUNT10}ELSEUUNT}VOIDMAIN{INTI,N,AA10{0}SCANF“DDD”,FORI1ISKRETURN}13以下程序的输出结果是。INCLUDE“STRINGH”INCLUDE“CTYPEH”VOIDFUNCHARSTR{INTI,JFORI0,J0STRIIIFISALPHASTRISTRJSTRISTRJ‘\0’}VOIDMAIN{CHARSS80“ITIS”FUNSS33PRINTF“S\N”,SS}14以下FUN函数的功能是将一个字符串的内容逆置。请填空。INCLUDE“STRINGH”VOIDFUNCHARSTR{INTI,J,KFORI0,JI,则输出结果是INCLUDECHARFUNCHARC{IFC‘A’C‘A’‘A’RETURNC}VOIDMAIN{CHARS8,PSGETSSWHILEP{PFUNPPUTCAHRPP}PUTCHAR‘\N’}A)OPENTHEDOORB)OPENTHEDOORC)OPENTHEDOORD)OPENTHEDOOR33.以下程序的输出结果是INCLUDEINCLUDEVOIDFUNCHARW,INTM{CHARS,P1,P2P1WP2WM1WHILEP1‘\0’PUTCHAR‘\N’}7以下程序的输出结果是。INCLUDE“STDIOH”VOIDFUNCHARA1,CHARA2,INTN{INTKFORK0K0I,IPRINTF“C”,PIPRINTF“\N”}9当运行以下程序时从键盘输入字符串QWERTY和ABCD,则程序的输出结果是。INCLUDE“STRINGH”43INCLUDE“STDIOH”STRLECHARA,CHARB{INTNUM0,N0WHILEANUM‘\0’NUMWHILEBN{ANUMBNNUMN}RETURNNUM}VOIDMAIN{CHARSTR181,STR281,P1STR1,P2STR2GETSP1GETSP2PRINTF“D\N”,STRLEP1,P2}10以下程序段的输出结果是。CHARS20“GOODDOG”,SPSSPSP2SP“TO”PUTSS11.假定以下程序经编译和链接后生成可执行文件PROGEXE,如果在DOS提示符下键入PROGABCDEFGHIJKL此处代表ENTER键则输出结果为。VOIDMAIN{WHILEARGC0PRINTF“S”,ARGVARGCPRINTF“\N”}12.以下程序的输出结果是。FUNINTN,INTS{INTF1,F2IFN1||N2S1ELSE{FUNN1,FUNN2,SF1F2}}VOIDMAIN{INTXFUN6,PRINTF“D\N”,X44}13.以下程序调用INVERT函数按逆序重新放置A数组中元素的值,A数组中的值在VOIDMAIN函数中读入。请填空。DEFINEN10VOIDINVERTINTS,INTI,INTJ{INTTIFINUMB)PNUMC)PNUMD)STU3AGE3以下程序的输出结果是。VOIDMAIN{STRUCTCMPLX{INTXINTY}CNUM2{1,3,2,7}PRINTF“D\N”,CNUM0Y/CNUM0XCNUM1X}A)0B)1C)3D)64根据以下定义,能输出字母M的语句是。STRUCTPERSON{CHARNAME9INTAGE}STRUCTPERSONCLASS4{{“JOHN”,17},{“PAUL”,19},{“MARY”,18},{“ADAM”,16}}48A)PRINTF“C\N”,CLASS3NAMEB)PRINTF“C\N”,CLASS3NAME1C)PRINTF“C\N”,CLASS2NAME1D)PRINTF“C\N”,CLASS2NAME05设有以下语句STRUCTST{INTNSTRUCTSTNEXT}STRUCTSTA3{5,P则值为6的表达式是。A)PNB)PNC)PND)PN6若有以下说明语句,则值为6的表达式是。同上STRUCTST{INTNSTRUCTSTNEXT}STRUCTSTA3,PA0N5A0NEXTA1N7A1NEXTA2N9A2NEXT‘\0’PA)PNB)PNC)PND)PN7以下程序的输出结果是。STRUCTST{INTXINTY}PINTDT4{10,20,30,40}STRUCTSTAA4{50,VOIDMAIN{PAAPRITNF“D\N”,PXPRITNF“D\N”,PXPRITNF“D\N”,PY}A)10B)50C)51D)6020606070202111318以下程序运行后的输出结果是。STRUCTSTU{CHARNAME10INTNUM49INTSCORE}VOIDMAIN{STRUCTSTUS5{{“YANGSAN”,20041,703},{“LISIGUO”,20042,580},{“WANGYIN”,20043,680},{“SUNDAN”,20044,550},{“PENGHUA”,20045,537}},P5,TINTI,JFORI0ISCOREPJSCORE{TPIPIPJPJT}PRINTF“DD\N”,S1SCORE,P1SCORE}A)550580B)680680C)580550D)5806809若已建立下面的链表结构,指针P、S分别指向图中所示结点,则不能将S所指的结点插入到链表末尾的语句组是。EF\0GHEADDATANEXTPSA)SNEXTNULLPPNEXTPNEXTSB)PPNEXTSNEXTPNEXTPNEXTSC)PPNEXTSNEXTPPNEXTSD)PPNEXTSNEXTPNEXTPNEXTS10以下程序运行后的输出结果是。STRUCTSTU{CHARNAME10INTNUM}VOIDF1STRUCTSTUC{STRUCTSTUB{“LISIGUO”,2042}CB}VOIDF2STRUCTSTUC{STRUCTSTUB{“SUNDAN”,2044}CB}VOIDMAIN{STRUCTSTUA{“YANGSAN”,2041},B{“WANGYIN”,2043}F1AF2PRINTF“DD\N”,ANUM,BNUM}50A)20412044B)20412043C)20422044D)2042204311以下程序运行后的输出结果是。INCLUDESTRUCTNODE{INTNUMSTRUCTNODENEXT}VOIDMAIN{STRUCTNODEP,Q,RINTSUM0PSTRUCTNODEMALLOCSIZEOFSTRUCTNODEQSTRUCTNODEMALLOCSIZEOFSTRUCTNODERSTRUCTNODEMALLOCSIZEOFSTRUCTNODEPNUM1QNUM2RNUM3PNEXTQQNEXTRRNEXTNULLSUMQNEXTNUMSUMPNUMPRINTF“D\N”,SUM}A)3B)4C)5D)612以下程序的功能是建立一个带头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中。请从与下划线处号码对应的一组选项中选择出正确的选项。INCLUDESTRUCTNODE{CHARDATASTRUCTNODENEXT}(1)CREATLISTCHARS{STRUCTNODEH,P,QHSTRUCTNODEMALLOCSIZEOFSTRUCTNODEPQHWHILES‘\0’{PSTRUCTNODEMALLOCSIZEOFSTRUCTNODEPDATA(2)QNEXTPQ(3)S}PNEXT‘\0’RETURNH}VOIDMAIN{CHARSTR“LINKLIST”STRUCTNODEHEADHEADCREATLISTSTR}(1)A)CHARB)STRUCTNODEC)STRUCTNODED)CHAR51(2)A)SB)SC)SD)S(3)A)PNEXTB)PC)SD)SNEXT13以下程序的输出结果是。TYPEDEFUNION{LONGIINTK5CHARC}DATESTRUCTDATE{INTCATDATECOWDOUBLEDOG}TOODATEMAXVOIDMAIN{PRINTF“D\N”,SIZEOFSTRUCTDATESIZEOFMAX}A)25B)30C)18D)814已知字符0的ASCII码值的十进制数是48,且数组的第0个元素在低位,以下程序的输出结果是。VOIDMAIN{UNION{INTI2LONGKCHARC4}R,SSI00X39SI10X38PRINTF“X\N”,SC0}A)39B)9C)38D)8二、填空题1.为了建立如图所示的存储结构,请填空。STRUCTNODEDATALINK{CHARDATA}NODE2.以下程序的运行结果是。INCLUDETYPEDEFSTRUCTSTUDENT{CHARNAME10LONGSNO52FLOATSCORE}STUVOIDMAIN{STUA{“ZHANGSAN”,2001,95},B{“SHANGXIAN”,2002,90},C{“ANHUA”,2003,95},DA,PIFSTRCMPANAME,BNAME0DBIFSTRCMPCNAME,BNAME0DCPRINTF“LDS\N”,DSNO,PNAME}3阅读下列程序,则程序的输出结果为。INCLUDE“STDIOH“STRUCTTY{INTDATACHARC}VOIDMAIN(){STRUCTTYA{30,′X′}FUN(A)PRINTF(“DC“,ADATA,AC)}FUN(STRUCTTYB){BDATA20BC′Y′}4.以下程序段执行后的输出结果是。TYPEDEFUNIONUTYPE{INTACHARCH2}UTTYPEDEFSTRUCTSTYPE{INTACHARCH2UTS}STSTBTBTA66BTSA5BTSCH0‘A’PRINTF“CD\N”,BTA,BTSA5.以下函数CREAT用来建立一个带头结点的单向链表,新产生的结点总是插在链表的末尾,单向链表的头指针作为函数值返回。请填空。INCLUDE“STDIOH”53STRUCTLIST{CHARDATASTRUCTLISTNEXT}STRUCTLISTCREAT{STRUCTLISTH,P,QCHARCHHMALLOCSIZEOFPQHCHGETCHARWHILECH‘’{PMALLOCSIZEOFPDATACHQNEXTPQPCHGETCHAR}PNEXT‘\0’}6.以下VOIDMAIN函数的功能是查找带有头结点的单向链表中,结点数据域的最小值作为函数值返回。请填空。STRUCTNODE{INTDATASTRUCTNODENEXT}INTMINSTRUCTNODEFIRST{STRUCTNODEPINTMPFIRSTNEXTMPDATAFORPPNEXTP‘\0’PIFMPDATARETURNM}第十章对文件的输入输出一、选择题1.若FP是指向某文件的指针,且已读到文件末尾,则库函数FEOFFP的返回值是A)EOFB)1C)非零值D)NULL542.以下程序运行后的输出结果是INCLUDEVOIDMAIN{FILEFPINTI,K0,N0FPFOPEN“D1DAT”,“W”FORI1IVOIDMAIN{FILEFPINTI,A4{1,2,3,4},BFPFOPEN“DATADAT”,“WB”FORI0IVOIDMAIN{FILEFP1FP1FOPEN“F1TXT”,“W”FPRINTFFP1,“ABC”FCLOSEFP1}若文本文件F1TXT中原有内容为GOOD,则运行以上程序后文件F1TXT中的内容为A)GOODABCB)ABCDC)ABCD)ABCGOOD5.库函数FGETSP1,1,P2的功能是A)从P1指向的文件中读一个字符串,存入P2指向的内存B)从P2指向的文件中读一个字符串,存入P1指向的内存C)从P2指向的内存中读一个字符串,存入P1指向的文件D)从P1指向的内存中读一个字符串,存入P2指向的文件二、填空题551.由“FILEFP”定义的标识符FP是一个,其中“FILE”是在头文件中定义。2.在对文件进行的操作过程中,若要求文件的位置回到文件的开头,应当调用的函数是。3.若希望文件指针直接指向文件尾部,应当使用的函数调用格式是。4.以下C程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令中给出。请填空。INCLUDEVOIDMAININTARGC,CHARARGV{FILEF1,F2CHARCHIFARGCVOIDMAIN{FILEFPCHARCH,FNAME10PRINTF“ENTERTHENAMEOFFILE\N”GETSFNAMEIFFPNULL{PRINTF“OPENERROR\N”EXIT0}PRINTF“ENTERDATAWHILECHGETCHAR‘’FPUTC,FPFCLOSEFP}6.以下程序用来统计文件中字符的个数。请填空。INCLUDEVOIDMAIN{FILEFP56LONGNUM0IFFPFOPEN“FNAMEDAT”,NULL{PRINTF“OPENERROR\N”EXIT0}WHILE{NUM}PRINTF“NUMD\N”,NUMFCLOSEFP}7.以下程序编译、链接后生成可执行文件CPYEXE。假定磁盘当前目录下有三个文本文件,其文件名和内容分别为文件名内容AAAAABBBBBCCCCC当在DOS当前目录下键入CPYABC,则程序输出。INCLUDEVOIDFCFILEVOIDMAININTARGC,CHARARGV{FILEFPINTI1WHILEARGC0{FPFOPENARGVI,“R”FCFPFCLOSEFP}}VOIDFCFILEIFP{CHARCWHILECGETCHAR‘’PUTCHARC32}第二部分深入学好C程序设计第十一章编译预处理一、选择题571.以下对宏替换的叙述不正确的是A)宏替换只是字符的替换B)宏替换不占运行时间C)宏名无类型,其参数也无类型D)带参的宏替换在替换时,先求出实参表达式的值,然后代入形参运算求值2.宏定义DEFINEPI314中的宏名PI代替A)一个单精度实数B)一个双精度实数C)一个字符串D)不确定类型的数3.有以下宏定义DEFINEK2DEFINEXKK1K当C程序中的语句Y2KX5被执行后,A)Y中的值不确定B)Y中的值为65C)语句报错D)Y中的值为344.以下程序的输出结果是DEFINEMINX,YXB}A)0B)1C)2D)34.设有定义语句CHARC192,C292,则以下表达式中值为零的是A.C1C2BC1TABABWHILETA||TBTPRINTF“TD\N”,T}2.以下程序的运行结果是。INCLUDEVOIDMAIN{DOUBLEX12345478XX10005/100PRINTF“XF\N”,X}3.以下程序的运行结果是。INCLUDEVOIDMAIN{INTA123,B456,O,P,Q,X,Y,ZLONGVIOA/100PA/1010QA10XB10YB/100ZB100/10VIP100000LX10000LQ1000Z100O10YPRINTF“VILD\N”,VI}4.在执行以下程序时,当输入111回车后,程序的输出结果是。INCLUDEVOIDMAIN{CHARCHINTD0WHILE(CHGETCHAR)‘\N’DD8CH–48PRINTF“D\N”,D61}5.当以下程序执行时,从键盘上输入字符串ABC1D2E4F5G6H9L,程序的运行结果是。INCLUDEVOIDMAIN{CHARSTR20LONGI0,VL0PRINTF“STR“GETSSTRWHILESTRI‘\0’{IFSTRI’0’IJ0STATICCHART””WHILESI‘\0’{IFSICHTJSIELSEI}TJ0RETURNT}VOIDMAIN{PRINTF“S\N”,DELECHAR“AREYOUATEACHER”,‘A’}7.以下函数FUN的功能是,程序的运行结果是。INCLUDEINTFUNCHARS,CHART{WHILEST62}RETURNST}VOIDMAIN{CHARSTR3{“THIS”,“THAT”,“THE”},SS10INTIFORI0I0STRCPYSS,STRIPUTSSS}8.以下程序的运行结果是。INCLUDECHARFUNCHARS,CHARCH{CHARPSWHILEPPWHILEPCHPP10RETURNS}VOIDMAIN{PRINTF“S\N”,FUN“THISISADISTIONARY”,‘I’}9.以下程序的运行结果是。INCLUDEVOIDMAIN{CHARS20“14321645216431”INTI0,P7{0}WHILESIPSI–‘0’FORI0IVOIDFUNCHARS{INTI,J,NFORI0SI'\0'IIFSI'0'JSJ1SJSJ1''II1}}VOIDMAIN{CHARS80“BA3A54CD23A“FUNSPUTSS}12.以下程序的运行结果是。INCLUDECHARFUNCHARCH{IFCH'0'WHILES'\0'{IFS''FLAG1}IFS''FLAG0S}RETURNN}VOIDMAIN{CHARSTR81“IAMASTUDENT”INTNNFUNSTRPRINTF“\NND\N“,N}14.给定程序中,函数FUN的功能是根据形参I的值返回某个函数的值。当调用正确时,程序输出X15000000,X23000000,X1X1X1X240000000。请填空。INCLUDEDOUBLEF1DOUBLEX{RETURNXX}DOUBLEF2DOUBLEX,DOUBLEY{RETURNXY}FUNINTI,DOUBLEX,DOUBLEY{IFI1RETURNX65ELSERETURNX,Y}VOIDMAIN{DOUBLEX15,X23,RRFUN1,X1,X2RFUN2,X1,X2PRINTF“\NX1F,X2F,”,X1,X2PRINTF“X1X1X1X2F\N\N“,R}15.以下程序的运行结果是。INCLUDEUPFSTCHARP{INTK0FORPPIFK{IFP''K0}ELSEIFP''{K1PTOUPPERP}}VOIDMAIN{CHARSTR81“IAMASTUDENT”UPFSTSTRPUTSSTR}16.以下程序的运行结果是。INCLUDEVOIDFUNCHARS,CHART{INTI,SLSLSTRLENSFORI0IINTFUNCHARSTR10,INTM,CHARPT{INTK,Q,IFORK0KLONGFUNINTG{SWITCHG{CASE0RETURN0CASE1CASE2RETURN1}RETURNFUNG1FUNG2}VOIDMAIN{LONGFIBFIBFUN7PRINTF“FIBLD\N“,FIB}19.以下程序的运行结果是。INCLUDEINTFUNINTM{INTI,KFORIM1I67{FORK2KIRETURNI}}VOIDMAIN{PRINTF“D\N“,FUN15}20.以下程序的运行结果是。INCLUDEVOIDFUNCHARP,CHARB{INTI,K0WHILEP{I1WHILEIINTFUNINTX,INTY{INTI,T1FORI1IYITTXTT10068RETURNT}VOIDMAIN{PRINTF“D\N\N”,FUN4,5}

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值