全国等考(二级C)历年考点分析_第1页
全国等考(二级C)历年考点分析_第2页
全国等考(二级C)历年考点分析_第3页
全国等考(二级C)历年考点分析_第4页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

历年考点分析一、考点分析1c语言概述知识点所占分值考核几率专家点评C语言概述0-1分20%简单识记C语言程序的构成0-1分30%简单识记标识符1-2分60%简单,属重点识记知识点常量1-2分80%简单,属重点识记知识点变量2-3分100%难度适中,重点理解重点掌握标准C没有具体要求规定各类型数据所占内存的字节数,现以这次考试标准viusalC++6.0为例,说明各类型变量所占的位数。类型所占位数所占字节数类型所占位数所占字节数short162unsignedint324int324unsignedlong324long324float324unsignedshort162double648二、考点分析2运算符与表达式知识点所占分值考核几率专家点评C运算符简介0-1.分10%简单识记运算符的结合和优先级0-1分60%简单识记强制类型转换运算符0-1分30%简单识记逗号运算符和逗号表达式0-1分40%简单,属重点识记知识点基本的算术运算符1-2分100%简单,属重点识记知识点算术表达式和运算符的1-2分100%难度适中,重点理解重点掌握优先级与结合、自增自减运算符2-3分100%难度适中,重点理解重点掌握赋值运算符和赋值表达式2-4分100%简单,重点掌握重点理解复合的赋值运算符1-2分80%偏难,不是重点赋值运算中的类型转换0-1分75%偏难,不是重点位运算符和位运算0-1分80%偏难,属重点识记知识点三、考点分析3基本语句知识点所占分值考核几率专家点评C语句分类0-130%简单识记字符输出函数putchar()1-270%难度适中,重点掌握

字符输入函数getcharO1-270%难度适中,重点掌握格式输入函数printf()3-4100%难度适中,重点理解重点掌握格式输出函数scanf()3-4100%难度适中,重点理解重点掌握四、考点分析4选择结构知识点所占分值考核几率专家点评关系运算符及优先次序0-140%简单识记关系表达式0-150%简单,属重点识记知识点逻辑运算符及优先级1-250%简单识记逻辑表达式1-250%简单,属重点识记知识点if语句的几种形式1-2100%简单识记if语句的嵌套1-2100%难度适中,重点掌握条件运算符0-1100%难度适中,重点掌握switch语句2-4100%简单,重点掌握重点理解语句标号0-110%偏难,不是重点goto1-2100%简单识记五、考点分析5循环结构知识点所占分值考核几率专家点评while语句2-3100%重点理解重点掌握do...while语句2-3100%重点理解重点掌握for语句5-7100%重点理解重点掌握循环嵌套4-6100%重点理解重点掌握循环比较0-120%简单识记break语句2-370%难度适中,重点掌握continue语句2-350%难度适中,重点掌握六、考点分析6数组知识点所占分值考核几率专家点评一维数组的定义及引用1-380%简单,重点掌握一维数组的初始化1-280%简单,重点掌握二维数组的定义及引用3-490%偏难,重点掌握重点理解二维数组的初始化1—290%简单,重点掌握通过赋初值定义二维数组1—260%偏难,重点理解字符数组的定义及初始化3-4100%难度适中,重点理解重点掌握字符串和字符串结束标志0-160%难度适中,重点理解

字符数组的输入输出2-3100%简单,重点掌握重点理解字符串处理函数1-250%偏难,重点掌握重点理解七、考点分析7函数知识点所占分值考核几率专家点评库函数1—260%简单,重点识记知识点函数的定义0-150%简单,重点识记知识点形参和实参及函数调用2-380%难度适中,重点理解重点掌握函数调用的一般形式和调用方式2-390%偏难,重点掌握重点理解函数的说明及其位置0-160%简单识记函数的嵌套调用1-390%偏难,重点掌握重点理解函数的递归调用1-280%偏难,重点掌握重点理解局部变量1-2100%难度适中,重点理解重点掌握全局变量1-2100%难度适中,重点理解重点掌握auto变量0-170%难度适中,重点理解register变量0-170%难度适中,重点理解静态局部变量1-260%简单识记用static声明外部变量1-270%难度适中,重点理解用extern声明外部变量1-270%难度适中,重点理解内部函数2-390%简单,重点理解重点掌握外部函数2-390%简单,重点理解重点掌握八、考点分析8指针知识点所占分值考核几率专家点评指针变量的定义和引用2-360%简单识记指针变量作为函数参数2-390%简单,重点掌握指向数组元素的指针3-4100%难度适中,重点掌握重点理解用数组名作为函数参数2-390%难度适中,重点掌握指向多维数组的指针3-4100%偏难,重点理解返回指针值的函数1-280%简单,重点掌握二级指针及指针数组1-390%偏难,重点掌握重点理解字符串及字符指针1-270%简单识记字符指针和字符数组的区别0-150%简单识记函数指针2-390%难度偏上,重点掌握

