谁有最新计算机2级c语言上机题库考试题库,还有复习资料什么的, 麻烦发给我 邮箱 谢了

计算机二级C语言考试题库|全国计算机二级C语言全真模拟考试软件下载 2017 考试专用版-新云软件园
全国计算机二级C语言全真模拟考试软件 2017 考试专用版
您现在的位置: -
- 全国计算机二级C语言全真模拟考试软件下载
好评:88.31%
坏评:11.69%
全国计算机二级C语言全真模拟考试软件由科慧尔软件推出,专为广大的计算机二级C语言考生制作。计算机二级C语言考试题库包含历年考试真题,考生可以随机抽选真题进行仿真模拟测试,查漏补缺,巩固知识考点,需要的的用户可以前来新云下载使用。
1、功能全面:软件具有同步训练、章节测验、模拟考试功能,每一道试题都有详细分析,操作题都有详尽的操作步骤。
2、即时交互:你的训练、测试、模拟考试结果都能得到即时反馈,克服了用书本学习没有反馈的缺陷。
3、操作简单:软件界面清晰、操作简单,每一项操作都有相应的提示,使你使用起来得心应手。
详尽解析等功能
下载全国计算机二级C语言全真模拟考试软件 2017 考试专用版
其他下载地址:
软件排行榜
12345678910
热门关键字
关注新云安卓游戏网《2014年无纸化考试专用·全国计算机等级考试一本通:2级C语言(含无纸化真考题库2级公共基础知识)》【摘要 书评 试读】- 京东图书
京 东 价:
[定价:¥]
PLUS会员专享价
您购买此商品可享受专属价
增值业务:
重  量:
搭配赠品:
服务支持:
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
2014年无纸化考试专用·全国计算机等级考试一本通:2级C语言(含无纸化真考题库2级公共基础知识)
商品介绍加载中...
扫一扫,精彩好书免费看
  专业评论:  各大图书电子商务网站统计显示,各类计算机等级考试图书中,“未来教育”品牌等考图书占总销量的70%以上(读者可自行搜索计算机等级考试图书,按销量查看销量排名情况)  “未来教育”专注等考领域19年,历年考生反馈显式,只有“未来教育”版计算机等级考试图书最权威,考试命中率最高,是市场上唯一将全套真考题库完整提供给考生、更新最及时的图书。  “群众的眼睛是雪亮的”同样的价格肯定要买名牌,购买“未来教育”等考图书是顺利通过考试的有力保障!
