



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
福建省高校非计算机专业计算机等级考试二级c语言习题集目录TOC\o"1-5"\h\z\o"CurrentDocument"第一部分:选择题(40分,20小题/套) 4概述 4语法基础 5\o"CurrentDocument"控制结构 9\o"CurrentDocument"数组 13\o"CurrentDocument"函数 16\o"CurrentDocument"指针 20结构体和共用体 24链表 27枚举、自定义类型和位运算 32文件 34\o"CurrentDocument"第二部分:改错题(每小题10分,2小题/套) 37\o"CurrentDocument"第1套 37\o"CurrentDocument"第2套 39\o"CurrentDocument"第3套 40\o"CurrentDocument"第四套 41\o"CurrentDocument"第5套 42\o"CurrentDocument"第6套 43\o"CurrentDocument"第7套 44\o"CurrentDocument"第8套 45\o"CurrentDocument"第9套 46\o"CurrentDocument"第10套 47\o"CurrentDocument"第11套 48第三部分:程序填空题 49\o"CurrentDocument"第1套 49\o"CurrentDocument"第2套 50\o"CurrentDocument"第3套 52\o"CurrentDocument"第4套 53\o"CurrentDocument"第5套 55\o"CurrentDocument"第6套 56\o"CurrentDocument"第7套 58\o"CurrentDocument"第8套 60\o"CurrentDocument"第9套 62\o"CurrentDocument"第10套 64\o"CurrentDocument"第11套 65\o"CurrentDocument"第四部分:编程题(每小题8分,2小题/套) 67\o"CurrentDocument"第1套 67\o"CurrentDocument"第2套 70\o"CurrentDocument"第3套 72\o"CurrentDocument"第4套 74) 75\o"CurrentDocument"第5套 75\o"CurrentDocument"第6套 78\o"CurrentDocument"第7套 80\o"CurrentDocument"第8套 82\o"CurrentDocument"第9套 84\o"CurrentDocument"第10套 86\o"CurrentDocument"第11套 88\o"CurrentDocument"第五部分:答案 89选择题答案 89改错题答案 90第1套 90第2套 91第3套 91第4套 91\o"CurrentDocument"第5套 91\o"CurrentDocument"第6套 91\o"CurrentDocument"第7套 92\o"CurrentDocument"第8套 92第9套 92第10套 92第11套 93填空题答案 93第1套 93第2套 93第3套 93第4套 94第5套 94第6套 94第7套 95第8套 95第9套 95第10套 96第11套 96编程题答案 96第1套 96第2套 97第3套 98第4套 99第5套 99第6套 100第7套 100第8套 101第9套 102第10套 102第11套 103第一部分:选择题(40分,20小题/套)概述1,下面关于c语言的叙述中,正确的是oA.每行只能写一条语句 B.程序中必须包含有输入语句C.main函数必须位于文件的开头 D.每条语句最后必须有一个分号2、下面关于C语言的叙述中,错误的是()A.若一条语句较长,也可分写在下一行上B.构成C语言源程序的基本单位是表达式C.C语言源程序中大、小写字母是有区别的D.一个C语言源程序可由一个或多个函数组成3、关于C语言数据类型的叙述,正确的是()A.枚举类型不是基本类型 B,数组不是构造类型C,变量必须先定义后使用 D.不允许使用空类型4、C程序中main函数的位置()A.必须在最开始 B.必须在系统库函数后面C.可以在自定义函数后面 D.必须在最后5、C语言的函数体由()括起来A.()B.{}C.[]D./**/6、关于C语言的叙述中,不正确的是()A.C程序可由一个或多个函数组成 B.C程序必须包含一个main。函数C.C程序的基本组成单位是函数 D.注释说明只能位于一条语句的后面7,一个程序的执行是从()A.本程序的第一个函数开始,到最后一个函数结束B.本程序的main函数开始,到main函数结束C.本程序的main函数开始,到最后一个函数结束D.本程序的第一个函数开始,到main函数结束8、结构化程序设计的三种基本结构是()A.函数结构、分支结构、判断结构B.函数结构、嵌套结构、平行结构C.顺序结构、分支结构、循环结构 D.分支结构、循环结构、嵌套结构9、调试程序是指对程序进行()A.编辑B.编译C.查错和排错 D.连接10、C语言中,复合语句的构成是将一系列语句置于()A.begin与end之间 B.一对圆括号"()"之间C.一对花括号“{)”之间D.一对方括号“口”之间11、构成C语言源程序的基本单位是()A.语句B.过程C.表达式D.函数12、在C语言中,正确的用户标识符是()A.3fB._forC.structD._f.513、C语言的基本数据类型包括()A.整型、实型、字符型 B.整型、实型、字符型、逻辑型C.整型、字符型、逻辑型 D.整型、实型、逻辑型14、以下()是正确的常量A.E-5B.1E5.IC.lal2' D.32766L15、以下()是正确的变量名A.a.beeB.-pl1C.intD.p_lI16、以下()是正确的字符常量A."c"B.'/rC.'W' D."\32a”17、以下()是不正确的字符串常量A.'abc'B."12'12"C.'O'D.”“18、C语言的整型数据在内存中的存储形式是()A.原码B.反码C.补码D.ASCII码19、以下()是正确的浮点数A.e3B..62C.2e4.5D.12320、下列不属于C语言关键字的是()A.continueB.integerC.staticD.signed21、C语言的字符型数据在内存中的存储形式是()A.原码B.补码C.反码D.ASCII22、在C语言中,变量所分配的内存空间大小是()A.由变量的类型决定 B.由用户自己决定C.任意的 D.均为两个字节23、若有定义:inta=2:则正确的赋值表达式是()A.a-=(a*3)B.double(-l)C.a*3D.a*4=324、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()A.3,3,4B.4,4,3C.4.4,4D.3,4,325、语句a=(3/4)+3%2:运行后,a的值为()A.0B.1C.2D.326、以下四项中,符合C语言语法的语句是()A.inta+b=c; B.inta=12:b=12:c=12;C.inta=l2,b=12,c=12; D.inta,b=12,floatc=2127、若有定义:intx,a;则语句x=(a=3,a+l);运行后,x、a的值依次为()A.3,3 B.4,4C.4,3D.3,428、若变量已正确定义并赋值,符合C语言语法的表达式是()A.a=8+b+c,a++B.a=3aC.int(12.3%4)D.a=a+l=c+b29、若有定义:inta,b;doublex;则以下不符合C语言语法的表达式是()A.x%(-3)B.a+=-lC.a=b=2D.x=a+b30、若有定义:intx=2,y=3;floati;则以下符合C语言语法的表达式是()A.x=x*3=2B.x=(y=l)C.i=float(x)D.i%(-3)31、若有定义:intx;则语句x=(2*3)+6%5;运行后,x的值是()A.8B.7 C.6D.532、下面关于C语言变量的叙述中,错误的是()A.可以用const关键字定义变量 B.在C程序中,SUM和sum是不同的变量C.变量名必须由字母或下划线组成 D.变量的类型确定了变量的取值范围33、若有定义:intx=5,y=6;则表达式x=(y==6)的值为()A.5B.1C.6 D.034、下面叙述正确的是()A.2/3与2.0/3.0等价B.(int)2.O/3与2/3等价C.++5与6等价 DJA,与“A”等价35、下面叙述中,错误的是()A.C语言基本的算术运算符不包含模运算符“%”B.算术运算符的优先级高于关系运算符C.自加和自减运算符的结合方向是“自右向左”D.C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行36、下面叙述正确的是()A.强制类型转换运算的优先级高于算术运算 B.若a和b是整型变量,(a+b)++是合法的C.是不合法的 D.“A"+“B”是合法的37、若有定义:inti=l,j=5;则表达式(++j)*(i--)的值为()A.1B.0C.6 D.738、设整型变量a为5,使b不为2的表达式是()A.b=(++a)/3B.b=6-(-a)C.b=a%2D.b=a/239、若有定义:inta=l,b=2,c=3;则语句++all++b&&++c;运行后b的值为()A.IB.0C.2D.340、若有定义:inti,j;则表达式(i=2,j=5,i++,i+j++)的值是()TOC\o"1-5"\h\zA.7 B.8 C.9 D.1041、若有定义:inta,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是()A.7 B.8 C.9 D.1042、若有定义:inti=2,j=5;则表达式(i+l,j+l,(++i+(j--))的值为()A.8 B.6 C.7 D.543、若已定义:inti=3,k;则语句k=(i—)+(「);运行后k的值为()A.4 B.5 C.6 D.744、C语言的运算符按运算对象的个数可以分为()A.单目运算符一种B.单目和双目运算符C.单目、双目和三目运算符 D.单目、双目、三目和四目运算符45、若已定义:floatm;拟从键盘输入135.78这一数据给变量m,则应选用的语句是()A.scanf(“%5.2F',&m); B.scanf(“%3.2F',&m);C.scanf("6.2f',&m); D.scanf("6f',&m);46、已知doublea;使用scanf()函数输入一个数值给变量a,正确的函数调用是()A.scanf("%ld",&a); B.scanf("%lF',&a);C.scanf(''%c",&a); D.scanf("%u”,&a);47、已知chara;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()A.scanf("%d'',&a);B.scanf(ll%lf;&a);C.scanf("%c'',&a);D.scanf("%u'',&a);48、putchar()函数的功能是向终端输出()A.多个字符 B.一个字符 C.一个实型变量值 D.一个整型变量表达式49、以下程序段运行后的输出结果是()intk=ll;printf(4tk=%d,k=%o,k=%x\n,,,k,k,k);A.k=ll,k=13,k=c B.k=ll,k=12,k=13C.k=ll,k=13,k=b D.k=ll,k=13,k=a50、若有定义:intx=1234,y=123,z=12;则语句printf("%4d+%3d+%2d”,x,y,z);运行后的输出结果为()A.123412312B.12341234123412341231231231212C.1234+1234+1234D.1234+123+1251、已有如下定义和输入语句,inta;charcl,c2;scanf(t4%d%c%c,,,&a,&cI,&c2);若要求a、cl、c2的值分别为10、A和B,正确的数据输入是()A.10ABB.10ABC.10ABD.10AB52、以下程序段的运行结果是()inta=O,b=O,c=O;if(a&&++b)C++;printfCt%d,%d\n,\b,c);A.0,0B.1,2C.2,2D.1,053、以下程序的运行结果是()voidmain(){inta=65;charc='A\printf("%x,%d”,b,c);}A.65,a B.41,aC.65,65D.41,6554、若已定义:ima=5;floalb=63.72;以下语句中能输出正确值的是()A.printf(44%d%d,,,a,b); B.printf("%d%2f',a,b);C.printf(4t%2f%2f\a,b); D.printf(“%2f%d”,a,b);55、运行以下程序段时编译出错,其原因是()charcl='8',c2='2OO8';printf("%c,%d\n",c1,c2);A.c2是字符变量,只能赋以字符常量,不能赋以字符串常量B.字符串要用“2008”表示,而*2008'不是字符串表示C.'2008’只能赋值给字符数组D.字符变量不能用%d格式输出56、若已定义:inta=3,b=15,c;则语句c=a>b;运行后c的值为()A.1B.0C.tD.f57、在C语言中,判定逻辑值为“真”的最正确的叙述是()A.1B.非。的数C.大于0的数D.非0的整数58、若已定义:inta=-36,b=-30,c;则语句c=a<b;运行后c的值为()
A.1B.tC.OD.fA.1B.tC.OD.f59、能正确表示数学关系式800>=y>=500的C语言表达式为()A.(y<=800)&&(y>=500) B.(y<=800)AND(y>=500)C.800>=y>=500 D.(y<=8OO)&(y>=500)60、若有定义:intx=3,y=4;则表达式!xlly的值为()A.1B.OC.3 D.461、若有定义:imi=7j=8;则表达式Xjllivj的值为()A.1B.变量i的值C.OD.变量j的值62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为“假工则不能满足要求的表达式是()A.a%2==lB.!(a%2==0)C.!(a%2)D.a%263、若有定义:intx=3,y=4,z=5;则值为0的表达式是()A.'x'&&yB.x<=yC.xlly+z&&y-zD.!((x<y)&&!zlll)64、若有定义:inta=5,b=2,c=l;则表达式a-bvcllb==c的值是()A.OB.1C.3D.-165、C语言中,能正确表示条件10<xv20的逻辑表达式是()A.10<x<20B.x>10llx<20C.x>10&&<20D.(x>10)&&(x<20)66、以下运算符中优先级最低的是()A.«B.&C.»D.I67、已知doublea=5.2;则正确的赋值表达式是()A.a+=a-=(a=4)*(a=3) B.a=a*3=2C.a%3 D.a=double(-2)68、已知chara=R;则正确的赋值表达式是()A.a=(a++)%4B.a+2=3C.a+=256-D.a=,\078,69、已知inta=,R〈则正确的表达式是()A.a%10B.a=int(3e2)C.2*a=a++D.a=a+a=a+370、设有语句floatx=3Qy=3.0;使x值为6.0的表达式是()A.x*=y-4B.x*=yC.x=y+4D.x+=y71、若有定义:floatx=3.5,intz=8;则表达式x+z%3/4的值为()A.3o75B.3.5C.3 D.472、设有语句intx=3,y=3,a=l,b=2;表达式(x=a>b)&&(y=b>a)的值是()A.8B.1C.5D.O73、若有定义:inta=2,b=3;floalx=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、若有定义:intb=7;floata=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、若有定义:inta=6,b=2;charcl='a',c2='b';则表达式a+b%5+c2・cl的值是()7B.8 C.9D.表达式错误76、在下列运算符中,优先级最高的运算符是()A.<=B.!=C.!D.II77、设有定义:charc;floatf;inti;unsignedu;doubled;下列各表达式的类型分别是()u+9 2.d!=f&&(i+2) 3.8.2*i+cA.1.unsigned,2.int,3.doubleC.,2.double,3.char1.double,2.double,3doubleD.1.unsigned,2.double,3.ini控制结构78、以下程序段运行时,若从键盘输入10,则输出结果是()inta;scanf(<<%d,,,&a);if(a++>10)printf(tt%d\n,,,a);elseprintf(4t%d\n,,,++a);A.2B.11C.3D.1279、以下程序的运行结果是()voidmain()(intx,y=l,z;z=-l;if(z==O)z=-z;elsex=y>0?3:5;printff<%d\n,\x);)A.-1B.3C.1D.580、对于整型变量x,下属if语句()与赋值语句:x=x%2=0?l:0;不等价。A.if(x%2!=0)x=0;elsex=l; B.if(x%2)x=l;elsex=0;if(x%2==0)x=l;elsex=0; D.if(x%2=l)x=0;elsex=l;81、以下程序段运行的结果是()inta,b,c,x;a=b=c=0;x=15;if(!a)X-;elseif(b);if(c)x=3;elsex+=4;printf(',%d\n,,,x);A.15B.17C.18D.1982、若有定义:inta=l,b=2,c=3;则执行以下程序段后a,b,c的值分别为()if(a<b){c=a;a=b;b=c;}
C.a=2,b=3,c=3D.a=2,b=l,c=lA.a=l,b=2,c=3B.a=2,b=3,c=l83、以下程序段运行后变量a的值为()intx=6,y=5;C.a=2,b=3,c=3D.a=2,b=l,c=linta;a=(-x==y++)?x:y+1A.OB.1C.6D.584、以下程序的运行结果是()voidmain(){intn=,e,;switch(n—)(defalut:printf(4terror");case'a':case'b':printf(“good");break;case'c':printf("pass'');case'd':printf("wam'');)}A.errorB.goodC.errorgoodD.warn85、以下程序的运行结果是()voidmain(){intn=,c,;switch(n++){defalut:printf("eiror'');case'a':case'b':primf("good'');break;case'c':printf("pass”);case'd':printf("warn'');})A.passB.warnC.passwarnD.error86、以下程序的运行结果是()voidmain(){intn=5;if(n++>6)printf(44%d\n,,,n);elseprintf("%d\n”,++n);A.4B.5C.6D.7A.4B.5C.6D.787、下面关于switch语句的叙述中,错误的是()case后面的表达式可以是关系表达式switch语句是多分支选择语句C.每一个case后面的值必须互不相同,否则会出现矛盾的现象D.在执行一个case分支后,可用一个break语句使流程跳出switch语句88、若有定义:inta=l,b=2,c=3;则以下程序段运行后c的值为()if(a>b)c=a*b;elsec=a-b;A.2B.0C.1D.-l89>若有定义:inix;以下不会产生死循环的是()A.for(;(x=getchar())!=,\n,;);B.while(l){x++;}for(i=10;;i++); D. for(;;x+=l);90、在循环语句的循环体中,break语句的作用是()A.暂停程序的运行B.结束本次循环C.继续执行break语句之后的循环体各语句D.提前结束循环,接着执行该循环后续的语句91、以下程序段运行后,循环体中的“count+=2;”语句运行的次数为()inti,j,count=0;for(i=l;i<=4;i++)(count+=2;prinlf("%d'',count);1A.4次B.10次C.16次D.20次92、在c语言中while循环和do-while循环的主要区别是()do-while循环体内可以使用break语句,while循环体内不能使用break语句do-while的循环体至少无条件执行一次,while的循环体不是do-while循环体可以使用continue语句,while循环体内不能使用continue语句while的循环体至少无条件执行一次,do-while的循环体不是93、以下程序段运行后,循环体运行的次数为()inti=0,x;for(;i<10;i++)x=x+i;A.10B.OC.1D.无限94、以下程序段运行后变量n的值为()inti=l,n=l;for(;i<3;i++){continue;n=n+i;}A.4B.3C.2D.195、有以下程序:voidmain()inti;for(i=0;i<3;i++)switch(i)(casel:printf("%d”,i);case2:printfC*%d*\i);case3:prinlf("%d”,i);})执行后输出的结果是()A.11122B.01222C,013020D.12096、以下程序的运行结果是()voidmain(){intsum=0,item=0;while(item<5)(item++;sum+=item;if(sum>=6)break;)printf(44%d\n,\sum);)A.10B.15C.6D.797、以下程序的运行结果是()voinmain(){intsum=0,item=0;while(item<5){item++;if(item==2)continue;sum+=item;)printf(44%d\n,\sum);}A.10B.13C.15D.198、以下程序段执行后变量sum的值为()inti,j=l,sum=0;for(i=l,i<=3,i++){sum+=j;j++;
}A.5B.3C.6 D.499>以下程序的运行结果是()#include<studio.h>main()(inty=10;do{y-s}while(-y);printf("%d\n",y・・);)A.1B.2C.-1D.O数组100、C语言中数组元素下标的数据类型是()A.实型常量B.整型常量或整型表达式C.任何类型的表达式 D.字符型常量10k下列数组定义中,正确的是()A.inta[10J; B.intn=10,a[n];C.intN=10;inta[N]; D.intn;scanf("%d'',&n);inta[n];102、若已定义:则不能正确引用a数组的元素的是()A.a[0] B.a[10]C.a[10+3]D.a[13-5]103、若有定义:inta[3]={0,l,2};则 的值为()A.OB.1C.2D.3104、若有定义:ima[5]={123,4,5};则语句a[l]=a⑵+a[2+2]・a[3・l];运行后a[l]的值为()A.6B.5C.1D.2105、以下合法的数组定义是()A.inta[]="string”;C.chara[]={0,1,2,3,4,5);A.inta[]="string”;C.chara[]={0,1,2,3,4,5);106、若有如下程序段:B.inta[5]={0,l,2,3,4,5);D.chars={"string”};chars[10];s="abcd”;printf("%s\n”,s);B.执行时输出:aB.执行时输出:aD.编译不通过A.执行时输出:abedC.执行时输出:ab107、下面程序段的运行结果是()inti=0,a[]={7,5,7,3,8,3};do{a[i]+=2;}while(a[++i]>5);for(i=0;i<6;i++)printf(”%d”,a国);A.9795105B.9593103C.957383D.757383108、下面程序段的运行结果是()inti=0,a[]={1,2,3A5};do{a[i]+=10;}while(a[++i]>2);for(i=0;i<5;i++)A.112345B,12345C.1112131415D.1112345IO9>西面关于数组的叙述中,正确的是()A.数组必须先定义,然后使用B.定义数组时,可不加类型说明符C.定义数组后,可通过赋值运算符“=”对该数组名直接赋值D.在数据类型中,数组属于基本类型110、一下程序段的运行结果是()inti=0,a[]={6,5,3,7};do{a[i]++;}while(a[i]<4);for(i=0;i<4;i++)printf(,"%d',,a[i]);A.6537B.7563C.7537D.5673Ilk有如下程序段:intt[][3]={1,2,3,4,5,6,7,8,9,10,11,12);printf("%d\n",tl2][l]);则执行该程序段后输出结果是()A.8B.7 C.4D.2112、以下程序段运行后s的值是()intal3][3]={1,2,3,1,2,3,1,2,3);inti,j,s=l;for(i=0;i<3;i++)for(j=i;j<3;j++)s*=a[i][j];A.18B.108C.2D.12113、以下不能对二维数组arr进行正确初始化的语句是()A.intarr⑵[3]={0}; B.intarr[J[3]={1,2,3,4,5};C.intarr[2][3]={{l,2},{3,4},{5,6}};D.intarr[2][3]={{1},{3,4,5}};114、若有定义:皿2[3][4]={{1,2},{0},{1,2,3}};则2[1]口]的值为()A.0B.{1,2}C.1D.3115,若有定义:inta[3][3];则表达式&a⑵⑴-a的值为()A.7B.8 C.6 D.9116、若有定义:inti=O,x=O;inta[3][3]={1,2,3,4,5,6,7,8,9);则以下程序段运行后x的值为()for(;i<3;i++)x+=a[i][2-i];A.OB.12C.15D.18117、若有定义inta⑵[3];则对数组元素的非法引用的是()A.a[0][l/2]B.a[l][l]C.a[4-4][0]D.a[O][3]118、以下数组定义中,正确的是()A.inta[2][]={1,2,3,4,5}; B.inta[][2]={{O},{}};C.inta[2][2]={{l,2},{3}}; D.inta[][]={1,2,3,4};119、若有定义inta口2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a⑼)的值为()A.3 B.4C.5 D.9120、以下程序段运行后s的值是()inta[3][3]={1,2,3,4,5,12,3,4};inti,j,s=l;for(i=0;i<3;i++)for(j=i+l;j<3;j++)s*=a[i]0];A.6B.120C.24D.48012k设已定义:inta[][4]={0,0};则下列描述错误的是()A.数组a的每个元素都可得到初值0 B.二维数组a的第•维大小为1C.数组a的行数为1D.只有元素a[O][O]和可得到初值0,其余元素均得不到初值0122、设已定义:charstrl[10],str2[10]=,,Fujian,,;则能将字符串"Fujian”赋给数组strl的正确语句是()A.strl="Fujian"B.strcpy(strl,str2);C.strcpy(str2,strl);D.strl=str2;123、有如下定义:4:11第5显3^2]={又,吼17\0',1'*};则语句7疝用"%5"*[0]);的输出结果是()A.abB.abcefC.abc\OD.abc124、设有如下数组定义:charstr[8]={"Fujian"};则分配给数组str的存储空间是()字节A.6B.7C.8 D.9125、若有定义:chara[]="abcde「;charb[]="xyz";则以下程序段运行后屏幕输出为()strcpy(a,b);printf("%c",a[2]);A.cB.zC.\0D.d126、以下程序段运行后屏幕输出为()chara[J="abc\Omis";printf("%d",strlen(a));A.5B.8C.3D.4127>若有定义:inta=2;则语句a=strcmp("miss","miss");运行后a的值为()A.1B.0C.-1D.2128、以下对C语言字符数组描述中,正确的是()A.可以用length函数计算字符数组中字符串的长度B,可以在赋值语句中通过赋值运算符"="对字符数组整体赋值C.存放在字符数组中的字符串,以'\0'作为该字符串结束标志D.字符数组只能存放字符串,不能存放字符129>以卜程序段运行后屏幕输出为()charstr[80];strcpy(str,nhello");printf("%d'\strlen(str));A.5B.6 C.7D.80130>若有定义:charstrl[6]=MabcdmH,*ps,*stt2=Mabcdef,;5lO()是正确的A.strcpy(strl,str2);B.表达式strcmp(slrl,str2)的值大于0C.strl=str2; D.表达式strlen(strl)的值为6131、已有定义:charstrl[15]={“university"},str2[15];则以下语句中正确的是()A.str2=strl;B.str2=,,collegeM;C.scanf("%s”,&str2);D.printf("%s”,strl);132、设已定义:charS1120KYouare”,s2[9]="welcome!”;若要形成字符串"Youarewelcome!”,正确的语句是()A.strcat(sl,s2);B.strcpy(sl,s2);C.sl+s2;D.sl&s2函数133、在C语言中,数组名作为函数调用的实参时,传递给形参的是()A.数组元素的个数 B.数组的第一个元素值C.数组中全部元素的值D.数组的首地址134、以下程序的运行结果是()intfun(intarray[4][4]){intj;for(j=0;j<4;j++)printf(M%2d",array[2][j]);printf(n\n”);}main(){inta[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0);fun(a);)A.2005B.1004C.0120D.0450135、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()A.float型B.long型C.int型D.double型136、以下程序运行后屏幕输出为()#include<studio.h>intf(intx,inty){retum(x+y);}main(){inta=2,b=3,c;c=f(a,b);printf(',%d+%d=%d\nu,a,b,c);)A.0B.2+3=5C.2+3=0D.3+2=5137、以下程序运行后屏幕输出为()#include<stdio.h>inta=2,b=3;intmax(inta,intb)(intc;c=a>b?a:b;return(c);)main()(inta=4;printf(n%dM,max(a,b));}A.3,2B.2C.3 D.4138、以下程序的运行结果是()fun(inti){inta=2;a=i++;printf("%d\a);}main(){inta=5,c=3;fun(c);printf(n%dn,a);)A.45B.35 C.44D.33139、若有如下函数定义:intfun(){staticintk=0;return++k;)以下程序段运行后屏幕输出为()inti;for(i=l;iv=5;i++)fun();printf("%d”,fun());A.OB.1 C.5D.6140、5面程序的输出结果是:()#include<stdio.h>intglobal=100;fun()(intglobal=5;return++global;}voidmain(){printf("%d\n",fun());}A.100B.101 C.5D.6141、下列关于C语言函数的描述中,正确的是()A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用都可以嵌套D.函数的定义和函数的调用都不可以嵌套142、以下程序的运行结果是()fun(intx,inty){intz;z=(x<y)?(x+y):(x-y);return(z);}main(){inta=10,b=6;printf(H%d\nH,fun(a,b));}A.4B.6C.10D.6143、以下程序运行结果是()voidmain(){intmin(floatx,floaty);floata=-7.9,b=-6.3;intc;c=min(a,b);printf(n%d\n'\c);}intmin(floatx,floaty){floatz;if(x>y)z=y;elsez=x;return(z);A.-7.9 B.-7C.-6.3D.-6144、以下程序的运行结果是()#defineM(a,b)a*bmain(){intx=3,y=2,sl,s2;sl=M(x+y,x-y);s2=M(x-y,x+y);printf("%d,%d\n",sl,s2);)A.-1,7B.5,5C.7,-1D.5,-5145、以下叙述中,正确的是()A.rdefinePRICE=30"定义了与30等价的符号常量PRICEB.预编译处理命令行都必须以开头C.程序中使用带参的宏时,参数类型要与宏定义时一致D.宏名只能包含大写字母和数字字符146、以下叙述中,正确的是()A.宏展开不占用运行空间,只占用编译时间B.预编译处理命令行必须以分号结束C.一个源程序只能有一个预编译处理命令行D.使用带参数的宏定义时,应该说明每个参数的数据类型147、以下的叙述中不正确的是()A.宏展开不占用运行时间,只占用编译时间B.宏名无类型C.宏名必须用大写字母表示 D.预处理命令行都必须以#号开始148、若有定义:#definePI3,在表达式PI*2*2的值为()A.12 B.4C.3D.不确定149、以下程序运行后,屏幕输出为()#defineMIN(a,b)((a)<(b)?(a):(b))main(){intx=2,y=3,z;z=2*MIN(x,y);printf("%d",z);}A.2B.3 C.4 D.6150>F列#include命令中,正确的是()A.#inclue[string.h]B.#include{string.h}C.#include(string.h)D.#include<string.h>151、下面程序的输出结果是()#include<stdio.h>#defineONE1#defineTWOONE+i#defineTHREETWO+1voidmain()(printf(H%d\nn,THREE-ONE);}A.产生错误 B.1 C.2 D.3152、以下叙述中正确的是()A.预处理命令行必须位于C源程序的起始位置B.在C语言中,预处理命令行都以"铲‘开头C.每个C程序必须在开头包含预处理命令行:#include<stdio.h>D.C语言的预处理只能实现宏定义和条件编译的功能153、以下程序的运行结果是()#defineADD(x)x+xmain(){intm=1,n=2,k;k=ADD(m+n)*3;printf(u%d'\k);}A.9B.10C.12D.18154、下面程序的运行结果是()#defineM10#defineS(x)x*x#defineF(x)(x*x)main(){intnl,n2;nl=1000/S(M);n2=1000/F(M);printf("%d,%d\nM,n1,n2);}A.10,10B.1000,10C.10,1000D.1000,1000指针155、设有以下语句,则()是对a数组元素的不正确引用,其中0<=i<10。inta[10]={0,l23,4,5,6,7,8,9},*p=a;A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))156、若有定义int*pl,*p2;则指针变量pl、p2不能进行运算的是()A.<B.=C.+D.-157、以下关于指针概念的叙述中,错误的是()A.一个指针变量只能指向同一类型的变量 B.一个变量的地址称为该变量的指针C.两个同类型的指针变量可以作加减运算D.任何指针变量都可以与空指针NULL进行比较158、以下程序段运行后*(p+3)的值为()chara[]=,,good,';char*p;p=a;A.dB.C.存放d的地址D.O159、以下程序段运行后*(++p)的值为()chara[5]=,,work,,jchar*p;p=a;A.WB.存放,w,的地址 C.VD.存放的地址160>若有定义:int*p,a=4;p=&a;则以下均代表地址的是()A.a,pB.&a,pC.&a,*pD.a,*p161、若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是()A.*p=&a;scanf(tt%lf,,p); B.*p=&a;scanf(t4%lf\*p);C.p=&a,scanf("%l「,*p); D.p=&a;scanfC4%lf\p);162、若已定义:intx=12;对①int*p=&x;和②*p=x;这两条语句的正确理解是()A.语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量P所指向的变量B.语句①和②中的*p含义相同,都表示给指针变量赋值C.语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量PD.语句①和②的执行结果都是把变量x的地址赋给指针变量p163、下面语句正确的是()A.int*p;*p=20B.char*s=,,abcdef,;printf(<<%s\n,,,s);C.charstr[]=,abcd,,;str++;D.charstr[]={4a\*b\,c,};printf("%s”,str);164、若有定义inta[2][3],*p=a侧以下不能表示数组元素a[l]⑵的是()A.*(a[l]+2)B.*(p[l]+2)C.p[5]D.*(p+5)165、若已定义:inta=5,*p闰p=&a;则以下表示中不正确的是()A.&(*p)==&aB.*(&a)==aC.&(*p)==pD.*(p++)==a++166、若有以下程序段,其中(k=i<4,0<=j<3,则不能正确访问a数组元素的是()intij,(*P)[3];inta[][3]={l,2,3,4,5,6,7,8,9,10,11,12);p=a;A.*(*(a+i)+j) B.p[i]|j] C.(*(p+i))[j]D.p[i]+j167、以下程序段的运行结果是()intx[]={2,3,4,5,6,7},*p=x;inti,s=0;for(i=l;i<6;i++)s+=p[i++];printf(”%d”,s);A.12B.15C.25D.27168、下面程序的运行结果是()main()intx=36,y=63;int*p,*q,*t;p=&x;q=&y;t=p;p=q;q=t;printf("%d,%d\nH,x,y);)A.36,36B.63,63C,36,63D.63,36169、以下程序段运行后x的值为()inta[]={123,4,5,6,7};inti,x,*p;x=l;p=&a[2];for(i=0;i<3;i++)x*=*(p+i);A.不确定B.24C.120D.60170、以下程序段运行后x的值为()inta[]={l,2,3},b[]={4,2,5);int*p,*q;inti,x;p=a;q=b;for(i=0;i<3;i++)if(*(p+i)==*(q+i))x=*(p+i)*2;2 B.4C.5D.不确定171、以下程序运行结果是()main(){chara[]=n1357n,*p;for(p=a;p<a+4;p++)printf(n%sn,p);)A.1357B.1357357577C.7531D.7531531311172、下面程序的输出结果是()#include<stdio.h>voidmain(){inti;char*s=',abc,';for(i=0;i<3;i++)printf(',%s\n,',s+i);A.abcbeccbeabcabccbeaababc173、下面程序的输出结果是()#include<stdio.h>voidmain()(char*str=,,12345",*ps=str+4;printf("%c\n”,ps[-4]);}A.1B.2C.3D.错误174>以下程序执行时,输入12345V回车〉,输出为()#include<stdio.h>#defineN5voidmain()(inta[N];int*p=a;while(p<a+N)scanf(M%d",p++);while(p>a)printf(M%dM,*(-p));}A.54321B.12345C.23451D.43215.以下程序段的运行结果是()intx[]={2,345,6,7},*p=x;inti,s=0;for(i=1;i<6;i+=2)s+=*(p+i);printfC%dH,s);A.27B.25C.12D.15.以下程序运行结果()main()inta[]={9,8,7,6,5,4},*p,*q,i;p=a;q=p+5;for(i=0;i<6;i++)printf(M%d%dH,*(p+i),*(q-i));)A.948576675849 B.948576 C.495867 D.495867768594结构体和共用体.以下程序段的运行结果()union{intnum;charstr⑵;}s;s.num=20;s.str[0]=,A,;s.str[l]=W;printf(M%dn,s.num);A.20 B.65C.OD.A.定义一个结构体变量后,该变量所占内存大小是()A.结构体中第一个成员所需内存容量B.结构体中最后一个成员所需内存容量C.结构体中各成员所需内存容量总和D.结构体成员中占内存容量最大者所需的容量179.设有如下定义:unionu_type(intx;floaty;doublez;charm;}a,b,c;执行语句a.x=8;a.y=7.5;a.m=N;b.x=9;后,共用体变量a中的值为()A.9B.NC.7.5 D.8180.若有定义:structteacher(intnum;charname[10];charsex;intage;floatscore;}teacher1;则变量teacherl所占用的内存字节数是()A.5 B.14 C.19 D.20.下列对结构体类型变量定义不正确的是()A.structteacherintnum;intage;Jteachl;B.struct(intnum;intage;}teachl,teach2;C.struct(intnum;intage;}teacher;structteacherteach1;D.structteacher(intnum;intage;};structteacherteach1;.若有定义:structteacher(intnum;charsex;intage;}teacher1;则下列叙述不正确的是()A.struct是结构体类型的关键字B.structteacher是用户定义的结构体类型C.num,sex,age都是结构体变量teacher1的成员D.teacherl是结构体类型名.以下程序的运行结果是()#include<stdio.h>unionUtype(inti;floatf;}u[2];voidmain()printf(M%d\nu,sizeof(u));A.2 B.4 C.6 D.8.以下程序的运行结果是()#include<stdio.h>unionUtype(inti;tlaotf;);struct(charch[2];inti;unionUtypeu;}a;voidmain()(printf("%d\n",sizeof(a));)A.5 B.6 C.7 D.8.以下C语言共用体类型数据的描述中,不正确的是()A.共用体变量占的内存大小等于所需内存最大的成员所占的内存B.共用体类型可以出现在结构体类型定义中C.在定义共用体变量的同时允许对第一个成员的值进行初始化D.同一共用体各成员的首地址不相同.设有如下语句:structstudent(intnum;intage;};structstudentstu[3]={{101,18},{102,21),{103,19)};structstudent*p=stu;则下面表达式的值为102的是()A.(p++)->num B.(p++)->age C.(*p).ageD.(*++p).num.根据下面定义,能打印出字母H的语句是()structstu(charname[8];intage;};structstuclassli2]={,'Wang,,,l6,"Zhang”18,MHonM,l9JCheng”,20};A.printf(,'%c\n",class[3].name); B.printf("%c\n",class[3].name[1]);C.printf(M%c\n,,,class[2].name); D.printf("%c\n”,class|2].name⑼);
链表.若有以下定义:structlink(intdata;structlink*next;}*P;并一建立如下图所示的链表结构:指针p指向该单向链表的第一个结点,要输出链表所有结点的数据成员data,以下循环语句正确的是()A.for(;p!=NULL;p++)printf(M%d,M,p->data);B.for(;!p;p=p->next)printf(M%d,H,(*p).data);C.while(p)(printf(,,%d;',(*p).data);p=p->next;)D.while(p!=NULL)(printf(n%d/',p->data);p++;).若有以下定义:structlink(intdata;structlink*next;}a,b,c,*head,*p;其中,指针head指向变量a,p指向变量c,a.next指向变量b,链表结构如下图所示:headdatanextaheaddatanexta_datanext则能够把C插入到a和b之间并形成新链表的程序段是()A.a.next=c;c.next=b; B.head.next=p;p.next=head.next;C.head->next=&c;p->next=head->next;D.(*head).next=p;(*p).next=&b;.若有以下定义:structlink(intdata;structlink*next;}*head,*p;并已建立如下图所示的链表结构:P则能保留链表其它结点,而删除p所指向结点的程序段是()A.head->next=p->next;free(p);B.head->next=p;p->next=head->next;free(p);C.free(p);head->next=p;p->next=head->next;D.free(p);head->next=p->next;.若有以下定义:structlink(intdata;structlink*next;}*p,*q;并已建立如下图所示的链表结构,指针p和q分别指向如下结点:则不能将q所指向的结点连到上图所示链表末尾的一组语句是()A.q->next=NULL;p=p->next;p->next=q;B.p=p->next;q->next=p;p->next=q;C.p=p->next;q->next=p->next;p->next=q;D.p=(*p).next;(*q).next=(*p).next;(*p).next=q;192.若有定义:structnode{intdata;structnode*next;);及函数voidfun(structnode*head)structnode*p=head;while(p)(printf(H%dM,p->data);p=p->next;break;则函数fun()的功能是()oA.删除单向链表 B.显示单向链表中的所有数据C.显示单向链收中的第一个数据D.创建单向链及.若有定义:structnode(intdata;structnode*next;);及函数:voidfun(structnode*head)(structnode*p=head;while(p)(printf("%d",p->data);p=p->data;}}调用时head是指向链表首结点的指针,整个链表的结构如下图:则函数fun()的功能是()。A.删除单向链表 B.显示单向链表中的所有数据C.显示单向链表中的第一个数据 D.创建单向链表.若有如下定义,函数fun的功能是()。其中head指向链表首结点,整个链表结构如下图:headheadstructnode(intdata;structnode*next;};intfun(structnode*head)(intn=0;structnode*t=head;while(t!=NULL)(n++;t=t->next;)returnn;IA.删除链表head中的所有结点 B.计算链表head中结点的个数C.插入一个元素到链表head中 D.创建一个链表head.若有如下定义,函数fun的功能是()。其中head指向链表首结点,整个链表结构如下图:structnode(intdata;structnode*next;)voidfun(structnode*head)(structnode*t=head;while(t!=NULL)(if(t->data%2==0)printf(M%dn,t->data);t=t->next;
A.遍历链表head,输出表中值为偶数的元素C.删除链表head中的第一个结点196.下面程序的输出结果是()。#include<stdio.h>#include<stdlib.h>typedefstructnode(intdata;structnode*next;}Node;Nodelist[3]={{l,&list[l]},{2,&list⑵},{3,0}};voidprint(Node*head)(Node*t=head;while(t!=NULL)(printf(M%dt=t->next;)Ivoidmain()(print(list);)A.l23 B.O12 C.O13.若有以下定义:B.建立一个只有表头结点的链表headD.B.建立一个只有表头结点的链表headD.插入一个元素到链表head中D.230structnode*next;}*head,*p;P并已建立如下图所示的链表结构,指针p和q分别指向图中所示结点:P则不能将指针q所指的结点接到链表末尾的程序段是()。A.q->next=NULL;p=p->next;p->next=q;B.p=p->next;q->next=p->next;p->next=q;C.p=p->next;q->next=p;p->next=q; D.p=(*p).next;(*q).next=(*p).next;(*p).next=q;.若有定义:structlinkintdata;structlink*next;};intfun(structlink*head)(ints=0;structlink*t=head;while(t!=NULL)(s+=t->data;t=t->next;)returns;I调用fun函数时head是指向链表首结点的指针,整个链表结构如下图:headhead则函数fun()的功能是()。A.遍历链表head,计算表中各结点成员data的总和B.计算链表head中结点的个数C.输出链表head中各结点成员dataD.创建一个链表head枚举、自定义类型和位运算.对枚举类型进行定义,不正确的是()。A.enumb{1,2,3}; B.enuma{A,B,C);C.enumc{D=3,E,F}; D.enumd{X=O,Y=5,Z=9};.假定已有如下变量说明和枚举定义:charch;intj,k;enumday{sun,mon,tue,wed,thu,fri,sat};inta[sat];判断下列语句是否符合语法规则,结果是()。sun=0;/*语句1*/j=mon+tue;/*语句2*/if(a[mon]>0)j++;/*语句3*/A.语句1错误,语句2和语句3正确 B.语句2正确,语句1和语句3错误C.语句3正确,语句1和语句2错误 D.语句1正确,语句2和语句3错误.设有如下定义:typedefint*INTEGER;INTEGERp,*q;则()是正确的叙述。A.p是int型变量B.q是基类型为int的指针变量C.p是基类型为int的指针变量 D.程序中可用INTEGER代替int类型名.在对无符号数的位运算中,操作数左移一位相当于()。A.操作数除以2B.操作数乘以2C.操作数除以4D.操作数乘以4.若有定义:inta=20,b=28,c;则执行语句c=(aAb)«2;后c的值为()。A.2 B.5 C.32 D.92.若有定义:inta=5,b=7,c;则执行语句c=a&b;后c的值为()。A.12 B.2 C.6 D.5.下面程序的输出结果为#include<stdio.h>voidmain()(enumWeekday{sun=7,mon=1,tue,wed,thu,fri,sat};enumWeekdayday=sat;printf(H%d\n';day);)A.7 B.6 C.5 D.4.若有以下类型说明,叙述正确的是()。typedefstruct(intnum;char*name;intscore;}STU,*PSTU;A.STU是变量名B.PSTU是变量名C.PSTU是指向结构体类型STU的指针类型名D.类型说明语句有错误.下面程序段的运行结果是()。inta=5,b=6;printf("%d",alb);A.5 B.6 C.7 D.8.若有以下类型说明,则()是正确的叙述。typedefunion(charstr[2J;inti;}sp;A.sp是一个共用体变量名B.sp是一个共用体类型名C.unionsp是共用体类型名D.typedefunion是共用体类型名.定义枚举类型的关键字是()。A.defineB.enum C.union D.struct文件.以下程序的功能是()。#include<stdio.h>main()(FILE*fp;longintn;fp=fopen(,,wj.txt,,;,rbH);fseek(fp,O,SEEK_END);n=ftell(fp);fclose(fp);printf("%ld”,n);)A.计算文件wj.txt的起始地址 B,计算文件wj.txt的终止地址C.计算文件wj.txt内容的字节数 D.将文件指针定位到文件末尾.设有一文本文件test.txt,其内容为"cprogram"(不包含引号),以下程序段的运行结果是().FILE*fp;char*str;if((fp=fopen(Mtest.txtM,MrH))!=NULL)str=fgets(str,5,fp);printf(M%sH,str);A.cproB.cprogC.progrD.cprogram.在C语言程序中,对文件操作的一般步骤是()。A.打开文件,定义文件指针,读写文件,关闭文件B.定义文件指针,读文件,写文件,关闭文件C.定义文件指针,打开文件,读写文件,关闭文件D.操作文件,定义文件指针,修改文件,关闭文件.下面程序运行后的结果是()。#include<stdio.h>main()(FILE*fp;inti=10j=20,k,n;fp=fopen(,,d_f.dat,,,',wH);fprintf(fp,"%d\n”,i);fprintf(fp,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025私营企业劳动合同书 劳动合同
- 2025电缆供应合同模板
- 2025汽车销售合同大全
- 2025年网络设备采购合同
- 二次结构工程施工承包合同书模板二零二五年
- 二零二五领队出团合约
- 艺人代言合同
- 2025年签订的二手房合同是否有效
- 2025专业深圳合同范本
- 2025解析山东省商品供销合同范本
- DZ∕T 0173-2022 大地电磁测深法技术规程
- 在线网课知慧《形势与政策(吉林大学)》单元测试考核答案
- 样本相关系数课件
- 三年级必读书课外阅读测试(附答案)
- 《电力人工智能训练数据集归集标准》标准
- 减重肥胖手术
- 博白芒竹编织工艺
- 语言活动:魔法妈妈
- 桥梁施工测量方案
- 五子棋课件公开课课件
- 数据安全与网络法律保护
评论
0/150
提交评论