2006年4月二级C语言笔试试题及答案

上传人:dfg****19 文档编号:220785338 上传时间:2023-07-02 格式:DOC 页数:16 大小:104.50KB
收藏 版权申诉 举报 下载
2006年4月二级C语言笔试试题及答案_第1页
第1页 / 共16页
2006年4月二级C语言笔试试题及答案_第2页
第2页 / 共16页
2006年4月二级C语言笔试试题及答案_第3页
第3页 / 共16页
资源描述:

《2006年4月二级C语言笔试试题及答案》由会员分享,可在线阅读,更多相关《2006年4月二级C语言笔试试题及答案(16页珍藏版)》请在装配图网上搜索。

1、一、选择题(1)一(10)每题2分,(11)一(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)下列选项中不属于结构化程序设计方法的是A自顶向下 B逐步求精 C模块化 D可复用 (2)两个或两个以上模块之间关联的紧密程度称为A耦合度 B内聚度 C复杂度 D数据传输特性(3)下列叙述中正确的是A软件测试应该由程序开发者来完成 B程序经调试后一般不需要再测试C软件维护只包括对程序代码的维护 D以上三种说法都不对(4)按照“后进先出”原则组织数据的数据结构是A队列 B栈 C双向链表 D二叉树(5)

2、下列叙述中正确的是A线性链表是线性表的链式存储结构 B栈与队列是非线性结构C双向链表是非线性结构 D只有根结点的二叉树是线性结构(6)对如下二叉树ABDECF进行后序遍历的结果为AABCDEF BDBEAFC CABDECF DDEBFCA(7)在深度为7的满二叉树中,叶子结点的个数为A32 B31 C64 D63(8)“商品”与“顾客”两个实体集之间的联系一般是A一对一 B一对多 C多对一 D多对多(9)在E-R图中,用来表示实体的图形是A矩形 B椭圆形 C菱形 D三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是ADB包含DBS和DBMS BDBMS包含DB和D

3、BS CDBS包含DB和DBMS D没有任何关系(11)以下不合法的用户标识符是Aj2_KEY BDouble C4d D_8_(12)以下不合法的数值常量是A011 B1e1 C8.0E0.5 D0xabcd(13)以下不合法的字符常量是A018 B C Dxcc(14)表达式3.6-52+1.2+52的值是A4.3 B4.8 C3.3 D3.8(15)以下能正确定义字符串的语句是Achar str=064; Bchar str=kx43;Cchar str=; Dchar str=0;(16)以下数组定义中错误的是Aint x3=0; Bint x23=l,2,3,4,5,6;Cint x

4、3=l,2,3,4,5,6; Dint x23=l,2,3,4,5,6;(17)若要求从键盘读入含有空格字符的字符串,应使用函数Agetc() Bgets() Cgetchar() Dscanf()(18)以下四个程序中,完全正确的是A#include %26lt;stdio.h%26gt; B#include %26lt;stdio.h%26gt;main();main()/*programming*/*/ programming /*/printf(programming!n); printf(programming!n);C#include %26lt;stdio.h%26gt; D i