九、考点分析9编译预处理及动态存储知识点所占分值考核几率专家点评带参数的宏定义1-280%简单,重点掌握不带参数的宏定义1-3100%简单,重点掌握文件包含3-4100%难度适中,重点掌握重点理解caUoc()函数1-220%偏难,重点理解free。函数3-420%难度适中,重点理解maUoc()函数1-230%难度适中,重点理解十、考点分析10结构体和共用体知识点所占分值考核几率专家点评用typedef说明一种新类型1-2100%简单识记,重点理解结构体类型的变量定义2-390%重点理解,重点掌握指向结构体变量的指针0-280%难度适中,重点理解指向结构体数组的指针0-250%重点理解,重点掌握共用体类型的说明和变量定义0-180%简单识记共用体变量中成员的引用0-260%难度适中,重点掌握链表1-380%重点理解,重点掌握建立单向链表1-360%难度适中,重点掌握顺序访问链表中各节点的数据域1-260%偏难,重点理解在链表中插入和删除结点1-3100%重点理解,重点掌握十一、考点分析11文件知识点所占分值考核几率专家点评文件的概念和文件指针0-290%简单,重点理解重点掌握fopen()函数和fclose()函数1-2100%难度适中,重点掌握fputc()函数和fgetc()函数0-180%简单,重点理解fread()函数和fwrite。函数1-2100%难度适中,重点理解,重点掌握fscanf()函数和fprintf。函数0-390%重点理解,重点掌握fgets()函数和fputs()函数1-3100%简单,重点理解rewind。函数0-240%难度偏难,重点理解fseek。函数0-230%难度偏难,重点理解函数0-130%难度偏难,重点理解传给main。函数的参数0-250%难度适中,重点掌握

模拟题一一、选择题(1)一个算法应该具有"确定性”等5个特性,下面对另外4个特性的描述中错误的是A)有零个或多个输入B)有零个或多个输出C)有穷性 D)可行性(2)以下叙述中正确的是C语言的源程序不必通过编译就可以直接运行C语言中的每条可执行语句最终都将被转换成二进制的机器指令0C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译(3)以下符合C语言语法的实型常量是A)1.2E0.5 B)3.14.159EC).5E-3 D)E15(4)以下4组用户定义标识符中,全部合法的一组是A)mainB)IfC)txtD)intenclude-maxREALk_2sinlturbo3C0M001(5)若以下选项中的变量已正确定义,则正确的赋值语句是A)xl=26.8%3;B)l+2=x2;C)x3=0xl2:D)x4=1+2=3:(6)设有以下定义inta=0;doubleb=L25;charc='A);#defined2则下面语句中错误的是A)a++;B)b++;C)c++;D)d++;(7)设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式妇2*计算结果不相符的是2A)(a+b)*h/2B)(l/2)*(a+b)*hC)(a+b)*h*l/2D)h/2*(a+b)(8)有以下程序main(){intx=102,y=012;printf("%2d,%2d\n”,x,y);}执行后输出结果是A)10,01B)002,120102,10D)02,10

A)10,01B)002,120102,10D)02,10(9)以下4个选项中,不能看作一条语句的是A){;}B)a=0,b=0,c=0;C)if(a>0);D)if(b==0)m=l;n=2;(10)设有定义:inta,*pa二&a;以下scanf语句中能正确为变量a读入数据的是scanfpa);B)scanf('%d",a);C)scanf&pa);D)scanf*pa);(11)以下程序段中与语句k=a>b?(b>c?l:0):0;功能等价的是A)if((a>b)&&(b>c))k=l;elsek=0;if((a>b)||(b>c))k=l;elsek=0;C)if(a<=b)k=0;elseif(b<=c)k=l;D)if(a>b)k=l;elseif(b>c)k=l;elsek=0;(12)有以下程序main(){chark;inti;for(i=l;i<3;i++){scanf("%c",&k);{case’0,{case’0,:case'r:)}程序运行时,从键盘输入:A)anothernumberC)anothernumberprintf("another'n");printf("number'n");}01<回车),程序执行后的输出结果是B)anothernumberanotherD)numbernumbernumber(13)有以下程序main(){intx=0,y=5,z=3;while(z—>0&&++x<5) y=y-l;printf(*%d,%d,%d\n”,x,y,z);}程序执行后的输出结果是A)3,2,0B)3,2,-1C)4,3,-1D)5,-2,-5(14)有以下程序main(){inti,s=0;for(i=l;i<10;i+=2)s+=i+l;printf("%d\n",s);)程序执行后的输出结果是A)自然数1〜9的累加和 B)自然数1〜10的累加和0自然数1〜9中的奇数之和 D)自然数1〜10中的偶数之和(15)有以下程序main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n”,n);}程序执行后的输出结果是A)n=5B)n=2C)n=3D)n=4(16)若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b); }并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是doublemyadd(doublea,b);doublemyadd(double,double);doublemyadd(doubleb,doublea);doublemyadd(doublex,doubley);(17)有以下程序charfun(charx,chary){if(x<y)returnx;returny;}main()inta-9',b=,8',c=,T;printf("%c\n”,fun(fun(a,b),fun(b,c)));}程序的执行结果是A)函数调用出错B)8C)9D)7(18)设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是A)p=l;B)*q=2;C)q=p;D)*p=5;(19)有以下程序voidf(intv,intw){intt;t=v;v=w;w=t;}main(){intx=l,y=3,z=2;if(x>y)f(x,y);elseif(y>z)f(y,z);elsef(x,z);printf("%d,%d,%d\n*,x,y,z);)执行后输出结果是A)1,2,3B)3,1,2C)1,3,2D)2,3,1(20)有以下程序段inta[10]={l,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是A)5B)6C)8D)9(21)有以下程序main(){chara□=“abcdefg”,b[10]="abcdefg”;printf("%d%d\n”,sizeof(a),sizeof(b));)执行后输出结果是77B)88C)810D)1010(22)有以下程序voidswap1(intc口){intt;t=c[0];c[0]=c[l];c[l]=t;}voidswap2(intcO,intcl){intt;t=c0;c0=cl;cl=t;}main(){inta[2]={3,5},b[2]={3,5};swapl(a);swap2(b[0],b[l]);printf(z/%d%d%d%d\n*,a[0],a[l],b[0],b[l]);)其输出结果是A)5353533503535D)3553(23)有以下程序voidsum(int*a){a[0]=a[1];}main(){intaa[10]={l,2,3,4,5,6,7,8,9,10),i;for(i=2;i>=0;i-一) sum(&aa[i]);printf("%d\n",aa[0]);)执行后的输出结果是A)4B)3C)2D)1(24)有以下程序intf(intb[][4]){inti,j,s=0;for(j=0;j<4;j++){i=j;if(i>2) i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};printf("%d\n”,f(a));}执行后的输出结果是A)12B)11C)18D)16(25)有以下定义#include<stdio.h>chara[10],*b=a;不能给数组a输入字符串的语句是A)gets(a);B)gets(a[0]);C)gets(&a[0]);D)gets(b);(26)有以下程序main(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};printf("%d\n”,strlen(p[4]));)执行后输出结果是A)2B)3C)4D)5(27)有以下程序inta=2;intf(int*a){return(*a)++;}

