福建省计算机等级考试(二级C语言)试题汇编_第1页
福建省计算机等级考试(二级C语言)试题汇编_第2页
福建省计算机等级考试(二级C语言)试题汇编_第3页
福建省计算机等级考试(二级C语言)试题汇编_第4页
已阅读5页,还剩132页未读 继续免费阅读

下载本文档

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

文档简介

福建省计算机等级考试(二级C语言)试题汇编一、选择题(每套共20小题,每题2分,共40分).在c语言源程序中,以下叙述正确的是(CA)main函数必须位于文件的开头 B)每行只能写一条语句C)程序中的一个语句可以写成多行 D)每个语句的最后必须有点号.关于C语言的源程序的叙述中,错误的是(C).A)C语言的源程序由函数构成 B)main函数可以书写在自定义函数之后C)必须包含有输入语句 D)一行可以书写多个语句.关于C语言数据类型的叙述,正确的是(CA)枚举类型不是基本类型 B)数组不是构造类型C)变量必须先定义后使用 D)不允许使用空类型.下面关于C语言的叙述中,正确的是(C)。A)每行只能写一条语句 B)程序中必须包含有输入语句C)main函数必须位于文件的开头D)每条语句最后必须有一个分号.下面关于C语言的叙述中,错误的是(B)。A)若一条语句较长,也可分写在下一行上B)构成C语言源程序的基本单位是表达式C语言源程序中大、小写字母是有区别的一个C语言源程序可由一个或多个函数组成C程序中main函数的位置(C)»A)必须在最开始 B)必须在系统库函数后面C)可以在自定义函数后面 D)必须在最后C语言的函数体由(B)括起来。A)() B){}C)[] D)/**/关于C语言的叙述中,不正确的是(C)。A)C程序可由一个或多个函数组成 B)C程序必须包含一个main。函数C)C程序的基本组成单位是函数 D)注释说明只能位于一条语句的后面.一个程序的执行是从(C).A)本程序的第一个函数开始,到最后一个函数结束B)本程序的main函数开始,到main函数结束C)本程序的main函数开始,到最后一个函数结束D)本程序的第一个函数开始,到main函数结束.结构化程序设计的三种基本结构是(A)oA)函数结构、分支结构、判断结构B)函数结构、嵌套结构、平行结构O顺序结构、分支结构、循环结构 D)分支结构、循环结构、嵌套结构1L构成C语言源程序的基本单位是(D)oA)语句 B)过程C)表达式 D)函数

.调试程序是指对程序进行(B)»A)编辑B)编译C)查错和排错 D)连接.C语言中,复合语句的构成是将一系列语句置于(C)。A)begin与end之间 B)一对圆括号"()”之间C)一对花括号"{}”之间 D)一对方框号"口"之间14.下面关于C语言用户标识符的描述,正确的是(C).A)不区分大小写 B)用户标识符不能描述常量C)类型名也是用户标识符C)类型名也是用户标识符D)用户标识符可以作为变量名15.下面关于switch语句的叙述中,错误的是15.下面关于switch语句的叙述中,错误的是(C)。case后面的表达式可以是关系表达式switch语句是多分支选择语句C)每一个case后面的值必须互不相同,否则会出现互相矛盾的现象D)在执行一个case分支后,可用一个break语句使流程跳出switch语句A)3f B)_forC)structD)_f.517.以下()是正确的常量。A)E-5 B)1E5.1C)&2'D)32766L18.以下()是正确的变量名。A)a.bee B)-pllC)intD)19.以下()是正确的字符常量。A)"c"C)'WD)”\32a〃20.以下()是不正确的字符串常量。A)'abc' B)"12T2" C)"0"D)21.以下()是正确的浮点数。A)e3 B).62C)2e4.5D)123.下列不属于C语言关键字的是(A)continue B)integer.以下()是正确的变量名。A)5f B)if C)f.5.以下()是错误的常量。A)IE-5 B).123 C)'al2')ostatic_f5D)32766LD)signed16.在C语言中,正确的用户标识符是()。B)(int)2.0/3与2/3等价25.下面叙述正确的是().A)2/3与2.0/3.0等价C)++5C)++5与6等价D)'A'与"A"等价.C语言的字符型数据在内存中的存储形式是().A)原码B)补码C)反码D)ASCII.在C语言中,变量所分配的内存空间大小是()。A)由变量的类型决定 B)由用户自己决定C)任意的 D)均为两个字节

.下面关于算术运算符的叙述,错误的是()。A)其运算对象不包含函数B)%(模运算符)的运算对象只能为整型量C)算术运算符的结合方向是"自左至右”D)自加和自减运算符的结合方向是"自右至左”29.下面关于C语言变量的叙述中,错误的是().A)可以用const关键字定义变量 B)在C程序中,SUM和sum是不同的变量C)变量名必须由字母或下划线开头C)变量名必须由字母或下划线开头30.下面叙述中,错误的是().D)变量的类型确定了变量的取值范围A)C语言基本的算术运算符不包含模运算符飞”B)算术运算符的优先级高于关系运算符C)自加和自减运算符的结合方向是"自右至左"D)C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行31.下面叙述正确的是()(.A)强制类型转换运算的优先级高于算术运算B)若a和b是整型变量,(a+b)++是合法的C)'A'*'B'是不合法的D) 是合法的C语言的运算符按运算对象的个数可以分为()。A)单目运算符一种A)单目运算符一种C)单目、双目和三目运算符33.C语言的基本数据类型包括(A)整型、实型、字符型C)整型、字符型、逻辑型B)单目和双目运算符D)单目、双目、三目和四目运算符B)整型、实型、字符型、逻辑型D)整型、实型、逻辑型34.若已定义:floatm;拟从键盘输入135.78这一数据给变量m,则应选用的语句是()。A)scanf(飞5.2f",&m); B)scanf("%3.2f",&m);C)scanf("%6.2f",&m); D)scanf("%6f",&m);.已定义inta;使用scanf()函数输入一个整数给变量a,正确的函数调用是()。A)scanfa); B)scanf&a);C)scanf&a); D)scanf&a);.已定义doublea;使用scanf()函数输入一个数值给变量a,正确的函数调用是()»A)scanf&a); B)scanf("畀d”,&a);C)scanf("%7.2f",&a); D)scanf&a);.已知chara;使用scanf()函数输入一个字符给变量a,不正确的函数调用是().A)scanf&a); B)scanf&a);C)scanf&a); D)scanf("%u",&a);.下面叙述中,()不是结构化程序设计中的三种基本结构之一。A)数据结构 B)选择结构C)循环结构D)顺序结构.下面叙述中,()不是结构化程序设计三种基本结构的共同特点。