5、nclude %26lt;stdio.h%26gt;main()main()/*/*programming*/*/*programming*/printf(programming!n); printf(programming!n);(19)若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是Aswitch(x) Bswitch(int)x);case 1.0:printf(*n); case 1:printf(*n);case 2.0:printf(*n); case 2:printf(*n);Cswitch(a+B Dswitch(a+Bcase 1:

6、printf(*n);case 1:printf(*n);case 2+1:printf(*n);case c:printf(*n);(20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是Amain() Bfloat fun(int a,int Bx=fun(2,10);main()float fun(int a,int B x=fun(i,j);Cfloat fun(int,int); Dmain()main() float fun(int i,int j);x=fun(2,10); x=fun(i,j); float fun(int a

7、,int Bfloat fun(int a,int B(21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是A(!E=0) B(E%26gt;0E%26lt;0) C(E=0) D(E!=0)(22)要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是Awhile(ch=getchar()!=N)printf(c,ch); Bwhile(ch=getchar()!=N)printf(c,ch);Cwhile(ch=getchar()=N)printf(c,ch); Dwhile(ch=getchar()=N)printf(c,ch

8、);(23)已定义以下函数int fun(int *p)return *p;)fun函数返回值是A不确定的值 B一个整数 C形参P中存放的值 D形参P的地址值(24)若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是A*p=%26amp;a; scanf(1f,p); B*p=%26amp;a; scanf(f,p);Cp=%26amp;a; scanf(1f,*p); Dp=%26amp;a; scanf(1f,p);(25)现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中连续的三个结点。struct nodechar data

9、;struct node *next; *p,*q,*r;现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是Aq-%26gt;next=r-%26gt;next;p-%26gt;next=r;r-%26gt;next=q; Bp-%26gt;next=r;q-%26gt;next=r-%26gt;next;r-%26gt;next=q;Cq-%26gt;next=r-%26gt;next;r-%26gt;next=q;p-%26gt;next=r; Dr-%26gt;next=q;p-%26gt;next=r;q-%26gt;next=r-%26gt;next;

10、(26)有以下程序段struct stint x;int *y;*pt;int a=l,2,b=3,4;struct st c2=10,a,20,b;pt=c;以下选项中表达式的值为11的是A*pt-%26gt;y Bpt-%26gt;x C+pt-%26gt;x D(pt+)-%26gt;x(27)设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为AEOF B非0值 C0 DNULL(28)设有以下语句int a=1,b=2,c;c=a(b%26lt;%26lt;2);执行后,C的值为A6 B7 C8 D9(29)有以下程序#include %26lt;st

11、dio.h%26gt;main()char c1,c2,c3,c4,c5,c6;scanf(cccc,%26amp;c1,%26amp;c2,%26amp;c3,%26amp;c4);c5=getchar(); c6=getchar();putchar(c1);putchar(c2);printf(ccn,c5,c6);程序运行后,若从键盘输入(从第1列开始)123%26lt;回车%26gt;45678%26lt;回车%26gt;则输出结果是A1267 B1256 C1278 D1245(30)有以下程序main() int y=10;while(y-);printf(y=dn,y);程序执行

12、后的输出结果是Ay=0 By=-1 Cy=1 Dwhile构成无限循环(31)有以下程序main()int a=0,b=0,c=0,d=0;if(a=1) b=1;c=2;else d=3;printf(d,d,d,dn,a,b,c,D;程序输出A0,1,2,0 B0,0,0,3 C1,1,2,0 D编译有错(32)有以下程序main()int i,j,x=0;for(i=0;i%26lt;2;i+)x+;for(j=0;j%26lt;=3;j+)if(j2)continue;x+;x+;printf(x=dn,x);程序执行后的输出结果是Ax=4 Bx=8 Cx=6 Dx=12(33)有以下

13、程序int fun1(double a)return a*=a;int fun2(double x,double y)double a=0,b=0;a=fun1(x);b=fun1(y);return(int)(a+B;main()double w;w=fun2(1.1,2.0);程序执行后变量w中的值是A5.21 B5 C5.0 D0.0(34)有以下程序main()int i,t3=9,8,7,6,5,4,3,2,1;for(i=0;i%26lt;3;i+) printf(d,t2-ii);程序执行后的输出结果是A7 5 3 B3 5 7 C3 6 9 D7 5 1(35)有以下程序fun

14、(char p10)int n=0,i;for(i=0;i%26lt;7;i+)if(pi0=T)n+;return n;main()char str10=Mon,Tue,Wed,Thu,Fri,Sat,Sun;printf(dn,fun(str);程序执行后的输出结果是A1 B2 C3 D0(36)有以下程序main()int i,s=0,t=l,2,3,4,5,6,7,8,9;for(i=0;i%26lt;9;i+=2)s+=*(t+i);printf(dn,s);程序执行后的输出结果是A45 B20 C25 D36(37)有以下程序void fun1(char *p)char *q;q=

15、p;while(*q!=0) (*q)+; q+; )main()char a=Program), *p;p=%26amp;a3;fun1(p);printf(sn,a);程序执行后的输出结果是AProhsbn BPrphsbn CProgsbn DProgram(38)有以下程序void swap(char *x,char *y)char t;t=*x; *x=*y; *y=t;main()char *s1=abc,*s2=123;swap(s1,s2);printf(s,sn,s1,s2);程序执行后的输出结果是A123,abc Babc,123 C1bc,a23 D321,cba(39)

16、有以下程序int fun(int n)if(n=1)return 1;elsereturn(n+fun(n-1);main()int x;scanf(d,%26amp;x); x=fun(x);printf(dn,x);执行程序时,给变量X输入10,程序的输出结果是A55 B54 C65 D45(40)有以下程序int fun(int x,int n)static int sum=0,i;for(i=0;i%26lt;n;i+) sum+=xi;return sum;main()int a=1,2,3,4,5,b=6,7,8,9,s=0;s=fun(a,5)+fun(b,4);printf(d

17、n,s);程序执行后的输出结果是A45 B50 C60 D55(41)有以下程序main()unionchar ch2;int d;s;s.d=0x4321;printf(x,xn,s.ch0,s.ch1); 在16位编译系统上,程序执行后的输出结果是A21,43 B43,21 C43,00 D21,00(42)有以下程序main()char *p=3697,2584;int i,j;long num=0;for(i=0;i%26lt;2;i+)j=0;while(pij!=0)if(pij-0)2)num=10*num+pij-0;j+=2;printf(dn,num);程序执行后的输出结果

18、是A35 B37 C39 D3975(43)执行以下程序后,test.txt文件的内容是(若文件能正常打开)#include %26lt;stdio.h%26gt;main()FILE *fp;char *s1=Fortran,*s2=Basic;if(fp=fopen(test.txt,wb”)=NULL)printf(Cant open test.txt filen);exit(1);fwrite(s1,7,1,fp); /*把从地址s1开始的7个字符写到fp所指文件中*fseek(fp,0L,SEEK_SET); *文件位置指针移到文件开头*fwrite(s2,5,1,fp);fclos

19、e(fp);ABasican BBasicFortran CBasic DFortranBasic(44)以下叙述中错误的是AC语言源程序经编译后生成后缀为.obj的目标程序BC程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中DC语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令(45)以下叙述中错误的是A算法正确的程序最终一定会结束 B算法正确的程序可以有零个输出C算法正确的程序可以有零个输入 D算法正确的程序对于相同的输入一定有相同的结果(46)以下叙述中错误的是AC程序必须由一个

20、或一个以上的函数组成 B函数调用可以作为一个独立的语句存在C若函数有返回值,必须通过return语句返回 D函数形参的值也可以传回给对应的实参(47)设有以下定义和语句char str20=Program,*p;p=str;则以下叙述中正确的是A*p与str0的值相等 Bstr与p的类型完全相同Cstr数组长度和p所指向的字符串长度相等 D数组str中存放的内容和指针变量p中存放的内容相同(48)以下叙述中错误的是AC程序中的#include和#define行均不是C语句 B除逗号运算符外,赋值运算符的优先级最低CC程序中,j+;是赋值语句 DC程序中,+、-、*、号是算术运算符,可用于整型和

21、实型数的运算(49)以下叙述中正确的是A预处理命令行必须位于C源程序的起始位置 B在C语言中,预处理命令行都以#开头C每个C程序必须在开头包含预处理命令行:#include%26lt;stdio.h%26gt; DC语言的预处理不能实现宏定义和条件编译的功能(50)以下叙述中错误的是A可以通过typedef增加新的类型 B可以用typedef将已存在的类型用一个新的名字来代表C用typedef定义新的类型名后,原有类型名仍有效 D用typedef可以为各种类型起别名,但不能为变量起别名二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分

22、。(1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】。(2)在面向对象方法中,【2】描述的是具有相似属性与操作的一组对象。(3)在关系模型中,把数据看成是二维表,每一个二维表称为一个【3】。(4)程序测试分为静态分析和动态测试。其中【4】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。(5)数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【5】。(6)若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的

23、的输出语句【6】。(7)以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b%26gt;c,a+c%26gt;b,b+c%26gt;a。请填空。main()float a,b,c;scanf(fff,%26amp;a,%26amp;b,%26amp;C;if(【7】)printf(YESn);*a、b、c能构成三角形*else printf(NOn);*a、b、c不能构成三角形* (8)以下程序的输出结果是【8】 。main()int a33=1,2,9,3,4,8,5,6,7

24、,i,s=0;for(i=0;i%26lt;3;i+) s+=aii+ai3-i-1;printf(dn,s);(9)当运行以下程序时,输入abcd,程序的输出结果是:【9】。insert(char str)int i;i=strlen(str);while(i%26gt;0)str2*i=stri;str2*i-1=*;i-;printf(sn,str);main()char str40;scanf(s,str);insert(str);(10)下面程序的运行结果是:【10】。fun(int t,int n)int i,m;if(n=1)return t0;elseif(n%26gt;=2)

25、m=fun(t,n-1); return m; main()int a=11,4,6,3,8,2,3,5,9,2;printf(dn,fun(a,10);(11)现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:#include %26lt;stdio.h%26gt;#include myfun.cmain()fun();printf(n);myfun.c文件如下:void fun()char s80,c; int n=0;while(c=getchar()!=n) sn+=c;n-;while(n%26gt;=0) printf(c,sn-);

26、当编译连接通过后,运行程序T18时,输入Thank!则输出结果是:【11】。(12)以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。char *fun(char *str,char C int n=0; char *p=str;if(p!=NULL)while(pn!=c%26amp;%26amp;pn!=0)n+;if(pn=0) return NULL;return(【12】);(13)以下

27、程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。main()(int i,j;for(i=0;【13】;i+)j=i*10+6;if(【14】)continue;printf(d,j);(14)以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空int isprime(int a)int i;for(i=2;i%26lt;=a/2;i+)if(ai=0)【15】;【16】; (15)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结

28、果如下:A B C D EF G H IJ K LM NO请填空完成该程序。main()int i,j,n; char ch=A;scanf(d,%26amp;n);if(n%26lt;11)for(i=1;i%26lt;=n;i+)for(j=1; j%26lt;=n-i+1;j+)printf(2c,ch);【17】;【18】;else printf(n is too large!n)printf(n);(16)以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。#include %26lt;stdio.h%26gt;typedef struct node/*链表结点结构*char sub3;struct node *next;Node;Node fun(char s) *建立链表* void disp(Node *h)Node *p;p=h-%26gt;next;while(【19】)printf(sn,P-%26gt;suB; p=【20】; main()Node *hd;hd=fun();disp(hD;printf(n); 2006年4月全国计算机等级考试二级C语言笔试试题答案

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!