0810年二级C语言笔试真题.docx
- 文档编号:29986693
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:52
- 大小:64.41KB
0810年二级C语言笔试真题.docx
《0810年二级C语言笔试真题.docx》由会员分享,可在线阅读,更多相关《0810年二级C语言笔试真题.docx(52页珍藏版)》请在冰豆网上搜索。
0810年二级C语言笔试真题
2010/3月全国计算机二级C语言
一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题1分,共70分)
(1)下列叙述中正确的是C
A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
(2)算法的时间复杂度是指D
A)算法的执行时间B)算法所处理的数据量
C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数
(3)软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是B
A)编辑软件B)操作系统C)教务管理系统D)浏览器
(4)软件(程序)调试的任务是A
A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误
C)发现并改正程序中的所有错误D)确定程序中错误的性质
(5)数据流程图(DFD图)是C
A)软件概要设计的工具B)软件详细设计的工具
C)结构化方法的需求分析工具D)面向对象方法的需求分析工具
(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于B
A)定义阶段B)开发阶段C)维护阶段C)上述三个阶段
(7)数据库管理系统中负责数据模式定义的语言是A
A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言
(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是D
A)文件B)数据库C)字段D)记录
(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的C
A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段
(10)有两个关系R和T如下:
A
RT
A
B
C
a
1
2
b
2
2
c
3
2
d
3
2
A
B
C
c
3
2
d
3
2
则由关系R得到关系T的操作是
A)选择B)投影C)交D)并
(11)以下叙述正确的是B
A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:
fun(fun(x))
C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在
(12)以下关于C语言的叙述中正确的是A
A)C语言中的注释不可以夹在变量名或关键字的中间
B)C语言中的变量可以在使用之前的任何位置进行定义
C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
D)C语言的数值常量中夹带空格不影响常量值的正确表示
(13)以下C语言用户标识符中,不合法的是D
A)_1B)AaBcC)a_bD)a--b
(14)若有定义:
doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是C
A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!
a;
(15)有以下程序C
#include
main()
{chara,b,c,d;
scanf(“%c%c”,&a,&b);
c=getchar();d=getchar;
printf(“%c%c%c%c\n”,a,b,c,d);}
当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:
回车也是一个字符)
12<CR>
34<CR>则输出结果是
A)1234B)12C)12D)12
3 34
(16)以下关于C语言数据类型使用的叙述中错误的是D
A)若要准确无误差的表示自然数,应使用整数类型
B)若要保存带有多位小数的数据,应使用双精度类型
C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(改为条件类型)
(17)若a是数值类型,则逻辑表达式(a==I)||(a!
=1)的值是A
A)1B)0C)2D)不知道a的值,不能确定
(18)以下选项中与if(a==1)a=b;elsea++;语句功能不同的switch语句是B
A)switch(a)B)switch(a==1)C)switch(a)D)switch(a==1)
{case1:
a=b;break;{case0:
a=b;break;{default:
a++;break;{case1:
a=b;break;
default:
a++;}case1:
a++;}case1:
a=b;}case0:
a++;}
(19)有如下嵌套的if语句C(20)有以下程序A
if(a
if(a elsek=c;{inti,j,m=1; if(b elsek=c;以下选项中与上述if语句等价的语句是{for(j=3;j>0;j--) A)k=(a a: b;k=(b<c)? b: c;{if(i+j>3)break; B)k=(a ((b<c)? a: b)((b>c)? b: c);m*=i*j;}} C)k=(a ((a<c)? a: c)((b<c)? b: c);printf(“m=%d\n”,m);}程序运行后的输出结果是 D)k=(a a: b;k=(a<c)? a: c;A)m=6B)m=2C)m=4D)m=5 (21)有以下程序D(22)有以下程序,其中k的初值为八进制数 #include main()main() {inta=1,b=2;{intk=011; for(;a<8;a++){b+=a;a+=2;}printf(“%d\n”,k++);} printf(“%d,%d\n”,a,b);}程序运行后的输出结果是程序运行后的输出结果是D A)9,18B)8,11A)12B)11C)10D)9 C)7,11D)10,14 (23)下列语句组中,正确的是A A)char*s;s="Olympic";B)chars[7];s="Olympic"; C)char*s;s={"Olympic"};D)chars[7];s={"Olympic"}; (24)以下关于return语句的叙述中正确的是B A)一个自定义函数中必须有一条return语句 B)一个自定义函数中可以根据不同情况设置多条return语句 C)定义成void类型的函数中可以有带返回值的return语句 D)没有return语句的自定义函数在执行结束时不能返同到调用处 (25)下列选项中,能正确定义数组的语句是D A)intnum[0..2008];B)intnum[]; C)intN=2008;D)#defineN2008 intnum[N]; intnum[N]; (26)有以下程序 #include voidfun(char*c,intd) {*c=*c+1;d=d+1; printf(“%c,%c”,*c,d);}} main() {charb=‘a’,a=‘A’; fun(&b,a);printf(“%c,%c\n”,b,a);}程序运行后的输出结果是A A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B (27)若有定义int(*pt)[3];,则下列说法正确的是D A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组pt C)定义了一个名为*pt、具有三个元素的整型数组 D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组 (28)设有定义doublea[10],*s=a;,以下能够代表数组元索a[3]的是B A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3 (29)有以下程序(30)有以下程序 #include main()main() {inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<5;i++)s=s+a[b[i]];for(i=1;i<3;i++) printf(“%d\n”,s);}程序运行后的输出结果是Cfor(j=1;j<=1;j++)t+=b[i][b[j][i]]; A)6B)10printf(“%d\n”,t);}程序运行后的输出结果是C C)11D)15A)1B)3C)4D)9 (31)若有以下定义和语句A chars1[10]="abcd! ",s2="\n123\\"; printf("%d%d\n",strlen(s1),strlen(s2));则输出结果是 A)5 5B)10 5C)10 7D)5 8 (32)有以下程序(33)有以下程序 #include #defineN8intf(intt[],intn); voidfun(int*x,inti)main() {*x=*x+i;}{inta[4]={1,2,3,4},s; main()s=f(a,4);printf(“%d\n”,s);} {inta[N]={1,2,3,4,5,6,7,8},i;intf(intt[],intn) fun(a,2);for(i=0;i {printf(“%d”,a[i]);}elsereturn0;} printf(“\n”);}程序运行后的输山结果是C程序运行后的输出结果是B A)1313B)2234A)4B)10 C)3234D)1234C)14D)6 (34)有以下程序(35)有以下程序 #include intfun()#defineSUB(a)(a)-(a) {staticintx=1;main() x*=2;returnx;}{inta=2,b=3,c=5,d; main()d=SUB(a+b)*c; {inti,s=1;printf(“%d\n”,d);} for(i=1;i<=2;i++)s=fun();程序运行后的输山结果是C printf(“%d\n”,s);}程序运行后的输出结果是CA)0B)-12 A)0B)1C)-20D)10 C)4D)8 (36)设有定义: structcomplex {intreal,unreal;}data1={1,8},data2;则以下赋值语句中错误的是 A)data2=data1;B)data2=(2,6); C)data2.real=data1.real;D)data2.real=data1.unreal; (37)有以下程序(38)有以下定义和语句 #include #include structAstruct {inta;charb[10];doublec;};{intday;intmonth;intyear;}s} voidf(structAt);structworkersw,*pw; main()pw=&w;能给w中year成员赋1980的语句是 {structAa={1001,“ZhangDa”,1098.0};f(a);A)pw.year=1980; printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}B)w.year=1980; voidf(structAt)C)pw->year=1980; {t.a=1002;strcpy(t.b,“ChangRong”);t.c=1202.0;}输出结果是D)w.s.year=1980; A)1001,ZhangDa,1098.0 B)1002,ChangRong,1202.0 C)1001,ChangRong,10980 D)1002,ZhangDa,1202.0 (39)有以下程序(40)有以下程序 #include main()main() {inta=2,b=a,c=2;{FILE*fp;charstr[10]; printf(“%d\n”,a/b&c);fp=open(“myfile.dat”,“w”); }fputs(“abc”,pf);close(pf); 程序运行后的输出结果是fp=open(“myfile.dat”,“a+”); A)0B)1fprintf(pf,“%d”,28);rewind(pf); C)2D)3fscanf(pf,“%s”,str);puts(str); close(pf);}程序运行后的输出结果是 A)abcB)28cC)abc28D)因类型不一致而出错 二、填空题(每空2分,共30分) 请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。 (1)一个队列的初始状态为空。 现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为 ABCDEF54321 。 (2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 15 个元素。 (3)设二叉树如下: 对该二叉树进行后序遍历的结果为 EDBGHFCA 。 (4)软件是 程序 数据和文档的集合。 (5)有一个学生选课的关系,其中学生的关系模式为: 学生(学号,姓名,班级,年龄),课程的关系模式为: 课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为: 选课(学号, 课号 ,成绩)。 (6)设x为int型变量,请写出一个关系表达式(x%3==0)&&(x%7==0) ,用以判断x同时为3和7的倍数时,关系表达式的值为真。 (7)有以下程序(8)有以下程序 #include main()main() {inta=1,b=2,c=3,d=0;{intm,n; if(a==1)scanf(“%d%d”,&m,&n); if(b! =2)while(m! =n) if(c==3)d=1;{while(m>n)m=m-n; elsed=2;while(m elseif(c! =3)d=3;printf(“%d\n”,m);} elsed=4;程序运行后,当输入1463<回车>时, elsed=5; printf(“%d\n”,d);}程序远行后的输出结果是 4 。 输出结果是 【8】 。 (9)有以下程序(10)有以下程序 #include main()main() {inti,j,a[][3]={1,2,3,4,5,6,7,8,9};{inta[]={1,2,3,4,5,6},*k[3],i=0; for(i=1;i<3;i++)while(i<3) for(j=1;j<3;i++)printf(“%d”,a[i][j]);{k[i]=&a[2*i]; printf(“\n”);}printf(“%d”,*k[i]);i++;}} 程序运行后的输出结果是 【9】 程序运行后的输出结果是 【10】 。 (11)有以下程序(12)有以下程序 #include main()#include {inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};voidfun(char*str) intb[3]={0},i;{chartemp;intn,i; for(i=1;i<3;i++)b[i]=a[i][2]+a[2][i];n=strlen(str); or(i=1;i<3;i++)printf(“%d”,b[i]);temp=str[n-1]; printf(“\n”);}程序运行后的输出结果是 【11】 。 for(i=n-1;i>0;i--) (13)以下程序的功能是: 将值为三位正整数的变量x中的main() 数值按照个位、str[i]=str[i-1];str[0]=temp;}十位、百位的顺序{chars[50];scanf(“%s”,s);fun(s);printf(“%s\n”,s);} 拆分并输出。 请填空。 程序运行后输入: abcdef<回车>,则输出结果 #include main() {intx=256; printf(“%d-%d-%d\n”,【13】,x/10%10,x/100);} (14)以下程序用以删除字符串中所有的空格,请填空。 (15)以下程序的功能是: 借助指针变量 #include main()请填空。 {char[100]={“Ourteacherteachclanguage! ”};inti,j;#include for(i=j=0;s[i]! =‘\0’;i++)main() if(s[i]! =‘’){s[j]=s[i];j++;}{inta[10],*p,*s; s[j]=【14】;for(p=a;p-a<10;p++)scanf(“%d”,p); printf(“%s\n”,s);}for(p=a,s=a;p-a<10;p++)if(*p>*s)s=【15】; printf(“index=%d\n”s-a);} 2009年9月全国计算机等级考试二级笔试试卷 一、选择题( (1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分) (1)下列数据结构中,属于非线性结构的是C A)循环队列B)带链队列C)二叉树D)带链栈 (2)下列数据结果中,能够按照“先进后出”原则存取数据的是B A)循环队列B)栈C)队列D)二叉树 (3)对于循环队列,下列叙述中正确的是D A)队头指针是固定不变的B)队头指针一定大于队尾指针 C)队头指针一定小于队尾指针D)队头指针可以大于队尾指针,也可以小于队尾指针 (4)算法的空间复杂度是指A A)算法在执行过程中所需要的计算机存储空间B)算法所处理的数据量 C)算法程序中的语句或指令条数D)算法在执行过程中所需要的临时工作单元数 (5)软件设计中划分模块的一个准则是B A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合 (6)下列选项中不属于结构化程序设计原则的是A A)可封装B)自顶向下C)模块化D)逐步求精 (7)软件详细设计产生的图如下: 该图是C A)N-S图B)PAD图C)程序流程图D)E-R图 (8)数据库管理系统是B A)操作系统的一部分B)在操作系统支持下的系统软件C)一种编译系统D)一种操作系统 (9)在E-R图中,用来表示实体联系的图形是C A)椭圆图B)矩形C)菱形D)三角形 (10)有三个关系R,S和T如下: 其中关系T由关系R和S通过某种操作得到,该操作为D A)选择B) 投影C)交D)并 (11)以下叙述中正确的是D A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构 C)程序设计的任务就是确定所用算法D)以上三种说法都不完整 (12)以下选项中,能用作用户标识符的是C A)voidB)8_8C)_0_D)unsigned (13)阅读以下程序 #include main() {intcase;floatprintF; printf(“请输入2个数: ”); scanf(“%d%f”,&case,&pjrintF); printf(“%d%f\n”,case,printF);} 该程序编译时产生错误,其出错原因是A A)定义语句出错,case是关键字,不能用作用户自定义标识符 B)定义语句出错,printF不能用作用户自定义标识符 C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值 (14)表达式: (int)((double)9/2)-(9)%2的值是B A)0B)3C)4D)5 (15)若有定义语句: intx=10;,则表达式x-=x+x的值为B A)-20B)-10C)0D)10 (16)有以下程序 #include main() {inta=1,b=0; printf(“%d,”,b=a+b); printf(“%d\n”,a=2*b);}程序运行后的输出结果是D A)0,0B)1,0 C)3,2 D)1,2 17)设有定义: inta=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是C A)if(a>b)c=a,a=b,b=c;B)if(a>b){c=a,a=b,b=c;}C)if(a>b)c=a;a=b;b=c;D)if(a>b){c=a;a=b;b=c;} (18)有以下程序 #include main() {intc=0,k; for(k=1;k<3;k++) switch(k) {default: c+=k case2: c++;break; case4: c+=2;break;} printf(“%d\n”,c);} 程序运行后的输出结果是A A)3B)5C)7D)9 (19)以下程序段中,与语句: k=a>b? (b>c? 1: 0): 0;功能相同的是A A)if((a>b)&&(b>c))k=1; B)if((a>b)||(b>c)k=1; C)if(a<=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 0810 二级 语言 笔试