A)先判断后执行 B)单入口,单出口C)程序中没有执行不到的语句 D)无死循环.结构化程序设计不包括()。A)最优化 B)自顶而下,逐步细化C)模块化设计 D)结构化编码.以下程序段运行后的输出结果是()。intk=ll;printf(*k=%d,k=%o,k=%x\n”,k,k,k);A)k=U,k=13,k=c B)k=ll,k=12,k=13C)k=ll,k=ll,k=b D)k=ll,k=13,k=b.若有定义:intx=1234,y=123,z=12;则语句printf("%4d+%3d+%2d”,x,y,z);运行后的输出结果为()oA)123412312 B)12341234123412341231231231212C)1234+1234+1234 D)1234+123+12.已有如下定义和输入语句,inta;charcl,c2;scanf &a,&cl,&c2);若要求a、cl、c2的值分别为10、A和B,正确的数据输入是()。A)10ABB)10C)10AB D)10AB.以下程序段的运行结果是()A)10ABB)10C)10AB D)10AB.以下程序段的运行结果是()ointa=0,b=0,c~0jif(a&&++b)c++;printf("%d,%d\n”,b,c);A)0,0B)1,2 C)2,2.以下程序的运行结果是()ovoidmain()(inta=65;charc=,A';printf("%x,%d”,a,c);}A)65,a B)41,aC)65,65D)1,0D)41,65.若已定义:inta=5;floatA)printf(*%d%d*»a,b);b=63.72;以下语句中能输出正确值的是()oprintf(*%d%.2fa,b);printfC%.2f%.2fa,b);D)printfC%.2f%d*,a,b);47.运行以下程序段时编译出错,其原因是()ocharcl=,8',c2=,2008";printf(*%c,%d\n”,cl,c2);A)c2是字符变量,只能赋以字符常量,不能赋以字符串常量B)字符串要用"2008"表示,而'2008'不是字符串表示C)'2008'只能赋值给字符数组D)字符变量不能用%d格式输出48.设有定义:charc;floatf;inti;unsigned48.设有定义:charc;floatf;int分别是().分别是().①u+9 ②d!=f&&(i+2)A)©unsigned,@int,©doubleC)①int,②double,③char49.下列#include命令中,正确的是(A)#include[string,h]#include(string,h)③8.2*i+cB)①double,②doub1e,③doub1e©unsigned,©double,(3)int).B)ttinclude{string,h}D)#include<string.h>C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。A)float型B)long型C)int型D)double型51.若变量已正确定义并赋值,符合C语言语法的表达式是()。A)a=8+b+c,a++ B)a=a3C)int(12.3%4) D)a=a+l=c+b.若有定义:inta,b;doublex,则以下不符合C语言语法的表达式是()„A)x%(-3) B)a+=-2 C)a=b=2 D)x=a+b.若有定义:intx=2,y=3;floati;,则以下符合C语言语法的表达式是().A)x=x*3=2 B)x=(y=l) C)i=float(x) D)i%(-3).逻辑运算符的优先级依次为()oA)||&&! B)&&||!C)!&&|| D)!||&&.以下运算符中优先级最低的是()。TOC\o"1-5"\h\zA)« B)&C)» D)I.在下列运算符中,优先级最高的运算符是()«A)<= B)!= C)! D)||.若有定义:intx=5,y=6;则表达式x=(y==6)的值为().A)5 B)1 C)6 D)0.已知inta=3,b=5;则表达式a=3&&b!=l的值为().A)3 B)5C)1 D)0.若有定义:inta=2;则正确的赋值表达式是().A)a-=(a*3) B)double(-a)C)a*3 D)a*4=3.语句x=(a=3,b=++a);运行后,x、a、b的值依次为()。A)3,3,4B)4,4,3C)4,4,4D)3,4,3.语句好(3/4)+3%2;运行后,a的值为(6A)0 B)1 C)2 D)3.以下四项中,符合C语言语法的语句是()。A)inta+b=c; B)inta=12:b:=12:c=12;C)inta=12,b=12,c=12; D)inta,b=12,floatc=21;.若有定义:intx,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()。A)3,3B)4,4C)4,3D)3,4.已知doublea=5.2;则正确的赋值表达式是()。A)a+=a-=(a=4)*(a=3) B)a=a*3=2C)a%3 D)a=double(-3).已知chara='R';则正确的赋值表达式是()。A)a=(a++)%4 B) a+2=3C)a+=256— D) a='\078'.已知inta='R';则正确的表达式是()。A)a%10 B) a=int(3e2)C)2*a=a++ D) a=a+a=a+3.若有定义:intx;则语句x=(2*3)+6%5;运行后,x的值是()。A)8 B)7 C)6 D)6.5.若有定义:inti=l,j=5;则表达式(++j)*(i-)的值为(TOC\o"1-5"\h\zA)1 B)0 C)6 D)7.设有语句floatx=3.0,y=3.0;使x值为6.0的表达式是()。A)x*=y-4B)x*=yC)x-=y+4 D)x+=y7。若有定义:floatx=3.5;intz=8;则表达式x+z%3/4的值为(A)3.75 B)3.5 C)3 D)4.设有语句intx=3,y=3,a=l,b=2;表达式(x=a>b)&&(y二b>a)的值是()。A)8 B)1 C)5 D)0.若有定义:inta=2,b=3;floatx=3.5,y=2.5;则表达式(门0@。(@+1))/2+6n1:)*%(1“)丫的值是()oA)3.5B)3.0C)2.5 D)2.0.若有定义:intb=7;floata=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是()oA)2.5B)3.5C)4.5 D)5.5.若有定义:inta=6,b=2;charcl='a',c2='b';则表达式a+b%5+c2-cl的值是()。A)7B)8 C)9 D)表达式错误.设整型变量a为5,使b不为2的表达式是()eA)b=(++a)/3B)b=6-(—a) C)b=a%2 D)b=a/2.以下程序段运行后变量a的值为()ointx=6,y=5;inta;a=(—x=y++)?x:y+l;A)0B)1 C)6 D)5.若有定义:inta=l,b=2,c=3;则执行以下程序段后a,b,c的值分别为()。if(a<b){c=a;a=b;b=c;}A)a=l,b=2,c=3 B)a=2,b=3,c=lC)a=2,b=3,c=3 D)a=2,b=l,c=l.在C语言中,判定逻辑值为“真”的最正确的叙述是()。A)1B)非0的数C)大于0的数D)非0的整数.若已定义:inta=-36,b=-30,c;则语句c=a<b;运行后c的值为()。A)1B).t. C)0 D).f..若已定义:inta=3,b=15,c;则语句c=a>b;运行后c的值为()。A)1B)0C).t.D),f..若有定义:inta=l,b=2,c=3;则语句++aI|++b&&++c;运行后b的值为(8TOC\o"1-5"\h\zA)1 B)0 C)2 D)3.若有定义:inti,j;则表达式(i=2,j=5,i++,i+j++)的值是()oA)7 B)8 C)9 D)1083.若有定义:int为加则表达式(好2,45,4*25++,4+1))的值是()。A)7 B)8 C)9 D)1084.若有定义:inti=2,j=5;则表达式(i+1,j+1,(++i)+(j-))的值为(8A)8 B)6 C)7 D)585.若有定义:inta=l,b=2,c=3;则以下程序段运行后c的值为(if(a>b)c=a*b;elsec=a-b;A)2B)0 C)1 D)-186,若已定义:inti=3,k;则语句k=(i—)+(i—);运行后k的值为()。A)4B)5C)6D)7.已知inta=3,b=5;则表达式a&&!b的值为(A)3B)2C)0D)1.若有定义:intx=3,y=4,z=5;则值为0的表达式是()。A)‘x'&&'y' B)x<=yC)x||y+z&&y-z D)!((x<y)&&!z||1).若有定义:inta=5,b=2,c=l;则表达式a-b<c||b==c的值是(A)0B)1 C)2 D)-1.C语言中,能正确表示条件10<x<20的逻辑表达式是()。A)10<x<20 B)x>10||x<20C)x>10&&<20 D)(x>10)&&(x<20).能正确表示数学关系式8002y2500的C语言表达式为()。A)(y<=800)&&(y>=500) B)(y<=800)AND(y>=500)C)800>=y>=500 D)(y<=800)&(y>=500).若有定义:intx=3,y=4;则表达式!x||y的值为().A)1 B)0 C)3 D)4.若有定义:inti=7,j=8;则表达式i>=j||i<j的值为().A)1 B)变量i的值C)0 D)变量j的值.若希望当a的值为奇数时,表达式的值为"真”,a的值为偶数时,表达式的值为"假"。则不能满足要求的表达式是().A)a%2==lB)!(a%2==0)C)!(a%2)D)a%2.以下的语句中,无内嵌的if语句是()。if(x==y)x+=y;if(x>y&&x!=y);x+=y;if(x!=y)scanf(/z%d/z,&x);elsescanf&y);if(x<y){x++;y++;}.若有定义:intx;以下不会产生死循环的是()oA)for(;(x=getchar())!=,\n;);B)while(l){x++;}C)for(i=10;;i++); D)for(;;x+=1);.C语言对if嵌套语句的规定:else总是与()配对。A)第一个if B)之前最近的且尚未配对的ifC)缩进位置相同的if D)之前最近的if.在c语言中while循环和do-while循环的主要区别是()。do-while循环体内可以使用break语句,while循环体内不能使用break语句do-while的循环体至少无条件执行•次,while的循环体不是do-while循环体内可使用continue语句,while循环体内不能使用continue语句while的循环体至少无条件执行一次,do-while的循环体不是.putchar()函数的功能是向终端输出()。A)多个字符 B)一个字符C)一个实型变量值 D)一个整型变量表达式.对于整型变量,下述if语句()与赋值语句:x=x%2==0?l:0;不等价。if(x%2!=0)x=0;elsex=l;if(x%2)x=l;elsex=0;if(x%2==0)x=l;elsex=0;if(x%2==l)x=0;elsex=l;.对于整型变量x,与while(!x)等价的是()eA)while(x!=0) B)while(x==0)C)while(x!=l) D)while(^x).对于整型变量x和y,语句:for(x=0,y=0;(y!=123)&&(x〈4);x++)y++;中的“y++;”被执行()o