main(){ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf(*%d\n*,s);)执行后输出结果是A)10B)9C)7(28)有以下程序#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf("%d\n",i);)执行后输出结果是A)28B)22C)16(29)设有以下语句typedefstructS{intg;则下面叙述中正确的是A)可用S定义结构体变量C)S是struct类型的变量(30)有以下程序structSTU{charname[10];D)8D)4charh;}T;D)8D)4charh;}T;B)可以用T定义结构体变量D)T是structS类型的变量intnum;};{structSTUb={"LiSiGuo”,2042);*c=b;}voidf2(structSTU*c){structSTUb={“SunDan”,2044};*c=b;}main(){structSTU a={“YangSan”,2041},b={"WangYin”,2043};fl(&a);f2(&b);printf("%d%d\n”,a.num,b.num);)执行后的输出结果是A)20412044B)20412043C)20422044D)20422043(31)有以下程序main(){unsignedchara,b;aM|3; b=4&3;printf(*%d%d\n”,a,b);)执行后输出结果是A)70B)07C)11D)430(32)下面程序的功能是输出以下形式的金字塔图案是:****main(){inti,j;for(i=l;i<=4;i++){for(j=l;j<=4-i;j++) printf(*");for(j=l;j<=;j++)printf(〃*");printf('\n");}}在下划线处应填入的是A)iB)2*i-lC)2*i+lD)i+2(33)有以下程序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-l;i+=2)for(j=i+2;j<n;j+=2)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={l,2,3,4,5,6,7,8,9,10),i;sort(aa,10);for(i=0;i<10;i++) printf(*%d,aa[i]);printf("\n");其输出结果是A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1,C)9,2,7,4,5,6,3,8,1,10, D)1,10,3,8,5,6,7,4,9,2,(34)以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是A)chars[10]=*abcdefg*; B)chart口="abcdefg",*s=t;C)chars[10];s=“abcdefg”; D)chars[10];strcpy(s,"abcdefg");(35)有以下程序#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=l;i<argc;i+=2)len+=strlen(argv[i]);printf(“5d\n",len);)经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabedefgh3k44执行后输出结果是A)14B)12C)8D)6(36)有以下程序voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-1);}Imain(){inti,aa[5]={l,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");}执行后输出结果是A)5,4,3,2,1,B)5,2,3,4,1,C)1,2,3,4,5,D)1,2,3,4,5,(37)有以下程序structSTU{charname[10];intnum;intScore;};main(){structSTUs[5]={{"YangSan”,20041,703},{"LiSiGuo”,20042,580},{"wangYin”,20043,680},{"SunDan”,20044,550},fPenghua",20045,537}},*p[5],*t;inti,j;for(i=0;i<5;i++) p[i]=&s[i];for(i=0;i<4;i++)for(j=i+l;j<5;j++)if(p[i]->Score>p[j]->Score){t=p[i];p[i]=p[j];p[j]=t;}printfC%5d%d\n”,s[l].Score,p[l]->Score);)执行后输出结果是A)550550B)680680C)580550D)580680(38)有以下程序^include<stdlib.h>structNODE{intnum;structNODE*next; };main(){structNODE*p,*q,*r;intsum=0;p=(structNODE*)malloc(sizeof(structNODE));q=(structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p->num=1;q->num=2;r->num=3;p->next=q;q->next=r;r->next=NULL;sum+=q->next->num;sum+=p->num;printf(,z%d\n*,sum);)执行后的输出结果是A)3B)4C)5D)6(39)有以下程序ttinclude<stdio.h>main()(FILE*fp;inti,k=0,n=0;fp二fopen("dl.dat",〃w");for(i=l;i<4;i++)fprintf(fp,"%d”,i);fclose(fp);fp=fopen(/zdl.dat","r");fscanf(fp,"%d%d”,&k,&n);printf("%d%d\n”,k,n);fclose(fp);)执行后输出结果是1230 0A)12B)12301230 0(40)有以下程序#include<stdio.h>main(){FILE*fp;inti,a[4]={l,2,3,4},b;fp=fopen(//data.dat","wb");for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data,dat","rb");fseek(fp,-2L*sizeof(int),SEEKEND);fread(&b,sizeof(int),1,fp);fclose(fp);printf("%d\n”,b);}执行后输出结果是A)2B)1C)4D)3二、填空题(1)已知字符A的ACSII码值为65,以下语句的输出结果是ocharch=,B'; printf(*%c%d\n”,ch,ch);(2)有以下语句段intnl=10,n2=20;printf("",nl,n2);要求按以下格式输出nl和n2的值,每个输出行从第一列开始,请填空。nl=10n2=20(3)有以下程序main(){intt=l,i=5;for(;i>=0;i—) t*=i;printf("%d\n",t);} 执行后输出结果是O(4)有以下程序main(){intn=0,m=l,x=2;if(!n)x-=l;if(m)x-=2;if(x) x-=3;printf(*%d\n*,x);) 执行后输出结果是。(5)有以下程序#include<stdio.h>main(){charchi,ch2;intnl,n2;chl=getchar();ch2=getchar();nl=chl-'O';n2=r)l*10+(ch2-'O');printf("%d\n”,n2);) 程序运行时输入:12<回车〉,执行后输出结果是o(6)有以下程序voidf(inty,int*x){y=y+*X; *X=*X+y;)main(){intx=2,y=4;f(y,&x);printf("%d %d\n”,x,y);) 执行后输出的结果是O⑺函数fun的功能是计算x"doublefun(doublex,intn){inti;doubley=l;for(i=l;i<=n;i++)y=y*x;returny;主函数中已经正确定义叫a,b变量并赋值,并调用fun函数计算:m=a4+b1-(a+b)3e实现这一计算的函数调用语句为。(8)下面rotate函数的功能是:将n行n列的矩阵A转置为N,例如:1234159135678261014A=9101112A'=二37111513141516481216请填空#defineN4voidrotate(inta[][N]){inti,j,t;for(i=0;i<N;i++)for(j=0;;j++){t=a[i][j];;a[j][i]=t;}}(9)以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串so请填空。voidsstrcpy(charchar*t){while(*s++=);}main(){charstrl[100],str2口="abcdefgh”;sstrcpy(strl,str2);printf("%s\n",strl);}(10)下列程序的运行结果是:o^include<string.h>char*ss(char*s){returns+strlen(s)/2;}main(){char*p,*str="abcdefgh”;p=ss(str); printf('s\n”,p);}(11)下面程序的运行结果是:ointf(inta[],intn){if(n>l)returna[0]+f(&a[l],n-l);elsereturna[0];}main(){intaa[3]={l,2,3},s;s=f(&aa[0]13);printf("%d\rT,s);}(12)以下程序中给指针p分配三个double型动态内存单元,请填空。include<stdlib.h>main(){double*p;p=(double*)malloc();p[0]=l.5;p[l]=2.5;p[2]=3.5;printf p[0],p[l],p[2]);}(13)以下程序的运行结果是ainclude<string.h>typedefstructstudent{charname[10];longsno;floatscore;}STU;main(){STUa={"zhangsan”,2001,95},b={^Shangxian^,2002,90),c={"Anhua”,2003,95},d,*p=&d;d=a;if(strcmp(,)>0)d=b;if(strcmp(,)>0)d=c;printf('%ld%s\n”,d.sno,p->name);}(14)以下sum函数的功能是计算下列级数之和S=1+x+x72!+//3!+ +x"/n!请给函数中的各变量正确赋初值。doublesum(doublex,intn){inti;doublea,b,s;for(i=l;i<=n;i++) {a=a*x;b=b*i; s=s+a/b;}returns;}模拟题二一、选择题(1)用C语言编写的代码程序A)可立即执行 B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行(2)结构化程序由三种基本结构组成,三种基本结构组成的算法A)可以完成任何复杂的任务 B)只能完成部分复杂的任务C)只能完成符合结构化的任务 D)只能完成一些简单的任务(3)以下定义语句中正确的是A)chara='A'b='B';B)floata=b=10.0;C)inta=10,*b=&a;D)float*a,b=&a;(4)下列选项中,不能用作标识符的是A)_1234_ B)_l_2C)int_2_D)2_int_(5)有以下定义语句doublea,b;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是A)a=a+b=b++B)w%(int)a+b)C)(c+w)%(int)aD)w=a==b;(6)有以下程序main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf(*%d\n*,x);}程序运行后的输出结果是A)3 B)5 0-1 D)-2(7)有以下程序main(){chara=,a',b;print("%c,",++a);printf(*%c\n*,b=a++);}程序运行后的输出结果是A)b,bB)b,cC)a,bD)a,c(8)有以下程序main(){intm=0256,n=256;printf("%o%o\n”,m,n);}程序运行后的输出结果是A)02560400B)0256256C)256400D)400400(9)有以下程序main(){inta=666,b=888;printf("%d\n",a,b);}程序运行后的输出结果是A)错误信息 B)666 0888 D)666,888(10)有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case0:printfC%d*,i);case2:printfi);defaultiprintfC^d^,i);}}程序运行后的输出结果是A)022111 B)021021C)000122 D)012(11)若x和y代表整型数,以下表达式中不能正确表示数学关系Ix-y|<10的是A)abs(x-y)<10 B)x-y>-10&&x-y<10C)(x-y)<-101|!(y-x)>10D)(x-y)*(x-y)<100(12)有以下程序main(){inta=3,b=4,c=5,d=2;if(a>b)if(b>c)printf(*%d*,d+++1);elseprintf(*%d*,++d+1);printf("%d\n",d);}程序运行后的输出结果是A)2 B)3 043 D)44(13)下列条件语句中,功能与其他语句不同的是if(a)printf(<%d\n*,x);elseprintfC%d\n*,y);if(a==0)printf(*%d\n*,y);elseprintf(*%d\n*,x);if(a!=0)printf("%d\n",x);elseprintf("%d\n',y);if(a==0)printf(*%d\n*,x);elseprintf(*%d\n*»y);(14)有以下程序main(){inti=0,s=0;for(;;){if(i==3||i==5)continue;if(i==6)break;i++;s+=i;}printf("%d'n",s);}程序运行后的输出结果是A)10 B)13 021 D)程序进入死循环(15)若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是A)for(i=l,p=l;i<=5;i++)p*=i;B)for(i=l;i<=5;i++){p=l;p*=i;}C)i=l;p=l;while(i<=5){p*=i;i++;}D)i=l;p=l;do{p*=i;i++;}while(i<=5);(16)有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("c,%c,%c,%c\n*,a,b,c,d);}若运行时从键盘上输入:6,5,65,66〈回车>。则输出结果是A)6,5,A.B B)6,5,65,66C)6,5,6,5D)6,5,6,6(17)以下能正确定义二维数组的是A)inta[][3];B)inta[][3]=2{2*3}:C)inta[][3]={1};D)inta[2][3]={{1},{2},{3,4}};(18)有以下程序intf(inta){returna%2;}main(){ints[8]={1,3,5,2,4,6},i,d=0;for(i=0;f(s[i]);i++)d+=s[i];printf("d\n”,d);}程序运行后的输出结果是A)9B)llC)19 D)21(19)若有以下说明和语句,intc[4][5],(*p)[5];p=c;能正确引用c数组元素的是A)p+1 B)*(p+3) 0*(p+1)+3 D)*(p[0]+2))(20)有以下程序main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf(*%d,%d,%d,%d\n”,*p,*q,a,b);}程序运行后的输出结果是A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,7(21)sl2和s2已正确定义并分别指向两个字符串。若要求:当si所指串大于s2所指串时,执行语句S;则以卜选项中正确的是A)if(sl>s2)S; B)if(strcmp(sl,s2))S;C)if(strcmp(s2,sl)>0)S; D)if(strcmp(sl,s2)>0)S;(22)设有定义语句intx[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是A)for(i=0;i<6;i++)printf("%2d”,*(p++));B)for(i=0;i<6;i++)printf("%2d”,*(p+i));C)for(i=0;i<6;i++)printf("%2d”,*p++);D)for(i=0;i<6;i++)printf("%2d”,(*p)++);(23)有以下程序#include<stdio.h>main(){inta[]={l,2,3,4,5,6,7,8,9,10,11,2,}, *p=a+5,*q=NULL;*q=*(p+5);printf(*%d%d\n”,*p,*q);}程序运行后的输出结果是A)运行后报错B)66 C)611 D)510(24)有以下定义和语句inta[3][2]={l,2,3,4,5,6,},*p[3];p[0]=a[l];则*(p[0]+D所代表的数组元素是A)a[0][l] B)a[l][0] C)a[l][l]D)a[l][2](25)有以下程序main(){charstr[][10]={"China","Beijing"},*p=str;printf("%s\n”,p+10);}程序运行后的输出结果是A)ChinaB)BejingC)ngD)ing(26)有以下程序main(){chars[]="ABCD",*p;for(p=s+l;p<s+4;p++)printf("%s\n",p);}程序运行后的输出结果是A)ABCDB)AC)BD)BCDBCDBCCDCDCDDDD(27)在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则A)称为函数的直接递归调用B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用(28)有定义:inti,a[10],*p;,则合法的赋值语句是A)p=100; B)p=a[5]; C)p=a[2]+2;D)p-a+2;(29)以下叙述中正确的是A)局部变量说明为static存储数,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同(30)设有定义语句:charcl=92,c2=92;,则以下表达式中值为零的是A)clc2B)cl&c2C)〜c2D)cl|c2(31)程序中对fun函数有如下说明void*fun();此说明的含义是:A)fun函数无返回值 B)fun函数的返回值可以是任意的数据类型Ofun函数的返回值是无值型的指针类型D)指针•fun指向一个函数,该函数无返回值(32)有以下程序main(){chars[]"Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);程序运行后的输出结果是(选项D中的第一行是空行)A)n/NoB)/NoC)n/N0D)YesYesYes/No/No /No(33)有以下程序main(){unsignedinta;intb=T;a=b;printfa);}程序运行后的输出结果是A)-lB)65535 032767D)-32768(34)有以下程序voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++;j—;fun(a,i,j);})main(){intx[]={2,6,1,8},i;fun(x,0,3);for(i=0;i<4;i++)printf("%2d",x[i]);printf("\n");}程序运行后的输出结果是A)1268B)8621C)8162D)8612(35)有以下说明和定义语句structstudent{intage;charnum[8];};structstudentstu[3]={{20,*200401*},{21/200402*),{10\9,*200403*});structstudent*p=stu;以下选项中引用结构体变量成员的表达式错误的是A)(p++)->numB)p->numC)(*p).numD)stu[3].age(36)有以下程序main(){intx[]={l,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j—)if(x[j+l]>x[j]){k=x[j];x[j]=x[j+l];x[j+l]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j+l]>x[j]){k=x[j];x[j]=x[j+l];x[j+l]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+l]){k=x[j];x[j]=x[j+l];x[j+l]=k;}for(i=0;i<8;i++)printf('%d",x[i]);printf("\n");}程序运行后的输出结果是:A)75310246B)01234567 076310462 0)13570246(37)有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen(*fl.txt","w");fprintf(fpl,"abc");fclose(fpl);}若文本文件fl.txt中原有内容为:good,则运行以上程序后文件fl.txt中的内容为A)goodabcB)abcdC)abcD)abcgood(38)、(40).以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出正确的选项。#include<stdlib.h>structnode{chardata;structnode*next;};CreatList(char*s){structnode*h,*p,*q);h=(structnode*)malloc(sizeof(structnode));P=q=h;while(*s!=,\0*){p=(structnode*)malloc(sizeof(structnode));p->data=;q->next=p;q=;s++;}p->next=,\0>;returnh;}main(){charstr□=“linklist”;structnode*head;head=CreatList(str);)(38)A)char*B)structnodeC)structnode*D)char(39)A)*sB)sC)*s++D)(*s)++(40)A)p->nextB)pC)sD)s->next二、填空题(1)以下程序段的输出结果是Ointi=9;printf("%o\n",i);(2)以下程序运行后的输出结果是main(){inta,b,c;a=25;b=025;c=0x25;printf('d%d%d\n”,a,b,c);}(3)以下程序运行后的输出结果是omain(){intp[7]={ll,13,14,15,16,17,18);inti=0,j=0;while(i<7&&p[i]%2=l)j+=p[i++];printf(*%d\n*,j);)(4)以下程序运行后的输出结果omain(){intx=l,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;casel:b++;break;)case2:a++;b++;break;}printf("%d%d\n",a,b);}(5)以下程序运行后的输出结果是。main(){inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18)};inti=0,j=0,s=0;while(i++<4){if(i==2||i=4)continue;j=0;do{s+=a[i][j];j++;}while(j<4);}(6)以下程序运行后的输出结果是。main(){chara口=“Language”,b□="Programe”;char*pl,*p2;intk;pl=a;p2=b;for(k=0;k<=7;k++)if(*p1+k)==*(p2+k)}printf(*%c*,*(pl+k));)(7)以下程序运行后的输出结果是o[这道题还有一种是if(设2=1)结果是*2*4*6*8*]main(){chara口=”123456789”,*p;inti=0;P二a;while(*p){if(i%2=0)*p='*';p++;i++;}puts(a);)⑻以下程序中,for循环体执行的次数是o#defineN2#defineMN+lftdefineKM+l*M/2main(){inti;for(i=l;i<K;i++){...})(9)以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和.请填空。main(){inti,a[20],sum,count;sum=count=0;for(i=0;i<20;i++)scanf("%d",);for(i=0;i<20;i++){if(a>0) {count++;sum+=;}}printf(z,sum=%d,count=%d\n”,sum,count);}(10)以下程序中,函数sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。#defineM2#defineN4voidSumColumMin(inta[M][N],int*sum){inti,j,k,s=0;for(i=0;i<N;i++){k=0;for(j=l;j<M;j++)if(a[k][i]>a[j][i])k=j;s+=;) =s;Imain(){intx[M][N]={3,2,5,1,4,1,8,3},s;SumColumMin( );printf("%d\n",s);I模拟题三一、选择题(1)数据的存储结构是指A)存储在外存中的数据B)数据所占的存储空间量C)数据在计算机中的顺序存储方式D)数据的逻辑结构中计算机中的表示(2)下列关于栈的描述中错误的是A)栈是先进后出的线性表B)栈只能顺序存储C)栈具有记忆作用D)对栈的插入与删除操作中,不需要改变栈底指针(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是A)冒泡排序为n/2B)冒泡排序为nC)快速排序为nD)快速排序为n(nT)/2(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为A)log2nB)n/2C)nD)n+1(5)下列对于线性链表的描述中正确的是A)存储空间不一定是连续,且各元素的存储顺序是任意的B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面C)存储空间必须连续,且前件元素一定存储在后件元素的前面D)存储空间必须连续,且各元素的存储顺序是任意的(6)下列对于软件的描述中正确的是A)软件测试的目的是证明程序是否正确B)软件测试的目的是使程序运行结果正确C)软件测试的目的是尽可能多地发现程序中的错误D)软件测试的目的是使程序符合结构化原则(7)为了使模块尽可能独立,要求A)模块的内聚程序要尽量高,且各模块间的耦合程序要尽量强B)模块的内聚程序要尽量高,且各模块间的耦合程序要尽量弱C)模块的内聚程序要尽量低,且各模块间的耦合程序要尽量弱D)模块的内聚程序要尽量低,且各模块间的耦合程序要尽量强(8)下列描述中正确的是A)程序就是软件 B)软件开发不受计算机系统的限制C)软件既是逻辑实体,又是物理实体D)软件是程序、数据与相关文档的集合(9)数据独立性是数据库技术的重要特点之一。所谓数据独立性是指A)数据与程序独立存放B)不同的数据被存放在不同的文件中C)不同的数据只能被对应的应用程序所使用D)以上三种说法都不对(10)用树形结构表示实体之间联系的模型是A)关系模型B)网状模型C)层次模型D)以上三个都是(11)算法具有五个特性,以下选项中不属于算法特性的是A)有穷性B)简洁性C)可行性D)确定性(12)以下选项中可作为C语言合法常量的是A)-80.B)-080C)-8el.OD)-80.0e(13)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入O用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(14)以下不能定义为用户标识符的是A)MainB)_0C)_intD)sizeof(15)以下选项中,不能作为合法常量的是A)1.234e04B)1.234e0.4C)1.234e+4 D)1.234e0(16)数字字符0的ASCII值为48,若有以下程序main(){chara=,1',b=,2';printf("%c,",b++);printf("%d\n",b-a);) 程序运行后的输出结果是A)3,2B)50,2C)2,2D)2,50(17)有以下程序main(){intm=12,n=34;printf("%d%d”,m++,++n);printf(*%d%d\n*,n++,++m);) 程序运行后的输出结果是A)12353514B)12353513C)12343514D)12343513(18)有定义语句:intb;charc[10];,则正确的输入语句是A)scanf&b,&c);B)scanf&b,c);C)scanf("%d%s”,b,c);D)scanf("%d%s”,b,&c);(19)有以下程序main(){intm,n,p;scanf(z<m=%dn=%dp=%d,\&m,&n,&p);printf("%d%d%d\n”,m,n,p);}若从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是A)m=123n=456p=789 B)m=123n=456p=789C)m=123,n=456,p=789D)123456789(20)有以下程序main0{inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n”,a,b);}程序运行后的输出结果是A)6,1B)2,1C)6,0D)2,0(21)有以下程序main(){inti=l,j=2,k=3;if(i++=l&&(++j==3||k++=3))printf("%d%d%d\n”,i,j,k);}程序运行后的输出结果是A)123B)234 0223D)233(22)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a〈b?a:c<d?c:d的值A)1 B)2 c)3 D)4(23)有以下程序main(){intp[8]={ll,12,13,14,15,16,17,18}, i=0,j=0;while(i++<7)if(p[i]%2) j+=p[i];printf("%d\n",j);) 程序运行后的输出结果是A)42B)45C)56D)60(24)有以下程序main(){chara[7]="a0\0a0\0”;inti,j;i=sizeof(a);j=strlen(a);printf(*%d%d\n*,i,j);} 程序运行后的输出结果是A)2 2B)7 6C)7 2D)6 2(25)以下能正确定义一维数组的选项是A)inta[5]={0,1,2,3,4,5};B)chara[]={0,1,2,3,4,5};C)chara={'A','B','C'};D)inta[5]=*0123*;(26)有以下程序intfl(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(fl(a,b),fl(c,d));f=fl(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf(*%d,%d%d\n*,e,f,g);} 程序运行后的输出结果是A)4,3,7B)3,4,7C)5,2,7D)2,5,7(27)已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是A)数组a和b的长度相同 B)a数组长度小于b数组长度C)a数组长度大于b数组长度D)上述说法都不对(28)有以下程序voidf(int*x,int*y){intt; t=*x;*x=*y;*y=t;}main0{inta[8]={l,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q); p++;q—;}for(i=0;i<8;i++)printf("%d,",a[i]);) 程序运行后的输出结果是A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4,C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1,(29)有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)for(i=0;i<3;i++)printf(*%da[l][i]);}程序运行后的输出结果是A)012B)123 0234 D)345(30)以下叙述中错误的是A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数(31)有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i-)a[i+l]=a[i];Imain(){inti,a[N]={l,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printfa[i]);}程序运行后的输出结果是A)10234B)12344C)12334D)12234(32)有以下程序main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanfptr);ptr++;}for(i=0;i<3;i++)TOC\o"1-5"\h\z{for(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n"); }}若运行时输入:123<回车),则输出结果为A)产生错误 B)10C)12D)1020 30 2000 00 30(33)有以下程序prt(int*m,intn){inti;for(i=0;i<n;i++)m[i]++;}main(){inta[]={l,2,3,4,5},i;prt(a,5);for(i=0;i<5;i++)printf(*%d,*,a[i]);} 程序运行后的输出结果是:A)1,2,3,4,5, B)2,3,4,5,6,C)3,4,5,6,7, D)2,3,4,5,1,(34)有以下程序main(){inta[]={l,2,3,4,5,6,7,8,9,0),*p;for(p=a;p<a+10;p++)printf("%d,”,*p);} 程序运行后的输出结果是1, 2, 3, 4, 5, 6, 7, 8, 9,0,2, 3, 4, 5, 6, 7, 8, 9, 10,1,0, 1, 2, 3, 4, 5, 6, 7, 8,9,1,1,1,1,1,1,1,1,1,,1,(35)有以下程序^defineP3#defineF(intx){return(P*x*x);}main(){printf("%d\n”,F(3+5));}程序运行后的输出结果是A)192B)29C)25D)编译出错(36)有以下程序main(){intc=35;printf("%d\n”,c&c);}程序运行后的输出结果是A)0B)70C)35D)1(37)以下叙述中正确的是A)预处理命令行必须位于源文件的开头B)在源文件的一行上可以有多条预处理命令C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间(38)若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是A)data的每个成员起始地址都相同B)变量data所占内存字节数与成员c所占字节数相等C)程序段:data.a=5;printf(*%f\n*,data,c);输出结果为5.000000D)data可以作为函数的实参(39)以下语句或语句组中,能正确进行字符串赋值的是A)char*sp;*sp="right!”;B)chars[10];s="right!”;C)chars[10];*s="right!”;D)char*sp="right!”;(40)设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是A)以上的说明形式非法 B)ST是一个结构体类型C)NEW是一个结构体类型 D)NEW是一个结构体变量(41)有以下程序main()