京东商城向您保证所售商品均为正品行货,京东自营商品开具机打发票或电子发票。
凭质保证书及京东商城发票,可享受全国联保服务(奢侈品、钟表除外;奢侈品、钟表由京东联系保修,享受法定三包售后服务),与您亲临商场选购的商品享受相同的质量保证。京东商城还为您提供具有竞争力的商品价格和,请您放心购买!
注:因厂家会在没有任何提前通知的情况下更改产品包装、产地或者一些附件,本司不能确保客户收到的货物与商城图片、产地、附件说明完全一致。只能确保为原厂正货!并且保证与当时市场上同样主流新品一致。若本商城没有及时更新,请大家谅解!
权利声明:京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用。
注:本站商品信息均来自于合作方,其真实性、准确性和合法性由信息拥有者(合作方)负责。本站不提供任何保证,并不承担任何法律责任。
印刷版次不同,印刷时间和版次以实物为准。
价格说明:
京东价:京东价为商品的销售价,是您最终决定是否购买商品的依据。
划线价:商品展示的划横线价格为参考价,该价格可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在京东平台上曾经展示过的销售价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:如无特殊说明,折扣指销售商在原价、或划线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。
异常问题:商品促销信息以商品详情页“促销”栏中的信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
浏览了该商品的用户还浏览了
加载中,请稍候...
七日畅销榜
新书热卖榜
iframe(src='//www.googletagmanager.com/ns.html?id=GTM-T947SH', height='0', width='0', style='display: visibility:')计算机二级《C语言》章节练习 - 233网校计算机二级考试题库 - 233网校
您现在的位置:&>>&&>>&&>>&&>>&
章节练习 |
章节总题数&
模板不存在,请添加模板后再生成!E:\wwwroot\www_233_com\Templets\Two\Templets\ncre2\small2014\tkzj_right.htm日 16:30 信息编号:f00e7fe2ee91741c
买卖 音像制品
该用户没留下联系方式,请给他留言
其它联系方式:
收录查询:
&&分享更易传播
软件是目前最新的二级c语言考试的计算机题库软件,题量大,真题多,包含最新的新增题库。还有模拟考场,十分的实用,绝对是你计算机二级考试通过的最佳选择,不多说了,很多功能可以慢慢体会。需;我的旺旺号:“思念挥之不去hx”亲,想买就联系我哦,谢谢!当前位置: >>
福建省计算机2级C语言-复习习题-题库
第一部分:选择题(40 分,20 小题/套) 概述 1、下面关于 C 语言的叙述中,正确的是() A. 每行只能写一条语句 有输入语句 C. main 函数必须位于文件的开头 须有一个分号 2、下面关于 C 语言的叙述中,错误的是() A. 若一条语句较长,也可分写在下一行上 B. 构成 C 语言源程序的基本单位是表达式 C. C 语言源程序中大、小写字母是有区别的 D. 一个 C 语言源程序可由一个或多个函数组成 3、关于 C 语言数据类型的叙述,正确的是() A. 枚举类型不是基本类型 C. 变量必须先定义后使用 B. 数组不是构造类型 D. 不允许使用空类型 D. 每条语句最后必 B. 程序中必须包含4、C 程序中 main 函数的位置() A. 必须在最开始 C. 可以在自定义函数后面 B. 必须在系统库函数后面 D. 必须在最后5、C 语言的函数体由()括起来 A. ( ) B. { } C. [ ] D. /* */6、关于 C 语言的叙述中,不正确的是() A. C 程序可由一个或多个函数组成 B. C 程序必须包含1 一个 main()函数 C. C 程序的基本组成单位是函数 位于一条语句的后面 7、一个程序的执行是从() A. 本程序的第一个函数开始,到最后一个函数结束 B. 本程序的 main 函数开始,到 main 函数结束 C. 本程序的 main 函数开始,到最后一个函数结束 D. 本程序的第一个函数开始,到 main 函数结束 8、结构化程序设计的三种基本结构是() A. 函数结构、分支结构、判断结构 嵌套结构、平行结构 C. 顺序结构、分支结构、循环结构 循环结构、嵌套结构 9、调试程序是指对程序进行() A. 编辑 B. 编译 C. 查错和排错 D. 连接 D. 分支结构、 B. 函数结构、 D. 注释说明只能10、C 语言中,复合语句的构成是将一系列语句置于() A. begin 与 end 之间 C. 一对花括号“{ }”之间 B. 一对圆括号“ ) ( ”之间 D. 一对方括号“[ ]”之间11、构成 C 语言源程序的基本单位是() A. 语句 B. 过程 C. 表达式 D. 函数语法基础2 12、在 C 语言中,正确的用户标识符是() A. 3f B. _for C. struct D. _f.513、C 语言的基本数据类型包括() A. 整型、实型、字符型 符型、逻辑型 C. 整型、字符型、逻辑型 辑型 14、以下()是正确的常量 A. E-5 32766L 15、以下()是正确的变量名 A. a.bee B. Cp11 C. int D. p_11 B. 1E5.1 C. ?a12? D. D. 整型、实型、逻 B. 整型、实型、字16、以下()是正确的字符常量 A. “c” B. ?//” C. ?W? D. “\32a”17、以下()是不正确的字符串常量 A. ?abc? B. “12?12” C. “0” D. “ “18、C 语言的整型数据在内存中的存储形式是() A. 原码 码 19、以下()是正确的浮点数 A. e3 B. .62 C. 2e4.5 D. 1233B. 反码C. 补码D. ASCII 20、下列不属于 C 语言关键字的是() A. continue signed 21、C 语言的字符型数据在内存中的存储形式是() A. 原码 B. 补码 C. 反码 D. ASCII B. integer C. static D.22、在 C 语言中,变量所分配的内存空间大小是() A. 由变量的类型决定 C. 任意的 B. 由用户自己决定 D. 均为两个字节23、若有定义:int a=2;则正确的赋值表达式是() A. a-=(a*3) a*4=3 24、语句 x=(a=3,b=++a);运行后,x、a、b 的值依次为() A. 3,3,4 B. 4,4,3 C. 4,4,4 D. 3,4,3 B. double(-1) C. a*3 D.25、语句 a=(3/4)+3%2;运行后,a 的值为() A. 0 B. 1 C. 2 D. 326、以下四项中,符合 C 语言语法的语句是() A. int a+b=c; C. int a=12, b=12, c=12; B. int a=12:b=12:c=12; D. int a, b=12, float c=2127、若有定义:int x,a;则语句 x=(a=3,a+1);运行后,x、a 的值依次为() A. 3,3 B. 4,4 C. 4,3 D. 3,428、若变量已正确定义并赋值,符合 C 语言语法的表达式是4 () A. a=8+b+c,a++ D. a=a+1=c+b 29、若有定义:int a,b;double x;则以下不符合 C 语言语 法的表达式是() A. x%(-3) x=a+b 30、若有定义:int x=2,y=3;float i;则以下符合 C 语言语 法的表达式是() A. x=x*3=2 D. i%(-3) 31、若有定义:int x;则语句 x=(2*3)+6%5;运行后,x 的 值是() A. 8 B. 7 C. 6 D. 5 B. x=(y==1) C. i=float(x) B. a+=-1 C. a=b=2 D. B. a=3a C. int(12.3%4)32、下面关于 C 语言变量的叙述中,错误的是() A. 可以用 const 关键字定义变量 SUM 和 sum 是不同的变量 C. 变量名必须由字母或下划线组成 确定了变量的取值范围 33、若有定义:int x=5,y=6;则表达式 x=(y==6)的值为() A. 5 B. 1 C. 6 D. 0 D. 变量的类型 B. 在 C 程序中,34、下面叙述正确的是()5 A. 2/3 与 2.0/3.0 等价 C. ++5 与 6 等价B. (int)2.0/3 与 2/3 等价 D. ?A?与”A”等价35、下面叙述中,错误的是() A. C 语言基本的算术运算符不包含模运算符”%” B. 算术运算符的优先级高于关系运算符 C. 自加和自减运算符的结合方向是”自右向左” D. C 语言规定在表达式求值时, 按其中运算符的优先级先高 后低的次序进行 36、下面叙述正确的是() A. 强制类型转换运算的优先级高于算术运算 是整型变量,(a+b)++是合法的 C. ?A?*?B? 是 不 合 法 的 “A”+”B”是合法的 37、若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为() A. 1 B. 0 C. 6 D. 7 D. B. 若 a 和 b38、设整型变量 a 为 5,使 b 不为 2 的表达式是() A. b=(++a)/3 D. b=a/2 39、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行 后 b 的值为() A. 1 B. 0 C. 2 D. 3 B. b=6-(--a) C. b=a%240、若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是()6 A. 7B. 8C. 9D. 1041、若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是() A. 7 B. 8 C. 9 D. 1042、若有定义:int i=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值 为() A. 8 B. 6 C. 7 D. 543、若已定义:int i=3,k;则语句 k=(i--)+(i--);运行后 k 的值 为() A. 4 B. 5 C. 6 D. 744、C 语言的运算符按运算对象的个数可以分为() A. 单目运算符一种 C. 单目、双目和三目运算符 四目运算符 45、若已定义:拟从键盘输入 135.78 这一数据给变 量 m,则应选用的语句是() A. scanf(“%5.2f”,&m); C. scanf(“%6.2f”,&m); B. scanf(“%3.2f”,&m); D. scanf(“%6f”,&m); B. 单目和双目运算符 D. 单目、双目、三目和46、已知使用 scanf()函数输入一个数值给变量 a, 正确的函数调用是() A. scanf(“%ld”,&a); C. scanf(“%c”,&a); B. scanf(“%lf”,&a); D. scanf(“%u”,&a);47、已知使用 scanf()函数输入一个字符给变量 a,不7 正确的函数调用是() A. scanf(“%d”,&a); C. scanf(“%c”,&a); B. scanf(“%lf”,&a); D. scanf(“%u”,&a);48、putchar()函数的功能是向终端输出() A. 多个字符 值 B. 一个字符 C. 一个实型变量D. 一个整型变量表达式49、以下程序段运行后的输出结果是() int k=11; printf(“k=%d,k=%o,k=%x\n”,k,k,k); A. k=11,k=13,k=c C. k=11,k=13,k=b B. k=11,k=12,k=13 D. k=11,k=13,k=a x=1234,y=123,z=12; 则 语 句50 、 若 有 定 义 : intprintf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为() A.
C. 34 B. 31212 D. 51、已有如下定义和输入语句,char c1,c2; scanf(&%d%c%c &,&a,&c1,&c2); 若要求 a、c1、c2 的值分别为 10、A 和 B,正确的数据 输入是() A. 10AB 10 AB8B. 10A BC. 10A BD. 52、以下程序段的运行结果是() int a=0,b=0,c=0; if(a&&++b) c++; printf(“%d,%d\n”,b,c); A. 0,0 B. 1,2 C. 2,2 D. 1,053、以下程序的运行结果是() void main() { int a=65; char c=?A?; printf(“%x,%d”,b,c); } A. 65,a B. 41,a C. 65,65 D. 41,6554、若已定义:int a=5;float b=63.72;以下语句中能输出正确 值的是() A. printf(“%d%d”,a,b); C. printf(“%2f%2f”,a,b); B. printf(“%d%2f”,a,b); D. printf(“%2f%d”,a,b);55、运行以下程序段时编译出错,其原因是() char c1='8',c2='2008'; printf(&%c,%d\n&,c1,c2); A. c2 是字符变量,只能赋以字符常量,不能赋以字符串常9 量 B. 字符串要用“2008“表示,而‘2008’不是字符串表示 C. ‘2008’只能赋值给字符数组 D. 字符变量不能用%d 格式输出 56、若已定义:int a=3,b=15,c;则语句 c=a&b;运行后 c 的值 为() A. 1 B. 0 C. t D. f57、在 C 语言中,判定逻辑值为“真“的最正确的叙述是() A. 1 非 0 的整数 58、若已定义:int a=-36,b=-30,c;则语句 c=a&b;运行后 c 的 值为() A. 1 B. t C. 0 D. f B. 非 0 的数 C. 大于 0 的数 D.59、能正确表示数学关系式 800&=y&=500 的 C 语言表达式 为() A. ( y&=800 ) &&(y&=500) AND(y&=500) C. 800&=y&=500 D. ( y&=800 ) B. ( y&=800 )&(y&=500) 60、若有定义:int x=3,y=4;则表达式!x||y 的值为() A. 1 B. 0 C. 3 D. 461、若有定义:int i=7,j=8;则表达式 i&=j||i&j 的值为()10 A. 1 值B. 变量 i 的值C. 0D. 变量 j 的62、若希望当 a 的值为奇数时,表达式的值为“真” 的值 ,a 为偶数时,表达式的值为”假”。则不能满足要求的表达式是 () A. a%2==1 D. a%2 63、若有定义:int x=3,y=4,z=5;则值为 0 的表达式是() A. ‘x’&&y C. x||y+z&&y-z B. x&=y D. !((x&y)&&!z||1) B. !(a%2==0) C. !(a%2)64、若有定义:int a=5,b=2,c=1;则表达式 a-b&c||b==c 的值 是() A. 0 B. 1 C. 3 D. -165、 语言中, C 能正确表示条件 10&x&20 的逻辑表达式是 () A. 10&x&20 D. (x&10)&&(x&20) 66、以下运算符中优先级最低的是() A. && B. & C. && D. | B. x&10||x&20 C. x&10&&&2067、已知 double a=5.2;则正确的赋值表达式是() A. a+=a-=(a=4)*(a=3) C. a%3 B. a=a*3=2 D. a=double(-2)68、已知 char a='R';则正确的赋值表达式是()11 A. a=(a++)%4 D. a=?\078?B. a+2=3C. a+=256--69、已知 int a=?R?;则正确的表达式是() A. a%10 a=a+a=a+3 70、设有语句 float x=3.0,y=3.0;使 x 值为 6.0 的表达式是() A. x*=y-4 B. x*=y C. x=y+4 D. x+=y B. a=int(3e2) C. 2*a=a++ D.71、 若有定义: float x=3.5,int z=8;则表达式 x+z%3/4 的值为 () A. 3。75 B. 3.5 C. 3 D. 472、设有语句 int x=3,y=3,a=1,b=2;表达式(x=a&b)&& (y=b&a)的值是() A. 8 B. 1 C. 5 D. 073、若有定义:int a=2,b=3;float x=3.5,y=2.5; 则表达式(float)(a+b)/2+(int)x%(int)y 的值是() A. 3.5 B. 3.0 C. 2.5 D. 2.074 、 若 有 定 义 : int b=7;float a=2.5,c=4.7; 则 表 达 式 a+(b/2*(int)(a+c)/2)%4 的值是() A. 2.5 B. 3.5 C. 4.5 D. 5.575、若有定义:int a=6,b=2;char c1=?a?,c2=?b?;则表达式 a+b%5+c2-c1 的值是() A. 7 B. 8 C. 9 D. 表达式错误12 76、在下列运算符中,优先级最高的运算符是() A. &= B. != C. ! D. ||77、设有定义:下列 各表达式的类型分别是() 1. u+9 2. D! =f&& (i+2) 3. 8.2*i+cA. 1. unsigned,2.int,3.double B. 1.double,2.double,3.double C. 1.int,2.double,3.char D. 1.unsigned,2.double,3.int控制结构 78、 以下程序段运行时, 若从键盘输入 10, 则输出结果是 () scanf(“%d”,&a); if(a++&10) printf(“%d\n”,a); else printf(“%d\n”,++a); A. 2 B. 11 C. 3 D. 1279、以下程序的运行结果是()13 void main() { int x,y=1,z; z=-1; if(z==0) z=-z; else x=y&0?3:5; printf(“%d\n”,x); } A. -1 B. 3 C. 1 D. 580 、 对 于 整 型 变 量 x, 下 属 if 语 句 ( ) 与 赋 值 语 句 : x=x%2==0?1:0;不等价。 A. if(x%2!=0) x=0;else x=1; C. if(x%2==0) x=1;else x=0; x=1; 81、以下程序段运行的结果是() int a,b,c,x; a=b=c=0;x=15; if(!a) x--; else if(b); if(c) x=3;14B. if(x%2) x=1;else x=0; D. if(x%2==1) x=0;else else x+=4; printf(&%d\n&,x); A. 15 B. 17 C. 18 D. 1982、若有定义:int a=1,b=2,c=3;则执行以下程序段后 a,b,c 的值分别为() if(a&b) {c=a;a=b;b=c;} A. a=1,b=2,c=3 B. a=2,b=3,c=1 C. a=2,b=3,c=3 D. a=2,b=1,c=1 83、以下程序段运行后变量 a 的值为() int x=6,y=5; a=(--x==y++)?x:y+1 A. 0 B. 1 C. 6 D. 584、以下程序的运行结果是() void main() { int n=?e?; switch(n--)15 { defalut:printf(“error ”); case ?a?: case ?b?:printf(“good”); case ?c?:printf(“pass”); case ?d?:printf(“warn”); } } A. error B. good C. error good D. warn85、以下程序的运行结果是() void main() { int n=?c?; switch(n++) { defalut:printf(“error”); case ?a?: case ?b?:printf(“good”); case ?c?:printf(“pass ”); case ?d?:printf(“warn”); } }16 A. passB. warnC. pass warnD. error86、以下程序的运行结果是() void main() { int n=5; if(n++&6) printf(“%d\n”,n); else printf(“%d\n”,++n); } A. 4 B. 5 C. 6 D. 787、下面关于 switch 语句的叙述中,错误的是() A. case 后面的表达式可以是关系表达式 B. switch 语句是多分支选择语句 C. 每一个 case 后面的值必须互不相同,否则会出现矛盾的 现象 D. 在执行一个 case 分支后,可用一个 break 语句使流程跳 出 switch 语句 88、若有定义:int a=1,b=2,c=3;则以下程序段运行后 c 的值 为() if(a&b) c=a*b;17 else c=a-b; A. 2 B. 0 C. 1 D. -189、若有定义:以下不会产生死循环的是() A. for(;(x=getchar())!=?\n?;); C. for(i=10;;i++); B. while(1){x++;} D. for(;;x+=1);90、在循环语句的循环体中,break 语句的作用是() A. 暂停程序的运行 B. 结束本次循环C. 继续执行 break 语句之后的循环体各语句 D. 提前结束循环,接着执行该循环后续的语句 91、以下程序段运行后,循环体中的“count+=2;”语句运行 的次数为() int i,j,cuont=0; for(i=1;i&=4;i++) { count+=2; printf(“%d”,count); } A. 4 次 B. 10 次 C. 16 次 D. 20 次92、 c 语言中 while 循环和 do-while 循环的主要区别是 在 () A. do-while 循环体内可以使用 break 语句,while 循环体内 不能使用 break 语句18 B. do-while 的循环体至少无条件执行一次,while 的循环体 不是 C. do-while 循环体可以使用 continue 语句,while 循环体内 不能使用 continue 语句 D. while 的循环体至少无条件执行一次,do-while 的循环体 不是 93、以下程序段运行后,循环体运行的次数为() int i=0,x; for(;i&10;i++) A. 10 B. 0 x=x+i; C. 1 D. 无限94、以下程序段运行后变量 n 的值为() int i=1,n=1; for(;i&3;i++) {n=n+i;} A. 4 B. 3 C. 2 D. 195、有以下程序: void main() { for(i=0;i&3;i++) switch(i) {19 case 1:printf(“%d”,i); case 2:printf(“%d”,i); case 3:printf(“%d”,i); } } 执行后输出的结果是() A. 11122 B. 01222 C. 013020 D. 12096、以下程序的运行结果是() void main() { int sum=0,item=0; while(item&5) { item++; sum+= if(sum&=6) } printf(“%d\n”,sum); } A. 10 B. 15 C. 6 D. 797、以下程序的运行结果是()20 voin main() { int sum=0,item=0; while(item&5) { item++; if(item==2) sum+= } printf(“%d\n”,sum); } A. 10 B. 13 C. 15 D. 198、以下程序段执行后变量 sum 的值为() int i,j=1,sum=0; for(i=1,i&=3,i++) { sum+=j; j++; } A. 5 B. 3 C. 6 D. 499、以下程序的运行结果是()21 #include&studio.h& main() { int y=10; do {y--;} while(--y); printf(&%d\n&,y--); } A. 1 B. 2 C. -1 D. 0数组 100、C 语言中数组元素下标的数据类型是() A. 实型常量 B. 整型常量或整型表达式 D. 字符型常量C. 任何类型的表达式101、下列数组定义中,正确的是() A. int a[10]; B. int n=10,a[n]; C. int N=10;int a[N]; D.scanf(“%d”,&n);int a[n]; 102、若已定义:int a[13];则不能正确引用 a 数组的元素的 是()22 A. a[0]B. a[10]C. a[10+3]D. a[13-5]103、若有定义:int a[3]={0,1,2};则 a[1]的值为() A. 0 B. 1 C. 2 D. 3104、若有定义:int a[5]={1,2,3,4,5}; 则语句 a[1]=a[2]+a[2+2]-a[3-1];运行后 a[1]的值为() A. 6 B. 5 C. 1 D. 2105、以下合法的数组定义是() A. int a[]=“string”; C. char a[]={0,1,2,3,4,5}; 106、若有如下程序段: char s[10]; s=“abcd”; printf(“%s\n”,s); 则() 。 A. 执行时输出:abcd C. 执行时输出:ab B. 执行时输出:a D. 编译不通过 B. int a[5]={0,1,2,3,4,5}; D. char s={“string”};107、下面程序段的运行结果是() int i=0,a[]={7,5,7,3,8,3}; do{ a[i]+=2; }while(a[++i]&5); for(i=0;i&6;i++)23 printf(&%d&,a[i]); A. 9 7 9 5 10 5 B. 9 5 9 3 10 3 C. 9 5 7 3 8 3 D. 7 5 7 3 8 3 108、下面程序段的运行结果是() int i=0,a[]={1,2,3,4,5}; do{ a[i]+=10; }while(a[++i]&2); for(i=0;i&5;i++) printf(&%d&,a[i]); A. 11 2 3 4 5 D. 11 12 3 4 5 109、西面关于数组的叙述中,正确的是() A. 数组必须先定义,然后使用 B. 定义数组时,可不加类型说明符 C. 定义数组后,可通过赋值运算符“=”对该数组名直接赋 值 D. 在数据类型中,数组属于基本类型 110、一下程序段的运行结果是() int i=0,a[]={6,5,3,7};24B. 1 2 3 4 5C. 11 12 13 14 15 do { a[i]++; }while(a[i]&4); for(i=0;i&4;i++) printf(&%d&,a[i]); A. 6537 B. 7563 C. 7537 D. 5673111、有如下程序段: int t[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; printf(&%d\n&,t[2][1]); 则执行该程序段后输出结果是() A. 8 B. 7 C. 4 D. 2112、以下程序段运行后 s 的值是() int a[3][3]={1,2,3,1,2,3,1,2,3}; int i,j,s=1; for(i=0;i&3;i++) for(j=i;j&3;j++) s*=a[i][j]; A. 18 B. 108 C. 2 D. 12113、以下不能对二维数组 arr 进行正确初始化的语句是() A. int arr[2][3]={0}; arr[][3]={1,2,3,4,5}; C. int arr[2][3]={{1,2},{3,4},{5,6}}; arr[2][3]={{1},{3,4,5}};25B. intD. int 114、若有定义:int a[3][4]={{1,2},{0},{1,2,3}};则 a[1][1]的值 为() A. 0 B. {1,2} C. 1 D. 3115、若有定义:int a[3][3];则表达式&a[2][1]-a 的值为() A. 7 B. 8 C. 6 D. 9116、若有定义:int i=0,x=0;int a[3][3]={1,2,3,4,5,6,7,8,9};则 以下程序段运行后 x 的值为() for(;i&3;i++) x+=a[i][2-i]; A. 0 B. 12 C. 15 D. 18117、若有定义 int a[2][3];则对数组元素的非法引用的是() A. a[0][1/2] a[0][3] 118、以下数组定义中,正确的是() A. int a[2][]={1,2,3,4,5}; C. int a[2][2]={{1,2},{3}}; B. int a[][2]={{0},{}}; D. int a[][]={1,2,3,4}; B. a[1][1] C. a[4-4][0] D.119 、 若 有 定 义 int a[][3]={1,2,3,4,5,6,7,8,9}; 则 表 达 式 sizeof(a)/sizeof(a[0])的值为() A. 3 B. 4 C. 5 D. 9120、以下程序段运行后 s 的值是() int a[3][3]={1,2,3,4,5,1,2,3,4}; int i,j,s=1; for(i=0;i&3;i++)26 for(j=i+1;j&3;j++) s*=a[i][j]; A. 6 B. 120 C. 24 D. 480121、设已定义:int a[][4]={0,0};则下列描述错误的是() A. 数组 a 的每个元素都可得到初值 0 的第一维大小为 1 C. 数组 a 的行数为 1 D. 只有元素 a[0][0]和 a[0][1]可得到初值 0,其余元素均得 不到初值 0 122、设已定义:char str1[10],str2[10]=”Fujian”;则能将字 符串”Fujian”赋给数组 str1 的正确语句是() A. str1=”Fujian” strcpy(str2,str1); B. strcpy(str1,str2); D. str1=str2; C. B. 二维数组 a123、有如下定义:char str[3][2]={ 'a','b','c','\0','e','f'};则语 句:printf(&%s&,str[0]);的输出结果是() A. ab B. abcef C. abc\0 D. abc124、设有如下数组定义:char str[8]={ &Fujian&};则分配给 数组 str 的存储空间是()字节 A. 6 B. 7 C. 8 D. 9125、若有定义:char a[]=&abcdef&;char b[]=&xyz&;则以下 程序段运行后屏幕输出为() strcpy(a,b);27 printf(&%c&,a[2]); A. c B. z C. \0 D. d126、以下程序段运行后屏幕输出为() char a[]=&abc\0mis&; printf(&%d&,strlen(a)); A. 5 B. 8 C. 3 D. 4127、若有定义:int a=2;则语句 a=strcmp(&miss&,&miss&); 运行后 a 的值为() A. 1 B. 0 C. -1 D. 2128、以下对 C 语言字符数组描述中,正确的是() A. 可以用 length 函数计算字符数组中字符串的长度 B. 可以在赋值语句中通过赋值运算符&=&对字符数组整体 赋值 C. 存放在字符数组中的字符串,以?\0?作为该字符串结束标 志 D. 字符数组只能存放字符串,不能存放字符 129、以下程序段运行后屏幕输出为() char str[80]; strcpy(str, &hello&); printf(&%d&,strlen(str)); A. 5 B. 6 C. 7 D. 80130、若有定义:char str1[6]= &abcdm&,*ps,*str2=&abcdef&;28 则()是正确的 A. strcpy(str1,str2); 大于 0 C. str1=str2; D. 表达式 strlen(str1)的值为 6 B. 表达式 strcmp(str1,str2)的值131、已有定义:char str1[15]={“university”},str2[15];则以 下语句中正确的是() A. str2=str1; scanf(“%s”,&str2); B. str2=”college”; D. printf(“%s”,str1); C.132、设已定义:char s1[20]=”You are”,s2[9]=”welcome!”; 若要形成字符串”You are welcome!”,正确的语句是() A. strcat(s1,s2); D. s1&s2 B. strcpy(s1,s2); C. s1+s2;函数 133、在 C 语言中,数组名作为函数调用的实参时,传递给 形参的是() A. 数组元素的个数 C. 数组中全部元素的值 B. 数组的第一个元素值 D. 数组的首地址134、以下程序的运行结果是() int fun(int array[4][4]) {29 for(j=0;j&4;j++) printf(&%2d &,array[2][j]); printf(&\n &); } main() { int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0}; fun(a); } A. 2 0 0 5 0 135、C 语言允许函数值类型缺省定义,此时该函数值隐含 的类型是() A. float 型 double 型 136、以下程序运行后屏幕输出为() #include&studio.h& int f(int x,int y) { return(x+y); } main() {30B. 1 0 0 4C. 0 1 2 0D. 0 4 5B. long 型C. int 型D. int a=2,b=3,c; c=f(a,b); printf(&%d+%d=%d\n &,a,b,c); } A. 0 B. 2+3=5 C. 2+3=0 D. 3+2=5137、以下程序运行后屏幕输出为() #include&stdio.h& int a=2,b=3; int max(int a,int b) { c=a&b?a:b; return(c); } main() { int a=4; printf(&%d &,max(a,b)); } A. 3,2 B. 2 C. 3 D. 4138、以下程序的运行结果是() fun(int i)31 { int a=2; a=i++; printf(&%d } main() { int a=5,c=3; fun(c); printf(&%d&,a); } A. 4 5 B. 3 5 C. 4 4 D. 3 3 &,a);139、若有如下函数定义: int fun() { static int k=0; return ++k; } 以下程序段运行后屏幕输出为() for(i=1;i&=5;i++) fun(); printf(&%d&,fun());32 A. 0B. 1C. 5D. 6140、下面程序的输出结果是:() #include&stdio.h& int global=100; fun() { int global=5; return ++ } void main() { printf(&%d\n&,fun()); } A. 100 B. 101 C. 5 D. 6141、下列关于 C 语言函数的描述中,正确的是() A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义和函数的调用都可以嵌套 D. 函数的定义和函数的调用都不可以嵌套 142、以下程序的运行结果是() fun(int x,int y) {33
z=(x&y)?(x+y):(x-y); return(z); } main() { int a=10,b=6; printf(&%d\n&,fun(a,b)); } A. 4 B. 6 C. 10 D. 6143、以下程序运行结果是() void main() { int min(float x,float y); float a=-7.9,b=-6.3; c=min(a,b); printf(&%d\n&,c); } int min(float x,float y) {34 if(x&y) z=y; else z=x; return(z); } A. -7.9 B. -7 C. -6.3 D. -6144、以下程序的运行结果是() #define M(a,b) a*b main() { int x=3,y=2,s1,s2; s1=M(x+y,x-y); s2=M(x-y,x+y); printf(&%d,%d\n&,s1,s2); } A. -1,7 B. 5,5 C. 7,-1 D. 5,-5145、以下叙述中,正确的是() A. “#define PRICE=30”定义了与 30 等价的符号常量 PRICE B. 预编译处理命令行都必须以“#”开头 C. 程序中使用带参的宏时,参数类型要与宏定义时一致 D. 宏名只能包含大写字母和数字字符 146、以下叙述中,正确的是()35 A. 宏展开不占用运行空间,只占用编译时间 B. 预编译处理命令行必须以分号结束 C. 一个源程序只能有一个预编译处理命令行 D. 使用带参数的宏定义时,应该说明每个参数的数据类型 147、以下的叙述中不正确的是() A. 宏展开不占用运行时间,只占用编译时间 名无类型 C. 宏名必须用大写字母表示 处理命令行都必须以#号开始 148、若有定义:#define PI 3,在表达式 PI*2*2 的值为() A. 12 B. 4 C. 3 D. 不确定 D. 预 B. 宏149、以下程序运行后,屏幕输出为() #define MIN(a,b) ((a)&(b)?(a):(b)) main() { int x=2,y=3,z; z=2*MIN(x,y); printf(&%d&,z); } A. 2 B. 3 C. 4 D. 6150、下列#include 命令中,正确的是() A. #inclue [string.h] B. #include {string.h}36 C. #include (string.h)D. #include&string.h&151、下面程序的输出结果是() #include&stdio.h& #define ONE 1 #define TWO ONE+1 #define THREE TWO+1 void main () { printf(&%d\n&,THREE-ONE); } A. 产生错误 B. 1 C. 2 D. 3152、以下叙述中正确的是() A. 预处理命令行必须位于 C 源程序的起始位置 B. 在 C 语言中,预处理命令行都以”#”开头 C. 每 个 C 程 序 必 须 在 开 头 包 含 预 处 理 命 令 行 : #include&stdio.h& D. C 语言的预处理只能实现宏定义和条件编译的功能 153、以下程序的运行结果是() #define ADD(x) x+x main() { int m=1,n=2,k;37 k=ADD(m+n)*3; printf(&%d&,k); } A. 9 B. 10 C. 12 D. 18154、下面程序的运行结果是() #define M 10 #define S(x) x*x #define F(x) (x*x) main() { int n1,n2; n1=1000/S(M); n2=1000/F(M); printf(&%d,%d\n&,n1,n2); } A. 10,10
B. 1000,10 C. 10,1000 D.指针 155、设有以下语句,则()是对 a 数组元素的不正确引用, 其中 0&=i&10。 int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;38 A. a[p-a] *(*(a+i))B. *(&a[i])C. p[i]D.156、若有定义 int *p1,*p2;则指针变量 p1、p2 不能进行运 算的是() A. & B. = C. + D. -157、以下关于指针概念的叙述中,错误的是() A. 一个指针变量只能指向同一类型的变量 量的地址称为该变量的指针 C. 两个同类型的指针变量可以作加减运算 D. 任何指针变量都可以与空指针 NULL 进行比较 158、以下程序段运行后*(p+3)的值为() char a[]=”good”; char *p; p=a; A. ?d? B. ?\0? C. 存放?d?的地址 D. ?0? B. 一个变159、以下程序段运行后*(++p)的值为() char a[5]=”work”; char *p; p=a; A. ?w? 放?o?的地址 160、若有定义:int *p,a=4;p=&a;则以下均代表地址的是()39B. 存放?w?的地址C. ?o?D. 存 A. a,pB. &a,pC. &a,*pD. a,*p161、若有说明语句:double *p,a;则能通过 scanf 语句正确 给输入项读入数据的程序段是() A. *p=&a;scanf(“%lf”,p); B.*p=&a;scanf(“%lf”,*p); C. p=&a,scanf(“%lf”,*p); D. p=&a;scanf(“%lf”,p);162、若已定义:int x=12;对①int *p=&x;和②*p=x;这两条 语句的正确理解是() A. 语句①是在对指针变量 p 定义时初始化,使 p 指向 x;而 语句②是将变量 x 的值赋给指针变量 p 所指向的变量 B. 语句①和②中的*p 含义相同,都表示给指针变量赋值 C. 语句①是在对指针变量 p 定义时初始化,使 p 指向 x;而 语句②是将变量 x 的值赋给指针变量 p D. 语句①和②的执行结果都是把变量 x 的地址赋给指针变 量p 163、下面语句正确的是() A. int *p;*p=20 B. char*s=”abcdef”;printf(“%s\n”,s); C. char str[]=”abcd”;str++; D. charstr[]={?a?,?b?,?c?};printf(“%s”,str); 164、若有定义 int a[2][3],*p=a;则以下不能表示数组元素 a[1][2]的是()40 A. *(a[1]+2) *(p+5)B. *(p[1]+2)C. p[5]D.165、若已定义:int a=5,*p;且 p=&a;则以下表示中不正确的 是() A. &(*p)==&a D. *(p++)==a++ 166、若有以下程序段,其中 0&=i&4,0&=j&3,则不能正确 访问 a 数组元素的是() int i,j,(*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p=a; A. *(*(a+i)+j) D. p[i]+j 167、以下程序段的运行结果是() int x[]={2,3,4,5,6,7},*p=x; int i,s=0; for(i=1;i&6;i++) s+=p[i++]; printf(&%d&,s); A. 12 B. 15 C. 25 D. 27 B. p[i][j] C. (*(p+i))[j] B. *(&a)==a C. &(*p)==p168、下面程序的运行结果是() main() {41 int x=36,y=63; int *p,*q,*t; p=&x;q=&y; t=p; p=q; q=t; printf(&%d,%d\n&,x,y); } A. 36,36 B. 63,63 C. 36,63 D. 63,36169、以下程序段运行后 x 的值为() int a[]={1,2,3,4,5,6,7}; int i,x,*p; x=1; p=&a[2]; for(i=0;i&3;i++) x*=*(p+i); A. 不确定 B. 24 C. 120 D. 60170、以下程序段运行后 x 的值为() int a[]={1,2,3},b[]={4,2,5}; int *p,*q; int i,x; p=a;q=b;42 for(i=0;i&3;i++) if(*(p+i)==*(q+i)) x=*(p+i)*2;A. 2B. 4C. 5D. 不确定171、以下程序运行结果是() main() { char a[]=&1357&,*p; for(p=a;p&a+4;p++) printf(&%s&,p); } A. 311 172、下面程序的输出结果是() #include&stdio.h& void main() { char *s=&abc&; for(i=0;i&3;i++) printf(&%s\n&,s+i);43B. C. 7531D. } A. abc bc c B. c bc abc C. abc c bc D. a ab abc 173、下面程序的输出结果是() #include&stdio.h& void main() { char *str=&12345&,*ps=str+4; printf(&%c\n&,ps[-4]); }A. 1B. 2C. 3D. 错误44 174、以下程序执行时,输入 1 2 3 4 5&回车&,输出为() #include&stdio.h& #define N 5 void main() { int a[N]; int *p=a; while(p&a+N) scanf(&%d&,p++); while(p&a) printf(&%d&,*(--p)); } A. 5 4 3 2 1 215 175.以下程序段的运行结果是() int x[]={2,3,4,5,6,7},*p=x; int i,s=0; for(i=1;i&6;i+=2)s+=*(p+i);3+5+7 printf(&%d&,s); A.27 B.25 C.12 D.15 176.以下程序运行结果() main()45B. 1 2 3 4 5C. 2 3 4 5 1D. 4 3 { int a[]={9,8,7,6,5,4},*p,*q,i; p=a;q=p+5; for(i=0;i&6;i++) printf(&%d%d&,*(p+i),*(q-i)); } A. D. 结构体和共用体 177.以下程序段的运行结果() union { char str[2]; }s; s.num=20; s.str[0]='A'; s.str[1]='\0'; printf(&%d&,s.num); A.20 B.65 C.0 D.A B.948576 C.495867178.定义一个结构体变量后,该变量所占内存大小是() A.结构体中第一个成员所需内存容量 B. 结 构 体 中 最 后 一46 个成员所需内存容量 C.结构体中各成员所需内存容量总和 内存容量最大者所需的容量 179.设有如下定义: union u_type { }a,b,c; 执行语句 a.x=8;a.y=7.5;a.m='N';b.x=9;后,共用体变量 a 中 的值为() A.9 B.'N' C.7.5 D.8 D. 结 构 体 成 员 中 占180.若有定义: struct teacher { char name[10];47 }teacher1; 则变量 teacher1 所占用的内存字节数是() A.5 B.14 C.19 D.20181.下列对结构体类型变量定义不正确的是() A.struct teacher { }teach1; B.struct { }teach1,teach2; C.struct { } struct teacher teach1; D.struct teacher {48
}; struct teacher teach1; 182.若有定义: struct teacher { }teacher1; 则下列叙述不正确的是() A.struct 是结构体类型的关键字 B.struct teacher 是用户定义的结构体类型 C.num,sex,age 都是结构体变量 teacher1 的成员 D.teacher1 是结构体类型名 183.以下程序的运行结果是() #include&stdio.h& union Utype {49 }u[2]; void main() { printf(&%d\n&,sizeof(u)); } A.2 B.4 C.6 D.8184.以下程序的运行结果是() #include&stdio.h& union Utype { }; struct { char ch[2]; union U }a; void main() { printf(&%d\n&,sizeof(a));50 } A.5 B.6 C.7 D.8185.以下 C 语言共用体类型数据的描述中,不正确的是() A.共用体变量占的内存大小等于所需内存最大的成员所占 的内存 B.共用体类型可以出现在结构体类型定义中 C.在定义共用体变量的同时允许对第一个成员的值进行初 始化 D.同一共用体各成员的首地址不相同 186.设有如下语句: struct student { }; struct student stu[3]={{101,18},{102,21},{103,19}}; struct student *p= 则下面表达式的值为 102 的是() A.(p++)-&num D.(*++p).num 187.根据下面定义,能打印出字母'H'的语句是() struct stu51B.(p++)-&ageC.(*p).age { char name[8]; }; struct stuclass[12]={&Wang&,16,&Zhang&,18,&Hon&,19,&Cheng&,20}; A.printf(&%c\n&,class[3].name); B.printf(&%c\n&,class[3].name[1]); C.printf(&%c\n&,class[2].name); D.printf(&%c\n&,class[2].name[0]); 链表 188.若有以下定义: struct link { struct link * }*p; 并已建立如下图所示的链表结构:pdatanextdatanext。。 。dataNULL指针 p 指向该单向链表的第一个结点,要输出链表所有结点 的数据成员 data,以下循环语句正确的是()52 A.for(;p!=NULL;p++)printf(&%d,&,p-&data); B.for(;!p;p=p-&next)printf(&%d,&,(*p).data); C.while(p) { printf(&%d,&,(*p).data); p=p-& } D.while(p!=NULL) { printf(&%d,&,p-&data); p++; } 189.若有以下定义: struct link { struct link * }a,b,c,*head,*p; 其中,指针 head 指向变量 a,p 指向变量 c,a.next 指向变量 b,链表结构如下图所示:53 a head data next datab NULL p datac next则能够把 c 插入到 a 和 b 之间并形成新链表的程序段是() A.a.next =c;c.next=b; B.head.next=p;p.next=head. C.head-&next=&c;p-&next=head-& D.(*head).next=p;(*p).next=&b; 190.若有以下定义: struct link { struct link * }*head,*p; 并已建立如下图所示的链表结构:pheaddatanextdatanext。。 。dataNULL则能保留链表其它结点, 而删除 p 所指向结点的程序段是 () A.head-&next=p-&free(p); B.head-&next=p;p-&next=head-&free(p); C.free(p);head-&next=p;p-&next=head-& D.free(p);head-&next=p-&54 191.若有以下定义: struct link { struct link * }*p,*q; 并已建立如下图所示的链表结构, 指针 p 和 q 分别指向如下 结点:pdatanextdataNULLqdatanext则不能将 q 所指向的结点连到上图所示链表末尾的一组语句 是() A.q-&next=NULL;p=p-&p-&next=q; B.p=p-&q-&next=p;p-&next=q; C.p=p-&q-&next=p-&p-&next=q; D.p=(*p).(*q).next=(*p).(*p).next=q; 192.若有定义: struct node {55
struct node * }; 及函数 void fun(struct node *head) { struct node * p= while(p) { printf(&%d &,p-&data); p=p-& } 则函数 fun()的功能是( ) 。 A.删除单向链表 B.显示单向链表中的所有数据 D.创建单向链表C.显示单向链表中的第一个数据 193.若有定义: struct node { struct node * };56 及函数: void fun(struct node *head) { struct node *p= while(p) { printf(&%d &,p-&data); p=p-& } } 调用时 head 是指向链表首结点的指针,整个链表的结构如 下图:25 47 13 NULLhead。。 。则函数 fun()的功能是() 。 A.删除单向链表 中的所有数据 C.显示单向链表中的第一个数据 D.创建单向链表 B.显 示 单 向 链 表194.若有如下定义,函数 fun 的功能是() 。其中 head 指向 链表首结点,整个链表结构如下图:57 headdatanextdatanext。。 。dataNULLstruct node { struct node * }; int fun(struct node *head) { int n=0; struct node *t= while(t!=NULL) { n++; t=t-& } } A.删除链表 head 中的所有结点 中结点的个数 C.插入一个元素到链表 head 中 head58B. 计 算 链 表 headD. 创 建 一 个 链 表 195.若有如下定义,函数 fun 的功能是() 。其中 head 指向 链表首结点,整个链表结构如下图:data next data next data NULLhead。。 。struct node { struct node * } void fun(struct node *head) { struct node *t= while(t!=NULL) { if(t-&data%2==0) printf(&%d &,t-&data); t=t-& } } A.遍历链表 head,输出表中值为偶数的元素 一个只有表头结点的链表 head C.删除链表 head 中的第一个结点 D.插入一59B.建立 个元素到链表 head 中 196.下面程序的输出结果是() 。 #include&stdio.h& #include&stdlib.h& typedef struct node { struct node * }N Node list[3]={{1,&list[1]},{2,&list[2]},{3,0}}; void print(Node *head) { Node *t= while(t!=NULL) { printf(&%d &,t-&data); t=t-& } } void main() { print(list);60 } A.1 2 3 B.0 1 2 C.0 1 3 D.2 3 0197.若有以下定义: struct link { struct node * }*head,*p;p 并已建立如下图所示的链表结构, 指针 p 和 q 分别指向图中所示结点:则不能将指针 q 所指的结点接到链表末尾的程序 段是() 。 A.q-&next=NULL;p=p-&p-&next=q; B.p=p-&q-&next=p-&p-&next=q; C.p=p-&q-&next=p;p-&next=q; D.p=(*p).(*q).next=(*p).(*p).next=q; 198.若有定义: struct link { struct link * }; int fun(struct link *head)61 { int s=0; struct link *t= while(t!=NULL) { s+=t-& t=t-& } } 调用 fun 函数时 head 是指向链表首结点的指针,整个链表 结构如下图:data next data next data NULLhead。。 。则函数 fun()的功能是() 。 A.遍历链表 head,计算表中各结点成员 data 的总和 B.计算链表 head 中结点的个数 C.输出链表 head 中各结点成员 data D.创建一个链表 head 枚举、自定义类型和位运算 199.对枚举类型进行定义,不正确的是() 。 A.enum b{1,2,3}; B.enum a{A,B,C};62 C.enum c{D=3,E,F};D.enum d{X=0,Y=5,Z=9};200.假定已有如下变量说明和枚举定义: int j,k; enum day{sun,mon,tue,wed,thu,fri,sat}; int a[sat]; 判断下列语句是否符合语法规则,结果是() 。 sun=0; /*语句 1*/ /*语句 2*/ /*语句 3*/ B.语句 2 正确,j=mon+if(a[mon]&0)j++;A.语句 1 错误,语句 2 和语句 3 正确 语句 1 和语句 3 错误 C.语句 3 正确,语句 1 和语句 2 错误 语句 2 和语句 3 错误 201.设有如下定义: typedef int * INTEGER; INTEGER p,*q; 则()是正确的叙述。 A.p 是 int 型变量D.语句 1 正确,B.q 是基类型为 int 的指针变量 D.程序中可用C.p 是基类 型 为 int 的指针 变量 INTEGER 代替 int 类型名202.在对无符号数的位运算中,操作数左移一位相当于() 。63 A.操作数除以 2 作数乘以 4B.操作数乘以 2C.操作数除以 4D. 操203.若有定义:int a=20,b=28,c;则执行语句 c=(a^b)&&2;后 c 的值为() 。 01
A.2 B.5 C.32 D.92204.若有定义:int a=5,b=7,c;则执行语句 c=a&b;后 c 的值为 () 。
A.12 B.2 C.6 D.5205.下面程序的输出结果为() 。 #include&stdio.h& void main() { enum Weekday{sun=7,mon=1,tue,wed,thu,fri,sat}; enum Weekday day= printf(&%d\n&,day); } A.7 B.6 C.5 D.4206.若有以下类型说明,叙述正确的是() 。 typedef struct64 { char * }STU,*PSTU; A.STU 是变量名 B.PSTU 是变量名 C.PSTU 是指向结构体类型 STU 的指针类型名 D.类型说明语句有错误 207.下面程序段的运行结果是() 。 int a=5,b=6; printf(&%d&,a|b); A.5 B.6 C.7 D.8208.若有以下类型说明,则()是正确的叙述。 typedef union { char str[2]; } A.sp 是一个共用体变量名 B.sp 是一个共用体类型名 C.union sp 是共用体类型名65 D.typedef union 是共用体类型名 209.定义枚举类型的关键字是() 。 A.define 文件 210.以下程序的功能是() 。 #include&stdio.h& main() { FILE * fp=fopen(&wj.txt&,&rb&); fseek(fp,0,SEEK_END); n=ftell(fp); fclose(fp); printf(&%ld&,n); } A.计算文件 wj.txt 的起始地址 的终止地址 C.计算文件 wj.txt 内容的字节数 到文件末尾 211.设有一文本文件 test.txt,其内容为&cprogram&(不包含 引号) ,以下程序段的运行结果是() 。66B.enumC.unionD.structB.计算文件 wj.txtD.将文件指针定位 FILE * char * if((fp=fopen(&test.txt&,&r&))!=NULL) str=fgets(str,5,fp); printf(&%s&,str); A.cpro B.cprog C.progr D.cprogram212.在 C 语言程序中,对文件操作的一般步骤是() 。 A.打开文件,定义文件指针,读写文件,关闭文件 B.定义文件指针,读文件,写文件,关闭文件 C.定义文件指针,打开文件,读写文件,关闭文件 D.操作文件,定义文件指针,修改文件,关闭文件 213.下面程序运行后的结果是() 。 #include&stdio.h& main() { FILE *int i=10,j=20,k,n; fp=fopen(&d_f.dat&,&w&); fprintf(fp,&%d\n&,i); fprintf(fp,&%d\n&,j); fclose(fp); fp=fopen(&d_f.dat&,&r&); fscanf(fp,&%d%d&,&k,&n);67 printf(&%d %d\n&,k,n); fclose(fp); } A.10 20 B.10 30 C.20 30 D.20 10214.以下程序运行后,屏幕显示 write ok!,下列说法正确的 是() 。 #include&stdio.h& main() { FILE * fp=fopen(&data.txt&,&wt&); if(fp!=NULL) { fprintf(fp,&%s\n&,&File write successed!\n&); fclose(fp); printf(&write ok!\n&); } } A.当前工作目录下存在 data.txt 文件,其中的内容为&write ok!& B.fclose(fp);语句的功能是打开文件 C.当前工作目录下一定不存在 data.txt 文件68 D.当前工作目录下一定存在 data.txt 文件 215.以下程序运行后,屏幕显示 File open error!,则可能的原 因是() 。 #include&stdio.h& main() { FILE * char str[256]; fp=fopen(&test.txt&,&rt&); if(fp==NULL) { printf(&File open error!&); } fscanf(fp,&%s&,str); fclose(fp); } A.当前工作目录下有 test.txt 文件,但 test.txt 文件太小 B.test.txt 文件不能关闭 C.当前工作目录下没有 test.txt 文件 D.当前工作目录下有 test.txt 文件,但 test.txt 文件太小 216.以下程序的可执行文件名为 cmdline.exe。69 #include&stdio.h& #include&stdlib.h& void main(int argc,char *argv[]) { if(argc!=2) { printf(&You forgot to type your name or you typed more parameters\n&); exit(1); } printf(&Hello %s\n&,argv[1]); } 在 DOS 命令行输入: cmdline harry&回车&,则输出结果是 。 () A.You forgot to type your name or you typed more parameters B.Hello harry C.Hello cmdline D.Hello 217.对下面程序正确的描述是() 。 #include&stdio.h& #include&stdlib.h& void main()70 { FILE *in,* if((in=fopen(&infile.txt&,&r&))==NULL) { printf(&cannot open infile\n&); exit(0); } if((out=fopen(&outfile.txt&,&w&))==NULL) { printf(&cannot open outfile\n&); exit(0); } while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out); } A.程序实现在屏幕上显示磁盘文件 infile.txt 的内容 B.程序实现将两个磁盘文件 infile.txt 和 outfile.txt 的内容合 二为一 C.程序实现将磁盘文件 infile.txt 复制到磁盘文件 outfile.txt D.程序实现将两个磁盘文件合并在屏幕上输出71 218.以下叙述中正确的是() 。 A.C 语言中的文件是流式文件,因此只能顺序存取数据 B.打开一个已有的文件进行了写操作后,原有文件中的全部 数据必定被覆盖 C.在一个程序中当对文件进行了写操作后,必须先关闭该文 件然后再打开,才能读到第 1 个数据 D.当对文件的写操作完成之后,必须将它关闭,否则可能导 致数据丢失 219.对下面程序正确的描述是() 。 #include&stdio.h& main() { FILE * if((fp=fopen(&test.txt&,&rb+&))!=NULL) {i=fgetc(fp);i=i+1;} fseek(fp,0,SEEK_SET); fputc(i,fp); fclose(fp); } A.将文件中第一个字节的内容加 1 并重新写入到第一个字节 B.将文件中第一个字节的内容加 1 并写入到第二个字节中72 C.以只读方式打开文本文件 test.txt D.以只读方式打开二进制文件 test.dat 220.若在 fopen 函数中使用文件的方式是&wb+&,该方式的 含义是() 。 A.为读/写打开一个文本文件 文件 C.为读/写建立一个新的文本文件 个新的二进制文件 D.为读/写建立一 B.为输出打开一个文本第二部分:改错题(每小题 10 分,2 小题/套) 说明如下: (1)修改程序中每对&/**/&之间存在的错误; (2)不得删改程序中的&/**/&注释和其它代码; (3)源程序均在考生文件夹中,务必以原文件名保存程序; (4)按 alt+tab 键, 切换考试程序与 Turbo C; alt+enter 键, 按 切换 Turbo C 窗口大小。 第1套 1.程序 Cmody011.c 的功能是:从字符串数组 str1 中取出 ACSII 码值为偶数且下标为偶数的字符依次存放到字符串 t 中。73 例如,若 str1 所指的字符串为:4AZ18c?Ge9a0z! 则 t 所指的字符为:4Z8z 注意:数组下标从 0 开始。 2.程序 Cmody012.c 中,函数 fun(int n)的功能是:根据参数 n, 计算大于 10 的最小 n 个能被 3 整除的正整数的倒数之和。 例如: -------------------------Cmody011.c------------------#include&math.h& #include&stdio.h& #include&string.h& #include&conio.h& void main() { char str1[100],t[200]; int i,j; /**/i=0;/**/ clrscr(); strcpy(str1,&4AZ18c?Ge9a0z!&); for(i=0;i&strlen(str1);i++) { /**/if((str1[i]%2==0)&&(i%2!=0))/**/ {74 t[j]=str1[i]; j++; } } t[j]='\0'; printf(&\nOriginal string:%s\n&,str1); printf(&\n Result string:%s\n&,t); } -------------------------Cmody012.c------------------#include&string.h& #include&conio.h& #include&math.h& #include&stdio.h& #define M 50 double fun(int n) { double y=0.0; int i,j; j=0; for(i=1;;i++) { /**/if((i&10)&&(i%3==0))/**/75 { /**/y+=1/i;/**/ j++; } if(j==n) } } void main() { clrscr(); printf(&fun(8)=%8.3lf\n&,fun(8)); } 第2套 1.程序 Cmody021.c 输出如下所示图形: * *** ***** ******* ********* 2.程序 Cmody022.c 的功能是求解百元买百鸡问题: 设一只公鸡 2 元、一只母鸡 1 元、一只小鸡 0.5 元。问一百76 元买一百只鸡,公鸡、母鸡、小鸡数可分别为多少?有多少 种分配方案? -------------------------Cmody021.c------------------#include&stdio.h& void main() { /**/j;/**/ for(i=1;i&=5;i++) { for(j=1;j&=5-i;j++)printf(& &); /**/ for(j=1;j&=5;j++)/**/printf(&*&); printf(&\n&); } } -------------------------Cmody022.c------------------#include&stdio.h& #include&conio.h& /**/int fun();/**/ { int hen,cock,chicken,n=0; clrscr();77 for(cock=0;cock&=50;cock+=1) for(hen=0;hen&=100;hen=hen+1) { chicken=2*(100-hen-2*cock); /**/if(cock+hen+chicken=100)/**/ { n++; printf(&%d--&hen:%d,cock:%d,chicken:%d\n&,n,hen,cock, chicken); if(n==20)getch(); } } } void main() { num=fun(); printf(&\nThere are %d solutions.\n&,num); getch(); } 第3套78 1.程序 Cmody031.c 的功能是:从键盘上输入两个整数,及 一个运算符(+、-、*、/或%),进行相应的运算后输出运算的 结果。 如输入:1+2 将输出:1+2=3 2.程序 Cmody032.c 的功能是: 输出 201-300 之间的所有素数, 统计总个数。 -------------------------Cmody031.c------------------#include&stdio.h& #include&conio.h& void main() { int m,n,result,flag=0; /**/char ch,/**/ clrscr(); printf(&Input an expression:&); scanf(&%d%c%d&,&m,&ch,&n); /**/switch ch/**/ { case '+':result=m+n; case '-':result=m-n; case '*':result=m*n;79 case '%':result=m%n; case '/':result=m/n; default:{printf(&Error!\n&);flag=1;} } if(!flag)printf(&%d%c%d=%d\n&,m,ch,n,result); getch(); } -------------------------Cmody032.c------------------#include&stdio.h& #include&math.h& void main() { printf(&\n&); num=fun(); printf(&\nThe total of prime is %d&,num); getch(); } int fun() { int m,i,k,n=0; for(m=201;m&=300;m++)80 { k=sqrt(m+1); for(i=2;i&=k;i++) /**/if(m/i==0)/**/ /**/if(i==k)/**/ { printf(&%-4d&,m); n++; if(n%10==0)printf(&\n&); } } } 第四套 1.程序 Cmody041.c, 其功能是统计输入字符串中小写英文字 母的个数。 如 输入:abcdEFGHIJK123 输出:4 2.程序 Cmody042.c,其功能是将从键盘依次输入的 M 个整 数逆序输出。 -------------------------Cmody041.c------------------81 #include&stdio.h& #include&string.h& main() { char str1[128]; /**/len,sum=0;/**/ gets(str1); len=strlen(str1); for(i=0;i&i++) { /**/if(str1[i]&='a'||str1[i]&='z')/**/ sum++; } printf(&%d\n&,sum); getch(); } -------------------------Cmody042.c------------------#include&stdio.h& #include&math.h& #define M 8 main() {82 int a[M],i; printf(&Please input 8 numbers:\n&); for(i=0;i&M;i++) scanf(&%d&,/**/a[i]/**/); printf(&Inverge order is:\n&); /**/for(i=M-1;i&=0;i--)/**/ printf(&%d &,a[i]); printf(&\n&); getch(); } 第5套 1.程序 Cmody051.c, 其功能是统计输入字符串中大写英文字 母的个数。 如 输入:abcDEFGH123 输出:5 2.程序 Cmody052.c,其功能是实现从键盘依次输入 M 个整 数,输出其中所有的偶数。 如 输入:23 62 38 45 26 输出:62 38 26 -------------------------Cmody051.c------------------#include&stdio.h& #include&string.h&83 main() { /**/char str1/**/ int i,len,sum=0; printf(&Please input a string:\n&); scanf(&%s&,str1); len=strlen(str1); for(i=0;i&i++) { if(str1[i]&='A'&&str1[i]&='Z') /**/sum--;/**/ } printf(&%d\n&,sum); getch(); } -------------------------Cmody052.c------------------#include&stdio.h& #include&math.h& /**/#include M 5/**/ main() { int a[M],i;84 printf(&Please input 5 numbers:\n&); for(i=0;i&M;i++) scanf(&%d&,&a[i]); printf(&Even numbers:\n&); for(i=0;i&M;i++) /**/if(a[i]/2==0)/**/ printf(&%d &,a[i]); printf(&\n&); getch(); } 第6套 1.程序 Cmody061.c,其功能是将字符串中'0'-'8'的数字字符 变为比它大 1 的数字字符,将'9'变为'0'。 如 输入:abc12cd56EF89GH4 输出:abc23cd67EF90GH5 2. 程 序 Cmody062.c , 其 功 能 是 将 程 序 中 的 两 个 字 符 串 &ABC&、&xyz&连接在一起,并输出&ABCxyz&。 -------------------------Cmody061.c------------------#include&stdio.h& #include&string.h& main() {85 char str1[128],str2[128]; int i, gets(str1); len=strlen(str1); /**/for(i=0;i&i++)/**/ { if(str1[i]&='0'&&str1[i]&='8') str2[i]=str1[i]+1; else if(str1[i]=='9') str2[i]='0'; else str2[i]=str1[i]; } /**/str2[i]='\n';/**/ puts(str2); getch(); } -------------------------Cmody062.c------------------#include&stdio.h& #include&string.h& void main() { char s1[12]=&ABC&,s2[]=&xyz&;86 char *ps1=s1,*ps2; /**/ps2=NULL;/**/ /**/while(*ps1==NULL)/**/ ps1++; while(*ps2)*(ps1++)=*(ps2++); printf(&%s\n&,s1); getch(); } 第7套 1.程序 Cmody071.c,其功能是从键盘输入三角形的三边长, 求其面积,若三个边长不能构成三角形,则提示。 如 输入:6 9 11 输出:26.98 2.程序 Cmody072.c,其功能是求解百马百担问题。 有 100 匹马,驮 100 担货,大马驮 3 担,中马驮 2 担,两匹 小马驮 1 担,问大、中、小马数可分别为多少?有多少种解 决方案? -------------------------Cmody071.c------------------#include&stdio.h& #include&math.h& void main() {87 float a[3],s, printf(&Please input 3 numbers:\n&); for(i=0;i&3;i++) scanf(&%f&,/**/a[i]/**/); /**/if(a[0]+a[1]&a[2]||a[1]+a[2]&a[0]||a[0]+a[2]&a[1])/**/ { s=(a[0]+a[1]+a[2])/2; area=sqrt(s*(s-a[0])*(s-a[1])*(s-a[2])); printf(&area is %.2f\n&,area); } else printf(&error.\n&); getch(); } -------------------------Cmody072.c------------------#include&stdio.h& #include&conio.h& /**/void fun()/**/ { int large,middle,small,n=0; clrscr();88 for(large=0;large&=33;large++) for(middle=0;middle&=50;middle++) { small=2*(100-3*large-2*middle); /**/if(large+middle+small=100)/**/ { n++; printf(&%d--&large:%d,middle:%d,small:%d\n&,n,large,mi ddle,small); } } } void main() { num=fun(); printf(&\nThere are %d solutions.\n&,num); getch(); } 第8套 1.程序 Cmody081.c, 其功能是求一堆零件的总数 (100 到 20089 之间) 。 如果分成 4 个零件一组的若干组,则多 2 个零件;若分成 7 个零件一组,则多 3 个零件;若分成 9 个零件一组,则多 5 个零件。 2.程序 Cmody082.c,其功能是交换连个变量的值。 如 输入:Original:a=2 b=3 输出:Result:a=3 b=2 -------------------------Cmody081.c------------------#include&stdio.h& void main() { /**/for(i=100;i&200;i++);/**/ if((i-2)%4==0) if(!((i-3)%7)) if(i%9==5) printf(&%d\n&,/**/&i/**/); getch(); } -------------------------Cmody082.c------------------#include&stdio.h& /**/void swap(int p1,int p2) /**/90 { temp=*p1; /**/p1=p2;/**/ *p2= } void main() { int a,b; printf(&please input 2 numbers:\n&); scanf(&%d%d&,&a,&b); printf(&\nOriginal:a=%d b=%d\n&,a,b); swap(&a,&b); printf(&\nResult:a=%d b=%d\n&,a,b); getch(); }第9套 1.程序 Cmody091.C,其功能是计算 1 至 100 之间的奇数之 和,偶数之和。 2.程序 Cmody092.C 的功能是求满足等式 xyz+yzz=520 的 x,y,z 值(其中 xyz 和 yzz 分别表示一个三位数) 。91 -------Cmody091.C-------------------------------------------------------------------------#include&stdio.h& void main() { int b,i; /**/int a=c=0; /**//**/for(i=0,i&=100,i+=2)/**/ { a+=i; b=i+1; c+=b; } printf(&total of even numbers:%d\n&,a); printf(&total of odd numbers:%d\n&,c-101); getch(); } -------Cmody092.C-------------------------------------------------------------------------#include&stdio.h& void main() {92 int x,y,z,i,result=520; for(x=1;x&10;x++) for(y=1;y&10;y++) /**/for(z=1;z&10;z++)/**/ { i=100*x+10*y+z+100*y+10*z+z; /**/if(i=result) /**/ printf(&x=%d,y=%d,x=%d\n&,x,y,z); } getch(); }第 10 套 1.程序 Cmody101.c,其功能是计算如下所示的数学表达式:s? a ? 2 .3 a ? 5 .62a ? 8 .2?b ? 2 .3b ? 5 .62b ? 8 .2?c ? 2 .3 c ? 5 .62c ? 8 .22.程序 Cmody102.c,其功能是实现打印出所有的“水仙花 数” 。所谓“水仙花数”是指一个三位数,其各位数字立方 和 等 于 该 数 本 身 。 例 如 , 153 是 一 个 水 仙 花 数 , 因 为 153=13+53+33。 -------Cmody101.C-------------------------------------------------------------------------#include&stdio.h&93 #define F(x) (x*x-2.3*x+5.6)/(x+8.2) void main() { float a=6.0,b=3.0,c; /**//**/ printf(&\nPlease input c: &); scanf(&%f&,/**/c/**/); /**/ s=F(a,b,c); /**/printf(&\ns=%.2f\n,s&); getch(); } -------Cmody102.C-------------------------------------------------------------------------void main() { int f,s,t,n; printf(&\nThe list is:\n&); for(n=100;n&1000;n++) { f=n%10; s=(n%100)/10; /**/t=n%100;/**/94 /**/if(t*t*t+s*s*s+f*f*f=n)/**/ printf(&%d } printf(&\n&); getch(); } &,n);第 11 套 1.程序 Cmody111.C,输出如下所示图形: @ @@ @@@ @@@@ @@@@@ @@@@@@ 2.程序 Cmody112.C,实现输出如下所示的 4×4 的矩阵: 1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13-------Cmody111.C-------------------------------------------------------------------------95 #include&stdio.h& #include&conio.h& void main() { /**/j; /**/ /**/for(i=6;i&1;i--)/**/ { printf(&@&); for(j=1;j&=6-i;j++) printf(&@&); printf(/**/&\r&/**/); } getch(); } -------Cmody112.C-------------------------------------------------------------------------#include&stdio.h& #define N 5 void fun(int a[N][N]) { int i,j; for(i=0;i&N;i++)96 for(j=0;j&N;j++) if(i%2==0) /**/ a[i][j]=i;/* */ else a[i][j]=i*N+N-j;for(i=0;i&N;i++) { for(j=0;j&N;j++) printf(&%3d&,a[i][j]); printf(&\n&); } } main() { /**/a[N,N];/* */ fun(a); getch(); }程序填空题 第1套 1.补充程序 Ccon011.C,使其计算 f ( x ) ?x ?2 x ?12。97 -------Ccon011.C-------------------------------------------------------------------------#include &stdio.h& #include &math.h& void main() { /**/ /**/printf(&Input an integer: &); scanf(&%d&,&x); f = /**/ printf(&F(x)=%f\n&,f); } 2. 补 充 程 序? ? 4? 1? ( 1 3 ? 1 5 ? 1 7 ?? ?/**/ ;Ccon012.C , 该 程 序 中 用 公 式1 10001 )计算圆周率的近似值。-------Ccon012.C-------------------------------------------------------------------------#include &stdio.h& void main() { double pi=0; long i, sign=1; for(i=1;i&=10001;i+=2)98 { pi+=1.0*sign/i; sign=/**/ } pi*=/**/ /**/; /**/;printf(&%f\n&,pi); }3. 补充程序 Ccon013.c,程序实现从 10 个数中找出最大值和 最小值。 -------Ccon013.C-------------------------------------------------------------------------#include &stdio.h& #include &stdlib.h& int max, void find_max_min(int *p,int n) { int *q; max=min=*p; for(q=p; q&/**/ if(/**/ /**/; q++) /**/ ) max=*q;else if(min&*q) min=*q;99 } void main() { int i,num[10]; printf(&Input 10 numbers: &); for(i=0;i&10;i++) scanf(&%d&,&num[i]); find_max_min(/**/ /**/,10);printf(&max=%d,min=%d\n&,max,min); }第2套 1.补充程序 Ccon021.C,使其满足下式的一位整数 A 和 B 的 值。-------Ccon021.C-------------------------------------------------------------------------#include &stdio.h& void main() { int a,b,k; int plu = /**/ /**/100 for(a=1; a&10; a++) for(b=1; b&10; b++) { k = (a*10+b) * /**/ /**/ ;if(k==plu) printf(&A = %d, B = %d\n&,a,b); } } 2.补充程序 Ccon022.C,使其实现输入若干整数,统计其中 大于零和小于零的个数,输入零结束。 -------Ccon022.C-------------------------------------------------------------------------#include &stdio.h& void main() { int n,a,b; /**/ /**/scanf(&%d&,&n); while(/**/ { if(n&0) a++; else /**/ scanf(&%d&,&n);101/**/)/**/ } printf(&Positive integer: %d, negative integer: %d\n&,a,b); } 3.补充程序 Ccon023.c,该程序可测试歌德巴赫猜想:从键 盘上输入一个大于 6 的偶数,总能找到两个素数,使得这两 个素数之和正好等于该偶数。 -------Ccon023.C-------------------------------------------------------------------------#include &stdio.h& #include &conio.h& int prime(int n) { int k,flag=1; for(k=2; k&=n/2+1; k++) if (n%k==0) { flag=/**/ } void main() { int num, clrscr(); do { printf(&Please input an even number:&); scanf(&%d&, &num);102/**/ ;} }while(num&=6||num%2==1); for(a=2;a&=num/2+1;a++) if(prime(a) && prime(/**/ /**/))printf(&\n %d = %d + %d &, num, a, num-a); }第3套 1. 补 充 程 序 Ccon031.C , 使 其 用 牛 顿 迭 代 法 求 方 程 2x3-4x2+3x-6=0 在 1.5 附近的根。 -------Ccon031.C-------------------------------------------------------------------------#include &stdio.h& #include &math.h& /**/ { float x,x0,f,f1; x=1.5; do { x0=x; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x=x0-f/f1; }/**/ /**/(fabs(x-x0)&=1e-6);103/**/ printf(&the root is: %.2f\n&,x); } 2.补充程序 Ccon032.C,该程序的功能是输出的一行字符中 的大写字母转变为相应的小写字母,小写字母则转变为相应 的大写字母,其余字符不变。 -------Ccon032.C-------------------------------------------------------------------------#include &stdio.h& void main() { char s[80]; printf(&Please input a string: &); for(i=0;((s[i]=getchar())!='\n')&&(i&80);i++); s[i]='\0'; for(i=0;s[i]!='\0';/**/ { if(s[i]&='a'&&s[i]&='z') s[i]=s[i]-32; else if(/**/ s[i]=s[i]+32; printf(&%c&,s[i]); }104/**/)/**/) } 3.补充程序 Ccon033.c,其中 main 函数通过调用 average 函 数计算数组元素的平均值。 -------Ccon033.C-------------------------------------------------------------------------#include &stdio.h& float average(int *pa,int n) { /**/ for(k=0;k&n;k++) avg = avg+/**/ avg = avg/n; } void main() { int a[5]={20,30,45,64,23}; m=average(/**/ /**/, 5); /**/; /**/printf(&Average=%f\n&,m); }105 第4套 1.补充程序 Ccon041.C,使其实现从键盘输入一个同学的姓 名 “Jack”, (如 ) 输出问候该同学的信息 “Hello, (如 Jack!) ”。 -------Ccon041.C-------------------------------------------------------------------------/**/ main() { /**/ /**/ str[11]; /**/ &stdio.h&printf(&Please input a name:\n&); scanf(&%s&,str); printf(&Hello,%s!\n&,str); getch(); } 2.补充程序 Ccon042.C, 使程序中的 sort()函数用冒泡法对数 组 a 中的 m 个元素从大到小排序。 -------Ccon042.C-------------------------------------------------------------------------#include&stdio.h& #include&math.h& void sort(int a[],int m) { int i,j,t,106 for(i=0;i&/**/ { swap=0; for(j=0;j&m-i-1;j++) { if/**/ { swap=1; t=a[j]; a[j]=/**/ a[j+1]=t; } } if (!swap) } } void main() {/**/;i++)/**//**/;int a[]={23,55,8,32,18,2,9}; int i,k=sizeof(a)/sizeof(int); sort(a,k); for(i=0;i&k;i++)107 printf(&%d printf(&\n&); getch(); }&,a[i]);3.补充程序 Ccon043.C,使程序中的 fun()函数能用勾股定理 判断一个三角形是否为直角三角形,即输入一个三角形的三 边长 a, c。 b, 若能构成直角三角形则返回 1, 不能则返回 0。 -------Ccon043.C-------------------------------------------------------------------------#include &stdio.h& #include &math.h& int fun(/**/ { int bTrue=0; if(a&b) {temp=a; a=b; b= } if(a&c) {temp=a;108/**/) a=c; c= } if(fabs(/**/ bTrue=1; return } main() { float a,b,c; printf(&Please input three numbers:\n&); scanf(&%f%f%f&,&a,&b,&c); if(fun(a,b,c)==1) printf(&Yes\n&); else printf(&No\n&); getch(); } 第5套 1.补充程序 Ccon051.C,使其实现从键盘输入一个整数,输 出该数的平方。 -------Ccon051.C-------------------------------------------------------109/**/-(b*b+c*c))&1.0e-15)bT ------------------#include &stdio.h& main() { printf(&Please input a number:\n&); scanf(&%d&,/**/ /**/); /**/);printf(&%d*%d=%d\n&,x,x,/**/ getch(); }2.补充程序 Ccon052.C, 使程序中的 sort()函数用选择法对数 组 a 中的 m 个元素从大到小排序。 -------Ccon052.C-------------------------------------------------------------------------#include&stdio.h& #include&math.h& void sort(int a[],int m) { int i,j,k,t; for(i=0;i&m-1;i++) { k=i; for(j=i+1;j&/**/ /**/;j++)110 if(a[j]&a[k]) if(k!=i) { t=a[k]; a[k]=a[i]; a[i]=/**/ } } } void main() {/**//**/;/**/;int a[]={72,25,58,32,2,15,7,64}; int i,m=sizeof(a)/sizeof(int); sort(a,m); for(i=0;i&m;i++) printf(&%d printf(&\n&); getch(); } 3.补充程序 Ccon053.C,使程序中的 fun()函数能三角形三边 长 a,b,c,用公式s ( s ? a )( s ? b )( s ? c )&,a[i]);, s ? ( a ? b ? c ) / 2 计算这个三角形的面积 (规定: 若这三条边不能构成三角形, 返回-1) 。 -------Ccon053.C-------------------------------------------------------111 ------------------#include &stdio.h& #include &math.h& /**/ { float s, s=/**/ s=s*(s-a)*(s-b)*(s-c); if (s&0) area=-1; else area=sqrt(s); return } main() { float a,b,c, printf(&Please input three numbers:\n&); scanf(&%f%f%f&,&a,&b,&c); area=fun(a,b,c); printf(&Area is:%.2f\n&,area); getch();112/**/ fun(float a,float b,float c)/**/; } 第6套 1.补充程序 Ccon061.C,使其从键盘输入一个 4 行 4 列的二 维整型数组表示 4×4 阶矩阵,并计算第 1 列元素之和。 如 5 9 13 输入:1 6 10 14 7 11 15 8 12 16 2 3 4输出:28 -------Ccon061.C-------------------------------------------------------------------------#include &stdio.h& #include &math.h& main() { int i,/**/ /**/;int a[4][4], sum=/**/ /**/;printf(&Please input 16 numbers:\n&); for(i=0;i&4;i++) for(j=0;j&4;j++) scanf(&%d&,&a[i][j]);113 for(i=0;i&4;i++) /**/ printf(&%d\n&,sum); getch(); } 2.补充程序 Ccon062.C,使程序中的 fun()函数用二分法在按 从小到大排好序的数组 a 中查找 q,若找到第一个 q 则返回 对应的下标,没找到返回-1。 -------Ccon062.C-------------------------------------------------------------------------#include &stdio.h& int fun(int a[],int n,/**/ { int left,right, left=0; right=n-1; while(left&=right) { mid=/**/ if(q&a[mid]) right=mid-1; else if(q&a[mid]) left=mid+1; }114/**//**/)/**/; return -1; } main() {int a[]={3,4,6,11,17,22,31,45}; int k,n; n=sizeof(a)/sizeof(int); k=fun(a,n,31); printf(&%d\n&,k); getch();3.补充程序 Ccon063.C,使其中的 fun()函数判断输入的一个 点(x,y)是否位于坐标在原点,半径为 r(r&0)的圆内。 -------Ccon063.C-------------------------------------------------------------------------#include &stdio.h& #include &math.h& int fun(/**/ { int bIn; bIn=/**/ return bIn; }115/**/,float x,float y)/**/&r; main() { float r=-1,x,y; int bIn; while(r&0) { printf(&Please input radius r(r&0):\n&); scanf(&%f&,&r); } printf(&Please input three dot(x,y):\n&); scanf(&%f%f&,&x,&y); bIn=fun(r,x,y); if(bIn==1) printf(&in the circle!\n&); else printf(&out of the circle!\n&); getch(); } 第7套 1.补充程序 Ccon071.C,对函数f ( x ? 8)f (x) ? x ? 2 x ? 62,分别计算和 f (sinx)的值。如 x=2.0,则输出:f ( x ? 8 ) ? 86.000 f (sin x ) ? 5.008116 -------Ccon071.C-------------------------------------------------------------------------#include &stdio.h& /**/ /**/double fun(double x) { /**/ } main() { double x,y1,y2; clrscr(); printf(&Please input x:&); scanf(&%lf&,&x); y1=fun(x+8); y2=fun(/**/ /**/); /**/printf(&\nf(x+8)=%.3lf&,y1); printf(&\nf(sinx)=%.3lf&,y2); getch(); } 2.补充程序 Ccon072.C,计算 p ? 且m ? n ? 0 。117m! n ! ( m ? n )!,其中 m,n 为整数 -------Ccon072.C-------------------------------------------------------------------------#include &stdio.h& double fun(unsigned m,unsigned n) { double p=1.0; for(i=1;i&=m;i++) /**/ /**/for(i=1;i&=n;i++) /**/ /**/for(i=1;i&=m-n;i++) p=p/i; } void main() { clrscr(); printf(&p=%f\n&,fun(13,7)); getch(); } 3.补充程序 Ccon073.C,函数 findmax 返回数组中的最大元118 素。 -------Ccon073.C-------------------------------------------------------------------------#include &stdio.h& int findmax(int* array,int size);void main() { int a[]={33,91,23,45,56,-12,32,12,5,90}; clrscr(); printf(&The max is %d\n&,/**/ getch(); } int findmax(int *array,int size) { int i,/**/ for(i=1;i&i++) if(array[i]&max) } 第8套 1.补充程序 Ccon081.C,根据输入的整数 m(m&=0)值,计算119/**/);/**/;max=array[i]; ?i。i ?1m-------Ccon081.C-------------------------------------------------------------------------#include&stdio.h& unsigned sum(unsigned n) { unsigned i,/**/ for(i=1;i&=n;i++) sum+=i; /**/ } void main() { clrscr(); printf(&Please input a unsigned integer:&); scanf(&%d&,&m); while(m&0){ printf(&Please input a unsigned integer:&); scanf(&%d,&m&); } printf(&\nThe sum is %d\n&,/**/ /**/);120/**//**/ getch(); } 2.补充程序 Ccon082.C, 使其实现将一个字符串 str 的内容反 向存储。 -------Ccon082.C-------------------------------------------------------------------------#include&stdio.h& #include&string.h& void main() { int i,j; char str[]=&1234567&,/**/ for(i=0,/**/ { k=str[i]; str[i]=str[j]; str[j]=k; } clrscr(); printf(&%s\n&,str); getch(); }121/**/; /**/;i&j;i++,j--) 3.补充程序 Ccon083.C,实现将结构体数组 mystudent 中存 储的各学生信息按其学号的升序排列。 -------Ccon083.C-------------------------------------------------------------------------#include&stdio.h& #include&string.h& typedef struct{ char name[20],sex[2]; int age, }STU; STU mystudent[]={{1111,&Zhangqiang&,&m&,20,80}, {2104,&Liminghong&,&w&,18,82}, {3121,&Wangxingda&,&m&,21,78}, {4118,&Liushaotao&,&m&,20,90}, {1456,&Wuminghong&,&w&,35,86} }; void sort(STU *ps,int size) { int i,flag, /**/ /**/122 for(pass=1;pass&pass++) { flag=0; for(i=0;i&size-i++) if(/**/ { flag+=1; temp=ps[i];ps[i]=ps[i+1];ps[i+1]= } if(/**/ } } void main() { int i,size=sizeof(mystudent)/sizeof(STU); clrscr(); printf(&Students\'information before sort:\n\n&); printf(&Number score\n\n&); for(i=0;i&i++) printf(&%-7d%s%10d\t%s%8d\n&,(mystudent+i)-&num, (mystudent+i)-&name,(mystudent+i)-&age,123/**/)/**/)NameageSex (mystudent+i)-&sex,(mystudent+i)-&score); sort(mystudent,size); printf(&\nStudents\'information after sort:\n\n&); printf(&Number score\n\n&); for(i=0;i&i++) printf(&%-7d%s%10d\t%s%8d\n&,(mystudent+i)-&num, (mystudent+i)-&name,(mystudent+i)-&age, (mystudent+i)-&sex,(mystudent+i)-&score); getch(); } 第9套 1.补充程序 Ccon091.C,输入一个 3 行 3 列的整型数组,求 其最大值和最小值。 如输入:1 4 7 5 8 6 9 2 3 Name age Sex输出:max=9 min=1 -------Ccon091.C-------------------------------------------------------------------------#include&stdio.h&124 #define ROW 3 #define COL 3 void main() { int a[ROW][COL],i,j,max, clrscr(); printf(&Please input the 9 integers:\n&); for(i=0;i&ROW;i++) for(j=0;j&COL;j++) scanf(&%d&,&a[i][j]); /**/ for(i=0;i&ROW;i++) for(j=0;j&COL;j++) { if(/**/ max=a[i][j]; if(a[i][j]&min) /**/ } printf(&max=%d\n&,max); printf(&min=%d\n&,min); getch();125/**//**/)/**/ } 2.补充程序 Ccon092.C,计算 s=1+12+123+。 -------Ccon092.C-------------------------------------------------------------------------#define N 5 #include&stdio.h& void main() { int t=0,/**/ for(i=1;i&=N;i++) { t=/**/ s+=t; } clrscr(); printf(&\ns=%d\n&,s); getch(); } 3.补充程序 Ccon093.C,输出 Fibonacci 数列的前 15 项。 Fibonacci 数列的计算方法是: fib(n)=1 (n=1,2) (n&=3)126/**/,i;/**/;fib(n)=fib(n-1)+fib(n-2) -------Ccon093.C-------------------------------------------------------------------------#include&stdio.h& long fib(int n); void main() { clrscr(); printf(&The first 15 data of Fibonacci is:\n\n&); for(k=1;k&=15;k++) printf(&%d&,fib(k)); printf(&\n&); getch(); } long fib(int n) { if(n==1||n==2) /**/ else return /**/ } 第 10 套127/**//**/; 1.补充程序 Ccon0110.C, 该程序的功能是计算三个学生的总 成绩和平均成绩,其中三个学生的成绩存储在一个结构体数 组中。 -------Ccon0110.C-------------------------------------------------------------------------#include&stdio.h& main() { struct stu { char name[10]; }; /**/ stu[3]={&Mary&,76,&John&,85,&Tom&,81}; int i=0; float total=0,aver=0; while(i&3) { total=total+/**/ i++; }128/**//**/; aver=total/3; printf(&\ntotal=%.2f,aver=%.2f&,total,aver); getch(); } 2.补充程序 Ccon0210.C, 该程序的功能是找出数组中的最小 数 min1 和次小数 min2。 -------Ccon0210.C-------------------------------------------------------------------------#include&stdio.h& main() { int i,a[10]={9,26,35,8,6,19,69,3,5,95}; int min1,min2; i=0; min1=a[0]&a[1]?a[0]:a[1]; min2=a[0]&a[1]?/**/ for(i=2;i&10;i++) { if(a[i]&min1) { min2=min1; min1=a[i];129/**/ } else if(a[i]&min2) /**/ } printf(&min1=%d,min2=%d\n&,min1,min2); getch(); } 3.补充程序 Ccon0310.C,使其实现用递归算法求平方根。求 平方根的迭代公式如下:x1 ? 1 2 ( x0 ? a x0 )/**/-------Ccon0310.C-------------------------------------------------------------------------#include&math.h& main() { double x,y; /**/ printf(&P\n&); scanf(&%lf&,&x); y=mysqrt(x,1.0); printf(&The sqrt of %f=%f\n&,x,y); getch();130/**/ } double mysqrt(double a,double x0) { double x1,y; x1=/**/ if (fabs(x1-x0)&0.00001) y=mysqrt(/**/ else y=x1; return(y); } 第 11 套 1.补充程序 Ccon0111.C,其功能是求 20 以内的所有素数, 按每行显示 4 个素数输出。 -------Ccon0111.C-------------------------------------------------------------------------#include&math.h& #define /**/ main() { int a,flag,i,j,m=0; for(i=2;i&=N;i++)131/**//**/);/**/ {flag=1; j=2; a=(int)sqrt((double)i); while(flag&&j&=a) { if(i%j==0) /**/ j++; } if(flag) {printf(&%3d&,i); /**/ if(m%4==0) printf(&\n&); } } getch(); } 2.补充程序 Ccon0112.C,其功能是求下列级数的部分和。e ?1? x ?x/**//**/x2?x3? ?? ?xm? ??2!3!m!例如:当 m=100,x=2 时,ex=7.389057 -------Ccon0112.C-------------------------------------------------------------------------132 #include&stdio.h& main() { int i,m; float x,s, printf(&Input m and x\n:&); scanf(&%d%f&,&m,&x); /**/ /**/ /**/;i++)for(i=1;/**/ { tem*=x/i; s+= }printf(&e**%.2f=%f\n&,x,s); getch(); } 3. 补充程序 Ccon0113.C,计算存放在数组 score 中 12 位学 生成绩的平均分,并输出高于平均分的人数。 -------Ccon0113.C-------------------------------------------------------------------------#include&stdio.h& #define N 12133 int count(int s[]) { int i,c=0; float sum=0, for(i=0;i&N;i++) sum+=s[i]; aver=/**/ /**/for(i=0;i&N;i++) { if(s[i]&=aver) c++; } return(/**/ } void main() { int score[N]={67,78,66,79,73,82,69,85,77,80,93,72}; cn=/**/ /**/(score); /**/);printf(&Count is %d\n&,cn); getch(); }134 第四部分:编程题(每小题 8 分,2 小题/套) 说明如下: (1) 在一对&/**/&之间编写程序,以完成题目的要求; (2) 不得删改程序中的&/**/&注释和其它代码; (3) 源程序均在考生文件夹中, 务必以原文件名保存程序; (4) 按 Alt+Tab 键, 切换考试程序与 Turbo C; Alt+Enter

我要回帖

更多关于 c语言上机题库 的文章

 

随机推荐