A)4次B)0次C)123次D)3次.下列数组声明中,正确的是()«A)inta[5]={0}; B)inta[]={012};C)inta[5]=0; D)inta[];.下列数组声明中,正确的是()oA)inta[10]; B)intn=10,a[n];C)intN=10;inta[N]; D)intn;scanf&n);inta[n];.已知inta[10];则对a数组元素引用不正确的是()。A)a[10] B)a[3+5] C)a[10-10] D)a[5].若有定义:inta[5]={l,2,3,4,5};则语句a[l]=a[3]+a[2+2]-a[3-l];运行后a[l]的值为()。A)6 B)5 C)1D)2.若已定义:inta[13];则不能正确引用a数组元素的是().A)a[0]B)a[10]C)a[10+3] D)a[13-5].若有定义:inta[3]={0,1,2};则a[l]的值为().A)0 B)1C)2D)3.设有如下数组定义:charstr[8]={"Fujian”};则分配给数组str的存储空间是()个字节。A)6A)6B)7C)8D)9.有如下定义:charstr[3][2]={*a',*b则语句:printfstr[0]);的输出结果是()oA)abB)abcefC)abc\0D)abcA)abB)abcefC)abc\0D)abc.以下合法的数组定义是(B)D)inta[5]={0,1,2,3,4,B)D)inta[5]={0,1,2,3,4,5};chars={"string"};C)chara[]={0,1,2,3,4,5);.设有如下程序段:inta[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0;for(i=0;i<3;i++)for(j=0;j<i;j++)s=s+a[i][j];则执行该程序段后,S的值是()oA)0 B)1 C)2 D)3.有如下定义:inta[][3]={1,2,3,4,5,6,7,8};则数组a的行数是(),A)2 B)3 C)4 D)无法确定.以下不能对二维数组arr进行正确初始化的语句是()。A)intarr[2][3]={0}: B)intarr[][3]={1,2,3,4,5};C)intarr[2][3]={{1,2},{3,4},{5,6}};D)intarr[2][3]={{1},{3,4,5}};.若有定义:inta[3][4]={{l,2},{0},{1,2,3}};则2[1][1]的值为().TOC\o"1-5"\h\zA)0B){1,2} C)1 D)3.若有定义:inta[3][3];则表达式&a[2][l]-a[0]的值为().A)7B)8 C)6 D)9.若有定义:inti=0,x=0;inta[3][3]={1,2,3,4,5,6,7,8,9};则以下程序段运行后x的值为().for(;i<3;i++)x+=a[i][2-i];A)0B)12 C)15 D)18.若有定义inta[2][3];则对数组元素的非法引用是()=A)a[0][l/2]B)a[l][1]C)a[4-4][0]D)a[0][3].以下数组定义中,正确的是()。A)inta[2][]={1,2,3,4,5}; B)inta[][2]={{0},{}};C)inta[2][2]={{1,2},{3}}; D)inta[][]={1,2,3,4};.若有定义inta口[3]={1,2,3,4,5,6,7,8,9);则表达式sizeof(a)/sizeof(a[0])的值为()。A)3 B)4C)5 D)9.以下数组定义中,正确的是().inta[2][3]={1,2,3,4,5,6,7};inta[][]={{1,2,3},{4,5,6},{7,8,9}};inta[2][]={1,2,3,4,5,6};inta[][4]={6};.设有以下变量定义:charstrl[]=*string*,str2[8],*str3,*str4=*string*;()是正确的。A)strcpy(strl,"China"); B)str2="China”;C)strcpy(*str3,"China"); D)strcpy(str4[0],"China");123.有如下定义:charstr[6]=如a','b','\0','e','f'};则语句printfstr);的输出结果是()oA)ab\B)abdefC)ab\0D)ab124.设已定义:charstrl[10],str2[10]=*Fujian*;则能将字符串"Fujian”赋给数组strl的正确语句是()oA)strl="Fujian”; B)strcpy(strl,str2);C)strcpy(str2,strl); D)strl=str2;.设有如下函数定义:intfun(char*str){char*p=str;while(*p!='\0")p++;return(p-str);则以下语句执行后的输出结果是()«printf("%d\n”,fun("Student"));A)7B)8C)9D)10.以下程序段运行时,若从键盘输入10,则输出结果是()ointa;scanf("%d",&a);if(a++>10)printf(,z%d\n/z,a);elseprintf(/z%d\n,z,++a);A)2B)11 C)3 D)12.以下程序的运行结果是()ovoidmain(){intx,y=l,z;z-1;if(z==0)Z=-Z;elsex=y>0?3:5;printf(*%d\n*,x);A)-1B)3C)1 D)5.以下程序的运行结果是()ointfun(intarray[4][4]){intj;for(j=0;j<4;j++)printf("%2d”,array[2][j]);printf('\n");voidmainO{inta[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0};fun(a);A)2005B)1004 00120D)0450.以下程序段运行后,循环体运行的次数为()ointi=10,x;for(;i<10;i++)x=x+i;A)10 B)0 C)1 D)无限.以下程序段运行后变量n的值为()ointi=l,n=l;for(;i<3;i++){continue;n=n+i;}A)4 B)3 C)2 D)113L有以下程序:voidmain(){inti;for(i=0;i<3;i++)switch(i){case1:printf(〃%d〃,i);case2:printf("%d”,i);default:printf("%d”,i);执行后输出结果是()。A)011122B)01222 C)012020D)120.以下程序的运行结果是()ovoidmain()(intsum=0,item=0;while(item<5)item++;sum+=item;if(sum>=6)break;printf("%d\n",sum);A)10B)15 C)6 D)7.以下程序的运行结果是()ovoidmain()intsum=0,item=0;while(item<5)item++;if(item==2)continue;sum+=item;A)10B)13 C)15 D)1.以下程序段执行后变量sum的值为()ointi,j=l,sum=0;for(i=l;i<=3;i++){sum+=j;j++;A)5 B)3 C)6D)4.以下程序的运行结果是()o^include<stdio.h>voidmain(){inty=10;do{y—;}while(-y);printf("%d\n”,y—);A)1 B)2 C)-1 D)0136,以下程序段运行后,循环体中的〃count+=2;〃语句运行的次数为()。inti,j,count=0;for(i=l;i<=4;i++){for(j=l;j<=i;j++)(count+=2;printf("%d”,count);))A)8次 B)10次 C)16次D)20次137.如下fun函数的类型是()ofun(floatx){doubley;intz;y=x*x;z=(int)y;return(z);)A)voidB)doubleC)intD)float138.若有以下宏定义:^defineM0D(x,y)x%y则执行以下程序段后z的值是()ointz,a=15,b=100;z=MOD(b,a);A)100B)15 C)11D)10.以下叙述中,正确的是()。A)"definePRICE=30”定义了与30等价的符号常量PRICEB)预编译处理命令行都必须以开头C)宏名只能包含大写字母和数字字符D)在程序的一行上可以书写几个有效的宏定义.以下的叙述中不正确的是()。A)宏展开不占用运行时间,只占用编译时间B)宏名无类型C)宏名必须用大写字母表示 D)预处理命令行都必须以#号开始.下列关于C语言函数的描述中,正确的是()□A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用都可以嵌套D)函数的定义和函数的调用都不可以嵌套.下面关于数组的叙述中,正确的是()。A)数组必须先定义,然后使用B)定义数组时,可不加类型说明符C)定义数组后,可通过赋值运算符”」对该数组名直接赋值D)在数据类型中,数组属基本类型.C语言中数组元素下标的数据类型是()oA)实型常量 B)整型常量或整型表达式C)任何类型的表达式 D)字符型常量.在循环语句的循环体中,break语句的作用是()。A)暂停程序的运行B)结束本次循环C)继续执行break语句之后的循环体各语句D)提前结束循环,接着执行该循环后续的语句.以下叙述中,正确的是().A)宏展开不占用运行时间,只占用编译时间B)预编译处理命令行必须以分号结束C)一个源程序只能有一个预编译处理命令行D)使用带参数的宏定义时,应该说明每个参数的数据类型.以下对C语言字符数组描述中,正确的是()»A)可以用length函数计算字符数组中字符串的长度B)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值C)存放在字符数组中的字符串,以''0'作为该字符串结束标志D)字符数组只能存放字符串,不能存放字符.设已定义:inta[][4]={0,0};则下列描述错误的是().A)数组a的每个元素都可得到初值0B)二维数组a的第一维大小为1C)数组a的行数为1D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0.在C语言中,数组名作为函数调用的实参时,传递给形参的是()。A)数组元素的个数 B)数组的第一个元素值C)数组中全部元素的值 D)数组的首地址.设有以下语句,则()是对a数组元素的不正确引用,其中inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A)a[p-a] B)*(&a[i])C)p[i] D)*(*(a+i)).对于基类型相同的两个指针变量之间,不能进行的运算是()oA)< B)=C)+D)-.若有定义int*pl,*p2;,则指针变量pl、p2不能进行的运算是().A)<B)=C)+D)-.执行以下程序段的输出结果是()。inta=10,*p=&a;printf++*p);A)10B)11C)变量a的地址D)变量a的地址+1.以下关于指针概念的叙述中,错误的是()。一个指针变量只能指向同一类型的变量•个变量的地址称为该变量的指针C)两个同类型的指针变量可以作加减运算D)任何指针变量都可以与空指针NULL进行比较.以下程序段运行后*(p+3)的值为()。chara[]="good";char*p;P=a;A)'d' B)''0'C)存放'd'的地址D)'o'.以下程序段运行后*(++p)的值为()。chara[5]="work";char*p;p=a;A)'w'B)存放'w'的地址C)'o'D)存放'o'的地址.若有定义:int*p,a=4;p=&a;则以下均代表地址的是()«A)a,pB)&a,pC)&a,*pD)a,*p.若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是().A)*p=&a;scanfp):B)*p=&a;scanf(*%lf*p):C)p=&a;scanf*p);D)p=&a;scanfp);.若已定义:intx=12;对①int*p』x;和②*p=x;这两条语句的正确理解是()。A)语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量P所指向的变量B)语句①和②中的*p含义相同,都表示给指针变量赋值C)语句①是在对指针变量p定义时初始化,使p指向x;而语句②是将变量x的值赋给指针变量PD)语句①和②的执行结果都是把变量x的地址赋给指针变量p.在C语言程序中,对文件操作的一般步骤是()oA)打开文件,定义文件指针,读写文件,关闭文件B)定义文件指针,读文件,写文件,关闭文件C)定义文件指针,打开文件,读写文件,关闭文件D)操作文件,定义文件指针,修改文件,关闭文件.若已定义:inta=5,*p;且p=&a;则以下表示中不正确的是()»A)&(*p)==&a B)*(&a)==aC)&(*p)==p D)*(p++)==a++.下面语句正确的是().int*p;*p=20;char*s="abcdef”;printf("%s\n”,s);charstr[]="abcd”;str++;charstr□={'a','b','c'};printfstr);.若有定义inta[2][3],*p=a;,则以下不能表示数组元素a[l][2]的是().A)*(a[l]+2)B)*(p[l]+2)C)p[5]D)*(p+5).若有以下程序段,且0《iV4,0^j<3,则不能正确访问a数组元素的是()。inti,j,(*p)[3];inta[][3]={1,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]+j.若函数fun的函数头为:intfun(inti,intj);且函数指针变量定义如下:int(*p)(inti,intj);则要使指针P指向函数fun的赋值语句是()«A)p=*fun; B)p=fun; C)p=fun(i,j); D)p=&fun;.设有如下变量定义:charaa[][3]={'a','b','c','d','e','f'};char(*p)[3]=aa;则以下程序段的运行结果是()op++;printf("%c”,**p):A)a B)b C)cD)d.以下程序段的运行结果是()ointx[]={2,3,4,5,6,7},*p=x;inti,s=0;for(i=l;i<6;i++)s+=p[i++];printfs);A)12 B)15 C)25D)27.下面程序的运行结果是()o#include<stdio.h>voidmain(){intx,y;int*p,*q,*t;x=36;y=63;p=&x;q=&y;t=p;p=q;q=t;printf("%d,%d\n”,x,y);A)36,36B)63,63C)36,63D)63,36168.以下程序段运行后x的值为()ointa[]={l,2,3,4,5,6,7,8};inti,x,*p;x=l;p=&a⑵;for(i=0;i<3;i++)x*=*(p+i);A)不确定 B)24 C)120D)60.以下程序段运行后x的值为()ointa[]={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;A)2 B)4 C)6D)不确定.以下程序运行结果是()<,#include<stdio.h>voidmain(){chara[]=*1357\*p;

