



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010年3月全国计算机二级C语言考试真题一、选择题((1)~(10)、(21)〜(40)每题2分,(11)〜(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是A)编辑软件C)教务管理系统下面属于系统软件的是A)编辑软件C)教务管理系统(4)软件(程序)调试的任务是A)诊断和改正程序中的错误错误C)发现并改正程序中的所有错误(5)数据流程图(DFD图)是A)软件概要设计的工具C)结构化方法的需求分析工具B)操作系统
D)浏览器B)尽可能多地发现程序中的D)确定程序中错误的性质B)软件详细设计的工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段 B)开发阶段C)维护阶段 C)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言 B)数据管理语言C)数据操纵语言 D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件 B)数据库C)字段 D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段 B)逻辑设计阶段
(10)有两个关系R和T如下:R TABCa12b22ABCc32c32d32_d_32C)概念设计阶段C)概念设计阶段D)物理设计阶段则由关系R得到关系T的操作是A)选择 B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1 B)AaBc C)a_bD)a——b(14)若有定义:doub1ea=22;inti=0,k=18;,贝(]不符合C语言规定的赋值语句是A)a=a++,i++; B)i=(a+k)V=(i+k);C)i=a%11; D)i=!a;(15)有以下程序#include<stdio.h>mainO{chara,b,c,d;scanf("%c%c”,&a,&b);c=getchar();d=getchar;printf(K%c%c%c%c\nw,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,VCR>代表回车,注意:回车也是一个字符)2<CR>34<CR>则输出结果是A)1234B)12C)12 D)123 34(16)以下关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==I)||(a!=1)的值是A)1 B)0C)2 D)不知道a的值,不能确定(18)以下选项中与if(a=l)a=b;elsea++;语句功能不同的switch语句是A)switch(a){case1:a=b;break;default:a++;}B)switch(a==l){case0:a=b;break;case1:a++;)C)switch(a){default:a++;break;case1:a=b;)D)switch(a==l){case1:a=b;break;case0:a++;)(19)有如下嵌套的if语句if(a<b)if(a<c)k=a;elsek=c;if(b<c)k=b;elsek=c;以下选项中与上述if语句等价的语句是A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b)((b>c)?b:c);C)k=(a<b)?((a<c)?a:c)((b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序#include<stdio.h>
mainO{inti,j,m=l;for(i=l;i<3;i++){for(j=3;j>0;j—){if(i+j>3)break;printf(wm=%d\nw,m);程序运行后的输出结果是A)A)m=6 B)m=2m=5C)m=4(21)有以下程序#include<stdio.h>mainO{inta=l,b=2;for(;a<8:a++){b+=a;a+=2;}printf(a%d,%d\nw,a,b);程序运行后的输出结果是C)7,11A)9,18 B)8,1110,14C)7,11(22)有以下程序,其中k的初值为八进制数ftinclude<stdio.h>mainO{intk=Oll;printf("%d\n",k++);)程序运行后的输出结果是A)12 B)11 C)10 D)9(23)下列语句组中,正确的是char*s;s="Olympic";B)chars[7];s="Olympic";C)char*s;s={"Olympic"};D)chars[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的retwn语句D)没有return语句的自定义函数在执行结束时不能返同到调用处(25)下列选项中,能正确定义数组的语句是A)intnum[0..2008]; B)intnum口;C)intN=2008 ; D)^defineN2008intnum[N]; intnum[N];(26)有以下程序#include<stdio.h>voidfun(char*c,intd){*c=*c+l;d=d+l;printf("%c,%c",*c,d);)mainO{charb='a',a='A';fun(&b,a);printf("%c,%c\n”,b,a);)程序运行后的输出结果是A)b, B, b,A B)b, B, B, AC)a, B, B,a D)a, B, a, B(27)若有定义int(*pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义doublea[10],*s=a;,以下能够代表数组元索a[3]的是A)(*s)[3] B) *(s+3)*s[3] D) *s+3(29)有以下程序#include<stdio.h>mainO{inta[5]={l,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=l;i<3;i++)s=s+a[b[i]];printf("%d\n",s);)程序运行后的输出结果是A)6 B)10C)11 D)15(30)有以下程序#include<stdio.h>mainO{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=l;for(i=l;i<3;i++)for(j=l;j<=l;j++)t+=b[i][b[j][i]];printf("%d\n",t);)程序运行后的输出结果是A)1 B)3 C)4 D)9(31)若有以下定义和语句charsi[10]="abed!", s2="\nl23\\";printf("%d%d\n",strlen(si),strlen(s2));则输出结果是A)5 5 B)10 5 C)10 75 8(32)有以下程序#include<stdio.h>ttdefineN8voidfun(int*x,inti){*x=*x+i;}main(){inta[N]={l,2,3,4,5,6,7,8},i;fun(a,2);for(i=l;i<N/2;i++){printf("%d",a[i]);}printf("\n");}程序运行后的输山结果是A)1313 B)2234 03234 D)1234(33)有以下程序#include<stdio.h>intf(intt[],intn);main(){inta[4]={l,2,3,4},s;s=f(a,4);printf(w%d\nw,s);}intf(intt[],intn){if(n>0)returnt[n-l]+f(t,n-1);elsereturn0;}程序运行后的输出结果是A)4B)10 014 D)6(34)有以下程序#include<stdio.h>intfun(){staticintx=l;x*=2;returnx;)main(){inti,s=l;for(i=l;i<=2;i++)s=fun();printf("%d\n”,s);}程序运行后的输出结果是A)0 B)1 C)4 D)8(35)有以下程序#include<stdio.h>ttdefineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;
d=SUB(a+b)*c;printf("%d\n",d);程序运行后的输山结果是A)0A)0B)-12 C)-20 D)0(36)设有定义:structcomplex{intreal,unreal;}datal={l,8},data2;则以下赋值语句中错误的是B)data2=(2,6)•D)data2.real=datal.unreal;A)B)data2=(2,6)•D)data2.real=datal.unreal;C)data2.real=datal.real;(37)有以下程序#include<stdio.h>#include<string.h>structA{inta;charb[10];doublec;};voidf(structAt);mainO{structAa={1001,“ZhangDa”,1098.0};f(a);printf("%d,%s,%6.lf\nw,a.a,a.b,a.c);}voidf(structAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}输出结果是1001,ZhangDa,1098.01002,ChangRong,1202.01001,ChangRong,109801002,ZhangDa,1202.0(38)有以下定义和语句structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s};structworkersw,*pw;pw=&w;能给w中year成员赋1980的语句是A)pw.year=1980; B)w.year=1980;C)pw—>year=1980; D)w.s.year=1980;(39)有以下程序#include<stdio.h>main(){inta=2,b=a,c=2;printf("%d\n”,a/b&c);
程序运行后的输出结果是A)0 B)1(40)有以下程序#include<stdio.h>main(){FILE*fp;charstr[10];fp=open("myfile.dat","w");fputs("abc",pf);close(pf);fp=open("myfile.dat","a+");fprintf(pf,"%d",28);rewind(pf);fscanf(pf,K%sw,str):puts(str);close(pf);程序运行后的输出结果是B)28cD)因类型不一致而出错AB)28cD)因类型不一致而出错C)abc28二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】〜【15】序号的横线上,答在试卷上不得分。(1)一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为【1】。(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有12】个元素。(3)设二叉树如下:对该二叉树进行后序遍历的结果为【3】。(4)软件是[4]数据和文档的集合。(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 【5】,成绩)。(6)设x为int型变量,请写出一个关系表达式 【6】,用以判断x同时为3和7的倍数时,关系表达式的值为真。(7)有以下程序#include<stdio.h>main(){inta=l,b=2,c=3,d=0;if(a==l)if(b!=2)if(c=3)d=l;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf("%d\n",d);)程序远行后的输出结果是[7】。(8)有以下程序#include<stdio.h>main(){intm,n;scanf( ,Am,&n);while(m!=n){while(m>n)m=m-n;while(m<n)n=n-m;}printf("%d\n",m);)程序运行后,当输入1463V回车〉时,输出结果是18】0(9)有以下程序#include<stdio.h>main(){inti,j,a[][3]={1,2,3,4,5,6,7,8,9};for(i=l;i<3;i++)for(j=l;j<3;i++)printf(**%dw,a[i][j]);printf(“\n”);)程序运行后的输出结果是[9](10)有以下程序#include<stdio.h>main(){inta[]={l,2,3,4,5,6},*k[3],i=0;while(i<3){k[i]=&a[2*i];printf("%d",*k[i]);i++;程序运行后的输出结果是[10]o(11)有以下程序#include<stdio.h>main(){inta[3][3]={{l,2,3},{4,5,6},{7,8,9)};intb[3]={0},i;for(i=l;i<3;i++)b[i]=a[i][2]+a[2][i];for(i=l;i<3;i++)printf(a%dw,b[i]);printf("\n");}程序运行后的输出结果是[11]O(12)有以下程序#include<stdio.h>#include<string.h>voidfun(char*str){chartemp;intn,i;n=strlen(str);temp=str[n-l];for(i=n-l;i>0;i-)str[i]=str[i-l];str[0]=temp;)mainO{chars[50];scanf("%s”,s);fun(s);printf("%s\n",s);}程序运行后输入:abcdefV回车>,则输出结果是[12](13)以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。请填空。#include<stdio.h>mainO{intx=256;printf(a%d-%d-%d\nw,[13],x/10%10,x/100);)(14)以下程序用以删除字符串中所有的空格,请填空。#include<stdio.h>mainO{chart100]={"Ourteacherteachclanguage!n};inti,j;for(i=j=0;s[i]!='\0';i++)if(s[i]!=''){s[j]=s[i];j++;}s[j]=[14]5printf("%s\n",s);(15)以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。#include<stdio.h>main(){inta[10],*p,*s;for(p=a;p-a<10;p++)scanf("%d",p);for(p=a,s=a;p-a<10;p++)if(*p>*s)s=[15];printf("index=%d\n"s-a);2010年3月全国计算机等级考试二级C语言笔试真题及参考答案一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)o下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是C语言程序是由过程和函数组成的C语言函数可以嵌套调用,例如:fun(fun(x))C语言函数不可以单独编译C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是C语言中的注释不可以夹在变量名或关键字的中间C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是_1AaBcaba-b(14)若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;i=(a+k)<=(i+k);i=a%ll;i=!a;(15)有以下程序#include<stdio.h>main(){chara,b,c,d;scanf(w%c%c,,,&a,&b);c=getchar();d=getchar();printf(M%c%c%c%c\n,,,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==l)||(a!=l)的值是102D)不知道a的值,不能确定(18)以下选项中与if(a=l)a=b;elsea++;语句功能不同的switch语句是switch(a){case:a=b;break;default:a++;)switch(a=l){caseO:a=b;break;casel:a++;}C)switch(a){default:a++;break;casel:a=b;}D)switch(a==l){casel:a=b;break;case0:a++;}(19)有如下嵌套的if语句if(a<b)if(a<c)k=a;elsek=c;elseif(b<c)k=b;elsek=c;以下选项中与上述if语句等价的语句是k=(a<b)?a:b;k=(b<c)?b:c;k=(a<b)?((b<c)?a:b):((b>c)?b:c);k=(a<b)?((a<c)?a:):((b<c)?b:c);k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序#include<s七dio.h>main(){infor(i=l;i<3;i++){for(j=3;j>O;j-){if(i*j)>3)break;m=i*j;)printf(,'m=%d\n,,,m);)程序运行后的输出结果是m=6m=2m=4m=5(21)有以下程序#include(stdio.h>main(){inta=l;b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%d\n”,a,b);程序运行后的输出结果是A)9,188,117,11D)10,14(22)有以下程序,其中k的初值为八进制数#include<stdio.h>main(){intk=011;printf("%d\n”,k++);)程序运行后的输出结果是1211109(23)下列语句组中,正确的是char*s;s=*'Olympic";chars[7];s=,,OlympicM;char*s;s={"Olympic"};chars[7|;s={"Olympic”};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是intnum|0..2008|;intnum!|;intN=2008;intnum[N];#defineN2008intnum[N];(26)有以下程序#include<stdio.h>voidfun(char*c,intd){*c=*c+l;d=d+l;printf("%c,%c,n,*c,d);main(){charb=,a,,a=,A,;fun(&b,a);printf("%e,%e\n”,b,a);)程序运行后的输出结果是b,B,b,Ab,B,B,Aa,B,B,aa,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义doublea[10],*s=a;,以下能够代表数组元素a[3]的是(*s)[3|*(s+3)*s[3|*s+3(29)有以下程序#include(stdio.h)main(){inta[5]={1,2,3,4,5},b[5]=(0,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]]);printf("%d\n",s);程序运行后的输出结果是6101115(30)有以下程序#include<stdio.h>main(){intb[3][3]={0,1,2,04,2,0,1,2)for(i=0;i<3;i++)for(j=ij<=l;j++)t+=b[i][b|j][il];printf("%d\n”,t);)程序运行后的输出结果是1349(31)若有以下定义和语句charsl[10]="abcd!”,*s2=”\nl23\\”;printf("%d%d\n",strlen(si),strlen(s2));则输出结果是5510510758(32)有以下程序#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i);}main(){inta[N]={1,23,4,5,6,7,8},i;fun(a,2);for(i=O;i<N/2;i++){printf("%d”,a[i]);}printf("\n");)程序运行后的输出结果是1313223432341234(33)有以下程序#include<studio.h>intf(intt[],intn);main{inta[4]={l,2,3,4),s;s=f(a,4);printf("%d\n**,s);}intf(intn){if(n>0)returnt[n-l]+f ;elsereturn0;程序运行后的输出结果是4IO146(34)有以下程序#include<stdio.h>intfun(){staticintx=l;x*2;returnx;main(){inti,s=l,for(i=l;i<=2;i++)s=fun();printf("%d\nn,s);)程序运行后的输出结果是O148(35)有以下程序#include<stdio.h>#defineSUB(a) (a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf(,'%d\n,',d);}程序运行后的输出结果是0-12-2010(36)设有定义:structcomplexntreal,unreal;}datal={l,8},data2;则以下赋值语句中错误的是data2=datal;data2=(2,6);data2.real=datal.real;data2.real=datal.unreal;(37)有以下程序#include<stdio.h>#include<string.h>structAnta;charb|10|;doublec;};voidf(structAt);main(){structAa={1001,nZhangDaM,1098.0};(a);printf(n%d,%s,%6.1f\nM,a.a,a.b,a.c);voidf(structAt){t.a=1002;strcpv(t.b,nChangRongn);t.c=1202.0;}程序运行后的输通结果是1001,zhangDa,1098.01002,changRong,1202.01001,ehangRong,l098.01002,ZhangDa,1202.0(38)有以下定义和语句structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;);'structworkersw,*pw;pw=&w;能给w中year成员赋1980的语句是*pw.year=198O;w.year=1980;pw->year=1980;w.s.year=1980;(39)有以下程序#include<stdio.h>main(){inta=2,b=2,c=2;printfL%d\iT,a/b&c);)程序运行后的输出结果是O123(40)有以下程序#include<stdio.h>main(){FILE*fp;charstr(10|;fp=fopen(nmyfile.datn,Mwn);fputs("abc'',fp);fclose(fp);fpfopen(,lmyfile.data,,,,,a-H-M);fprintf(fpj%d”,28);rewind(fp);fscanf(fp,M%sn,str);puts(str);fclose(fp);程序运行后的输出结果是abc28cabc28D)因类型不一致而出错二、填空题一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为 【1】o(2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有12】个元素。(3)设二叉树如下:希赛11•在线收育用ET£12010^3月全国计苴机等创名试质*Y鸽冷/M^://w\/ncre/zt/201002与11\ T八回 曲位希赛IT在线,育对该二叉树进行后序遍历的结果为【3】o(4)软件是【4】、数据和文档的集合。(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号,【5】,成绩)。(6)设x为int型变量,请写出一个关系表达式【6】,用以判断x同时为3和7的倍数时,关系表达式的值为真。(7)有以下程序#include<stdio.h>main(){inta=l,b=2,c=3,d=0;if(a==l)if(b!=2)if(c==3)d=l;elsed=2;elseif(c!=3)d=3;elsed=4;elsed=5;printf("%d\n”,d);}程序运行后的输出结果是17】o(8)有以下程序#include<stdio.h>main(){intm9n;scanf(M%d%d,\&m,&n);while(m!=n){while(m>n)m=m-n;while(m<n)n=n-m;}printf("%d\n”,m);}程序运行后,当输入1463V回车,时,输出结果是[8】o(9)有以下程序#include<stdio.h>main(){inti,j,a[][3]={l,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)for(j=i;jV3;j++)printf(u%d%,a|i][j]);printf(M\nn);)程序运行后的输出结果是[9】。(10)有以下程序#include<stdio.h>main(){inta[]={l,2,3,4,5,6},*k|3],i=0;while(i<3){kli]=&a[2*i];printfL%(T,*k[i]);i++;程序运行后的输出结果是 [101o(11)有以下程序#include<stdio.h>main(){inta[3][3]={{l,2,3},{4,5,6},{7,8,9}};intb|31={0},i;for(i=0;i<3;i++)b|i|=a[i||2|+a[2||i|;for(i=0;i<3;i++)printf(,f%dH,b[lp;printfL\nD;}程序运行后的输出结果是 [111(12)有以下程序#include<stdio.h>#include<string.h>voidfun(char*str){chartemp;intnJ;n=strlen(str);temp=str[n-l];for(i=n-l;i>0;i-)str[i]=str[i-l];str[0]=temp;)main(){chars|50|;scanf(n%sn,s);fun(s);printf(n%s\nn,s);}程序运行后输入:abcdef<回车〉,则输出结果是【12】。(13)以下程序的功能是:将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。请填空。#include<stdio.h>main(){intx=256;printf(''%d-%d・%d\n'', [13],x/10%10,x/100);}(14)以下程序用以删除字符串所有的空格,请填空。#include<stdio.h>main(){chars[100]={MOurteacherteachClanguage!M};inti,j;for(i=j=O;s[i]!=,\O,;i++)if(s[i]!=**){s[j|=s[i];j++;}s[jl=114】printf(“%§\n”,s);}(15)以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。#include<stdio.h>main(){inta[10],*p,*s;for(p=a;p-a<10;p-H-)scanf("%d”,p);for(p=a,s=a;p-a<10;p++)if(*p>*s)s=L15] ;printf(windex=%d\n,,,s-a);答案:2010年3月全国计算机等级考试二级C语言参考答案一、选择题《p分》(1)A(2)D(3)B(4>A(5)c(6)B(7)A<8>D,口.Cdo)A(11)B(12)B(13)D(14)C(15)C(16)D(17)A(18)B(19)c(20)A(21)D(2力D(23)A(24)B(25)D(26)A(27)D(28)B(29)C(30)C(31)A(32)C(33)B(34)C(35)C(36)B(37)A(38)D(39)A(40)C2010年3月全国计算机等级考试真题及参考答案http:/,<ify.mncrezT201003dk(2)15<4)程序<6)(^%3==0)&&(»%7=0)(8)7(10)135(12)fabcde(14)s(i+l]二、填空题(30分)<1>A,B,C,D,E,F,5,4,3(2,1(3)EDBGHFCA(5)课号(7)4(9)123569(11)101418(13)X%10(15)p2012年3月份全国计算机等级考试二级C语言普弗上初题库(全)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图C)结构图 D)数据流图(2)结构化程序设计主要强调的是A)程序的规模 B)程序的效率 C)程序设计语言的先进性 D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法 B)软件开发工具 C)软件开发费用 D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-l)/2的排序方法是A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序(7)如果进栈序列为el,e2,e3,e4,则可能的出栈序列是A)e3,el,e4,e2 B)e2,e4,e3,el C)e3,e4,el,e2D)任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性 B)关系 C)键 D)域(9)有三个关系R、S和T如下:RBCDa0 klb 1 nlBCDf3h2a0kln2xlTBCDa0kl由关系R和S通过运算得到关系T,则所使用的运算为A)并 B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void,define,WORDB)a3_3,_123,CarC)For,-abc,IFCaseD)2a,DO,sizeof(13)以下选项中可作为C语言合法常量的是A)-80 B)-080C)-8el.OD)-80.0e(14)若有语句:char*line[5];,以下叙述中正确的是A)定义line是一个数组,每个数组元素是一个基类型为char为指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)inta=b=O; B)charA=65+l,b='b'; C)floata=l,*b=&a,*c=&b; D)doublea=0O;b=l.l;(16)有以下程序段charch;intk;ch=,a';k=12;printf("%c,%d,”,ch,ch,k);printf(Mk=%d\nM,k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main。{inti,s=l;for(i=l;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf("%d\n,',s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为“真”的表达式是A)(c=2)||(c==4)||(c=6)B)(c>=2&&c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&«&!(c%2)D)(c>=2&&c<=6)&&(c%2!=l)(19)若变量已正确定义,有以下程序段inta=3,b=5,c=7;if(a>b)a=b;c=a;if(c!=a)c=b;printf(M%d,%d,%d\n,\a,b,c);其输出结果是A)程序段有语法错 B)3,5,3 C)3,5,5D)3,5,7(20)有以下程序#include<stdio.h>main(){intx=l,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;casel:b++;break;case2:a-H-;b++;break;case3:a-H-;b++;
printf("a=%d,b=%d\n",a,b);)程序的运行结果是A)a=l,b=O B)a=2,b=2D)a=2,b=l(21)下列程序的输出结果是#include"stdio.h"main(){inti,a=0,b=0;for(i=l;i<10;i++){if(i%2==0){a++;continue;}b++;}printf(na=%d,b=%dn,a,b);}A)a=4,b=4 B)a=4,b=5 C)a=5,b=4(22)已知#intt=0;while(t=l){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){inta[10]={l,2,3,4,5,6,7,8,9,10},*p=a;printf(M%d\nn,*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x川(24)以下错误的定义语句是A)int x川3]={{0},{1},{123}};x|4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};(25)有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){char§trl[100]="abcddfefdbdZc='d';ss(strl,c);printf(n%s\nM,strl);}程序运行后的输出结果是A)ABCDDEFEDBDB)abcDDfefDbDD)Abcddfefdbd(26)有如下程序main()B)intD)intx[][3]={l,2,3,4);C)abcAAfefAbA{charch|2||5|={,'6937,,,"8254,,},*p|2|;intij,s=O;for(i=0;i<2;i++)p|i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j|>,\0';j+=2)s=10*s+p[i][j]-r0,;printf(,'%d\n,',s);}该程序的输出结果是A)69825 B)63825 C)6385 D)693825(27)有定义语句:char 若要从终端给s输入5个字符,错误的输入语句是A)gets(&s|O]); B)scanf("%s,,,s+1); C)gets(s);D)scanf(M%s',,s[l]);(28)以下叙述中错误的是A)在程序中凡是以“#“开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号表示结束 C)#defineMAX是合法的宏定义命令行 D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedefstruct{intn;charch|8|;}PER;则下面叙述中正确的是A)PER是结构体变量名 B)PER是结构体类型名 C)typedefstruct是结构体类型D)struct是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)inta[5]={0,l,2,3,4,5}; B)chara[]={W,TJ2,J3,,"560*C)chara={'A','BTC'};D)inta[5]="0123”;(32)有以下程序#include<string.h>mainO{charp[]={G%/c[q[10]={■%/小};printf(n%d%d\n,f,strlen(p),strlen(q));}以下叙述中正确的是A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B)由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C)由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D)由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#indude<stdio.h>#include<string.h>voidfun(char *s|],intn){char*t; intij;for(i=0;i<n-l;i++)for(j=i+l;j〈n;j++)if(strlen(s[i])>strlen(sU])){t=s[i];s[i]:sU];s[j]=t;}Imain(){char*ss[]={nbccM,nbbccn,f,xyM,naaaaccn,MaabccM};fun(ss,5);printf(n%s,%s\n,\ss|0|,ss|4|);)程序的运行结果是A)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc(34)有以下程序#include<stdio.h>intf(intx){inty;if(x==0||x=l)return(3);y=x*x-f(x-2);returny;}mainO{intz;z=f(3);printf(H%d\nM,z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是charstr[]=,,ABC,,,*p=str;printf(,'%d\n,',*(p+3));A)67 B)0 C)字符,C的地址 D)字符,C(36)若有以下定义:structlink{intdata;structlink*next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是:A)a.next=c;c.next=b;B)p.next=q;q.next=p.next;C)p->next=&c;q->next=p->next;D)(*p).next=q;(*q).next=&b;(37)对于下述程序,在方式串分别采用%t"和“wb”运行时,两次生成的文件TEST的长度分别是#include<stdio.h>voidmain(){FILE*fp=fopen(HTESTn,);fputc(rA\fp);fputc(r\n\fp);fputc(rB\fp);fputc(r\n\fp);fputc(^C;fp);fclose(fp);}A)7与节、7字节B)7字节、5字节C)5字节、7字节D)5字节、5字节(38)变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是UllOOOOo若要求将a的高4位取反,低4位不变,所要执行的运算是A)aAbB)a|bC)a&bD)a«4(39)下面的程序段运行后,输出结果是•nti,j,x=O;staticinta[8]|8];for(i=0;i<3;i++)for(j=0;j<3;j++)a[i]UI=2*i+j;for(i=0;i<8;i++)x+=a[i][j];printf(”%d”,x);A)9 B)不确定值 C)0 D)18(40)下列程序执行后的输出结果是voidfunc(int*a,intb[|){b|0|=*a+6;}main(){inta,b[5];a=0;b|0|=3;func(&a,b);printf(n%d\nH,b[0]);}A)6 B)7 C)8 D)9二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。(1)测试的目的是暴露错误,评价程序的可靠性;而【1】的目的是发现错误的位置并改正错误。(2)某二叉树中度为2的结点有18个,则该二叉树中有【2】个叶子结点。(3)当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【3】。(4)在关系模型中,把数据看成一个二维表,每一个二维表称为一个[4L(5)在计算机软件系统的体系结构中,数据库管理系统位于用户和【5】之间。(6)以下程序的输出结果是[6LmainO{charc='z';printf(H%cn,c-25);}(7)阅读下面语句,则程序的执行结果是17】。#include"stdio.h''main(){inta=-l,b=l,k;if((++a<0)&&!(b-<=0))prmtf(n%d,%d\M,a,b);elseprintf(,,%d,%d\n,\b,a);)(8)下列程序的输出结果是[8]omain(){inti;for(i=l;i+l;i++){if(i>4){printf(,,%d\n,,,i);break;}printf(,'%d\n,,,i++);}}(9)以下程序的定义语句中,x[l]的初值是[9】,程序运行后输出的内容是【10】。#include<stdio.h>main(){intx[]={l,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p|4],i;for(i=0;i<4;i++){p[i]=&x[2*i+l];printf(,'%d,,,p|i||0|);)printf(M\nn);)}(10)以下程序的输出结果是【11】。#indude<stdio.h>voidswap(int*a,int*b){int*t;t=a;a=b;b=t;}main(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf(M%d%d\N,*p,*q))}(ID以下程序的输出结果是【12】。main(){chars[]="ABCD”,*p;for(p=s+l;p<s+4;p++)printf(,,%s\n,',p);)(12)以下程序的输出结果是【13】。floatfun(intxjnty){return(x+y);}main(){inta=2,b=5,c=8;printf(n%3.0f\n,\fun((int)fun(a+c,b),a-c));}(13)有如下图所示的双链表结构,请根据图示完成结构体的定义:Iheaddatarchildstructaa{intdata;[14])node;(14)fseek函数的正确调用形式是【15】。一、选择题(1)B 【解析】N-S图是由Nassi和Shneiderman提出的一种符合程序化结构设计原则的图形描述工具。它的提出是为了避免流程图在描述程序逻辑时的随意性上灵活性。(2)D【解析】结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用got。语句,总的来说可使程序结构良好、易读、易理解、易维护。(3)B【解析】模块的独立程度可以由两个定性标准度量:耦合性和内聚性。耦合性是衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚性是衡量一个模块内部各个元素彼此结合的紧密程度。一般来说,要求模块之间的耦合尽可能地低,而内聚性尽可能地高。(4)D【解析】需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。选项A)软件开发方法是在总体设计阶段需完成的任务;选项B)软件开发工具是在实现阶段需完成的任务;选项C)软件开发费用是在可行性研究阶段需完成的任务。(5)A【解析】算法具有5个特性:①有穷性:一个算法必须(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的;②确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义;③可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现;④输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合;⑤输出:一个算法有一个或多个输出。(6)D【解析】在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都为n(n-l)/2,堆排序需要的比较次数为nloglno⑺B【解析】由栈"后进先出”的特点可知:A)中el不可能比e2先出,C)中el不可能比e2先出,D)中栈是先进后出的,所以不可能是任意顺序。B)中出栈过程如下图所示:(8)B【解析】关系数据库逻辑设计的主要工作是将E-R图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性,实体集也可以转换成关系。(9)D【解析】在关系运算中,交的定义如下:设R1和R2为参加运算的两个关系,它们具有相同的度n,且相对应的属性值取自同一个域,则RIR2为交运算,结果仍为度等于n的关系,其中,交运算的结果既属于R1,又属于R2。(10)D【解析】数据处理是指将数据转换成信息的过程,故选项A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C)叙述错误。11)C 【解析】算法具有的5个特性是:有穷性;确定性;可行性;有0个或多个输入;有一个或多个输出。所以说,用C程序实现的算法可以没有输入但必须要有输出。(12)8【解析】C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)o(13)A【解析】选项B)项中,以0开头表示是一个八进制数,而八进制数的取值范围是0〜7,所以-080是不合法的;选项C)和D)中,e后面的指数必须是整数,所以也不合法。(14)A【解析】C语言中□比*优先级高,因此line先与[5]结合,形成line[5]形式,这是数组形式,它有5个元素,然后再与line前面的"*”结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为char的指针变量。(15)B 【解析】本题考查变量的定义方法。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开,因此选项A)和D)错误。在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b,故选项C)错误。(16)D【解析】输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为a,97;第二个输出语句输出的结果为k=12o(17)D【解析】本题是计算50之内的自然数相加之和,题中if语句括号中的条件表达式!(i%5)&&!(i%3)表明只有能同时被5和3整除的数才符合相加的条件,1〜49之间满足这个条件的只有,15、30和45,因为s的初始值为1,所以s=l+15+30+45=91o(18)B 【解析】满足表达式(c>=2&&c<=6)的整型变量c的值是2,3,4,5,6。当变量c的值不为2,4,6时,其值只能为3或5,所以表达式c!=3和c!=5中至少有一个为真,即不论c为何值,选项B中的表达式都为“真“。(19)B【解析】两个if语句的判断条件都不满足,程序只执行了c=a这条语句,所以变量c的值等于3,变量b的值没能变化,程序输出的结果为3,5,3o所以正确答案为B)o(20)D【解析】本题考查switch语句,首先,x=l符合条件case1,执行switch(y)语句,y=0符合case0语句,执行a++并跳出switch(y)语句,此时a=l。因为case1语句语面没有break语句,所以向后执行case2语句,执行a++,b++,然后跳出switch(x),得a=2,b=l»(21)B 【解析】continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被2整除时,a就会增1,之后执行continue语句,直接执行到for循环体的结尾,进行i++,判断循环条件。(22)B 【解析】t=l是将t赋值为1,所以循环控制表达式的值为lo判断t是否等于1时,应用t==l,注意"="与"="的用法。(23)A 【解析】在C语言中,数组元素是从0开始的。指针变量p指向数组的首地址,(p+2)就会指向数组中的第3个元素。题目中要求输出的是元素的值。(24)C 【解析】本题考查的是二维数组的定义和初始化方法。C语言中,在定义并初始化二维数组时,可以省略数组第一维的长度,但是不能省略第二维的长度。故选项C)错误。(25)B【解析】在内存中,字符数据以ASCII码存储,它的存储形式与整数的存储形式类似。C语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的ASCII码进行算术运算,在本题中,s++相当于s=s+l,即让s指向数组中的下一个元素。(26)C 【解析】该题稍微难一点。主要要搞清楚以下几点:①定义了一个指针数组char*p|2]后,程序中第一个循环for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指针数组的p|0]元素(它本身是一个指针)指向了二维数组ch的第一行字符串,并使指针数组的p[l]元素指向二维数组ch的第二行字符串,这样,就使指针数组p和二维数组ch建立起了一种对应关系,以后对二维数组ch的某个元素的引用就有两种等价的形式:ch[i][j]或p|i||j]o②对二维数组ch的初始化,使其第一行ch[0]中存入了字符串"6937”,第二行ch|l]中的内容为字符串"8254”。③程序中第二个循环中的循环体s=s*10+p[i][j]-'0';的功能是这样的,每执行一次,将s中的值乘以10(也即,将s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前中的字符量转换为相应的数字,然后把这个数字加到s的个位上。④注意到内层循环的循环条件p[i] ,是指中的字符只要不是字符串结束标志就继续循环,语句j+=2;是使下标j每次增加2,也即一个隔一个地从p[i]所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从p[0]所指向的字符串“6937”中一个隔一个地取出字符,分别是G和3,然后从p[l]所指向的字符串“8254”中一个隔一个地取出字符,分别是8和5,同时经过转换和相加运算后,结果s中的值应该是6385。(27)D【解析】在格式输入中,要求给出的是变量的地址,而D)答案中给出的s[l]是一个值的表达式。(28)D 【解析】C语言中的预处理命令以符号#开头,这些命令是在程序编译之前进行处理的,选项D)的描述错误。(29)B【解析】本题中,tvpedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。(30)B 【解析】getchar函数的作用是从终端读入一个字符。(31)B【解析】选项A)中,定义的初值个数大于数组的长度;选项C)中,数组名后少了中括号;选项D)中,整型数组不能赋予字符串。(32)A 【解析】在给p和q数组赋初值时,系统会自动添加字符串结束符,从题目中可以看出数组p和q都有3个字符,所以长度均为3。(33)A 【解析】函数fun(char*s[l,intn)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={"xy","bcc","bbcc","aabcc","aaaacc"},ss[0],ss[4]的输出结果为xy,aaaacc«(34)C【解析】函数intf(intx)是一个递归函数调河,当x的值等于0或1时,函数值等于3,其他情况下y=x2-f(x-2),所以在主函数中执行语句z=f(3)时,y=3*3-f(3-2)=9-f(l尸9-3=6。(35)8 【解析】考查指向字符串的指针变量。在该题中,指针变量p指向的应该是该字符串中的首地址,p+3指向的是字符串结束标志、(T的地址,因而*(p+3)的值为0o(36)D【解析】本题考查链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。(37)B【解析】以“wt”方式写入的是字符文件,转义字符,\n,被看作两个字符来处理。而“wb”方式写入的是二进制文件,转义字符,\n,是一个字符。(38)A【解析】本题考查的是位运算的知识,对于任何二进制数,和1进行异或运算会让其取反,而和0进行异或运算不会产生任何变化。(39)C【解析】本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:TOC\o"1-5"\h\z0 1 22 3 44 5 6由于数组的下标是从0开始的,所以二维数组元素表示的是二维数组a的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗服装购销合同范本
- 兽医免疫学模拟试题
- 初级经济师(人力资源专业)模拟习题
- 厨具公司合同范本
- 下学期八年级英语教学总结 -教学工作总结
- 中药炮制题库(含答案)
- 植物生产与环境测试题含参考答案
- 关于社保补充合同范本
- 一年级小学生入队申请书
- 一年级下册语文教学反思
- GB/T 24474.2-2020乘运质量测量第2部分:自动扶梯和自动人行道
- GB/T 17689-2008土工合成材料塑料土工格栅
- GB/T 13734-2008耳穴名称与定位
- 适航法规基础培训
- 2023版初中化学跨学科实践活动(化学)
- 植物保护学通论-植物病害分析课件
- 药品经营质量管理规范(GSP)实用教程教学课件
- 外研社一起英语四年级下册课文
- DB32-T 2705-2014公路工程地质勘察监理规程-(高清现行)
- After-Effects影视特效设计教程完整版全套ppt课件
- 医疗设备清单
评论
0/150
提交评论