资源预览内容
第1页 / 共155页
第2页 / 共155页
第3页 / 共155页
第4页 / 共155页
第5页 / 共155页
第6页 / 共155页
第7页 / 共155页
第8页 / 共155页
第9页 / 共155页
第10页 / 共155页
亲,该文档总共155页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1江苏省计算机等级考试江苏省计算机等级考试二级二级C语言语言笔试辅导笔试辅导稍仆拄瓢同茨览蓉滋扶涡捌嫡亩壬陷题是澈斜萌门淖冷帖丁吹痊虐狡苛平江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导2笔试概况笔试概况考试时间:考试时间:2小时小时合格、优秀成绩要求合格、优秀成绩要求内容题型及分值内容题型及分值信息技术信息技术选择题(选择题(20分)分)C语言语言选择题(选择题(10分)分)填空题(填空题(30分):简单填空(分):简单填空(5分)分)阅读程序(阅读程序(13分)分)完善程序(完善程序(12分)分)答题策略答题策略教算食匿盛晾败釉惦妮魂奈秤喻杖袭冶堡凿惭率姜匣呆弘贺仰霸粘拳甲细江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导3语法考试要求及考题解析语法考试要求及考题解析(2007秋秋2010春)春)1.C语言基本概念语言基本概念源程序格式、风格和结构。源程序格式、风格和结构。main函数特性。函数特性。C程序保存程序保存。注释位置。注释位置。【考题解析考题解析】填空题填空题在一个在一个C语言源程序中,语言源程序中,必不可少的是必不可少的是。答案:答案: main main函数定义函数定义单选题单选题.以下叙述中正确的是以下叙述中正确的是。A在编译时可以发现注释中的拼写错误在编译时可以发现注释中的拼写错误BC语言程序的每一行只能写一条语句语言程序的每一行只能写一条语句Cmain()必须位于程序的开始必须位于程序的开始DC语言程序可以由一个或多个函数组成语言程序可以由一个或多个函数组成答案:答案:D D辜吗丘扇威佛寥添笼僧洞贱断炽戴阁施蚁泄既碉茵贪匆渺丝哲常孜拴矽柬江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导4单选题单选题在一个源程序中在一个源程序中main函数的位置函数的位置。A必须在最开始必须在最开始B必须在最后必须在最后C必须在预处理命令的后面必须在预处理命令的后面D可以在其他函数之前或之后可以在其他函数之前或之后答案:答案:D单选题单选题下列叙述中正确的是下列叙述中正确的是。A.main函数必须出现在其他函数之前函数必须出现在其他函数之前B.main函数中至少必须有一条语句函数中至少必须有一条语句C.C程序总是从程序总是从main函数的第一条语句开始执行函数的第一条语句开始执行D.C程序总是在执行完程序总是在执行完main函数的最后一条语句后结束函数的最后一条语句后结束答案:答案:C 暇仿糯氨硕翱咎哈恐附阁眨榜募谴食膜睬足缀幸摄设恃会瞬廷泅景解算峭江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导5单选题单选题以下叙述中正确的是以下叙述中正确的是。A.C语言系统以函数为单位编译源程序语言系统以函数为单位编译源程序B.main函数必须放在程序开始函数必须放在程序开始C.用户定义的函数可以被一个或多个函数调用任意多次用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数在一个函数体内可以定义另外一个函数答案:答案:C全国选择题全国选择题以下叙述中正确的是以下叙述中正确的是()()。A)C语言程序将从源程序中第一个函数开始执行语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行序将从此开始执行C)C语言规定必须用语言规定必须用main作为主函数名,程序将从此开始作为主函数名,程序将从此开始执行,在此结束执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主可作为用户标识符,用以命名任意一个函数作为主函数函数答案:答案:C旗锌理稗区免狗抗服棒奈滦廉表炕签瞻淀至赐摔庆孽虱惟尼蒜支郊雍纬壕江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导6全国选择题全国选择题以下叙述中正确的是以下叙述中正确的是()。A)C程序中的注释只能出现在程序的开始位置和语句的后程序中的注释只能出现在程序的开始位置和语句的后面。面。B)C程序书写格式严格,要求一行内只能写一个语句程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上程序书写格式自由,一个语句可以写在多行上D)用用C语言编写的程序只能放在一个程序文件中语言编写的程序只能放在一个程序文件中答案:答案:C全国选择题全国选择题以下叙述中正确的是以下叙述中正确的是()。A)C程序的基本组成单位是语句程序的基本组成单位是语句B)C程序中的每一行只能写一条语句程序中的每一行只能写一条语句C)简单简单C语句必须以分号结束语句必须以分号结束D)C语句必须在一行内写完语句必须在一行内写完答案:答案:C狡唯匙硷佑竿脏籽脉步析慷法棉嘛宋虾芦簇辈线习梦哆剂向碟湃霸印齿咖江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导7基本类型数据的表示及使用基本类型数据的表示及使用系统预定义类型标识符、类型修饰符的使用系统预定义类型标识符、类型修饰符的使用基本类型常量的表示及使用基本类型常量的表示及使用字符串常量形式字符串常量形式 关键字。关键字。标识符。标识符。符号常量的定义与使用符号常量的定义与使用基本类型变量的声明、初始化基本类型变量的声明、初始化,直接引用变量直接引用变量【考题解析考题解析】单单选选题题在在C语语言言源源程程序序中中,不不带带任任何何修修饰饰符符的的浮浮点点数数直直接接量量(例如:(例如:3.14)都是按)都是按类型数据存储的。类型数据存储的。答案:答案:double单单选选题题已已知知sizeof(int)的的值值为为2,为为将将10!的的值值存存储储到到变变量量f中中(10!=3628800),变量),变量f的类型应声明为的类型应声明为。AlongintBintCshortintDunsignedint答案:答案:A A彦僳阁荔因莫炊弯灶精憋斤挺醋踏钞诲艰显律征盎辽奸邪春还薄狂赢勿奉江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导8单选题单选题以下常量表示中正确的是以下常量表示中正确的是(22)。A.xff B.5L C.aEbD.3.14U答案:答案:B B单选题单选题以下语句中有语法错误的是以下语句中有语法错误的是。A.printf(%d,0e);B.printf(%f,0e2);C.printf(%d,0x2);D.printf(%s,0x2);答案:答案:A A夏信札悦诀帆薛澜卫斡枕遥丝均示狮捅摩撒翌规阅谗独霖可曹欲年素赛胎江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导9单选题单选题以下选项中不能用作变量名的是以下选项中不能用作变量名的是。A_floatBswitchCsumD_123答案:答案: B B填填空空题题在在C语语言言系系统统中中,如如果果一一个个变变量量能能正正确确存存储储的的数数据据范范围围为为整整数数-32768 32767,则则该该变变量量在在内内存存中中占占(3)个个字字节。节。答案:答案: 2 2单选题单选题以下选项中,不能用作标识符的是以下选项中,不能用作标识符的是。A.print B.FORC.&aD._00答案:答案:C单选题单选题以下选项中,以下选项中,是是C语言关键字。语言关键字。AprintfBincludeCfunDdefault答案:答案:D学校单选题学校单选题执行语句执行语句“printf(”byebye101101“);”时输出到时输出到屏幕的结果为屏幕的结果为(22)。答案:答案:byye101A公具坡孙蛮徊酝珠叮魔苑蔼挥棚富负彬蝶判惟哉脂姐播痒霖螺怠澈竣叙瘸江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导10学校单选题学校单选题表达式表达式“1e-8/2+1.0f”值的数据类型是值的数据类型是(3)。A.intB.longC.floatD.double答案:答案:D学校单选题学校单选题以下局部变量声明中正确的是以下局部变量声明中正确的是(2)。A.intchar=2;B.voida=0;C.inta=b=0;D.inta,b=a=0;答案:答案:D廷钉峻馆呵堵霍巫孟敖掩信瞳一电害臻坷泞损穗溅瞄痛撵趴丫经搁挤代男江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导11运算符和表达式的表示及使用运算符和表达式的表示及使用赋值表达式,赋值运算符的左值要求赋值表达式,赋值运算符的左值要求算术表达式。算术表达式。+、-运算符左值要求。溢出。运算符左值要求。溢出。关系表达式与逻辑表达式,逻辑表达式优化处理关系表达式与逻辑表达式,逻辑表达式优化处理逗号表达式逗号表达式条件表达式条件表达式表达式运算中操作数类型自动转换与强制转换表达式运算中操作数类型自动转换与强制转换【考题解析考题解析】单单选选题题若若有有声声明明“doublex=3,c,*a=&x,*b=&c;”,则则下下列列语语句中错误的是句中错误的是 。 Aa=b=0;Ba=&c,b=a;C&a=&b;D*b=*a;答案:答案:C C氮姥萌蓖习去绘喳哭慰根杠拦搓烫替伙耘镜泰夕裴探姨依烟烦淮雨撤环瘟江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导12单选题单选题若有声明若有声明“charss8=”Red“;”,则,则sizeof(ss)的值是的值是。A8B4C3D1答案答案:A单选题单选题设有定义和声明如下:设有定义和声明如下:#defined2intx=5;floaty=3.83;charc=d;以下表达式中有语法错误的是以下表达式中有语法错误的是。A.x+B.y+C.c+D.d+答案:答案: D D单选题单选题数学式数学式在在C程序中正确的表示形式为程序中正确的表示形式为。Asqrt(a)/2*bBsqrt(a)/2/bCsqrt(a)/2bDsqrta/(2*b)答案答案:B榴问蜒劝者暖酪垣擂悦裙譬陪米赐嫌徊桂徘闪袜难尸下引演寂筒坚迎挨蓖江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导13单选题单选题已知有声明已知有声明“longx,y;”且且x中整数的十进制表示有中整数的十进制表示有n位位数字(数字(4n10),若要求去掉整数),若要求去掉整数x十进制表示中的最高十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到位,用剩下的数字组成一个新的整数并保存到y中,则以下中,则以下表达式中能正确实现这一功能的是表达式中能正确实现这一功能的是。A.y=x/(10*(n-1)B.y=x%(10*(n-1)C.y=x%(long)pow(10,n-1)D.y=x%(10 (n-1)答案:答案:C填空题填空题若有声明若有声明“doublex=10,y=5;”,则计算,则计算xy的库函数调用的库函数调用形式是形式是。答案:答案:pow(x,y)或或pow(10,5)填空题填空题若有声明若有声明“intx;”且且sizeof(x)的值为的值为2,则当,则当x值为值为时时“x+1x”为假。为假。答案:答案:32767摇业户渠白渗庭寥援汰砂个娄硼男尖丧奢鹤察里孺戊凉雇阁荐雁销味腻醚江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导14填空题填空题若有声明若有声明“floaty=3.14619;intx;”,则计算表达式,则计算表达式“x=y*100+0.5,y=x/100.0”后后y的值是的值是。答案:答案: 3.15 3.15 单选题单选题已知有声明已知有声明“inta=3,b=4,c;”,则执行语句,则执行语句“c=1/2*(a+b);”后,后,c的值为的值为。A.0B.3C.3.5D.4 答案:答案:A填空题填空题若有声明若有声明“inta=5,b=2;”,则表达式,则表达式“b+=(float)(a+b)/2”运算后运算后b的值为的值为。答案:答案:5填空题填空题已知有声明已知有声明“charch=g;”,则表达式,则表达式ch=ch-a+A的值为字符的值为字符的编码。的编码。答案:答案:G 葫会侩独馋碗磐掇然牵皇句给医叙秽姜渺蔫姨剪星伐毒蝎确堤鬼谱锰震牡江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导15单选题单选题已有声明已有声明“inta=3,b=3,c=2;”,以下选项中值为,以下选项中值为0的表达的表达式是式是。A.!a&!b&cB.!a|!b|cC.a=b&b=cD.a=b&bc答案答案:A单选题单选题已知有声明已知有声明“inta=3,b=4,c=5;”,以下表达式中值为,以下表达式中值为0的的是是。A.a&bB.ay=2 .zyx.xy=1.x=(x=0,y=1,z=2)答案:答案:A搔滤卓雕拉膛塞虐卧你攻朋亦锅黄磐举檄卿继骤玄勿汾本四巾渍闹蔷吹疲江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导16填空题填空题数学式数学式对应的对应的C语言表达式为语言表达式为。答案:答案:sqrt(fabs(x)!=4*a/(b*c)或或sqrt(fabs(x)!=4*a/b/c单选题单选题已知有声明已知有声明“inta=12,b=15,c;”,则执行表达式,则执行表达式“c=(a|(b-=a)”后,变量后,变量b和和c的值分别为的值分别为。A3.1B15,12C15,1D3,12答案答案:C短路短路填空题填空题数学式数学式所对应的所对应的C语言表达式为语言表达式为pow(x,)。答案:答案:1.0/3填空题填空题若有声明若有声明“inta=15,b=20,c=25,e;”,则执行语句,则执行语句“e=ab?-c:+c;”后变量后变量e的值是的值是。答案:答案:26榷埃菲匹攻屯乖矗蜜欲贪嫡瘸娶怠芥逢恳邪凛屋到残军抡盐节际刺魁显缘江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导17单单选选题题以以下下选选项项中中,不不能能表表示示函函数数功功能的表达式是能的表达式是。A.s=(x0)?1:(x0)?-1:0B.s=x0?1:0)C.s=x0?1:x=0?0:-1答案:答案: C C单选题单选题若有程序段若有程序段“charc=256;inta=c;”,则执行该程序,则执行该程序段后段后a的值是的值是。A.256B.65536C.0D.-1答案:答案: C C恕凰地妇贩甫帮矛演谱厄恐满谅嗡掖网圈个序疽吉拦梁只懂卓憋蠕撞娥佩江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导18填填空空题题设设有有声声明明“inta=3,b=4;floatx=4.5,y=3.5;”,则则表表达达式式“(float)(a+b)/2+(int)x%(int)y”的值是的值是。答案答案:4.53.5+4%3=4.5*填空题填空题若有声明若有声明“intr=2;”,则执行语句,则执行语句“printf(”%d“,sizeof(2*3.14*r);”时输出时输出。答案:答案:8单选题单选题已知有声明已知有声明“intn;floatx,y;”,则执行语句,则执行语句“y=n=x=3.89;”后,后,y的值为的值为。A.3B.3.0C.3.89D.4.0答案:答案:Bx=3.89,n=3,y=3.0单选题单选题已知有声明已知有声明“inta=3,b=4;”,下列表达式中合法的是,下列表达式中合法的是。A.a+b=7B.a=|b|C.a=b=0D.(a+)+答案:答案:C学校单选题学校单选题已知有声明已知有声明“inta=1,b=2;”,执行语句,执行语句“while(-a0&-b0)a=b;”后变量后变量a、b的值是的值是。A.0,2B.0,1C.1,1D.2,2答案:答案:A短路运算,短路运算,-b不执行不执行俊僵故憎锈篙萍冻暖肯间概娱廖攒萄子推绽币径技雌壕齐省隶吝销杆浊俺江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导192.语句语句实现顺序结构的语句实现顺序结构的语句 表达式语句,空语句,复合语句,函数调用语句表达式语句,空语句,复合语句,函数调用语句 标准输入输出库函数标准输入输出库函数printf(),scanf(),getchar(),putchar(),gets(),puts()【考题解析考题解析】单选题单选题已知已知int类型数据在内存中存储长度为类型数据在内存中存储长度为2个字节,以下个字节,以下语句中能正确输出整数语句中能正确输出整数32768的是的是。A.printf(%d,32768);B.printf(%ld,32768);C.printf(%f,32768);D.printf(%c,32768);答案:答案:B走漱崎撼打胆盔何铆窄咒缠郸三地砒弓既突完耐幼月厚隋竹尿构涉倚都惨江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导20学校单选题学校单选题已知某编译系统中已知某编译系统中sizeof(int)的值为的值为2,在该编译,在该编译系统中执行以下系统中执行以下(10)语句时输出结果不是语句时输出结果不是39999。A.printf(%u,39999);B.printf(%d,39999);C.printf(%ld,39999);D.printf(%lu,39999);答案:答案:B单选题单选题若有声明若有声明“floatf=123.45678;”,则执行语句,则执行语句“printf(”%.3f“,f);”后,输出结果是后,输出结果是。.1.23e+02.123.457.123.456780.1.234e+02答案:答案:B匠夜瑞偷慨认盐瓣乡黄舍谅豫晓婪榷烂轰蘑桂租侣规涟抬糖综虞蜗菊茬席江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导21单选题单选题已知有声明已知有声明“chars80;”,若需要将键盘输入的一,若需要将键盘输入的一个不含空格的字符串保存到个不含空格的字符串保存到s数组中,则下列语句中正确数组中,则下列语句中正确的是的是。A.scanf(%s,s);B.scanf(%s,s0);C.s=gets();D.s=getchar();答案:答案:A填空题填空题已知有声明和语句已知有声明和语句“inta;scanf(”a=%d“,&a);”,欲从,欲从键盘上输入数据使键盘上输入数据使a中的值为中的值为3,则正确的输入应是,则正确的输入应是。答案:答案:a=3单选题单选题若有声明若有声明“longa,b;”且变量且变量a和和b都需要通过键盘输入都需要通过键盘输入获得初值,则下列语句中正确的是获得初值,则下列语句中正确的是。A.scanf(%ld%ld,&a,&b);B.scanf(%d%d,a,b);C.scanf(%d%d,&a,&b);D.scanf(%ld%ld,&a,&b);答案:答案:D呐程讣婚乃栗辅幢熔宦牡圭泌铡梳隙站疡庶杖销栽哈菱坎帐率山独字胶搭江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导22实现选择结构的语句实现选择结构的语句:if-else,switch【考题解析考题解析】单选题单选题若在一个若在一个C语言源程序中语言源程序中“e1”和和“e3”是表达式,是表达式,“s;”是语句,则下列选项中与语句是语句,则下列选项中与语句“for(e1;e3)s;”功能等同的语功能等同的语句是句是。A.e1;while(10)s;e3;B.e1;while(10)s;e3;C.e1;while(10)e3;s;D.while(10)e1;s;e3;答案:答案:B单选题单选题已知有声明已知有声明“intx,y;”,若要求编写一段程序实现,若要求编写一段程序实现“当当x大于等于大于等于0时时y取值取值1,否则,否则y取值取值-1”,则以下程序段中错,则以下程序段中错误的是误的是。A.if(x=0)y=1;elsey=-1;B.y=x=0?1:-1;C.switch()D.switch(x-abs(x)casex=0:y=1;break;case0:y=1;break;default:y=-1;default:y=-1;答案:答案:C食瞩垢能笋浦尖奈饭赏屠涡艘叹拙惭穴窑币卢示乌咬咨邢扩奢忱了搞糯闪江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导23学校单选题学校单选题已知有声明已知有声明“inta=1,b=2,c=0;”,执行语句,执行语句“if(ab)c=a;a=b;b=c;”后变量后变量a、b的值是的值是(21)。答案:答案:2,0夕头型吝行猩骗少鸥眯札也籽秦兼铺嗜杨界闪茬画堰谓雄方汰领酚夯茵晶江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导24阅读程序阅读程序下列程序运行后的输出结果第一行是下列程序运行后的输出结果第一行是(1);第二;第二行是行是(2)。#includemain()inti,a=0,c=2;for(i=0;i2;i+)switch(+a,a*c)case1:printf(1);case2:printf(2);case3:printf(3n);break;default:printf(othern);答案答案:(1)23(2)other樟委柬宏犬涟随究霞吾坪斡祝伸妹么康废再阿九讨斯词辐米赤倪堑逗短环江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导25阅读程序阅读程序以下程序运行时输出结果为以下程序运行时输出结果为(6)#includevoidmain()inti,sum=0;for(i=0;i0;j-=2)k+;B.for(j=0;j15;j+=2)k+;.for(i=0;i0;i-=2)k+;答案答案:A学校单选题学校单选题以下语句中有语法错误的是以下语句中有语法错误的是。A.for(;);B.do;while(1);C.while();D.p:;gotop;答案:答案:C允勃磺购技痹软九裂箭掘蹦超角郁眷清况湖雏辅试祟都搪剖黎伐酷鞍差壳江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导27阅读程序阅读程序 以下程序运行时输出结果最后一行是以下程序运行时输出结果最后一行是 。 #includevoidmain()inta=1,b=1,i;for(i=1;i=2;i+)a=a+b;printf(%d/%d,b,a);b=a+b;printf(%d/%dn,a,b);printf(n);答案答案:3/5,5/8苑烛朗词缆位赶撕芝擞鉴宽怕呢左优谈伤医液弓饱蚌阳租福叼楚旬涧杂廖江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导28阅读程序阅读程序 以下程序运行时输出结果是以下程序运行时输出结果是。#includemain()ints=1,n=235;dos*=n%10;n/=10;while(n);printf(%dn,s);答案:答案:30旅曲腋擂肚槐粤熊能裙恬跪盾茹朱俱嗽擒紧版颊义坯诚姐苹粘乌典戏摄嗣江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导29跳转语句跳转语句:break,continue,return【考题解析考题解析】全国选择题全国选择题有以下程序有以下程序#include#includemain()intx=8;for(;x0;x-)if(x%3)printf(%d,x-);continue;printf(%d,-x);程序的运行结果是程序的运行结果是()。A)7,4,2,B)8,7,5,2,C)9,7,6,4,D)8,5,4,2,答案:答案:D藏寐尾慧锐寨把挤努竞骇蜗消内抽蹿酉竖厘摊励失黑融空萄角逮选庆酸酿江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导303.构造类型数据构造类型数据基本类型数组(一维,二维)基本类型数组(一维,二维)数组声明及初始化数组声明及初始化 数组存储结构数组存储结构使用数组名引用数组元素使用数组名引用数组元素【考题解析考题解析】单选题单选题以下声明中错误的是以下声明中错误的是。Ainta2;Binta=0,1;Cinta3=0;Dinta34=0;答案答案: : C C全国单选题全国单选题下列选项中,能正确定义数组的语句是()。下列选项中,能正确定义数组的语句是()。A)intnum0.2008;B)intnum;C)intN=2008;D)#defineN2008intnumN;intnumN;答案:答案:D慰貉衙徐康铱棱拱觉冈沧煌苦慈钓落理鉴僵韦王传抨黔稳陵曼媳察蛋蛊饰江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导31单选题单选题设有声明设有声明“intp10=1,2,i=0;”,以下语句中与,以下语句中与“pi=pi+1,i+;”等价的是等价的是。A.pi=pi+;B.p+i=pi;C.p+i=pi+1;D.i+,pi-1=pi;答案:答案:D D全国单选题全国单选题已知有声明已知有声明“intm=5,4,3,2,1,i=0;”,下列对,下列对m数组元素的引用中,正确的是数组元素的引用中,正确的是。A)m-iB)m2*2C)mm0D)mmi答案:答案:B萎再拷泻挡媳掳再逮叔箩荷碑佑仲狭管厩育翁缺驶汾腆右哺网唉油贫粱家江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导32填空题填空题若有声明若有声明“chars110=ABCDE,s210=A0;”,则语句,则语句“printf(%d,strlen(strcpy(s1,s2);”的输出结果是的输出结果是。答案:答案:3全国选择题全国选择题有以下程序有以下程序#includemain()inta5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0;for(i=0;i5;i+)s=s+abi;printf(%dn,s);程序运行后的输出结果是():程序运行后的输出结果是():A)6B)10C)11D)15答案:答案:C克疹行态共唇秉喝窿噬庞染燃牌酪笨椰渝鼠材轩罢袖摈腐鲜润嘴眼秆捉啼江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导33单选题单选题已知有声明已知有声明“chars20=”Hello“;”,在程序运行过程,在程序运行过程中,若要想使数组中,若要想使数组s中的内容修改为中的内容修改为“Good”,则以下语句,则以下语句中能够实现此功能的是中能够实现此功能的是。As=Good;Bs20=Good;Cstrcat(s,Good);Dstrcpy(s,Good);答案:答案:D D峨瘤惨驼曰蓉纽孽黑犯拓烃单应收课辜竣滑砚婪睦浩茧唇鼓堤子呈希赦勇江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导34单选题单选题已知有声明已知有声明“inta44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;”,若,若需要引用值为需要引用值为12的数组元素,则下列选项中错误的是的数组元素,则下列选项中错误的是。A*(a+2)+3B*(*(a+2)+3)C*(a2+3)Da23答案:答案:A迎痉饰犬瓮蚁趁湾酮彰饥介碱诊巾层警连报帝霜揉认娩胎挥窝斌县诊脐轩江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导35阅阅读读程程序序以以下下程程序序运运行行时时输输出出结结果果中中第第一一行行是是(1),第三行是第三行是(2)。#include#defineN5voidmain()staticcharaNN;inti,j,t,start=0,end=N-1;charstr=123,ch;for(t=0;t=N/2;t+)ch=strt;for(i=j=start;iend;i+)aij=ch;for(j=start;jstart;i-)aij=ch;for(j=end;jstart;j-)aij=ch;if(start=end)astartend=ch;start+,end-;生成矩阵:生成矩阵:1111112221123211222111111for(i=0;iN;i+)for(j=0;jN;j+)printf(%c,aij);printf(n);答案:答案:(1)11111(2)12321喇调折宿准说肋俄降导庞诛凑绞都蝉歼和局烯据剖杨矛莲牧市荔方忻桓尼江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导36阅阅读读程程序序以以下下程程序序运运行行时时输输出出结结果果的的第第一一行行是是(1),第三行是第三行是(2)。#includevoidmain()inti,j,a33;for(i=0;i3;i+)for(j=0;j3;j+)if(ij)aij=1;elseaij=i-j+1;for(i=0;i3;i+)for(j=0;j3;j+)printf(%4d,aij);printf(n);生成矩阵:生成矩阵:111211321答案答案:(1)111(2)321归枣泪妈沥蒸紫缀炒挨襄闺古沪稳蝎凋阀枣嚏舒咱朴舆家哗固匝奴芒科注江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导37结构类型变量与数组结构类型变量与数组定义结构类型定义结构类型 结构类型变量、数组声明及初始化结构类型变量、数组声明及初始化用变量名引用结构变量(结构数组元素)的全体成员用变量名引用结构变量(结构数组元素)的全体成员用变量名引用结构变量(结构数组元素)的基本类型成员用变量名引用结构变量(结构数组元素)的基本类型成员【考题解析考题解析】单选题单选题若有结构类型定义若有结构类型定义“typedefstructtestintx,y2;TEST;”,则以下声明中正确,则以下声明中正确的是的是(27)。Astructtestx;Bstructx;Ctestx;DstructTESTx;答案:答案:A诡瞳鉴纠霉郡雄广密畏典余粥澎光竟王跨想侥儿驱豺条雨盆社右乍递恐畴江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导38单选题单选题以下结构变量以下结构变量stu1的声明形式中,错误的是的声明形式中,错误的是。typedefstructstucharname10;floatscore;STU;STUstu1;#defineSTUstructstuSTUcharname10;floatscore;stu1;structstucharname10;floatscore;stu1;structstucharname10;floatscore;STU;STUstu1;答案:答案:D学校单选题学校单选题若有定义若有定义“structcdoublex,y;c1=1.2,1.3,c2=1.2,1.3,c3;structddoublex,y;d1=1.2,1.3,d2=1.2,1.3,d3;”,则以下表达式中正确的是则以下表达式中正确的是。A.c3=0B.c1=c2C.c3=c1D.d3=c1答案:答案:C原祸刮遭慌巢歹泉周蕴敦叁榜绣舍自异铲齐是绎赂殊昆陇绥受煽慕优瞬糙江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导39阅读程序阅读程序以下程序运行后的输出结果第一行是以下程序运行后的输出结果第一行是(1);第二;第二行是行是(2)。#includestructnumintx,y;st=1,10,2,20,3,30,4,40,-1,-1,s12,s22;main()inti=0,j=0,k;for(k=0;stk.x!=-1;k+)if(stk.x%2)s1i+=stk;elses2j+=stk;printf(%dn%dn,s10.y,s20.y);答案:答案:(1)10(2)20佬骄修疟淄抢疵娇络黑岸缘剁梁雍歪像爷惊胳男委苯樊种征允缺谦掸腹汇江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导404.指针类型数据指针类型数据基本类型变量的指针操作基本类型变量的指针操作基本类型变量地址的获取与保存。基本类型变量地址的获取与保存。指向基本类型变量的指针变量声明、初始化与赋值。指向基本类型变量的指针变量声明、初始化与赋值。引用指针变量指向的基本类型变量(使用运算符引用指针变量指向的基本类型变量(使用运算符*)【考题解析考题解析】填空题填空题若有声明若有声明char*p=%d,%dn;inta=1,b=2;则执行语句则执行语句“printf(p,a,b);”时输出时输出(4)。答案:答案:1,2全国选择题全国选择题若有定义语句:若有定义语句:doublex,y,*px,*py,执行了执行了px=&x,py=&y;之后,正确的输入语句是()。之后,正确的输入语句是()。A)scanf(”%f%f”,x,y);B)scanf(”%f%f”,&x,&y);C)scanf(”%lf%le”,px,py);D)scanf(”%lf%lf”,x,y);答案:答案:C析殴谋致磐葱妈夫平伎巾卫横聘织欠抚凯矽呻茸克姜添蘸镊蛀菌荡帮茹磕江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导41全国全国选择题选择题有以下程序有以下程序#includemain()intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%dn”,m,n,*p,*q);程序运行后的输出结果是程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2答案:答案:B芋慌茎蹿恃惕辆隘骤坚蛇汉耸籽针扶发扑锌馏鄂顾黑念格茵裤投娶锁沧梭江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导42全国选择题全国选择题有以下程序有以下程序#include#includeintfun(intn)int*p;p=(int*)malloc(sizeof(int);*p=n;return*p;main()inta;a=fun(10);printf(“%dn”,a+fun(10);程序的运行结果是()。程序的运行结果是()。A)0B)10C)20D)出错出错答案:答案:C检魄卧杰际沛李皑园涧樟奈嚎翼裳炎该邓鲍厕哦霹丁嘘字棒冠贮花瞪搜诅江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导43(2)基本类型数组的指针操作基本类型数组的指针操作基本类型数组元素地址的获取、保存与算术运算。基本类型数组元素地址的获取、保存与算术运算。 引用指针变量指向的基本类型数组元素引用指针变量指向的基本类型数组元素 二维数组行地址的获取、保存及算术运算。二维数组行地址的获取、保存及算术运算。行指针变量的声明、初始化。行指针变量的声明、初始化。引用行指针变量指向的基本类型数组元素引用行指针变量指向的基本类型数组元素【考题解析考题解析】单选题单选题设指针变量占设指针变量占2个字节的内存空间,若有声明个字节的内存空间,若有声明“char*p=”123“;intc;”,则执行语句,则执行语句“c=sizeof(p);”后,后,c的值的值为为。A.1B.2C.3D.4答案答案: B: B全国选择题全国选择题若有定义语句:若有定义语句:doublex5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用则错误引用x数组元素的是()。数组元素的是()。A)*pB)x5C)*(p+1)D)*x答案:答案:B塞磨酥膘翅陪兄脊抹肖涅劫蜡尔州症规酱描成瞥显哺躲误咱帖秽洒捎困阉江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导44单选题单选题若有声明若有声明“intx10=0,1,2,3,4,5,6,7,8,9,*p;”,则值不,则值不为为4的表达式是的表达式是。Ap=x,*(p+4)Bp=x+4,*p+Cp=x+3,*(p+)Dp=x+3,*+p答案答案: C: C单选题单选题已知有程序段已知有程序段 “charstr10=Aoyun,Beijing,*p=&str00;printf(%sn,p+10);”, 则执行则执行printf语句后输出为语句后输出为 。ABeijingBAoyunCingDng答案答案: A: A陀莽公乡酌戮峨虐咨俯屠己罗钦嫡跋纠杏为罗嘲删命念客批益推复蓉诺壬江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导45单选题单选题已知有声明已知有声明“inti,a10,*p=a;”,现需要将,现需要将1 10保存到保存到a0 a9中,以下程序段中不能实现这一功能的是中,以下程序段中不能实现这一功能的是。A.for(i=0;i10;i+)ai=i+1;B.for(i=0;i10;i+)pi=i+1;C.i=1;while(pa+10)*p+=i+;D.i=1;while(pa+10)*a+=i+;答案:答案:D填空题填空题已知有声明已知有声明“inta32=1,2,3,4,5,6,*p=a0;”,则执行语句,则执行语句“printf(”%dn“,*(p+4);”后的输出结果为后的输出结果为。答案:答案:5单选题单选题若有声明若有声明“inta34,*p=a0,(*q)4=a;”,则下列叙述,则下列叙述中错误的是中错误的是。.a23与与q23等价等价 .a23与与p23等价等价.a23与与*(p+11)等价等价.a23与与p=p+11,*p等价等价答案:答案:B君疹座眶籽子烃舷佃掇哀熔惹贾皿大懦招扁哑厕挚桶硕阔麻秉兰揪钢祟揩江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导46单选题单选题已知有声明已知有声明“int a33=0,*p1=a1,(*p2)3=a;”,以以下下表表达达式式中中与与“a11=1”不等价的表达式是不等价的表达式是。A.*(p1+1)=1B.p111=1C.*(*(p2+1)+1)=1D.p211=1答案:答案:B B填填空空题题若若有有声声明明“chars10=”remind“;”,执执行行“puts(s+2);”后的输出结果是后的输出结果是。答案答案:mind单选题单选题已知有声明:已知有声明:“chara=Itismine,*p=Itismine;”,下列叙述中错误的是下列叙述中错误的是。A.strcpy(a,“yes”)和和strcpy(p,“yes”)都是正确的都是正确的B.a=“yes”和和p=“yes”都是正确的都是正确的C.*a等于等于*pD.sizeof(a)不等于不等于sizeof(p)答案:答案:B B连毙不率澡锹醇邮泰蹬亮阎陷点煤谈厚盂当董散一咖阀陵沿恕栓惶颓佃州江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导47全国完善程序全国完善程序以下程序的功能是:借助指针变量找出数组以下程序的功能是:借助指针变量找出数组元素中的最大值所在数组元素的下标值。元素中的最大值所在数组元素的下标值。#includemain()inta10,*p,*s;for(p=a;p-a10;p+)scanf(“%d”,p);for(p=a,s=a;p-a*s)s=_;printf(“index=%dn”,s-a);答案:答案:p崩掣抗荚寓颓迷枫搂衡拉乒俄洁凌尊泊攻佐什陆枢汉擎唬支霉滚晤匙攒嘲江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导48(3)结构类型变量、数组的指针操作结构类型变量、数组的指针操作结构变量地址、结构数组元素地址的获取与保存。结构变量地址、结构数组元素地址的获取与保存。指向结构变量指针变量的声明、初始化与赋值。指向结构变量指针变量的声明、初始化与赋值。引用指针指向的结构类型变量(结构类型数组元素)的基引用指针指向的结构类型变量(结构类型数组元素)的基本类型成员本类型成员结构变量成员的地址、结构数组元素成员的地址获取与保结构变量成员的地址、结构数组元素成员的地址获取与保存。存。指向结构变量成员的指针变量声明、初始化与赋值。指向结构变量成员的指针变量声明、初始化与赋值。【考题解析考题解析】梆净画萄咯公迈尊官咳削漓拙化要猴感嗜越廉际似矮馏巡娇贯惊猎见艺始江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导49单选题单选题已知有结构定义和变量声明如下:已知有结构定义和变量声明如下:structstudentcharname20;intscore;structstudent*h;stu,*p;int*q;以下选项中错误的是以下选项中错误的是。Ap=&stu;Bq=&stu.score;Cscanf(%s%d,&stu);Dstu.h=p;答案答案: : C C 衅扎棺著陡绰埂向悠歼矽且嫡置姿荤夏芹赶晒盖二恰沂紊菜哈朋信嗅荣锗江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导50阅阅读读程程序序以以下下程程序序运运行行时时输输出出结结果果的的第第一一行行是是(1),第第二行是二行是(2)#includestructsintx,*y;*p;intd5=10,20,30,40,50;structsa5=100,&d0,200,&d1,300,&d2,400,&d3,500,&d4;voidmain()p=a;printf(%5d,p-x+);printf(%5dn,p-x);printf(%5d,*p-y);printf(%5dn,*+p-y);答案答案:(1)100101(2)1020 致邱怜逝围亮县窄逃侵鲤年砚蓄塌售孟钡窿摆吾吮懦扯拎爪懊韩译板攫隧江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导51单选题单选题设有结构定义及变量声明如下:设有结构定义及变量声明如下:structproductcharcode5;floatprice;y4=100,100;以下表达式中错误的是以下表达式中错误的是。A.(*y).code0=2;B.y0.code0=2;C.y-price=10;D.(*y)-price=10;答案:答案: D D 李一棋蹄琵袖独馆茸竣渍全锅据趾瑚最武巾殊趾泞圃盅颇甸锣杨歌槽晶凸江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导52(4)指针类型数组的声明和使用指针类型数组的声明和使用【考题解析考题解析】全国单选题全国单选题有以下程序有以下程序#includemain()char*a=abcd,ef,gh,ijk;inti;for(i=0;i4;i+)printf(%c,*ai);程序运行后输出的结果是程序运行后输出的结果是A)aegiB)dfhkC)abcdD)abcdefghijk答案:答案:A全国单选题全国单选题若有定义语句:若有定义语句:inta410,*p,*q4;且且0=i4,则错误的赋值是()。则错误的赋值是()。A)p=aB)q=ac)q0=aD)p=&a21答案:答案:B挑突茄茧葬层藏裴纂迟迪戮兵闹违锦呕坚羞栅怖谊痊羡该梢篆炊寥馆版瘪江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导53全国填空题全国填空题有以下程序有以下程序#includemain()inta=1,2,3,4,5,6,*k3,i=0;while(i3)ki=&a2*i;printf(%d,*ki);i+;程序运行后的输出的结果是程序运行后的输出的结果是_答案:答案:135警堕获泳鹰彭舌索遏酒漓云定号澜笨虎劳帧铰每渗冉晴涂矛枯琳归鹊认淤江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导545.函数函数函数定义、函数声明、函数调用函数定义、函数声明、函数调用(2)函数调用时函数调用时基本类型基本类型实参的传递与使用。实参与形参的实参的传递与使用。实参与形参的类型兼容性要求。实参类型的自动转换类型兼容性要求。实参类型的自动转换【考题解析考题解析】单选题单选题以下函数定义中正确的是以下函数定义中正确的是(25)。A.doublefun(doublex,doubley)B.doublefun(doublex;doubley)C.doublefun(doublex,doubley);D.doublefun(doublex,y) 答案:答案:A A按内捍织掐渊二向眯嫂婿辙乞贡阔牺粒郧淆靡纠破吐慷租桐央汐厚逼株退江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导55单选题单选题以下选项均为以下选项均为fun函数定义的头部,其中错误的是函数定义的头部,其中错误的是。A.intfun(intx,inty)B.intfun(intx,intyx)C.intfun(intx,inty3)D.intfun(intx,int*y)答案:答案:B学校单选题学校单选题已知函数已知函数fun定义的头部为定义的头部为“voidfun(intx,inty)”,以下,以下fun函数声明中正确的是函数声明中正确的是。A.voidfun(intx,inty);B.voidfun(intx,int*y);C.voidfun(int,int);D.voidfun(int,int*);答案:答案:C单选题单选题若有声明若有声明“longfun(int*x,intn,long*s);inta4=1,2,3,4;longb,c;”,则以下函数调用形式中正确的是则以下函数调用形式中正确的是。A.c=fun(a,4,b);B.c=fun(a,4,&b);C.c=fun(a4,4,b);D.c=fun(a,4,&b);答案:答案:D滚僧撑诚艾屯皆源谩愤具递闺跌诈谱仟俄谈蒂矢插部武诊喳签持巍约汞器江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导56单选题单选题若函数调用时的实参为变量,则以下关于函数形参若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是和实参的叙述中正确的是。A.实参和其对应的形参占用同一存储单元实参和其对应的形参占用同一存储单元B.形参不占用存储单元形参不占用存储单元C.同名的实参和形参占用同一存储单元同名的实参和形参占用同一存储单元D.形参和实参占用不同的存储单元形参和实参占用不同的存储单元答案:答案:D全国选择题全国选择题函数调用语句函数调用语句func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8);中中func函数的实函数的实参个数是()。参个数是()。A)3B)4C)5D)8答案:答案:A漂臃开枚邑艾侨趋比砖坟淄百蹭金鞠水饿烈斤结场雏至例侯短忘赌戈遍英江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导57阅读程序阅读程序以下程序运行时输出结果是以下程序运行时输出结果是。#includevoidfunc(intb)inta;a=b;b=10;voidmain()inta=10,b=20;func(b);printf(%d,%d,a,b);答案答案:10,20剐了哼孟朝拖命捆射宦怯蕉坎挺荚献熄现难宠拈廷谈鲁职独糜菱返波杖酚江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导58阅读程序阅读程序以下程序运行时输出到屏幕的结果是以下程序运行时输出到屏幕的结果是。#includevoidswap(inta,intb)intt;if(ab)t=a,a=b,b=t;voidmain()intx=13,y=11,z=12;if(xy)swap(x,y);if(xz)swap(x,z);if(yz)swap(y,z);printf(%dt%dt%dn,x,y,z);答案:答案:8131112颈糖否奴捎鸯芯漠逃串克彻扫烤漫雪浅稍痞砖趣塌塑域条九讥调呈维露奢江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导59阅读程序阅读程序 以下程序运行时输出结果是以下程序运行时输出结果是 。#includeintf(intx,inty)returnx+y;voidmain()doublea=5.5,b=2.5;printf(%d,f(a,b);答案:答案: 7 7惕冠墅寝拧穆彤洽芬日墒弦插芦惑膳喀锅篮锋笺呀抨儿诣赠扫赘帚弃奈具江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导60阅读程序阅读程序 以下程序运行后的输出结果是以下程序运行后的输出结果是。#includeintfun(intw1,intw2)returnw2-w1;main()intw=1,k;k=fun(fun(w+1,w),w);printf(%dn,k);答案:答案:2凯轴愚洒津壶任盎埔河轴尉昌肘谭癸奖耘形贝叠辱学氏袒魁割题巨肾迢俯江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导61全国选择题全国选择题有以下程序有以下程序#includevoidfun(inta,intb)intt;t=a;a=b;b=t;main()intc10=1,2,3,4,5,6,7,8,9,0,i;for(i=0;i10;i+=2)fun(ci,ci+1);for(i=0;i10;i+)printf(“%d,”,ci);printf(“n”);程序的运行结果是()程序的运行结果是()A)1,2,3,4,5,6,7,8,9,0,B)2,1,4,3,6,5,8,7,0,9,C)0,9,8,7,6,5,4,3,2,1,D)0,1,2,3,4,5,6,7,8,9,答案:答案:A热巧期篓楼葵场摸教浊夜妊碌隘耶姆涎登玫诈芯谋羚让奋品躁孤效至蔷咐江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导62(3)函数调用时结构函数调用时结构类型类型实参的传递与使用实参的传递与使用阅读程序阅读程序以下程序运行时输出到屏幕的结果第一行是以下程序运行时输出到屏幕的结果第一行是(1),第二行是,第二行是(2)。#includetypedefstructintx,y;direction;intvisible(directions,directionA,directionB,directionC)directionp1,p2;intd;p1.x=B.x-A.x;p1.y=B.y-A.y;p2.x=C.x-A.x;p2.y=C.y-A.y;d=s.x*p1.x*p2.x+s.y*p1.y*p2.y;printf(%4dn,d);returnd0;voidmain()char*ss=invisible,visible;directions=1,1,T=1,1,A=0,0,B=2,1;puts(ssvisible(s,T,A,B);答案:答案:(1)-1(2)invisible暖吨咬墨碰扔紊充绒状坪肌宏乔鹤男潮珊铅墨刺獭躲饶追网健魏寻花毛寅江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导63(4)函数调用时指针函数调用时指针类型类型实参的传递与使用实参的传递与使用【考题解析考题解析】单单选选题题若若需需要要通通过过调调用用f函函数数得得到到一一个个数数的的平平方方值值,以以下下f函函数定义中不能实现该功能的是数定义中不能实现该功能的是。A.voidf(double*a)*a=(*a)*(*a);B.voidf(doublea,double*b)*b=a*a;C.voidf(doublea,doubleb)b=a*a;D.doublef(doublea)returna*a;答案:答案: C C揩磷许翟凋唱凭颜返痢炎定缆寥紊散如圈孩潜闯贤赞萄藉庸损搭章匪句香江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导64全国选择题全国选择题有以下程序有以下程序#includevoidfun(int*a,int*b)int*c;c=a;a=b;b=c;main()()intx=3,y=5,*P=&x,*q=&y;fun(p,q);printf(”%d,%d,”,*p,*q);fun(&x,&y);printf(”%d,%dn”,*p,*q);程序运行后的输出结果是程序运行后的输出结果是A)3,5,5,3B)3,5,3,5C)5,3,3,5D)5,3,5,3、答案:答案:B龚渺剃化筛愚镶剁慎常琶借申戴熏衅括癸饿性伶壬炙备飞惺设夫五恩誓佳江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导65阅读程序阅读程序 以下程序运行时输出结果是以下程序运行时输出结果是 。#includevoidchange(intx,inty,int*z)intt;t=x;x=y;y=*z;*z=t;voidmain()intx=18,y=27,z=63;change(x,y,&z);printf(x=%d,y=%d,z=%dn,x,y,z);答案:答案: x=18, y=27, z=18 x=18, y=27, z=18挛广吕清从请王谐婉腿悸无月成汪缨莲姿缚橡穴姜杜雕整奉甚珐藤歇函椎江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导66全国选择题全国选择题有以下程序有以下程序#includevoidfun(inta,intn)inti,t;for(i=0;in/2;i+)t=ai;ai=an-1-i;an-1-i=t;main()intk10=1,2,3,4,5,6,7,8,9,10,i;fun(k,5);for(i=2;i8;i+)printf(“%d”,ki);printf(“n”);程序的运行结果是程序的运行结果是A)345678B)876543C)1098765D)321678答案:答案:D室拒钥灼掺欠班醚苟年苔酪泽乌尼轻倡凛跋召卒午贱播醇遥蚀馁达踏泼用江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导67阅阅读读程程序序以以下下程程序序运运行行时时输输出出结结果果中中第第一一行行是是(1),第第二行是二行是(2)#includevoidfun(intx,intp,int*n)inti,j=0;for(i=1;i=x/2;i+)if(x%i=0)pj+=i;*n=j;voidmain()intx,a10,n,i;fun(27,a,&n);/*调调用用fun函函数数将将27的的所所有有因因子子保保存存到到a数数组组,因因子子个个数数保存到保存到n*/for(i=0;in;i+)printf(%5d,ai);printf(n%5d,n);答案答案:(1)1 3 9 (2) 3(1)1 3 9 (2) 3减恩桂面减喧贿耕秀亩姓濒秋挪昔壁遗氯携泻犀顽勒忌辱柜疫歧夜计季着江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导68阅阅读读程程序序以以下下程程序序运运行行时时输输出出结结果果中中第第一一行行是是(1),第二行是第二行是(2)#includeintfun(char*a,char*b)intm=0,n=0;while(*(a+m)!=0)m+;while(bn)*(a+m)=bn;m+;n+;*(a+m)=0;returnm;voidmain()chars120=yes,s25=no;printf(%dn,fun(s1,s2);puts(s1);答案:答案:(1) 5 (2) yesno (1) 5 (2) yesno 也出鸽掇远菱泻盲奴啤时统砚朴亚滞稻哟缕割茸州格肇渭也忘吴卖逞冠邢江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导69阅读程序阅读程序以下程序运行时输出到屏幕的结果第一行是以下程序运行时输出到屏幕的结果第一行是(1),第二行是,第二行是(2)。#includevoidfun(char*p1,char*p2);voidmain()inti;chara=54321;puts(a+2);fun(a,a+4);puts(a);voidfun(char*p1,char*p2)chart;while(p1p2)t=*p1;*p1=*p2;*p2=t;p1+=2,p2-=2;答案:答案:(1)321(2)14325蝴判炕骗渔卡釜贮晰斡抨捅撇巫尖渠翁抗既赶玩弧轻寐元图鸦治鼓执凝谐江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导70完完善善程程序序以以下下程程序序的的功功能能是是:求求a数数组组中中前前4个个元元素素之之和和及及后后6个元素之和。个元素之和。#includeintfsum(int*array,intn)inti,s=0;for(i=0;(1);i+)s+=arrayi;return(s);voidmain(void)inta15=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;intsumh,sumt;sumh=fsum(a,4);sumt=(2);printf(“%d%dn”,sumh,sumt);答案答案:(1)in(2)fsum(&a9,6)或或fsum(a+9,6)杜肩蹄事魏须娩求糖实旨锻悯冰隆昼冤页惧纱僚胖掳孜熄毛假跪桂喉隋隅江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导71(5)函数返回值的产生函数返回值的产生【考题解析考题解析】填填空空题题已已知知有有函函数数定定义义“intfun()return(3,4);”,则则调调用用fun后的函数返回值是后的函数返回值是(1)。答案答案:4全国选择题全国选择题以下叙述中错误的是()。以下叙述中错误的是()。A)用户定义的函数中可以没有用户定义的函数中可以没有return语句语句B)用户定义的函数中可以有多个用户定义的函数中可以有多个return语句,以便可以调语句,以便可以调用一次返回多个函数值用一次返回多个函数值C)用户定义的函数中若没有用户定义的函数中若没有return语句,则应当定义函数语句,则应当定义函数为为void类型类型D)函数的函数的return语句中可以没有表达式语句中可以没有表达式答案:答案:B户遗遗狞翁险巫袄匝蹬鸟量妖盅马匿碾浩毁善蒲今嗅崔痒员俏故稍鹏窿您江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导72全国选择题全国选择题以下关于以下关于return语句的叙述中正确的是()。语句的叙述中正确的是()。A)一个自定义函数中必须有一条)一个自定义函数中必须有一条return语句语句B)一个自定义函数中可以根据不同的情况设置多条)一个自定义函数中可以根据不同的情况设置多条return语句语句C)定义成)定义成void类型的函数中可以有带返回值的类型的函数中可以有带返回值的return语句语句D)没有没有return语句的自定义函数在执行结束语句时不能返语句的自定义函数在执行结束语句时不能返回到调用处回到调用处答案:答案:B咋丙稼苯益妖闹寞揖嗽粤担蓬午茶子芭澡莎蕉于硷使乍迸艾见必裕牢鸦躬江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导73(6)全局变量、局部变量与形式参数的作用域全局变量、局部变量与形式参数的作用域【考题解析考题解析】阅读程序阅读程序以下程序运行时输出结果是以下程序运行时输出结果是。#includeintt;intsub(int*s)*s+=1;t+=*s;returnt;main()inti;for(i=1;i4;i+)printf(%4d,sub(&i);答案:答案:26胃脂涉你炙始苯炯逾踢婉害嚼掩婉口镜睬豁澜涌凋肩欺尸钱浦决镑尉吁脂江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导74(7)局部变量、形式参数的存储类型和生存期局部变量、形式参数的存储类型和生存期【考题解析考题解析】单选题单选题已知在函数已知在函数f中声明了局部变量中声明了局部变量x,如果希望,如果希望f函数第函数第一次被调用返回后变量一次被调用返回后变量x中存储的数据保持到下次中存储的数据保持到下次f函数被函数被调用时仍可以使用,则在声明调用时仍可以使用,则在声明x时必须指定其存储类型为时必须指定其存储类型为(30)。A.autoB.registerC.staticD.extern答案:答案:C填空题填空题声明局部变量时若缺省存储类别,该变量的存储类声明局部变量时若缺省存储类别,该变量的存储类别是别是。答案:答案:auto填空题填空题可以改变局部变量的生存期、但不能改变它的作用可以改变局部变量的生存期、但不能改变它的作用域的存储类别是域的存储类别是。答案:答案:static播疹国癌呵先棠钨蔚折悍彪爷滥鲍傈荆泄墟夸聪爷嚣粉侗培挚秧赚吱袍卑江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导75阅阅读读程程序序以以下下程程序序运运行行时时输输出出结结果果的的第第一一行行是是(1),第第二二行是行是(2)。#includeintf1()staticinti=0,f=1;returnf*=+i;intf2()inti=0,f=1;returnf*=+i;voidmain()printf(%dn,f1()+f1();printf(%dn,f2()+f2();答案答案:(1)3 (2)2 绊册葡悉训拈觉镑株蛤棋挨服横谓废裸蝶友策啃焰楔联触磋辣腔希闹供阂江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导76阅读程序阅读程序以下程序运行时输出到屏幕的结果第一行是以下程序运行时输出到屏幕的结果第一行是(1),第二行是,第二行是(2),第三行是,第三行是(3)。#includeintg(intx,inty)returnx+y;intf(intx,inty)staticintx=2;if(y2)x=x*x;y=xelsey=x+1;returnx+y;voidmain()inta=3;printf(%dn,g(a,2);printf(%dn,f(a,3);printf(%dn,f(a,2);答案:答案:(1)5(2)7(3)8薄嫁庭笔驮莽踊釜漂棋啡澈瘩恶拔两咕隧侮睛班彬萄姥衅皑囊桔榨鹏硬粮江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导776.函数高级应用函数高级应用(1)递递归函数执行过程归函数执行过程【考题解析考题解析】阅读程序阅读程序以下程序运行时输出结果是以下程序运行时输出结果是(8)。#includevoidf(longx)if(x100)printf(%d,x/10);elsef(x/100);printf(%d,x%100/10);main()f(123456);答案:答案:135幢兄瞧介行托看瀑罗壁铝箱枝愉固讽宏我孙匀哺弧叙逛馒恋淀祥揩扔嫩睦江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导78阅读程序阅读程序以下程序运行后的输出结果第一行是以下程序运行后的输出结果第一行是(13)。#includevoidprint(intn);voidprint_n(intn);main()print(4);voidprint(intn)if(n=0)return;print_n(n);if(n0)print(n-1);voidprint_n(intn)if(n=0)return;printf(%d,n);if(n1)print_n(n-1);elseprintf(n);答案:答案:4321仅黑楼咱哇诺查袁寻咕丙耸坐地概运往唆芹荷膘醚褐僳肝塘敬济轨韧钥缆江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导79阅读程序阅读程序以下程序运行时输出结果是以下程序运行时输出结果是.#include#includevoidsf(char*s1,char*s2)if(*s1=*s2)sf(s1+1,s2+1);voidmain()chara20=ABC,b20=xyz;sf(a+strlen(a),b);puts(a);答案答案:ABCxyz 酞铆尝糯皂坏茂飞恍挎酥骋删赎半你垃邪仓挪窒琳冤莹刹非者水包瞄剧斧江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导80阅读程序阅读程序以下程序运行时输出结果是以下程序运行时输出结果是.#include#includeintcount(chars)inti=0;if(si=0)return0;while(isalpha(si)i+;while(!isalpha(si)&si!=0)i+;return1+count(&si);/*递归调用递归调用*/voidmain()charline=oneworld,onedream.;printf(%d,count(line);答案:答案: 4 4 回忻舰句殖喜笛仍磷俄泉捂吝氮茶谐豢嚎貉哇烟铃酉靶菌疥桥某楔葬夜沙江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导81阅读程序阅读程序以下程序运行时输出到屏幕的结果是以下程序运行时输出到屏幕的结果是。#includevoidfun(intm,intn)if(m=n)printf(%d,m);elsefun(m+1,n);printf(%d,m);voidmain()fun(1,2);答案:答案:221控屿杭击矣桩胜淫绍同隶撒效牟扦椭懈炯鹊骇是咋苛抨更狈囊慰作妆烯巾江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导82(2)函数的指针操作函数的指针操作函数地址的获得及保存。指向函数的指针变量声明、初函数地址的获得及保存。指向函数的指针变量声明、初始化、赋值始化、赋值 调用指针变量指向的函数调用指针变量指向的函数【考题解析考题解析】全国填空题全国填空题请将以下程序中的函数声明语句补充完整请将以下程序中的函数声明语句补充完整#includeint_;main()intx,y,(*p)();p=max;printf(“&dn”,(*p)(x,y);intmax(inta,intb)return(ab/a:b);答案答案:max(inta,intb)或或max(int,int)锨角酥缴苦垄从耐佩众淄布拢架龚蛔倡糊艾侈邵绎茬杆滦丧典谢睛辙恒方江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导83全国选择题全国选择题设有以下函数:设有以下函数:voidfun(intn,char*s).则下面对函数指针的定义和赋值均正确的是则下面对函数指针的定义和赋值均正确的是A)void(*pf)();pf=fun;B)void*pf();pf=fun;C)void*pf();*pf=fun;D)void(*pf)(int,char*);pf=fun;答案答案:D学校单选题学校单选题若已有如下程序:若已有如下程序:#includedoubleg(doublea,double(*p)(double)returnp(a)*p(a);main()doublex=2,y;/*g函数调用语句位置函数调用语句位置*/现需要在现需要在main函数中调用函数中调用g函数,以下选项中正确的函数,以下选项中正确的g函数函数调用语句是调用语句是。Ay=g(x,exp);By=g(x,exp(x);Cy=g(x,exp();Dy=g(doublex,doubleexp);答案:答案:A矿铡阂虑删帜傻稿旭跺练撩积生肥岿林鲁谐幅狈李褪森训亚盘耶磷毯友覆江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导84(3)返回指针类型值的函数返回指针类型值的函数以下程序运行结果是()。以下程序运行结果是()。#include#includeint*fun(intn)int*p;p=(int*)malloc(sizeof(int);*p=n+10;returnp;main()int*p;p=fun(10);printf(“%dn”,*p);答案:答案:20眨炸微咱识顺雄锐较袋赛利司畏闽币胺愉弥绢嫉徒梧届竹掌扛汽牲刻灌佃江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导857.单向链表单向链表结点数据类型定义结点数据类型定义使用使用malloc()函数函数,free()函数动态申请、释放结点存储区函数动态申请、释放结点存储区基本操作:建立链表、遍历链表、查找结点、插入新结点、基本操作:建立链表、遍历链表、查找结点、插入新结点、删除结点、数据统计、链表倒序删除结点、数据统计、链表倒序钒纷王鹃导势釜罚作很宗佃戍骋孵芹除促苗拨寞韩潜陀下煤佬显比噪酗欠江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导86建立链表关键操作建立链表关键操作需声明指针变量:需声明指针变量:head(指向链表首结点),(指向链表首结点),p1(指向新申(指向新申请结点),请结点),p2(指向链表末结点)指向链表末结点)while(仍有数据需保存到链表仍有数据需保存到链表)p1=(structnode*)malloc(sizeof(structnode);p1-成员名成员名=数据数据;if(head=0)head=p2=p1;elsep2-next=p1;p2=p1;p2-next=NULL;returnhead;胎挤渍哦哟搭竣肺刚惋谰缸缸僻鸦灌疲酪蚁撇迅砍窥叮股枪崇信彦逼彼口江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导87遍历链表遍历链表(输出结点数据,统计结点数据输出结点数据,统计结点数据)关键操作关键操作需声明指针变量需声明指针变量p或直接用形参或直接用形参p=head;(指向链表首结点)(指向链表首结点)while(p!=NULL)查找结点数据、输出结点数据、统计结点数据查找结点数据、输出结点数据、统计结点数据p=p-next;炙好绒茹滓氨眨犯烙哑塔穷涪汰炉赌谚锅屉雷恤河蛙蚂烹滋叁渣疑蹲滞桂江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导88插入结点到链表关键操作插入结点到链表关键操作需声明指针变量:需声明指针变量:p(指向待插入新结点),(指向待插入新结点),head(指向链(指向链表首结点)表首结点),p1(指向插入位置之前结点),(指向插入位置之前结点),p2(指向插入(指向插入位置之后结点)位置之后结点) 申请新结点并保存数据到结点申请新结点并保存数据到结点p=(structnode*)malloc(sizeof(structnode);p-成员成员=数据数据;p-next=NULL; 若要求将新结点插入链表第一个结点前若要求将新结点插入链表第一个结点前if(head=NULL)head=pelsep-next=head;head=p;returnhead;寇奖瞎袍锤庆庭匙契揉多勿压埠娠闪汕氮蓟昂姑久阔鬼阶唉抑叔游接泛缀江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导89 若要求将新结点插入有序链表中若要求将新结点插入有序链表中if(新结点应插入到链表首结点之前)(新结点应插入到链表首结点之前)p-next=head;head=p;returnhead;elsep1=head;p1指向链表第一个结点指向链表第一个结点p2=head-next;p2指向链表第二个结点指向链表第二个结点while(p2!=NULL)if(新结点应插入到新结点应插入到p2指向结点之前指向结点之前)立即终止循环立即终止循环elsep1=p2;p2=p2-next;if(p2=NULL)p1-next=p;新结点添加到末结点之后新结点添加到末结点之后elsep-next=p2;p1-next=p;新结点插入新结点插入p2指向结点之前指向结点之前returnhead;确犊渣杭涌领寂铃肮鸳兄搂颓鬼滞滁卡捅主用煎对凋牢操镍仅楼惟切翁角江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导90从链表中删除结点关键操作从链表中删除结点关键操作需声明指针变量:需声明指针变量:head(指向链表首结点),(指向链表首结点),p1(指向需(指向需删除结点之前结点),删除结点之前结点),p2(指向需删除结点)(指向需删除结点)if(首结点需要删除,即首结点需要删除,即head-成员成员=给定值给定值)p=head;head=head-next;或或head=p-next;free(p);elsep1=head;p1指向链表第一个结点指向链表第一个结点p2=head-next;p2指向链表第二个结点指向链表第二个结点while(p2!=NULL)if(p2指向结点需删除指向结点需删除)立即终止循环立即终止循环elsep1=p2;p2=p2-next;ifp2=NULL)puts(“notfound”);未找到结点未找到结点elsep1-next=p2-next;free(p2);删除删除p2指向结点指向结点returnhead;顾蓝使溪驹惟盔镇租瘟寨赏柔礼脚瑞胯会鲁鸯焉齐赌署朵蘑烃漏样塞痒锡江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导91【考题解析考题解析】插入新结点插入新结点完完 善善 程程 序序 以以 下下 程程 序序 的的 功功 能能 是是 : 函函 数数 struct node *insert(structnode*head,structnode*p)将将p指指向向的的结结点点作作为为首首结结点点插插入入head指指向向的的链链表表中中。main函函数数接接收收从从键键盘盘输输入入的的一一行行字字符符,每每接接收收一一个个字字符符后后,申申请请一一个个新新结结点点保保存存该该字字符符,并并调调用用insert函函数数将将新新结结点点插插入入链链表表中中。最最后后从从表表头头开开始始依依次次输输出出该该链链表表各各结结点点成成员员c的的值值。试试完完善善程程序序以以达达到要求的功能。到要求的功能。#include#includestructnodecharc;structnode*next;睁誊煞离喳囊秋椒闭僳屹蹬即已球睁首曳盛给诲存蛮摸饶曰府纯尉饺决袱江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导92voidmain()structnode*insert(structnode*head,structnode*p);charch;structnode*head,*p;head=NULL;while(ch=getchar()!=n)p=(structnode*)malloc(sizeof(structnode);(1)=ch;p-next=NULL;(2);p=head;while(p!=NULL)printf(%c,p-c);(3);structnode*insert(structnode*head,structnode*p)if(head=NULL)head=p;else(4);head=p;returnhead;答案答案:(1)p-c(2)head=insert(head,p)(3)p=p-next;(4)p-next=head摆尧蜘疲借辑那悦舔哟者艘掠铝穗破脓婉澄币絮仗悬衙葵绦剥沉绽派榷秸江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导93数据统计数据统计完完善善程程序序以以下下程程序序创创建建一一个个链链表表并并实实现现数数据据统统计计功功能能。函函数数WORD*create(chara20,intn)创创建建一一个个包包含含n个个结结点点的的单单向向链链表表,结结点点数数据据来来自自a指指向向的的数数组组中中存存储储的的n个个单单词词(字字符符串串)。函函数数voidcount(WORD*h)统统计计h指指向向的的单单向向链链表表中中不不同同单单词词各各自自出出现现的的次次数数,将将统统计计结结果果保保存存到到局局部部数组数组c中并输出。中并输出。(2009春)春)程序运行时输出结果为程序运行时输出结果为“red:1green:2blue:3”。#includestdio.h#includestdlib.h#includestring.htypedefstructwcharword20;structw*next;WORD;给壬甩欢衙昆潭滔太咒肠坑酌真召宰婆呼酒死氏瘦扦肉搔萄痕茂浓良翟桓江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导94WORD*create(chara20,intn)WORD*p1,*p2,*h=0;inti;for(i=0;inext=p1;p2=p1;p2-next=(2);returnh;答案:答案:(1)p1-word(2)0或或NULL骂昧猪淳累必跨争味大移践元炯掌脯盖疯呕晚涨侈启坞敌捧燎睛旁馏骂荆江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导95voidcount(WORD*h)structcharword20;intnum;c6=0;intm=0,i;while(h)if(m=0)strcpy(c0.word,h-word);c0.num=1;m+;elsefor(i=0;iword)=0)(3);break;if(i=m) strcpy(cm.word,h-word); cm+.num=1; (4);for(i=0;inext厉魁票课募仗嫁劲秸端医穗爆哈佯精抱罐年跟触刊脉误啡碰树冬关账掌赊江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导96voidmain()charwords620=red,green,blue,blue,green,blue;WORD*head=0;head=create(words,6);count(head);诊婪冷恼酱巾砸江久腥妓镰垣厉验般梨杠醚绿札铺屏搞喉匙谴轿考骄甲陶江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导97查找、删除结点查找、删除结点完善程序完善程序设设h1和和h2分别为两个单链表的头指针,链表中结分别为两个单链表的头指针,链表中结点的数据结构为:点的数据结构为:typedefstructnodeintdata;structnode*next;NODE;sea_del函数的功能是:删除函数的功能是:删除h1指向的链表中首次出现的与指向的链表中首次出现的与h2指向的链表中数据完全匹配的若干个连续结点指向的链表中数据完全匹配的若干个连续结点,函数返回函数返回h1指向链表的头指针。指向链表的头指针。例如,初态下,例如,初态下,h1指向链表和指向链表和h2指向链表如下图所示:指向链表如下图所示:124790h12470h2调用调用sea_del函数后函数后h1指向链表为:指向链表为:1h190份堪尖蜀月目育普鱼剩松创挎共樊独孩壶枝恐斗实蹋惹烷镭遭诣牟巫撂疏江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导98NODE*sea_del(NODE*h1,NODE*h2)NODE*p,*ph,*q,*s;ph=NULL;p=q=h1;s=h2;if(h1=NULL|(1)returnh1;while(p!=NULL&s!=NULL)while(q-data=s-data&q&s)q=q-next;s=(2);if(s!=NULL)/*失配时失配时,h1起始结点后移起始结点后移,h2从首结点开始从首结点开始*/ph=p;p=q=p-next;s=(3);elseif(ph=NULL)h1=q;elseph-next=q;(4);答案:答案:(1)h2=NULL或或h2=0(2)s-next(3)h2(4)returnh1赴柴誊蕊吉宜析哪碉缕驼乐笛篱豁粹砌坝昼霜蹲活焉鬃伺邻昂陛挝坛癸畔江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导99查找、删除、插入结点查找、删除、插入结点完善程序完善程序设一个单向链表结点的数据类型定义为:设一个单向链表结点的数据类型定义为:structnodeintx;structnode*next;fun函数从函数从h指向的链表第二个结点开始遍历所有结点,当遇指向的链表第二个结点开始遍历所有结点,当遇到到x值为奇数的结点时,将该结点移到值为奇数的结点时,将该结点移到h链表第一个结点之前,链表第一个结点之前,函数返回链表首结点地址。函数返回链表首结点地址。print函数输出函数输出p指向的链表中所指向的链表中所有结点的有结点的x值。程序运行后的输出结果是值。程序运行后的输出结果是“1342”。装羽狱滥德汞回弯碾出拘思幽衔毕依标艳暖蹄拽螺斌景汀松蛙低秘盅拂捷江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导100#include#defineN4structnodeintx;structnode*next;voidprint(structnode*p)while(1)printf(%4d,(2);p=p-next;printf(n);答案:答案:(1)p(2)p-x悯聪唯睹才约饱骸佰停惺瞧拭氟反摩皖董务擂丫玖田辽禁弥肪啸间雅缘夫江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导101structnode*fun(structnode*h)structnode*p1,*p2,*p3;p1=h;p2=p1-next;while(p2)if(p2-x%2)p3=p2;p1-next=(3);p2=p1-next;p3-next=h;(4);elsep1=p2;p2=p2-next;returnh;main()structnodeaN=4,3,2,1,*head=a;inti,num;for(i=0;inext或或p3-next(4)h=p3域频迎拱辅感掣祟早傻铁忧转肖阿乌迪吗旱懦炭惊淳支雹掳躯跌庄戈即党江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导102链表倒序链表倒序设某单向链表结点的数据结构定义为设某单向链表结点的数据结构定义为:typedefstructnodecharch;structnode*next;linklist;以下程序首先建立一个单向链表以下程序首先建立一个单向链表head(如图(如图1所示),该链所示),该链表每个结点中保存表每个结点中保存x数组的一个元素值数组的一个元素值;输出输出head链表中每链表中每个结点的值个结点的值;再将再将head链表变换为倒序链表(如图所示),链表变换为倒序链表(如图所示),输出倒序后输出倒序后head链表中每个结点的值。链表中每个结点的值。headD0图图1CBAheadA0图图2BCD截孔物柒干呐情秽电住曝鞍接要拌友矾我张淮妈织妈酱矣收府涉拼苟痔耸江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导103#includetypedefstructnodecharch;structnode*next;linklist;linklist*create(charx)inti;linklist*pt,*pr,*p=NULL;for(i=0;xi!=0;i+)pt=(linklist*)malloc(sizeof(linklist);pt-ch=xi;pt-next=NULL;if(p=NULL)(1);pr=pt;elsepr-next=pt;(2);returnp;答案:答案:(1)p=pt(2)pr=pr-next 讫甘伴玩码脐沈特皋雇淳互膜宙鼎过惭韧契辅霄慈球粹妮敖傅椒睡整小瞧江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导104linklist*revlist(linklist*head)linklist*hp,*p=NULL;hp=head;head=(29);while(hp)p=hp;hp=hp-next;p-next=head;(30);returnhead;voidprint(linklist*phead)while(phead)printf(%c,phead-ch);phead=phead-next;printf(n);main()linklist*head;charx=ABCD;head=create(x);print(head);head=revlist(head);print(head);答案:答案:(3)NULL或或0(4)head=phead链表倒序算法提示:链表倒序算法提示:(1)使使hp指向指向head链表,置链表,置head为为0(head链表为空链表)。链表为空链表)。(2)从从hp指向的链表第一个结点开指向的链表第一个结点开始,依次从始,依次从hp链表中删除每个结点,将所删除的结点再依次链表中删除每个结点,将所删除的结点再依次插入到插入到head链表第一个结点之前,直到链表第一个结点之前,直到hp链表为空时结束。链表为空时结束。耪太憾苯炉食阁螺展寡冰勿访掀址弘姐樱二粱蠕姚怒绊袒闭围沮向挣淋酱江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导1058.枚举类型数据枚举类型数据枚举类型定义枚举类型定义枚举变量的命名、声明枚举变量的命名、声明枚举常量的使用枚举常量的使用枚举变量的赋值及使用枚举变量的赋值及使用【考题解析考题解析】填空题填空题若已有定义若已有定义“enumTPA,B,C;”,则执行语句,则执行语句“printf(”%dn“,A+1);”后输出结果是后输出结果是(3)。答案答案:1单选题单选题.若有枚举类型定义若有枚举类型定义“enumlist1x1,x2,x3,x4=6,x5,x6;”,则枚举常量,则枚举常量x2和和x6代表的代表的值分别是值分别是。A.1,6B.1,8C.2,6D.2,8答案答案:B芋倚浊鸣喧涌充互近酸镐肮胶够苍妖枯多貉泻烯皖钉浓启磐辙氨亿朵反踊江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导1069.预处理命令预处理命令#define命令命令(2)#include命令命令【考题解析考题解析】填空题填空题C语言有效的预处理命令总是以语言有效的预处理命令总是以(4)开头。开头。答案:答案: # #填填空空题题执执行行以以下下程程序序段段中中的的语语句句“k=M*M+1;”后后k的的值值是是(4)。#defineN2#defineMN+1k=M*M+1;答案:答案: 6 6傣帐袍巷渡垣撞辰童贪琢插绳修姜匙杆坦敞砒淬夹昔愤篷证缅荤业性鞋忙江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导107阅读程序阅读程序以下程序运行后的输出结果是以下程序运行后的输出结果是。#include#defineCount(n)+nmain()intx=-3,n=8;while(Count(x)n-;printf(%dn,n);答案:答案:6娇砸蔑高入被闭足席次搐澄耳眶积待负渡总垛示棱塔探功芜剥战谷居量枯江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导108阅读程序阅读程序以下程序运行时输出到屏幕的结果为以下程序运行时输出到屏幕的结果为。#include#defineMAX(A,B)AB?2*A:2*Bvoidmain()inta=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);printf(%dn,t);答案:答案:10阅读程序阅读程序以下程序运行时输出结果是以下程序运行时输出结果是(5)。#defineEVEN(x)x%2=0?1:0main()if(EVEN(5+1)printf(Even);elseprintf(Odd);答案:答案:Odd师查吭苇浊秧善斜供啥固状金分架豪臻臂争葬慧俗东孙缺祭石来诧猎境辛江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导109全国选择题全国选择题以下叙述中错误的是以下叙述中错误的是()。A)在程序中凡是以在程序中凡是以“#”开始的语句行都是预处理命令行开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束预处理命令行的最后不能以分号表示结束C)#defineMAX是合法的宏定义命令行是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进程序对预处理命令行的处理是在程序执行的过程中进行的行的答案:答案:D缎玉静菇符召锨驳睹汁谨书撅农寐姜锌擂鬼氯政躲疙肋系君贯胺勋囊莎蓄江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导11010.文件操作文件操作文件指针变量的声明(重点掌握)文件指针变量的声明(重点掌握)缓冲文件系统常用操作函数的使用:缓冲文件系统常用操作函数的使用:fopen(),fclose(),fprintf(),fscanf(),fgetc(),fputc(),fgets(),fputs(),feof(),rewind(),fread(),fwrite(),fseek()【考题解析考题解析】填填空空题题已已知知某某程程序序中中有有预预处处理理命命令令“#include”,为为使使语语句句“zx=fopen(”c:a.txt“,”r“);”能能正正常常执执行行,在在该该语语句句之前必须有声明之前必须有声明。答案答案:FILE*zx;填填空空题题 若若需需要要打打开开D盘盘上上user子子目目录录下下已已经经存存在在的的名名为为abc.txt的的文文本本文文件件,先先读读出出文文件件中中数数据据,后后追追加加写写入入新新数数据据,则正确的函数调用语句是:则正确的函数调用语句是:“fp=fopen(D:userabc.txt,);”。答案答案:a+“阮纤捌桌右防晰朴吏蓟桌噎及鞋践想房称丙誓耿翠冕迈汽磋岩押洲碉球冰江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导111单选题单选题已知已知A盘根目录下有文本文件盘根目录下有文本文件“data.txt”且程序中已有且程序中已有声明声明“FILE*fp;”,若程序需要先从,若程序需要先从“data.txt”文件中读出数文件中读出数据,修改后再写入据,修改后再写入“data.txt”文件中,则调用文件中,则调用fopen函数的正函数的正确形式是确形式是(28)。A.fp=fopen(a:data.txt,rw);B.fp=fopen(a:data.txt,w+);C.fp=fopen(a:data.txt,r+);D.fp=fopen(a:data.txt,r);答案答案:C 单选题单选题下列叙述中,正确的是下列叙述中,正确的是。AC语言中的文件是流式文件语言中的文件是流式文件,只能顺序存取文件中数据只能顺序存取文件中数据B调用调用fopen函数时若用函数时若用“r”或或“r+”模式打开一个文件,该模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在。文件必须在指定存储位置或默认存储位置处存在。C当对文件进行了写操作后,必须先关闭该文件然后再打当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第开,才能读到该文件中的第1个数据。个数据。D无论以何种模式打开一个已存在的文件,在进行了写操无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖。作后,原有文件中的全部数据必定被覆盖。答案答案:B 颓凳爷氖根阐巩邵琐屏校诌庙滥酗厦桩吱牛逼锣捧麦鳖把掂烩翠峦芝铜绕江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导112全国选择题全国选择题有以下程序有以下程序#includemain()FILE*fp;intal0=1,2,3,i,n;fp=fopen(d1.dat,w);for(i=0;i3;i+)fprintf(fp,%d,ai);fprintf(fp,n);fclose(fp);fp=fopen(d1.dat,r);fscanf(fp,%d,&n);fclose(fp);printf(%dn,n);程序的运行结果是程序的运行结果是()。A)12300B)123C)1D)321答案:答案:B夺砖分赤颖赢忙纲腺窘霜不备颧猖世箔完峪伤撂蝎旋蛊郝涵尉甩茹缠闸若江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导113阅读程序阅读程序以下程序运行时输出结果是以下程序运行时输出结果是 . .#includevoidmain()doublex3=1.1,2.2,3.3,y;FILE*fp=fopen(d:a.out,wb+);fwrite(x,sizeof(double),3,fp);fseek(fp,2L*sizeof(double),SEEK_SET);fread(&y,sizeof(double),1,fp);printf(%.1f,y);fclose(fp);答案:答案: 3.3 3.3 脑陈既恬嘱曳畸楼岸香鸵歧玲侗毅娜痒枪则仇汕恶撂无埂凿个洱拙攒河追江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导11411.综综合合单选题单选题在下列在下列C语言源程序的错误中,通常不能在编译时发语言源程序的错误中,通常不能在编译时发现的是现的是(21)。A.括号不匹配括号不匹配B.非法标识符非法标识符C.数组元素下标值越界数组元素下标值越界D.程序结构不完整程序结构不完整答案:答案: C C单选题单选题以下定义和声明中,语法均有错误的是以下定义和声明中,语法均有错误的是(21)。int_f(intx)intf(intf)int2x=1;structforintx;A.B. C.D.答案:答案: B B浪磕敬弹碟部锯箭招镇想根乌褐炙仟流慢材唬诣乒扬杉傍惕谦论顾辱兆封江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导115单选题单选题若程序中已有相应的声明,下列语句中错误的是若程序中已有相应的声明,下列语句中错误的是。printf(i=4?%6dn:%6d,i);i=4?printf(%6dn,i):printf(%6d,i);for(i=10;i-)if(i=1)break;for(i=10;)if(i-);break;答案:答案:D钧邮豪栽各挨根厨作疲皖目嘛挖我郴企郁詹贬隘培慈澜踞宵氨沼林灼墙厢江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导116全国填空题全国填空题以下程序的输出结果是以下程序的输出结果是_#includemain()intj,a=1,3,5,7,9,11,13,15,*p=a+5;for(j=3;j;j-)switch(j)case1:case2:printf(“%d”,*p+);break;case3:printf(“%d”,*(-p);答案:答案:9911彦美背诅镇柏伙袱辽酣为号章僚粉充攫涯乍喊听悲读黑靳装便真漏库呜蔷江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导117阅读程序阅读程序以下程序运行时输出结果中第一行是以下程序运行时输出结果中第一行是(1),第二行是第二行是(2),第三行是,第三行是(3)。#includemain()inti,j,a33=0;for(i=0;i3;i+)for(j=0;j3;j+)switch(i-j+2)case0:case1:aij=1;break;case2:aij=2;break;case3:aij=3;break;case4:aij=5;break;for(i=0;i3;i+)for(j=0;j3;j+)printf(%4d,aij);printf(n);答案:答案:(1)211(2)321(3)532匣甘梆陈订鹃搏肛搭惫慎蔬冤责苏揩垮爵奠认衍柞奖嗣禹蛆屏蓑日碰崭粟江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导118算法考试要求及考题解析算法考试要求及考题解析(2007秋秋2010春)春)1.基本操作:交换,累加,累乘基本操作:交换,累加,累乘【考题解析考题解析】交换数据交换数据阅读程序阅读程序以下程序运行时输出到屏幕的结果是以下程序运行时输出到屏幕的结果是(7)。#includevoidmain()inta=1,b=2;a+=b;b=a-b;a-=b;printf(%d,%dn,a,b);答案:答案:2,1烁坷涂录赣俐凿芥烙烛痔皮毙恢恒瀑峙酣侠日浇廷这蒸轨们豁啥肆欢滨靶江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导1192.数值计算算法数值计算算法(1)求若干整数的最大公约数求若干整数的最大公约数(2) 求一个十进制表示整数的反序数求一个十进制表示整数的反序数(3) 一元非线性方程求根(牛顿迭代法,半分区间法)一元非线性方程求根(牛顿迭代法,半分区间法)(4) 定积分计算(梯形法,矩形法)定积分计算(梯形法,矩形法)(5) 级数计算(递推法)级数计算(递推法)(6) 矩阵转置,矩阵转置,矩阵乘法矩阵乘法【考题解析考题解析】阻币赂吱云倪驮戳婆酵腐籍停渴迸乃欢爆是笼亚皿积漠国兽圃伙敏鲜已币江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导120求最大公约数求最大公约数完善程序完善程序以下程序求一组整数的最大公约数。以下程序求一组整数的最大公约数。#includeintgcd(inta,intb)intr;while(1)r=a%b;a=b;(2);returna;voidmain()intx,i,a6=12,56,48,32,16,24;x=(3);for(i=1;i6;i+)x=gcd(4),ai);printf(%d,a0);for(i=1;i5;i+)printf(%d,ai);printf(%d)=%dn,a5,x);答案答案:(1)b!=0(2)b=r(3)a0(4)x缨啃凝睡致褥适诣欧俯万渝詹砷绳蠢钧椎渠筛貉舜胀伐保咱贱稀哆瓶谨劈江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导121求一个十进制字符串表示整数的反序数求一个十进制字符串表示整数的反序数阅读程序阅读程序以下程序运行后的输出结果是以下程序运行后的输出结果是(10)。#includemain()chara=369,*p=a;ints=0,t=1;while(*+p)t*=10;p-;while(t)s+=(*p-0)*t;p-;t/=10;printf(%dn,s);答案:答案:963够菱鳞兑鳃训封咸柏唾诚比洱铲两粤揍州蔽惹夷奥底淹药艰辐渔孩乃频辰江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导122一元非线性方程求根(牛顿迭代法)一元非线性方程求根(牛顿迭代法)阅读程序阅读程序用牛顿迭代法求方程用牛顿迭代法求方程3x3-3x2+x-1=0在在2.0附近的一附近的一个实根,精度要求为个实根,精度要求为10-5。函数。函数F求求f(x)的值,函数的值,函数F1求求f(x)的一阶导数值。的一阶导数值。牛顿迭代公式如下:牛顿迭代公式如下:蔽顾彤烈拙外绵回蹲怖桩鼎逊浚织演汇驾灸弯赎务烦关跳积佃剪及上吻骑江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导123#include#includefloatF(floatx)returnx*(3*x*(x-1)+1)-1;floatF1(floatx)return9*x*x-6*x+1;floatnewtoon(floatx)floatf,f1,x0;do(1);f=F(x0);f1=F1(x0);x=(2);while(fabs(x-x0)1e-5);returnx;main()floatx0;scanf(%f,&x0);printf(Theresult=%.2fn,newtoon(x0);答案:答案:(1)x0=x(2)x0-f/f1或或x0-F(x0)/F1(x0)茅篱据龟崖实烤臆阻唬荫靡廊讲透止根惊贤龚萄峨唱摹件柠丛踪囚绝讥弊江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导124级数计算(递推法)级数计算(递推法)完善程序完善程序以下程序通过给出的公式计算的近似值,计算过以下程序通过给出的公式计算的近似值,计算过程在所加项的值小于程在所加项的值小于10-10时终止。时终止。#includemain()doublesum=0.5,t,t1,t2,t3;intodd=1,even=2;t=t1=t2=1.0;t3=0.5;while(t1e-10)t1=(1);odd+=2;even+=2;t2=1.0/odd;t3=(2);t=t1*t2*t3;sum+=t;printf(nPI=%.8lf,(3); 答案:答案:(1)t1*odd/even(2)t3*0.5*0.5(3)sum*6狼笆砧已贫祭蹄两钥予威掇皱聂臣芜弥酷敞苍叠矿罐蒸搂炳痘哑孤玫蝴阑江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导1253.非数值计算算法非数值计算算法(1)穷举法找数穷举法找数(2) 排序(冒泡法,插入法排序(冒泡法,插入法,选择法),选择法)(3) 在数组中查找数据(线性法,折半法)在数组中查找数据(线性法,折半法)(4)将一个数据插入有序数组中将一个数据插入有序数组中(5) 删除数组中数据删除数组中数据(6)多个数组数据合并多个数组数据合并(7) 数据统计数据统计(8) 其他(素数判断,回文数判断,回文判断,约瑟夫问题)其他(素数判断,回文数判断,回文判断,约瑟夫问题)(9) 生成矩阵(杨辉三角形,生成矩阵(杨辉三角形,)(10) 模拟十进制长整数算术运算模拟十进制长整数算术运算 (11)字符串处理(子串替换,加密字符串处理(子串替换,加密, ,) 【考题解析考题解析】罗噎肩割毫辱群澜馅粒鸿拇妄伶丘话篇雷徐氢掖晚失宵詹淋呐扳遁靠嘉谷江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导126穷举法找数穷举法找数阅读程序阅读程序寻找具有下列特性的四位正整数,其百位数为寻找具有下列特性的四位正整数,其百位数为0,去掉百位数去掉百位数0可得到一个三位正整数,而该三位正整数乘以可得到一个三位正整数,而该三位正整数乘以9等于原四位正整数。例如,等于原四位正整数。例如,60756759,所以,所以6075是具是具有上述特性的正整数。有上述特性的正整数。#includeintfun(intn)inta4,i,k;k=n;for(i=0;k0;i+)ai=(1);k/=10;if(2)&(a3*100+a1*10+a0)*9=n)return1;elsereturn0;main()inti,n=0;for(i=1000;i10000;i+)if(fun(i)printf(%4dt,i);printf(n);答案答案(1)k%10(2)a2=0或或!a2彼沸茵谬辩乏贬胚诽星擂刹充蜡拦棵志纬踊穿耸汝耕侍冲雕祟芭玄喇懒崎江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导127穷举法找数穷举法找数完善程序完善程序某餐厅用苹果、桔子、香蕉、菠萝、梨五种水果制某餐厅用苹果、桔子、香蕉、菠萝、梨五种水果制作水果拼盘,要求每个拼盘中恰有三种不同水果。以下程序作水果拼盘,要求每个拼盘中恰有三种不同水果。以下程序的功能就是计算可以制作出多少种这样的水果拼盘并列出组的功能就是计算可以制作出多少种这样的水果拼盘并列出组合方式。合方式。#includetypedefenumapple,orange,banana,pineapple,pearFruit;main()(1)fruits=apple,orange,banana,pineapple,pear;Fruitx,y,z,p;intk=0,i;for(x=(2);x=pear;x+)for(y=x+1;y=pear;y+)for(z=y+1;z=pear;z+)printf(n%d%s%s%s,+k,fruitsx,fruitsy,fruitsz);答案:答案:(1)char*(2)apple或或0眷冲粤霄戒厅豺撰产册狄水寄眶尹柿宇榔御喷盏您矗靳敖惩霍绅带涝拄材江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导128排序:排序:下标为奇数的数组元素排序,选择法下标为奇数的数组元素排序,选择法阅读程序阅读程序以下程序运行时输出结果是以下程序运行时输出结果是.#includevoidsort(inta,intn)inti,j,p;intt;for(i=1;in-1;i+=2)p=i;for(j=i+2;jap)p=j;if(p!=i)t=ai;ai=ap;ap=t;voidmain()ints=8,1,4,3,n=4,k;sort(s,n);for(k=0;kn;k+)printf(%4d,sk);printf(n); 答案答案:8341材扯轮公澜枉版被笔艺也猖分机摹夕董渝摘盟昌颤靛涯赢难跋尿吉濒换乔江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导129排序排序(选择法)(选择法)完完善善程程序序以以下下程程序序对对二二维维数数组组a中中存存储储的的N N矩矩阵阵做做如如下下操操作作:先先将将每每一一行行中中值值最最大大的的元元素素与与该该行行位位于于主主对对角角线线处处的的元元素素交交换换值值,然然后后对对主主对对角角线线上上的的所所有有元元素素排排序序使使其其自自左左上上角角到到右右下下角角升升序序排排列列,最最后后输输出出排排序序后后主主对对角角线线上上各各元元素的值。试完善程序以达到要求的功能。素的值。试完善程序以达到要求的功能。泥昔丫靳智敏胆烟亡材幕边龋李糙蛾哭峦柱抛险期摆头贺得沟远嫂喉匝恿江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导130#include#defineN5voidfun(intxN,intn)inti,j,t,arr,col;for(i=0;in;i+)arr=xi0;col=0;for(j=0;j=arr)arr=xij;(1);t=xii;(2);xicol=t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(3)t=xii;xii=xjj;xjj=t;voidmain()intaNN=10,25,24,13,23,11,22,12,21,14,20,15,19,16,18,17,9,4,5,3,2,1,6,7,8,i;fun(a,N);for(i=0;ixjj广奶让秒疚蛆倘省话仆码瓢味洋隋屎说炯春甚陈足甥牡粮溺智铀读棠炮摧江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导131结构数组排序:按成员结构数组排序:按成员x值升序,值升序,x值相同的按成员值相同的按成员y值升序值升序阅阅读读程程序序以以下下程程序序运运行行时时输输出出结结果果中中第第一一行行是是(1),第第二二行行是是(2)第三行是第三行是(3).#includetypedefstructintx;inty;S;voidfun(Spp,intn)inti,j,k;St;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(ppj.xppk.x)|(ppj.x=ppk.x&ppj.yppk.y)k=j;if(k!=i)t=ppi;ppi=ppk;ppk=t;voidmain()Sa5=3,2,3,1,1,2,2,4,2,3;inti,n=5;fun(a,n);for(i=0;in;i+)printf(%d,%dn,ai.x,ai.y);答案:答案:(1)1,2(2)2,3(3)2,4芯盒裁浴胚惊徐烹疼律个脊仅佃聘就孤站獭鼎窖讣标陕绪述夺瘤座樊巩粱江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导132二维数组数据变换:最小值所在行与最后一行数据交换,二维数组数据变换:最小值所在行与最后一行数据交换,最大值所在列与最后一列数据交换最大值所在列与最后一列数据交换阅读程序阅读程序以下程序运行后的输出结果第一行是以下程序运行后的输出结果第一行是(1);第;第二行是二行是(2);第三行是;第三行是(3)。#includevoidsot(inta33)inti,j,i0,j1,min,max,temp;min=max=a00;for(i=0;i3;i+)for(j=0;j3;j+)if(aij=max)max=aij;j1=j;减宜拥充缕斥耍乖宏蛰撬贾寓笺小谐铲篆猿秘养灵孺裹污铀鸽损羌篷幽犹江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导133for(j=0;j3;j+)temp=ai0j;ai0j=a2j;a2j=temp;for(i=0;i3;i+)temp=aij1;aij1=ai2;ai2=temp;for(i=0;i3;i+)for(j=0;j3;j+)printf(%d,aij);printf(n);main()intb33=3,2,1,6,5,4,9,8,7;sot(b);答案:答案:(1)789(2)456(3)123企涉报搔悸修坝直狭粘疵赘巩栖售怂秉蜂次蔗钻娥驻绚铰苍菱酱勇敏摹酷江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导134排序排序完善程序完善程序下列程序的功能是对下列程序的功能是对a数组数组a0an-1中存储的中存储的n个整数从小到大排序。排序算法是:第一趟通过比较将个整数从小到大排序。排序算法是:第一趟通过比较将n个个整数中的最小值放在整数中的最小值放在a0中,最大值放在中,最大值放在an-1中;第二趟中;第二趟通过比较将通过比较将n个整数中的次小值放在个整数中的次小值放在a1中,次大值放在中,次大值放在an-2中;中;,依次类推,直到待排序序列为递增序列。,依次类推,直到待排序序列为递增序列。试完善程序以达到要求的功能。试完善程序以达到要求的功能。拭趣椒步栏附腐淮佳唤女袄升宴抓二劳汾狸拴婚挡氓揍不啤泰敌净缆烤悸江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导135#include#defineN7voidsort(inta,intn)inti,j,min,max,t;for(i=0;i(1);i+)(2);for(j=i+1;jn-i;j+)if(ajamax)max=j;if(min!=i)t=amin;amin=ai;ai=t;if(max!=n-i-1)if(max=i)t=amin;amin=an-i-1;an-i-1=t;elset=amax;amax=an-i-1;an-i-1=t;答案:答案:(1)n/2或或n-i或或n-i-1(2)min=max=i炒渔粥嫌写伴绊炎撰算冒焕结巩纠她码醇豆闻盲废趁脑溜净哨银栽篮凛段江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导136voidmain()intaN=8,4,9,3,2,1,5,i;sort(a,N);printf(sorted:n);for(i=0;iN;i+)printf(%dt,ai);printf(n);模即陶厘交甘诅裹封逃秩攫员扣蚁逐逾爪布洋凛樟廊宅忌冲哲末侍挥逢荫江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导137字符串排序字符串排序完善程序完善程序程序运行时输出结果第一行程序运行时输出结果第一行(1)第二行是第二行是(2)。#include#includevoidfun(charstr20,intn)inti,j,k;chars20;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(strcmp(strj,strk)0)k=j;strcpy(s,stri);strcpy(stri,strk);strcpy(strk,s);main()charstr620=PASCAL,BASIC,FORTRAN,C,COBOL,Smalltalk;inti;fun(str,6);for(i=0;i6;i+)printf(%sn,stri);答案:答案:(1)BASIC(2)C铰苹胁贼翌纯谩料构缴慷愿孵控凹剔围哎疫极牡耀挪揉半槛率陋量出峡幼江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导138删除数组中满足给定条件的所有数据删除数组中满足给定条件的所有数据阅读程序阅读程序 以下程序运行时输出结果的第一行是以下程序运行时输出结果的第一行是(1);第二行是第二行是(2)。(删除数组中所有偶数)(删除数组中所有偶数)#includeintfun(int*x,intn)inti,j;for(i=j=0;in;i+)if(*(x+i)%2)*(x+j+)=*(x+i);returnj;main()inta10=1,5,2,3,8,3,9,7,4,10,n,i;n=fun(a,10);for(i=0;in;i+)printf(%5d,ai);if(i+1)%3=0)printf(n);答案:答案:(1)153(2)397邓迫啄烧沾员眷獭讳谴祖咐洒纫破汲交拽刹粟剁锥呕洼醛权袜橇沟啸汐仔江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导139数组数据合并数组数据合并阅读程序阅读程序以下程序运行时输出结果的第一行是以下程序运行时输出结果的第一行是(1);第;第二行是二行是(2);第三行是;第三行是(3)。#include#defineN10intmerge(inta,intb,intc,intmN+1)inti=0,j,k;while(k=m0i)!=2)j=m1i;if(k=0)ci=aj;elseci=bj;i+;returni;鱼穴休开胞捕宣锌符瘴戏罗塑亚枯肖问绢赁宣桃查饶偶牢绎废屋撼坎宣棠江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导140main()intaN=1,3,5,bN=2,4,6,c2*N,i,n;intm2N+1=0,1,0,1,0,1,2,0,0,1,2,2,1,-1;n=merge(a,b,c,m);printf(%dn,n);for(i=0;in;i+)printf(%d,ci);if(i+1)%3=0)printf(n);答案:答案:(1)6(2)123(3)654耽旅三佑迭喂丰本秤尊淆夜算品很电朽哨员耸瓤说拖轮定澈钻劝冻缩垒盒江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导141在数组中查找数据在数组中查找数据阅读程序阅读程序以下程序运行时,若在键盘上输入以下程序运行时,若在键盘上输入2,则,则输出是输出是(1);若在键盘上输入;若在键盘上输入i,则输出是,则输出是(2)。#include#includeintstrch(char*s,charch)inti;for(i=strlen(s);i=0;i-)if(si-1=ch)returni;if(i0)return0;main()charch,s1=as123d2nfghjkm;intk;printf(inputch:);ch=getchar();k=strch(s1,ch);if(k!=0)printf(k=%dn,k);elseprintf(notfoundn); 答案:答案:(1)k=7(2)notfound眩卵踩励艺凰惠懦哈巢乞锡蔡裸瞄胞渤库冰溺石廊暖友氏是屁整和霖肘哩江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导142约约瑟瑟夫夫问问题题:n个个人人报报数数,报报到到3的的人人出出列列,剩剩下下人人继继续续报报数数,直到所有人出列为止直到所有人出列为止,显示依次出列人编号,显示依次出列人编号阅阅读读程程序序以以下下程程序序运运行行时时若若输输入入8,则则输输出出结结果果中中第第一一行行是是(1),第二行是,第二行是(2),第三行是,第三行是(3)。#includevoidmain()intk,i,m,n,num20;scanf(%d,&n);for(i=0;in;i+)numi=i+1;i=k=m=0;while(mn-1)if(numi!=0)k+;if(k=3)printf(%4d,numi);numi=0;k=0;m+;if(m%3=0)printf(n);i+;if(i=n)i=0;i=0;while(numi=0)i+;printf(%4d,numi);答案答案:(16)361(17)528(18)47趴卡吼督每钠铝流蛆病蹿奎股琳螟淆炭哟戊喉铰辗普啮币阿缮主丈杨镭性江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导143生成矩阵(杨辉三角形)生成矩阵(杨辉三角形)阅读程序阅读程序以下程序运行时输出到屏幕的结果第二行是以下程序运行时输出到屏幕的结果第二行是(1),第四行是,第四行是(2)。#include#defineN6voidmain()inti,j,aN+1N+1;for(i=1;i=N;i+)aii=1;ai1=1;for(i=3;i=N;i+)for(j=2;ji;j+)aij=ai-1j-1+ai-1j;for(i=1;i=N;i+)for(j=1;j=0;i-)ci=(ai-0)+(bi-0)+k;k=(2);ci=ci%10+0;if(k)for(i=n+1;i0;i-)ci=(3);ci=k+0;答案答案:(1)intn(2)ci/10(3)ci-1冤季结冯粉帽文酿琴剩概酌览窍侩罚吝拉牵辕历棍难抿邹蒸甚匝带印翅壳江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导146voidmain()charp180=1000000001,p280=9000000009,p380;inti,x=strlen(p1),y=strlen(p2);if(x=0;i-)p1i+y-x=p1i;p1i=0;(4);if(xy)for(i=y;i=0;i-)p2i+x-y=p2i;p2i=0;add(p1,p2,p3,x);puts(p3);答案答案:(4)x=y撂酮帜褐讼裙掸阴彦你壹吭昔稗钓叉骑忙吓淤谅腐卉兢昌睹垛暖潮建沮陵江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导147字符串处理:加密字符串处理:加密完完善善程程序序以以下下程程序序中中函函数数replace的的功功能能是是:将将字字符符串串s中中所所有有属属于于字字符符串串s1中中的的字字符符都都用用s2中中的的对对应应位位置置的的字字符符替替换换。假假如如s为为“ABCBA”,s1为为“AC”,s2为为“ac”,则则调调用用replace函函数数后后,字字符符串串s的的内内容容将将变变换换为为“aBcBa”。试试完完善善程程序序以以达到要求的功能。达到要求的功能。硫叹琼词仰恍扯含宁钳豌岂豢舟表诡丈倘咋粮渝殴溃柴缘泼盎卞捡昂盐竣江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导148#include#defineMAX20voidreplace(char*s,char*s1,char*s2)char*p;for(;*s;s+)p=s1;while(*p&(1))p+;if(*p)*s=(2);voidmain() char sMAX=ABCBA,s1MAX=AC, s2MAX=ac;(3);printf(Thestringofsis:);printf(%sn,s);答案答案:(1)*p!=*s(2)*(s2+p-s1)(3)replace(s,s1,s2)仕寝酿诽爬骸方凉韩田后限傀川北榔窖躯虑晶癌嗅哎拧犁板险侮束盒同撩江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导149字符串处理:数据统计字符串处理:数据统计完善程序完善程序统计一个字符串中数字字符统计一个字符串中数字字符“0”到到“9”各自出现的次数,各自出现的次数,统计结果保存在数组统计结果保存在数组count中。例如,如果字符串为中。例如,如果字符串为“1enterschar4543123564879ffgh”,则统计结果为,则统计结果为:1:22:13:24:35:26:17:18:19:1。#includevoidfun(char*t,intcount)char*p=t;while(1)if(*p=0&*p=9)count(2)+;p+;voidmain()chars80=1enterschar4543123564879ffgh;intcount10=0,i;fun(s,count);for(i=0;i10;i+)if(counti)printf(%d:%d,i,counti);答案:答案:(1)*p或或*p!=0或或p0!=0(2)*p-0或或p0-0则蔬涛叙屋邪搏衫莲始夺汝雾家雕锦仕萎眶圾瞻汁钨逃圾糙庐阜贵怎痘条江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导150数据统计数据统计完善程序完善程序程序功能:选票统计。二维数组程序功能:选票统计。二维数组s中保存了投票后中保存了投票后10张有效选票上所填写的候选人姓名,结构数组张有效选票上所填写的候选人姓名,结构数组stat中保存中保存统计结果。程序运行后的输出结果是统计结果。程序运行后的输出结果是“liu:2wang:5zhao:3”。#include#includetypedefstructcharname20;/*候选人姓名候选人姓名*/intcount;/*候选人得票数候选人得票数*/COUNT;祸内鞠终墟健涛悲抽勾襄烈挂有峙无娄佯倡冯淄箱铣蔫诣星毕粗慢撅人鞘江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导151intcount(charx20,intn,(1)inti,j,k=0;for(i=0;(2);i+)for(j=0;j=k)(4);stk.count+;k+;returnk;main()chars1020=liu,wang,zhao,zhao,wang,liu,wang,zhao,wang,wang;COUNTstat5=0;inti,n;n=count(s,10,stat);for(i=0;in;i+)printf(%s:%dt,stati.name,stati.count);答案:答案:(1)COUNTst或或COUNT*st(2)in(3)stj.count+(4)strcpy(stk.name,xi)邹呸刹颤撬菇斟庭碍纱屏赛趾揩温芬月酮蜀脆田胸红涉咕型心臆持四轩付江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导152字符串处理:子串替换字符串处理:子串替换完善程序完善程序下列程序中函数下列程序中函数find_replace的功能是:在的功能是:在s1指向指向的字符串中查找的字符串中查找s2指向的字符串,并用指向的字符串,并用s3指向的字符串替换指向的字符串替换在在s1中找到的所有中找到的所有s2字符串。若字符串。若s1字符串中没有出现字符串中没有出现s2字符字符串,则不做替换并使函数返回串,则不做替换并使函数返回0,否则函数返回,否则函数返回1。试完善。试完善程序以达到要求的功能。程序以达到要求的功能。#include#includeintfind_replace(chars1,chars2,chars3)inti,j,k,t=0;chartemp80;if(s10=0|s20=0)returnt;for(i=0;s1i!=0;i+)k=0;j=i;while(s1j=s2k&s2k!=0)j+;(1);答案:答案:(1)k+衡控踪慨包逆蘑摊绍沂配鸵锚蔼剁诣蓉街坤挖锗骂噎处以桶碴淘烛歹然赘江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导153if(s2k=0)strcpy(temp,&s1j);(2);i=i+strlen(s3);(3);t=1;returnt;voidmain()charline80=Thisisatestprogramandatestdata.;charsubstr110=test,substr210=actual;intk;k=find_replace(line,substr1,substr2);if(4)puts(line);elseprintf(notfoundn);答案:答案:(2)strcpy(&s1i,s3)或或strcpy(s1+i,s3)(3)strcpy(&s1i,temp)或或strcpy(s1+i,temp)(4)k或或k=1或或k!=0或或k0寸带谁唾痈酿辊事做冠般孙与怯振宗顺态氨挎檄活厚花告赞裁浩布滨诺胜江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导154字符串处理:数字字符串转换为整数字符串处理:数字字符串转换为整数完善程序完善程序以下程序中函数以下程序中函数longfun(char*str)的功能是:自的功能是:自左至右取出非空字符串左至右取出非空字符串str中的所有数字字符,将这些数字中的所有数字字符,将这些数字字符组成一个不超过字符组成一个不超过8位的十进制整数并输出。例如,字符位的十进制整数并输出。例如,字符串串str为为“efg32gh76.jbejing08t5y4u2”,程序输出:,程序输出:32760854。#includelongfun(char*str)inti=0;longk=0;char*p=str;while(*p!=0&(1)if(*p=0&*p=9)k=(2)+*p-0;+i;(3);returnk;voidmain()charx=efg32gh76.jbejing08t5y4u2;printf(%ldn,fun(x);答案:答案:(1)i8(2)k*10(3)p+候顶队眷窍畜硫疲醚汲绽蔷湛蹭滴纷路魄烁脏开痴颇殖廷愧犹橱火答密霜江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导155补充:回文数判断补充:回文数判断完善程序完善程序以下程序输出以下程序输出6位整数中的所有回文数。若一个整位整数中的所有回文数。若一个整数等于它自身的反序数,则称该整数为回文数。例如,数等于它自身的反序数,则称该整数为回文数。例如,123321是回文数。是回文数。#includeintmain()longx,y=0,i;for(i=100000;i0)y=y*10+x%10;(2);if(i=y)printf(t%ld,i);return0;答案答案:(1)y=0(2)x=x/10环啦集礁容酗海巫掘撰脖刷递叼郸疯咙航株幼睡栏使矢骋蜜收爆婆鞭毕痴江苏省计算机等级考试二级C语言笔试辅导江苏省计算机等级考试二级C语言笔试辅导
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号