for(p=a;p<a+4;p++)printfp);)A)1357B)1357357577C)7531.下面程序的输出结果是()o#include<stdio.h>A)1357B)1357357577C)7531.下面程序的输出结果是()o#include<stdio.h>voidmain()(inti;char*s="abc";for(i=0;i<3;i++)printf(/z%s\t*,s+i);)A)abcbec B)cbeC)abccbe D)aab.下面程序的输出结果是()o#include<stdio.h>D)7531531311abcabcvoidmain()voidmain()char*str="12345",*ps=str+4;printf("%c\n”,ps[-4]);A)1B)2C)3 D)错误173.以下程序执行时,输入173.以下程序执行时,输入12345<回车),输出为:#include<stdio.h>ttdefineN5voidmain()(inta[N];int*p=a;while(p<a+N)scanf("%d”,p++);while(p>a)printfC%dp));}023451D)023451D)43215.以下程序段的运行结果是()ointx[]={2,3,4,5,6,7},*p=x;inti,s=0;for(i=l;i<6;i+=2)s+=*(p+i);printf("%d",s);A)27 B)25 C)12D)15.以下程序运行结果是()ottinclude<stdio.h>voidmain(){inta[]={9,8,7,6,5,4},*p,*q,i;P=a;q=p+5;for(i=0;i<6;i++)printf("%d%d”,*(p+i),*(q-i));A)948576675849B)948576C)495867 D)495867768594.以下程序段运行后屏幕输出为()ocharstr[80];strcpy(str,"hello");printf("%d”,strlen(str));A)5 B)6 C)7D)80.若有定义:charstrl[6]=*abcdm*,*ps,*str2=*abcdef*;()是正确的。A)strcpy(strl,str2); B)表达式strcmp(strl,str2)的值大于0C)strl=str2; D)表达式strlen(strl)的值为6178.已有定义charstrl[15]={"university"},str2[15];则以下语句中正确的是()oA)str2=strl; B)str2=^college*;C)scanf&str2); D)printfstrl);179.设已定义:charsl[20]=*Youares2[9]=*welcome!*;若要形成字符串"Youarewelcome!”,正确语句是()。A)strcat(si,s2); B)strcpy(si,s2);C)sl+s2; D)si&s2;.设有以下定义语句:structstudent{intnum;charname[10];floatscore;}wang,zhang;则不正确的叙述是()ostruct是结构体类型的关键字zhang是结构体变量名wang是结构体类型名1))num,name,score都是结构体类型student的成员名.设有以下定义语句:structstudent{intnum;charname[10];floatscore;}wang,zhang;则变量wang所占的内存字节数是()oA)14 B)16 C)18 D)20.设有如下定义语句:unionu_type{inti;doublex;floatf;structstr_type{charstr[100];unionutypeu[2];则语句"printf("%d”,sizeof(structstrtype));n的输出结果是()。A)100B)116 C)120 D)200.以下程序段的运行结果是()ounion{intnum;charstr[2];}s;num=20;str[0]=,A*;str[1]=,\0*;printfs.num);A)20B)65C)0D)A.定义一个结构体变量后,该变量所占内存大小是()oA)结构体中第一个成员所需内存容量B)结构体中最后一个成员所需内存容量C)结构体中各成员所需内存容量总和D)结构体成员中占内存容量最大者所需的容量.以下C语言共用体类型数据的描述中,不正确的是()。A)共用体变量占的内存大小等于所需内存最大的成员所占的内存B)共用体类型可以出现在结构体类型定义中C)在定义共用体变量的同时允许对第一个成员的值进行初始化D)同一共用体中各成员的首地址不相同.设有如下定义:unionu_type{intx;floaty;doublez;char叫}a,b,c;执行语句a.x=8;a.y=7.5;a.m='N';b.x=9;后,共用体变量a中的值为()。A)9B)'N'C)7.5D)8.若有定义:structteacher{intnum;charname[10];charsex;intage:floatscore;}teacherl;则变量teacherl所占用的内存字节数是()。A)5B)14C)19D)20.下列对结构体类型变量定义不正确的是()oA)structteacherB)struct{intnum;{intnum;intage;intage;}teachl;}teachl,teach2;C)structD)structteacher{intnum;{intnum;intage;intage;}teacher;);structteacherteachl;structteacherteachl189.以下程序段运行的结果是()«inta,b,c,x;a=b=c=0;x=15;if(!a)elseif(b)if(c)x=3;else