inta=l,b;for(b=l;b<=10;b++){if(a>=8)break;if(a%2==l)a+=5;continue;}a-=3;printf("%d\n",b);) 程序运行后的输出结果是A)3B)4C)5D)6(42)有以下程序main(){chars□:"159",*p;P=s;printf*p++);printfC%c*,*p++);}程序运行后的输出结果是A)15B)16C)12D)59(43)有以下函数fun(char*a,char*b){whi1e((*a!=,\0*)&&(*b!=,\0J)&&(*a==*b)){ a++; b++;}return(*a-*b);)该函数的功能是A)计算a和b所指字符串的长度之差 B)将b所指字符串复制到a所指字符串中C)将b所指字符串连接到a所指字符串后面 D)比较a和b所指字符串的大小(44)有以下程序main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12),{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=l;j<=i;j++) ')for(j=_;j<4;j++) printf("%4d”,num[i][j]);printf("\n");}}若要按以下形式输出数组右上半三角123 4111216则在程序下划线处应填入的是A)i-1B)iC)i+1D)4-i(45)有以下程序point(char*p)p+=3;}main()charb[4]={'a','b,'c','d'},*p=b;point(p);printf("%c\n",*p);程序运行后的输出结果是A)aB)bC)cD)d(46)程序中若有如下的说明和定义语句charfun(char*);main(){char*s="one",a[5]={0},(*fl)()=fun,ch;)以下选项中对函数fun的正确调用语句是A)(*fl)(a);B)*f1(*s);C)fun(&a);D)ch=*f1(s)(47)有以下结构体说明和变量定义,如图所示,指针pqr分别指向此链表中三个连续结点。structnode{intdata;structnode*next;}*p,*q,*r;现要将q所指结点从链表中删除,同时保持链表的连续,以下不能完成指定操作的语句是A)p->next=q->next;B)p->next=p->next->next;C)p->next=r;D)p=q->next;(48)以下对结构体类型变量td的定义中,借误的是(该题缺)(49)以下与函数fseek(fp,OL,SEEK_SET)有相同作用的是A)feof(fp) B)ftell(fp)C)fgetc(fp)D)rewind(fp)(50)有以下程序#include"stdio.h"voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"W");fputs(str,fp);fclose(fp);}main(){WriteStr("tl.dat","start");WriteStr(*tl.dat","end");}程序运行后,文件tl.dat中的内容是A)startB)endC)startendD)endrt二、填空题(1)某二*树中,度为2的结点有18个,则该二*树中有()个叶子结点。(2)在面向对象的方法中,类的实例称为()。(3)诊断和改正程序中错误的工作通常称为()o(4)在关系数据库中,把数据表示成二维表,每一个二维表称为()»(5)问题处理方案的正确而完整的描述称为()=(6)以下程序运行时若从键盘输入:102030〈回车>。输出结果是()。#include<stdio.h>main(){inti=O,j=O,k=O;scanf("%d%*d%d”,&i,&j,&k);printf(*%d%d%d\n*,i,j,k);)(7)以下程序运行后的输出结果是()o#defineS(x)4*x*x+lmain(){inti=6,j=8;printf("%d\n”,S(i+j));}(8)以下程序运行后的输出结果是()。main(){inta=3,b=4,c=5,t=99;if(b<a&&a<c)t=a;a=c;c=t;if(a<c&&b<c)t=b;b=a;a=t;printf(*%d%d%d\n*,a,b,c);}(9)以下程序运行后的输出结果是()。main(){inta,b,ca=10;b=20;c=(a%b<l)I|(a/b>l);printf(*%d%d%d\n*,a,b,c);)(10)以下程序运行后的输出结果是()。main(){charcl,c2;for(cl='O',c2='9';cl<c2;cl++,c2一)printfcl,c2);printf("\n");}(11)已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车〉.输出结果是()。#include"stdio.h"main(){chara,b;a=getchar

温馨提示

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

最新文档

评论

0/150

提交评论