《2023年福建省计算机二级c语言选择题题库.docx》由会员分享,可在线阅读,更多相关《2023年福建省计算机二级c语言选择题题库.docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、试题1 .在C语言源程序中,以下叙述对的的是()omain函数必须位于文献的开头B.每行只能写一条语句C.程序中的一个语句可以写成多行D.每个语句的最后必须有点号21关于C语言的源程序的叙述中,错误的是(A.C语言的源程序由函数构成main函数可以书写在自定义函数之后C.必须包具有输入语句D. 一行可以书写多个语句3. 关于C语言数据类型的叙述,对的的是()。A.枚举类型不是基本类型B.数组不是构造类型C.变量必须先定义后使用D.不允许使用空类型4. C程序中main函数的位置()。A.必须在最开始第B.必须在系统库函数后面:C可以在自定义函数后面D.必须在最后5. C语言的函数体由()括起来
2、。A.()B. CC.D. /* */6.关于C语言的叙述中,不对的的是(D LC程序可由一个或多个函数组成A. C程序必须包含一个main。函数CC程序的基本组成单位是函数D.注释说明只能位于一条语句的后面77以下叙述不对的的是在A. C程序的执行总是从main函数开始一个C源程序必须包含一个main函数CB. C语言程序的基本组成单位是函数D.在编译C程序源程序时,可发现注释中的拼写错误8rli构化程序设计的三种基本结构是(C TA.函数结构、分支结构、判断结构B.函数结构、嵌套结构、平行结构C.顺序结构、分支结构、循环结构case b1: printf(Hgood ”); break;c
3、ase c: printf(pass ); case d: printf(Hwarn *);)A. errorB.goodC. error goodwarn71以下程序的运营结果是()。void main()(int n-c1;switch(n+)(default: printf(Herror ); break;case a:case b: printf(ngood ”); break;Bcase c: printf(Hpass );case d: printf(nwarn );)A. passwarnB. pass warnerror72:以不程庠的运营结果是()。void main() i
4、nt n=5;if(n+=6) printf(H%dnH,n);elseD printf(,%dn,+n);)A. 4B.5C. 6773设看整前变量x,下述否ET()不如现泥循环。A. for(;x+=l);for(;(x=getchar()!=,n,;);DB. whilex+;for(x=10;x);74.对于整型变量x,与while(!x)等价的是()。Cwhile(x!=0)A. while(x=0)while(x!=l)B. while(x).对于整型变量x和y,语句 for(x=0,y=0;(y!=123)&(x4);x+) y+;中的“y+; ”被执行()oA.4次B.O次C.
5、123 次D.3次.在c语言中while循环和do-while循环的重要区别是()。A. do-while循环体内可以使用break语句,while循环体内不能使用break语句do-while的循环体至少无条件执行一次,while的循环体不是B. do-while循环体内可以使用continue语句,while循环体内不能使用continue语 句while的循环体至少无条件执行一次,do-while的循环体不是 77.以下程序段运营后,循环体运营的次数为()o int i=10,x;for (;ivlO;i+) x=x+i;10B.OC. 1D.无限78.以下程序段运营后变量n的值药7Ki
6、nt i=l,n=l;for (;i3;i+)contingn=n+i;A.4A. 32B. 179:以下程庠的运膏砧果忌丁)ovoid main()int sum = 0, item = 0; while(item 5)item+;sum += item;if(sum=5) break;)printf(n%dnH,sum);10A. 155B. 680以下程序的运营结果是()。void main()int sum = 0, item = 0;while(item =6)Bbreak;)printf(n%dnn,sum);A. 1015B. 6781以下程庠的运音或果酸Bkvoid mainQ
7、(int sum = 0, item = 0;while(item 5)1+3+4+5=13item+;if(item = 2)continue;Bsum +二 item;)printf(n%dn,sum);)A. 1013B. 15182rF列数组比义而 局的的是()。A. int a5=0;int a=0 1 2;DB. int a5=0;int a ;83 .下列数组定义中,对的的是()oint a10;A. int n=10,an;Bint N=10;int aN;B. int n;scanf(,%d,&n); int an;.已知int a10;则对a数组元素引用不对的的是()。A.
8、 a10a3+5CB. a10-10|a585.若有定义:inta3=0,2;则al的值为()。A. 01BB. 2386.若有定义:inta5= 1,2,345;则语句 al=a3+a2+2-a3-l;运营后 al的值为()o1C. 287.以下能对一维数组a进行对的初始化的语句是(DA. int a5=(0,0,0,0,0);B. int a5=0|;AC. int a5= 12,3,4,5,6,7;D. int a=0;88 .下面程序段的运营结果是()。int i=0,a=3A5,4,3);doai+;while(a+i5);for(i=0;i5);for(i=0;i2);for(i=
9、0;i5;i+)Aprintf(n%d H,ai); A. 11 2 3 4 5 B. 1 2 3 4 5 C. 11 12 13 14 15 D. 11 12 3 4 5 91.设有如下程序段:int a33= 1,0,2,1,021,0,1。4所0;for(i=0;i3;i+)for(j=0;ji;j+)s=s+aij;则执行该程序段后,S的值是()oA. 01B. 2392.有如下定义inta3=l, 2, 3, 4, 5, 6, 7, 8; 则数组a的行数是()o2DA. 3C.4D.无法拟定的93:以下数组定义中,对的的是()。A. int a23= 1,2,3,4,5,67);B.
10、int a=l,2,3,4,5,6,798,9);CB. int a2= 1,2,34,5,6);int a4= 6;94.若有定义:inta4=1,2,0,1,2,3;则 al的值为()。A. 01,2AB. 1395.若有定义:inta;则表达式&al-a的值为(A )。A. 78CB. 6D.996.若有定义:血仁0/=0;血33=123,4,5,6,7,8,9;则以下程序段运营后x的值 为()。for (;i3;i+) x+=aij2-ij;0BA. 1215B. 1897若看定义int a;则对数组元素的菲I用工?)。A. a0l/2B.allDC. a4-40D.a0398.以下数
11、组定义中,对的的是(C)。A. int a2= 1,2,3A5;B.int a2=0,;AC. int a2=1,2,3int a= U,3,4;99.若有定义 int 口3=1,2,3,4,5,6,7,8,9;则表达式 sizeof(a)/sizeof(a0)的值为(A)。18和6C. 5D.9100 .设有以下变量定义:char strl=Hstringn,str28,*str3,*str4=nstringn;(A )是对的的。A. strcpy(strlChina);Cstr2=nChinaM;B. strcpy(*str3/China);strcpy(str40,HChinan);10
12、1 .有如下定义:char str6=;则语句:printf(n%sn,str);的输出结果是()oDA. ababdefB. ab0ab102 .设有如不数组定义:char str8= FuJian;则分派给数组str的存储空间是(C)个字节。A. 6CB.7C. 8D.9103 .若有定义:char a=Habcder;char b=nxyzn;则以下程序段运营后屏幕输出为()ostrcpy(a,b);printf(%c!;a2);DcA. z0D.d.以下程序段运营后屏幕输出为()。char a=nabc0misn;printf(n%dH,strlen(a);A. 5A8B. 3D.41
13、04 .若有定义:int a=2;则语句a=strcmp(“miss”Jmiss);运营后a的值为()。A. 1B.ODC.-12106.以下程序段运音而窠输“ (B )ochar str=nabcdn;printf(n%dn,strlen(str);A. 4CB.56C. 7107.以下程序段运营后屏幕输出为()。char str80;strcpy(str,Mhello,);printf(n%d,strlen(str);C.7D. 80108.若有定义:char strl6=Habcdmn,ps,*str2=abcdef(B )是对的的。A. strcpy(strl,str2);B.表达式s
14、trcmp(strl,st的值大于0C. strl=str2;D.表达式strlen(strl)的值为6109 .设有如下函数定义: int fun(char *str) char *p=str;while ( *p != 0) p+;return (p-str);B则以下语句执行后的输出结果是()o printf(,%dnn,funC,Studentn); A. 7 B. 8 C. 9 D. 10 710.以下程序的运营结果是()。 int fun(int array 4 4) intj;for(j=0;j4;j+) printf(n%2dn,array2j);printf(nnM);)ma
15、in()B int a44=0,2,0,1,0,0,4,20,0,5,0,4,5,0; fun(a);)2 00 5A. 1 0 04C.O 1 20 D.04 5 0 111.如下fun函数的类型是()o fun(float x) double y; int z ; y=x * x ; z=(int)y ;return(z);A) A. void B. double C. int D. float112.以下程序运营后屏幕输出为()。#includeB int f(int x,int y)return(x+y);)main()(int a=2,b=3,c;c=f(a,b);printf(n%
16、d+%d=%dnH,a,b,c);)A. 02+3=5B. 2+3=03+2=5113.以下程序运营后屏幕输出为()o #includeint a=2,b=3;int max(int a,int b)(int c;c=ab?a:b;return(c);)main()(int a=4;printf(%dn,max(a,b);)A. 2,3B.2C. 3D.4114.以下程序运营后屏幕输出为()。#includevoid f(int i)(int a=2;a=i+;printf(n%d;a);main()int a=l,c=3;f(c);a=c+;printf(n%dn,a);4,3A. 3,34
17、,5B. 3,5H5.若有如下函数定义:int fun()static int k=0;return +k;)以下程序段运营后屏幕输出为(D )oint i;for(i=l;i=5;i+) fun();printf(n%dn,fun();0A. 15B. 6.下面程序的输出结果是()o#include int global=100;fun()(int global=5;return +global;Bvoid main()(printf(n%dnn,fun();100A. 1015B. 6.下列关于C语言函数的福述市:对的的是(于A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可
18、以嵌套,但函数的调用可以嵌套DC.函数的定义和函数的调用都可以嵌套D.函数的定义和函数的调用都不可以嵌套116 .若有以下宏定义,#define MOD(x,y) x%y则执行以下程序段后,z的值是()oBint z,a=15,b=100;D.分支结构、循环结构、嵌套结构9.对于C语音源程序,以不叙述错镇的LA.可以有空语句B.函数之间是平等的,在一个函数内部不能定义其它函数BC.程序调试时假如没有提醒错误,就能得到对的结果D.注释可以出现在语句的前面10不面关Fc宿吉而占标记存的描述;对的的葭(工A.不区分大小写B.用户标记符不能描述常量DC.类型名也是用户标记符D用户标记符可以作为变量名1
19、17以下()是对的的变量名。A. 5fifDB. f.5D._f512以下()是对的的常量。A. E-51E5.1CB. 121D.32766L13.以下()是对的的变量名。A. a.beeB.-pllCC. intD. p_n14:以下()是对的的字符常量。A.B N”DC.WC. ”32a”15:以Na )是不对的的字符串常量。A. abc”1212”DB. n0n” “16:以Qb )是错误的整型常量。A. -OxcdfB.018DC. OxeD.01117以下(B )是对的的浮点数。口A. e3z=MOD(b,a); A. 100 B. 15 C. 11 D. 10 119.以下叙述中
20、,对的的是(B )o A. #define PRICE=30”定义了与30等价的符号常量PRICE B.预编译解决命令行都必须以“#开头DC.宏名只能包含大写字母和数字字符D.在程序的一行上可以书写几个有效的宏定义-120.以下叙述中,对的的是(A.宏展开不占用运营时间,只占用编译时间B.预编译解决命令行必须以分号结束DC. 一个源程序只能有一个预编译解决命令行D.使用带参数的宏定义时,应当说明每个参数的数据类型121 .以下的叙述中不对的的是()。A.宏展开不占用运营时间,只占用编译时间B.宏名无类型BC宏名必须用大写字母表达D.预解决命令行都必须以#号开始122 .若有定义:#define
21、PI3,则表达式PI*2*2的值为()。A. 12B.4DC. 3D.不拟定123.以下程序运营后,屏幕输出为()。#define MIN(a,b) (a)(b)?(a):(b) main() int x=2,y=3,z;z=2*MIN(x,y);printf(n%dn,z);B)A. 23C.46124.下面程序的输出结果是()o#include #define SQR(x) (x*x)void main()A3+2*3+2int a,b=3;a=SQR(b+2);printf(Hn%d;a);)A. 11B.25C.不定值D.产生错误125.下面程序的输出结果是(C L#include #
22、define ONE 1#define TWO ONE+1#define THREE TWO+1 void main()(cprintf(n%dnTHREE-ONE);)A.产生错误B. 1C.2D. 3126以下叙述中对的的是()。A.预解决命令行必须位于C源程序的起始位置B.在C语言中,预解决命令行都以”#”开头AC.每个C程序必须在开头包含预解决命令行:#includeD. C语言的预解决不能实现宏定义和条件编译的功能27:设有以下宿句()是对a数组元素的示对的回用,其中0i10oint a10=0,l,2,3,4,5,6,7,8,9, *p=a;A. ap-aCB. *(&ai)C.
23、piD. *(*(a+i)是二维数组128对于基类型相同的两个指针变量之间,不能进行的运算是()。A. B.=AC.+D.-129执后以下程序段的输出结果是()。int a=10,*p=&a;printf(”d”,+*p);A. 10CB. 11C.变量a的地址D.变量a的地址+ 1130以下程序段运音启*(p+3)的值为 JTB char a尸good”;char *p;P=a;A.dB. 10C.存放d的地址D. of131?以下程序段运看目(+p)的值三()ochar a5=nworkn;char *p;P=a;DA.wB.存放W的地址VD.存放0的地址132.若有定义:int*p,a=
24、4;p=&a;则以下均代表地址的是()。A. a,pB. &a,pCC. &a,*pD. a,*p;33.若有说明语句:double%,麻的而 段是()oA. *p=&a;scanf(lF,p);B. :1:p=&a;scanf(n%lf,:f:p);C. p二&a;scanf(lF,*p);D. p=&a;scanf(%lfn,p);134.在16位编译系统上,若有定义inta口二10,20,30,*p=&a;当执行p+;后下列叙 述错误的是()。A.p向高地址移了一个字节入AB. p与a+1等价C.语句 printf(”d”,*p);输出 20D. p指向数组元素al135.下面语句对的的
25、是(B )oB. int *p; *p=20;char *s=abcdeF; printf(n%snn,s);CC. char str=Habcdn; str+;D. char str=a:b,c;printf(s”,str);136.庠有7以示程庠段且04% 0031则不能对的访向a数组完素的是(Tint i,j,(*P)3;int a3= 123,4,5,6,7,8910,112;Bp 二 a;A. *(*(a+i)+j)B.pi皿c. (*(p+i)UD. pi+j137若函数fun的函数头为:int fun(int i, int j)且函数指针变量p定义如下:int(*p)(int i
26、, int j);则要使指针p指向函数fun的赋值语句是()oA. p=*fun;p=fun;B. p=fun(i,j);p=&fun;138 .设有如下变量定义:char aa3=,a;b7c;d,;e,;f);char (*p)3=aa;则以下程序段的运营结果是()o p+;printf(%c,*p);A. a B.b C. c D.d139 .以下程序段运营后x的值为()oint 叫= 1,2,345,6,7,8;int i,x,*p;x=l;p=&a2;for(i=0;i3;i+)B1*3*4*5x*=*(p+i);A.不拟定B.24120C. 60.以下程序段运营后x的值为?):in
27、t 明= 1,2,3,b=4,2,5;int *p,*q;int i,x;p=a; q=b;for(i=0;i3;i+) if(*(p+i)=*(q+i) x=*(p+i)*2;A. 2B.4C.6D.不拟定.以下程序段运营后x的值为()o int a9= 12,3,4,5,6,3,8,9;int *p,*q; int i,x;p=&aO;q=&a8;for(i=0;i3;i+)Bif(*(p+i)=*(q-i) x=*(p+i)*2;A. 2B.4C.6D.不拟定 142.下面程序的输出结果是()o#include void main() ( int i;char *s=abc”; for(
28、i=0;i3;i+)printf(n %sn ,s+i);)A. abcbeDcc be abcB. abc c beaab abc143.下面程序的输出结果是()。#include void main() (char *str=12345,*ps=str+4;printf(n%cn,ps-4);)A. 1B.2C. 3144.以下程序执行时,输入1 2 3 4 5回车,输出为:#include #define N 5 void main() int aN;int *p=a;while(pa)printf(n%d ”,*(-p);)A. 5 4 3 2 11 2345B. 2 3 45 14
29、3 2 1 5145设看以下定义宿目:struct student int num;char name10;float score; wang,zhang;则不对的的叙述是(C)ostruct是结构体类型的关键字A. zhang是结构体变量名wang是结构体类型名B. num, name, score都是结构体类型student的成员名146 .设有以下定义语句:struct student int num;char name10;float score; wang,zhang;则变量wang所占的内存字节数是()o14A. 1618B. 20147 .设有如下定义语句:union u_typ
30、e int i;double x;float f;);struct str_type char str100;union u_type u2;);则语句“printf(”cT, sizeof(struct strjype);”的输出结果是()。A. 100116B. 120200148 .若有定义: struct teacher int num;char name10;char sex; int age; float score;A teacher 1; 则变量teacherl所占用的内存字节数是()。 A. 5 B. 14 C. 19 D. 20149 .下列对塞构体询变薪义示而的的是7 b
31、rstruct teacher int num; int age; teach 1;A. struct int num; int age; teach l,teach2;structCint num; int age; teacher; struct teacher teach 1;struct teacher int num; int age; ); struct teacher teach 1;150.若有定义: struct teacherint num;char sex; int age; teacher 1;则下列叙述不对的的是(D)ostruct是结构体类型的关键字A. struc
32、t teacher是用户定义的结构体类型num,sex,age都是结构体变量teacher 1的成员B. teacher 1是结构体类型名151.以下程序的运营结果是()。#include union Utypeint i;float f;u;void main()(Bprintf(nsizeof(u):%dnH,sizeof(u); A. 2B.4C. 68152.以下短序的瓦碗果豆()#include union Utypeint i;float f;); struct char ch2;int i;union Utype u;Ca; void main() printf(nsizeof(
33、a):%dnn,sizeof(a);)A. 5 B.67C. 8.以下C宿吾共用体云型数据的描述中,不需的的惠,)。A.共用体变量占的内存大小等于所需内存最大的成员所占的内存B,共用体类型可以出现在结构体类型定义中C.在定义共用体变量的同时允许对第一个成员的值进行初始化D.同二共用体中各成员的首地址不相同153 .若看以下定义:struct link int data;struct link *next; *head, *p;并已建立如下图所示的链表结构:IIIIIIIIIhead 一 | data | next-| | data | next-|一一 | data | NULL |IIIII
34、IIII指针P指向如下结点:DIIIp 一 | data | next |III则可以把p所指结点插入到链表中成为链表第2个结点的程序段是()oA. p-next = head-next; head-next = p;head-next = p; p-next = head-next;B. p.next = head.next; head.next = p;(*head).next = p; (*p).next = (*head).next;154 .若有以下定义:struct link int data;struct link *next; a,b,c, *head, *p;其中,指针hea
35、d指向变量a, p指向变量c, a.next指向变量b,链表结构如下图所示: a bcI11I11I11Dhead 一 | data | next-| | data | NULL | p 一 | data | next |IIIIIIIII则可以把c插入到a和b之间并形成新链表的程序段是()。A. a.next = c; c.next = b;head.next 二 p; p.next 二 head.next;B. head-next = &c; p-next = head-next;(*head).next = p; (*p).next = &b;155 .若有以下定义:struct lin
36、k int data;struct link *next;D *head, *p;并已建立如下图所示的链表结构:Phead 一 | data | next-| | data | next-|.一一| data | NULL |III III III则能保存链表其它结点,而删除p所指向结点的程序段是()oA. head-next = p-next; free(p);head-next = p; p-next = head-next; free(p);B. free(p); head-next = p; p-next = head-next;free(p); head-next = p-next;
37、156 .若有定义:struct node int data;struct node *next;);及函数:void fun(struct node *head) struct node *p=head; while(p) struct node *q=p-next;free(p);p=q;D)调用时head是指向链表首结点的指针,整个链表的结构如下图:I-I_I I-IIII-Ihead 一 |2| +一 |15| 十一一 | 27 | +1NULL I_I_I I_I_II_I_I则函数fun()的功能是()oA.删除整个单向链表B.删除单向链表中的一个结点C.显示单向链表中的所有数据D
38、.创建单向链表.若有定义:struct node int data;struct node *next;);及函数:void fun(struct node * head)A struct node * p = head; while(p) (printf(n%d n, p-data);p = p-next;break;.62B. 2e4.512318.若有说明语句:char c=95,;则变量c包含()个字符。A. 1B.2CC. 3D.语法错误19.若有定义:inta=2;则对的的赋值表达式是()。A. a-=(a*3)double(-a)AB. a*3a*4=3C. .语句x=(a=3,
39、b=+a);运营后,x a b的值依次为()。A. 3,3,4B, 4,4,3BC. 4,4,43,4,321.语句a=(3/4)+3%2;运营后,a的值为()。A. 01BC.2D. 322. char型变量存放的是()。A. ASCII代码值B.字符自身AC.十进制代码值D.十方进制代码值23.若有定义:int x,a;则语句x=(a=3,a+l);运营后,x、a的值依次为()。A. 3,3B.4,4AC. 4,33,424.若有定义:int a;则语句a=(3* 4)+2 % 3;运营后,a的值为()。A. 1214CB. 111725.若有定义:int a,b; double x,则以
40、下不符合C语言语法的表达式是(A)。A. x%(-3)a+=-2BC.a=b=2D.x=a+b) ) 调用时head是指向链表首结点的指针,整个链表的结构如下图:III I-I-1IIIhead 一 | 5 | 十一 |17| 十一.一|38| 十一NULL I_I_I I_I_II_I_I则函数fun()的功能是()oA.删除单向链表B.显示单向链表中的所有数据C.显示单向链表中的第一个数据D.创建单向链表159.若有定义: struct node int data; struct node *next;);及函数: void fun(struct node * head) struct n
41、ode * p = head;while(p) ( printf(H%d ”, p-data);p = p-next;D)调用时head是指向链表首结点的指针,整个链表的结构如下图:II_I I_I_II_IIhead | 25 | +一| 47 | 十一一| 13 | 十一NULL I_I_I I_I_II_I_I则函数fun()的功能是()oA.删除单向链表B.显示单向链表中的所有数据C.显示单向链表中的第一个数据D.创建单向链表160 .若有如下定义,函数fun的功能是()o其中head指向链表首结点,整个链 表结构如下图:IIIII_IIIIhead | data | | data |
42、 -| | data | NULL |II_III_IIIIA struct nodeint data;struct node *next; );int fun(struct node* head)int n=0;struct node* t=head;while(t!=NULL)(n+;t=t-next;return n;)A.删除链表head中的所有结点 B.计算链表head中结点的个数 C.插入一个元素到链表head中 D.创建一个链表head161 .若有如下定义,函数fun的功能是()o其中head指向链表首结点,整个链 表结构如下图:II-III-IIIIhead | data | J data | J . 一 | data | NULL |II_III_IIIIstruct node int data; struct node *next;);void fun(struct node* head)struct node* t=head;A