x+=4;printf(,z%d\n/z,x);A)15B)17 C)18 D)19.以下程序的运行结果是()ointfun(intarray[4][4])intj;for(j=0;j<4;j++)printf("%2d”,array[2][j]);printf('\n");}voidmainOinta[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0};fun(a);A)2005B)1004C)0120D)0450.以下程序段的运行结果是()ointi=0,a[]={6,5,3,7};do{a[i]++;)while(a[i]<4);for(i=0;i<4;i++)printfa[i]):A)6537B)7563A)6537B)7563.有如F程序段:intt[][3]={1,2,3,4,5,6,7,8,printfC%d\n*,t[2][1]);则执行该程序段后输出结果是(A)8 B)7.若有如下程序段:chars[10];s="abed";printf("%s\n",s);则()oA)执行时输出:abedC)执行时输出:ab.下面程序段的运行结果是(inti=0,a[]={7,5,7,3,8,3};do{a[i]+=2;}while(a[++i]>5);for(i=0;i<6;i++)printfC%dC)7537D)56739,10,11,12};C)4 D)2B)执行时输出:aD)编译不通过A)9795105 B)9593103C)957383 D)757383.若有定义:chara[]="abcdef”;charb□=”xyz〃;则以下程序段运行后屏幕输出为()。strcpy(a,b);printfC%c*,a[2]);TOC\o"1-5"\h\zA)cB)zC)\0 D)d.以下程序段运行后屏幕输出为()ochara□="abc\0mis〃;printfstrlen(a));A)5 B)8 C)3 D)4.若有定义:inta=2;则语句a=strcmp("miss","miss");运行后a的值为()oA)1 B)0 C)-1 D)2.下面程序段的运行结果是()«inti=0,a[]={l,2,3,4,5};do{a[i]+=10;}while(a[++i]>2);for(i=0;i<5;i++)printf(*%d”,a[i]);A)112345 B)1 2345C)1112131415 D)1112345.以下程序的运行结果是()。#include<stdio.h>unionUtype{inti;floatf;}u[2];voidmain(){printf("%d\n”,sizeof(u));A)2B)4C)6D)8.以下程序的运行结果是()o#include<stdio.h>unionUtype(inti;floatf;struct{charch[2];inti;unionUtypeu;}a;voidmainO{printf("%d\n”,sizeof(a))A)5B)6C)7201.下面程序段的运行结果是()ointa=5,b=6;printf(*%d*,a|b);A)5B)6C)7.以下程序段运行后s的值是(inta[3][3]={1,2,3,4,5,1,2,3,inti,j,s=l;for(i=0;i<3;i++)for(j=i+l;j<3;j++)s*=a[i][j];A)6 B)120.以下程序的运行结果是()ovoidmain()intn=,e;switch(n-)default:printf("errorcase'a':case'b':printf("goodcase'c':printf("passcase'd':printf("warn)A)errorB)good.以下程序运行后屏幕输出为(#include<stdio.h>intf(intx,inty)return(x+y);voidmain()D)8D)8)o4};C)24 D)480");");break;〃);");C)errorgood D)warn)ointa=2,b=3,c;c=f(a,b);printf("%d+%d=%d\n”,a,b,c);A)0B)2+3=5C)2+3=0D)3+2=5205.以下程序运行后屏幕输出为()o#include<stdio.h>inta=2,b=3;intmax(inta,intb)intc;c=a>b?a:b;return(c);voidmain()inta=4;printf("%d”,max(a,b));A)2,3B)2 C)3D)4.以下程序的运行结果是()ovoidfun(inti){inta=2;a=i++;printf(*%d*,a);voidmain(){inta=5,c=3;fun(c);printf("d”,a);A)45B)35 044D)33.若有如下函数定义:intfun()staticintk=0;return++k;以下程序段运行后屏幕输出为()ointi;for(i=l;i<=5;i++)fun();printffun0);A)0B)1C)5D)6208.下面程序的输出结果是()0#include<stdio.h>intglobal=100;fun()intglobal=5;return++global;voidmain()printf(*%d\n*,fun());A)100B)101C)5 D)6209.以下程序的运行结果是()ofun(intx,inty)intz;z=(x<y)?(x+y):(x-y);return(z);)voidmain()inta=10,b=6;printf(%d\n”,fun(a,b));A)4B)16C)10 D)6210,下面程序的输出结果是()otfinclude<stdio.h>itdefineONE1#defineTWOONE+1ttdefineTHREETWO+1voidmain()printf(*%d\n*,THREE-ONE);A)产生错误 B)1211.以下程序的运行结果是()。^defineADD(x)x+xvoidmain()intm=l,n=2,k;k=ADD(m+n)*3;printfk);A)9B)10C)12212.下面程序的运行结果是()odefineM10defineS(x)x*xdefineF(x)(x*x)voidmain(){intnl,n2;nl=1000/S(M);n2=1000/F(M);printf("%d,%d\n”,nl,n2);A)10,10B)1000,10213.以下程序运行结果是()。C)2 D)3D)18C)10,1000D)1000,1000voidmain(){intmin(floatx,floaty);floata,b;intc;a=-6.3;b=-7.9;c=min(a,b);printf(*%d\n*,c);}intmin(floatx,floaty){floatz;if(x>y)z=y;elsez=x;return(z);}A)-7.9B)-7C)-6.3D)-6.以下程序的运行结果是()o#defineM(a,b)a*bvoidmain(){intx=3,y=2,si,s2;sl=M(x+y,x-y);s2=M(x-y,x+y);printf("%d,%d\n”,si,s2);A)-1,7B)5,5C)7,-1D)5,-5.下面程序运行后的结果是()o#include<stdio.h>voidmain(){FILE*fp;inti=10,j=20,k,n;fp二fopen("d_f.dat","w");fprintf(fp,*%d\n*,i);fprintf(fp,*%d\n*,j);fclose(fp);fp二fopen("d_f.dat","r");fscanf(fp,&k,&n);printf("%d%d\n”,k,n);fclose(fp);A)1020B)1030C)2030D)2010.根据下面定义,能打印出字母'H'的语句是()ostructstu{charname[8];intage;structstuclass[12]={"Wang",16,"Zhang”,18,"Hon”,19,"Cheng”,20}printfC*%c\n*»class[3].name);printfC%c\n*,class[3].name[1]);printfC%c\n*,class[2].name);printf(*%c\n*,class[2].name[0]);.假定已有如下变量说明和枚举定义:charch;intj,k;enumday{sun,mon,tue,wed,thu,fri,sat};inta[sat];判断下列语句是否符合语法规则,结果是()osun=0; /*语句1*/

j=mon+tue;if(a[mon]>0)j++;/*语句2/*语句3j=mon+tue;if(a[mon]>0)j++;/*语句2/*语句3A)C)218.type语句1错误,语句2和语句3正确语句3正确,语句1和语句2错误设有如下定义:int*INTEGER;*/*/B)D)语句2正确,语句1和语句3错误语句1正确,语句2和语句3错误INTEGERp,*q;则()是正确的叙述。A)p是int型变量C)p是基类型为int的指针变量B)D)q是基类型为int的指针变量程序中可用INTEGER代替int类型名219.在对无符号数的位运算中,操作数左移一位相当于()。A)操作数除以2C)操作数除以4B)操作数乘以2D)操作数乘以4220.若有定义:inta=20,b=28,c;则执行语句c=(a.b)<<2;后c的值为()。A)2B)5C)32D)98221,下面程序的输出结果为()。#include<stdio.h>voidmain()enumWeekday{sun=7,mon=l,tue,wed,thu,fri,sat);enumWeekdayday=sat;printf("%d\n",day);A)7 B)6 C)5 D)4.若有定义:#definePI3,则表达式PI*2*2的值为()。A)12 B)4 C)3 D)不确定.以下程序运行后,屏幕输出为()o^defineMIN(a,b)((a)<(b)?(a):(b))voidmain(){intx=2,y=3,z;z=2*MIN(x,y);printf(*%d*,z);A)2B)3C)4 D)6.若有以下定义:structlink{intdata;structlink*next;}*head,*p;并已建立如下图所示的链表结构:headf|data|nextH-►|data|next-|-. ►|data|NULL|I । । । । । ।।।指针P指向如下结点:IIIpf|data|next|则能够把P所指结点插入到链表中成为链表第2个结点的程序段是()。p->next=head->next;head->next=p;head->next=p;p->next=head->next;p.next=head,next;head,next=p;(*head).next=p;(*p).next=(*head).next;.若有以下定义:structlink{intdata;structlink*next;)*p;并已建立如下图所示的链表结构:pf|data|nextH~|data|next-|—. *|data|NULL|指针P指向该单向链表的第一个结点,要输出链表所有结点的数据成员data,以下循环语句正确的是()ofor(;p!=NULL;p++)printf("%d,”,p->data);for(;!p;p=p->next)printf(*%d,*,(*p).data);while(p){printf(*%d,*,(*p).data);p=p->next;}while(p!=NUll){printf(z,%d,p->data);p++;}.若有以下定义:structlink{intdata;structlink*next;}a,b,c,*head,*p;其中,指针head指向变量a,p指向变量c,a.next指向变量b,链表结构如下图所示:a b cheadf|data|next-f->|data|NULL|p|data|next|I।। ।।। ।।।则能够把c插入到a和b之间并形成新链表的程序段是()oa.next=c;c.next=b;head,next=p;p.next=head,next;head->next=&c;p->next=head-〉next;(*head).next=p;(*p).next=&b;.若有以下定义:structlink{intdata;structlink*next;}*head,*p;并已建立如下图所示的链表结构:Pheadf|data|nextH-|data|next-1~. |data|NULL|则能保留链表其它结点,而删除P所指向结点的程序段是()head->next=p->next;free(p);head->next=p;p->next=head->next;free(p);free(p);head->next=p;p->next=head->next;free(p);head->next=p->next;.若有定义:structnode{intdata;structnode*next;);及函数:voidfun(structnode*head){structnode*p=head;while(p)(printf("%d”,p->data);p=p->next;break;))调用时head是指向链表首结点的指针,整个链表的结构如下图:head~|5| --•,|17| ~|--•,…-|38| --•■NULL则函数fun()的功能是()oA)删除单向链表 B)显示单向链表中的所有数据C)显示单向链表中的第一个数据 D)创建单向链表229.若有定义:structnode{intdata;structnode*next;及函数:voidfun(structnode*head){structnode*p=head;while(p)printf("%d”,p->data):p=p->next;调用时head是指向链表首结点的指针,整个链表的结构如下图:II1 III II Ihead-| 25| +一 | 47| +一 …-| 13|NULL则函数fun()的功能是()oB)显示单向链表中的所有数据D)B)显示单向链表中的所有数据D)创建单向链表()。其中head指向链表首结点,整个链表结构C)显示单向链表中的第一个数据230.若有如下定义,函数fun的功能是如下图:head-►|data| -|--►|data| --►…f|data|NULL|structnode{intdata;structnode*next;};intfun(structnode*head)(intn=0;structnode*t=head;while(t!=NULL){ n++;t=t->next;}returnn;}A)删除链表head中的所有结点 B)计算链表head中结点的个数C)插入一个元素到链表head中D)创建一个链表head231.若有如下定义,函数fun的功能是()o持head指向链表首结点,整个链表结构如下图:headf| data| -|--*| data| --•••f| data| NULL|I । ।I । । I I Istructnode{intdata;structnode*next;1;voidfun(structnode*head)(structnode*t=head;while(t!=NULL)if(t->data%2==0)printf(*%d”,t->data);t=t->next;A)遍历链表head,输出表中值为偶数的元素B)建立一个只有表头结点的链表headC)删除链表head中的第一个结点 D)插入一个元素到链表head中.下面程序的输出结果是()o#include<stdio.h>ttinclude<stdlib.h>typedefstructnode{intdata;structnode*next;}Node;Nodelist[3]={{l,&list[l]},{2,&list[2]},{3,0});voidprint(Node*head)Node*t=head;while(t!=NULL)printf(/z%d”,t->data);t=t->next;voidmain()print(list);A)123B)012 0013D)230.若有以下定义:structlink{intdata;structlink*next;}*head,*p;并已建立如下图所示的链表结构,指针P和q分别指向图中所示结点:P qf|data|nextH-|data|NULL| |data|则不能将指针q所指的结点连接到链表末尾的程序段是()。q->next=NULL;p=p->next;p->

温馨提示

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

评论

0/150

提交评论