《2023年福建省高等学校计算机等级考试二级C语言选择题试题库.docx》由会员分享,可在线阅读,更多相关《2023年福建省高等学校计算机等级考试二级C语言选择题试题库.docx(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、福建省高等学校计算机等级考试(二级C语言)选择题试题库答案试题C1 .在C语言源程序中,以下叙述对的的是()oA. main函数必须位于文献的开头B.每行只能写一条语句C.程序中的一个语句可以写成多行D.每个语句的最后必须有点号C2.关于C语言的源程序的叙述中,错误的是()oA. C语言的源程序由函数构成B. main函数可以书写在自定义函数之后C.必须包具有输入语句D.一行可以书写多个语句C3.关于C语言数据类型的叙述,对的的是()oA.枚举类型不是基本类型B.数组不是构造类型C.变量必须先定义后使用D.不允许使用空类型C4. C程序中main函数的位置()。A.必须在最开始B.必须在系统库
2、函数后面C.可以在自定义函数后面D.必须在最后B5. C语言的函数体由()括起来。A.()B. )C.D. /* */D6.关于C语言的叙述中,不对的的是()oA. C程序可由一个或多个函数组成B. C程序必须包含一个main。函数C. C程序的基本组成单位是函数D.注释说明只能位于一条语句的后面D7.以下叙述不对的的是()oA. C程序的执行总是从main函数开始B. 一个C源程序必须包含一个main函数C. C语言程序的基本组成单位是函数D.在编译C程序源程序时,可发现注释中的拼写错误C8.结构化程序设计的三种基本结构是()oA.函数结构、分支结构、判断结构B.函数结构、嵌套结构、平行结构
3、C.顺序结构、分支结构、循环结构D.分支结构、循环结构、嵌套结构case d: printf(nwarn ”); )A. errorB.goodC. error goodD. warnc71.以下程序的运营结果是()o void main()(int n=c*;switch(n+)(default: printf(nerror ); break;case a:case b*: printf(ngood ”); break;case c: printf(npass H);case d: printf(nwarn ”);)A. passB. warnC. pass warnD. errorD72.
4、以下程序的运营结果是()o void main() int n=5;if(n+=6) printf(n%dnn);elseprintf(dn”,+n);)A. 4B. 5C. 6D. 7B73.设有整型变量x,下述语句()不会出现死循环。A. for(;x+=l);B. for(;(x=getchar()!=,n,;);C. while(l) x+;D. for(x=10;x);B74.对于整型变量x,与while(!x)等价的是()。A. while(x!=0)B. while(x=0)C. while(x!=l)D. while(x)A75.对于整型变量x和y,语句for(x=0,y=0;
5、(y!=123)&(x4);x+) y+;中的“y+; ”被执行()oA. 4次B.O次C. 123 次D.3次B76.在c语言中while循环和do-while循环的重要区别是()。A. dowhile循环体内可以使用break语句,while循环体内不能使用break语句B. do-while的循环体至少无条件执行一次,while的循环体不是C. dowhile循环体内可以使用continue语句,while循环体内不能使用continue语句D. while的循环体至少无条件执行 次,do-while的循环体不是B77.以下程序段运营后,循环体运营的次数为()oint i=10,x;fo
6、r (;i10;i+) x=x+i;A. 10B.OC. 1D.无限D78.以下程序段运营后变量n的值为()oint i=l,n=l;for (;i3;i+)continue;n=n+i;A. 4B. 3C. 2D. 1B79.以下程序的运营结果是()o void main()(int sum = 0, item = 0;while(item 5)(item+;sum += item;if(sum-5)break;)printf(H %dnn, sum);)A. 10B. 15C. 5D. 680 .以下程序的运营结果是()o void main() (int sum = 0, item =
7、0; while(item =6) break; ) printf(n%dnn,sum); ) A. 10 B. 15 C. 6 D. 7 81以下程序的运营结果是()。 void main() (int sum = 0, item = 0; while(item 5) (item+4-; if(item = 2) B continue; sum += item; ) printf(n %dnn, sum); ) A. 10 B. 13 C. 15 D. 1.下列数组定义中,对的的是()oA. int a5=0;A B. int a=0 1 2; / int a=0,1,2;注意元素与元素之间
8、加逗号C. int a5=0; / int a5=0;int a; /必须指明数组大小83.不歹U数组至义中;对的的是()。A A. int a10;int n=10,an; 下标必须是常量表达式C. int N=10;int aN;D. int n;scanf(%dn,&n); int an;A84.已知int a10;则对a数组元素引用不对的的是()。A. a10 10个元素的数组下标范围从。到9 ,故此题越界B. a3+5C. a10-10 引用数组元素时,下标可以是整型常量或整型表达式D. a5B85.若有定义inta3=0,2;则al的值为()。A. 0B. 1C. 2D. 3A86
9、.若有定义:inta5= 1,2,345;则语句 al=a3+a2+2-a3-l;运营后 al的值为()oA. 6B. 5C. 1D. 2D87.以下能对一维数组a进行对的初始化的语句是()oA. int a5=(0,0,0,0,0);B. int a5-0; 注意使用大括号C. int a5= 1,2,3,4,5,6,7;多余 2 个D. int a口=0; /定义一个只有一个元素的一维数组,指为0D88.下面程序段的运营结果是()o int i=0,a= 3,4,543;doai+;while(a+i5);for(i=0;i5);for(i=0;i6;i+)printf(n%d H,ai)
10、;A. 9 7 95 10 5B. 95 93 10 3B. 9 5 7 3 8 3D. 7 5 7 3 8 390.下面程序段的运营结果是()oint i=0,a= 1,2,345;doai+=10;while(a+i2);for(i=0;i5;i+)printf(n%d n,ai);11 2 3 4 5A. 1 234511 12 13 14 15B. 11 12 3 4 59i:设看如序窗int a33= 1,021,021,01。4后0;for(i=0;i3;i+)for(j=0;ji;j+)s=s+aij;则执行该程序段后,s的值是()o0A. 12B. 392.有如下定义int a
11、3=l, 2, 3, 4, 5, 6, 7, 8;/考察二维数组的初始化 则数组a的行数是()。A. 23C.4D.无法拟定的93:以下数组定义中,对的的是()。A. int a3= 1,2,345,6,7;多余 1 个B.int a=l,2,3,4,5,6,7,8,9); /第二维长度不能省B. int a2= 1,23A5,6);DJnt a46;94.若有定义定t a34=l,2,0, 1,2,3;则 的值为()。A. 01,2B. 1395.若有定义定ta33;则表达式&al-a的值为()。A. 7/&a2l-a代表两者之间的元素个数,类似指向同种类型的指针相减8C. 6D.9c96.
12、若有定义:血仁0必=0;血33=12345,6,7,8,9;则以下程序段运营后x的值为()ofor (;i3;i+) x+=ai2-i;A. 0B. 12C. 15D. 18D97.若有定义int a;则对数组元素的非法引用是()。A. a0l/2B.allC. a4-40D. a03C98.以下数组定义中,对的的是()。A. int a2= 1,2,34,5);B.inta2=0,;C. int a22=l,2,3);D. int a= 1,2,34);D99.若有定义 int a3= 123,4,5,6,7,8,9;贝!1表达式 sizeof(a)/sizeof(a0) 的值为()oA.
13、3B.4C. 5D.9A100.设有以下变量定义:char strl=nstringn,str28,*str3,*str4=nstringn;()是对的的。A. strcpy(strl,nChinan);B. str2=China”;C. strcpy(*str3,nChinaH);D. strcpy(str40,nChinan);D101.有如下定义: charstr6=则语句: printf(n%sstr);的输出结果是()oA. abB. abdefC. ab0D. abC102.设有如下数组定义: charstr8= nFuJiann;则分派给数组str的存储空间是()个字节。A. 6
14、B. 7C. 8D.9B103.若有定义:chara=abcdef;charb=”xyz”;则以下程序段运营后屏幕输出为()。 strcpy(a,b);printf(c;a2);A. cB. zC. 0D.dC104.以下程序段运营后屏幕输出为()o char a=nabc0misn;printf(n%dn,strlen(a);A. 5B. 8C. 3D.4B105.若有定义:int a=2;则语句a=strcmp(“miss”Jmiss);运营后a的值为()。A. 1 相等返回0 ,字符串1字符串2,返回一个正整数,否则返回负整数B. 0 /strcmp(strl,str2)C.-1D. 2
15、B106.以下程序段运营后屏幕输出为()o char str=Habcdn;注意代表一个反斜杠字符printf(H%dn,strlen(str);A. 4B. 5C. 6D.7A107.以下程序段运营后屏幕输出为()ochar str80;strcpy(str,nhelloH);printf(n%d,strlen(str);A. 5B. 6C. 7D. 80B108.若有定义:charstrl6=Habcdmn,*ps,*str2=,abcdef()是对的的。A. strcpy(strl,str2);B.表达式strcmp(strl,str2)的值大于0C. strl=str2;D.表达式st
16、rlen(strl)的值为6A109.设有如下函数定义:int fun(char *str) char *p=str;while ( *p != 0) p+;return (p-str);)则以下语句执行后的输出结果是()o 返回字符串个数pr 血 f(dn”,fun(Student”);A. 7B. 8C.9D. 10A110.以下程序的运营结果是()oint fun(int array4 4) intj;for(j=0;j4;j+) printf(n%2dn,array2j); printf(nnn);)main() int a4=0,1,2,0,0,0,420。5,0,4,5,。; fu
17、n(a);)A. 2 00 5B. 1 0 04C. 0 1 20D. 0 4 5 0C111.如下fun函数的类型是()o fun(float x)double y; int z ;y=x * x ;z=(int)y ;return(z);)A. voidB. doubleC. intD. floatB112.以下程序运营后屏幕输出为()o#includeint f(int x,int y)(return(x+y);)main()(int a=2,b=3,c;c=f(a,b);printf(n%d+%d=%dnn,a,b,c);)A. 0B.2+3=5C.2+3=0D.3+2=5D113.以
18、下程序运营后屏幕输出为()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(H%d,max(a,b);)A. 2,3B. 2C. 3D.4B114.以下程序运营后屏幕输出为()o#includevoid f(int i)两个函数中的a不同样(int a=2;a=i+;printf(n%d,n,a);)main()(int a=l,c=3;f(c);a=c+;printf(n%dn,a);)A. 4,3B. 3,3C. 4,5
19、D. 3,5D115.若有如下函数定义:注意静态变量的使用 int fun()(static int k=0;return +k;)以下程序段运营后屏幕输出为()oint i;for(i=l;i=5;i+) fun();printf(n%dn,fun();A. 0B. 1C. 5D. 6D116.下面程序的输出结果是()o#include int global= 100;fun()(int global=5;return +global;)void main()(printf(n%dnfun();)A. 100B. 101C. 5D.6B117.下列关于C语言函数的描述中,对的的是()。 A.
20、函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用都可以嵌套 D.函数的定义和函数的调用都不可以嵌套D118.若有以下宏定义,#define MOD(x,y) x%y则执行以下程序段后,z的值是()oint z,a=15,b=100;z=MOD(b,a);A. 100B. 15C. 11c9.对于C语言源程序,以下叙述错误的是()oA.可以有空语句B.函数之间是平等的,在一个函数内部不能定义其它函数C.程序调试时假如没有提醒错误,就能得到对的结果D.注释可以出现在语句的前面D10.下面关于C语言用户标记符的描述,对的的是()o
21、A.不区分大小写B.用户标记符不能描述常量C.类型名也是用户标记符D.用户标记符可以作为变量名D11.以下()是对的的变量名。A. 5fB. ifC. f.5D._f5D12.以下()是对的的常量。A. E-5B. 1E5.1C.匕12D.32766LD13.以下()是对的的变量名。A. a.beeB.-pllC. intD.p_llC14.以下()是对的的字符常量。单引号括起来A. McHB. *C.WD. ”32a”A15.以下()是不对的的字符串常量。双引号括起来A. fabcB. n12,12uC. n0HD. nB16.以下()是错误的整型常量。A. -OxcdfB. 018/八进制
22、数不能超过8C. OxeD.011B17.以下()是对的的浮点数。A. e3/e前面必须有数字,指数必须为整数B. .62D. 10119.以下叙述中,对的的是()oA. define PRICE二30”定义了与30等价的符号常量PRICEB.预编译解决命令行都必须以“#开头C.宏名只能包含大写字母和数字字符可以涉及小写字母D.在程序的一行上可以书声几个有效的宏定义 120.以下叙述中,对的的是()。A.宏展开不占用运营时间,只占用编译时间B.预编译解决命令行必须以分号结束C. 一个源程序只能有一个预编译解决命令行D.使用带参数的宏定义时,应当说明每个参数的数据类型121 .以下的叙述中不对的
23、的是()oA.宏展开不占用运营时间,只占用编译时间B.宏名无类型C.宏名必须用大写字母表达D.预解决命令行都必须以#号开始.若有定义:#definePI3,则表达式PI*2*2的值为()。A. 12B.4C. 3D.不拟定123以下程序运营后,屏幕输出为()。#define MIN(a,b) (a)(b)?(a):(b) main()int x=2,y=3,z;z=2*MIN(x,y);printf(n%d;z);)A. 23C.4D.6 124.下面程序的输出结果是()o#include #define SQR(x) (x*x) void main() int a,b=3;a = SQR(b
24、+2);printf(nn%dH,a);)A. 1125C.不定值D.产生错误125.下面程序的输出结果是()。#include #define ONE 1#define TWO ONE+1#define THREE TWO+l void main() (printf(n%dnH,THREE-ONE);)A.产生错误B. 1C.2 D. 3726.以下叙述中对的的是()。A.预解决命令行必须位于C源程序的起始位置B.在C语言中,预解决命令行都以“#”开头C.每个C程序必须在开头包含预解决命令行:#includeD. C语言的预解决不能实现宏定义和条件编译的功能石7.设有以下语句,则()是对a数
25、组元素的不对的引用,其中 int a10=0,l,2,3,4,5,6,7,8,9, *p=a;ap-aA. *(&ai)piB. *(*(a+i)128.对于基类型相同的两个指针变量之间,不能进行的运算是()oA. B.二C. +D.-129 .执行以下程序段的输出结果是()。int a=10,*p二&a;printf(”d+*p);A. 1011C.变量a的地址D.变量a的地址+ 1130 .以下程浮段运膏后(p+3)的值为7)。char a =ngoodn;char *p;p=a;A.dB. OC.存放d的地址D. V131.以下程序段运营后*(+p)的值为()ochar a5=nwork
26、n;char *p;p=a;A. WB.存放W的地址C.bD.jb的地址132.若有定义:int *p,a=4; p=&a;则以下均代表地址的是()。A. a,pB B. &a,pC. &a,*pa,*p133 .若有说明语句:double *p,a;则能通过scanf语句对的给输入项读入数据的程序段 是()。A. *p=&ajscanfClfp);*p=&a;scanf(”f,*p);B. p=&a;scanf(,%lf,*p);p=&a;scanf(%lf p);134 .在16位编译系统上,若有定义inta=10,20,30,*p=&a;当执行p+;后下列叙述 错误的是()o4 A.p向
27、高地址移了一个字节AB.p与a+l等价C.语句 printf(”d*p);输出 20D. p指向数组元素al135.下面语句对的的是()oA. int *p; *p=20;B B. char *s=abcdef; printf(u%snn,s);char str口二abed”; str+;数组名不能改变C. char str=a;b,;c);printf(n%s,str); /%s 输出字符串,必须以(T结束136.若看以下程序既 且gi4, 0勺3,顶I不能对的访问a数组元素的营?); int i,j,(*p)3;int a口3= 1,2,3,4,5,6,7,8,9,10,11,12;D P
28、 = a;A. *(*(a+i)+j)B.pi皿C.(*(p+i)lHD. pi+j-137.若函数fun的函数头为:int fun(int i, int j)p=&a ;且函数指针变量p定义如下:int(*p)(int i, int j);则要使指针p指向函数fun的赋值语句是()oA. p=*fun;B. p=fun;C. p=fun(i,j);D. p二&fun;D138.设有如下变量定义:char aa3=a,;b;c,;d7e,;f;char (*p)3=aa;则以下程序段的运营结果是()o p+;A. aB.bC. cD.dD139.以下程序段运营后x的值为()oint a=1,2
29、34,5,6,7,8;int i,x,*p;x=l;p=&a2;for(i=0;i3;i+)x*=*(p+i);A.不拟定B.24C. 120D. 60B140.以下程序段运营后x的值为()o int a=123,b=4,2,5;intint i,x;p=a; q=b;for(i=0;i3;i+) if(*(p+i)=*(q+i) x=*(p+i)*2;A. 2B.4C. 6D.不拟定C141.以下程序段运营后x的值为()o int a9= 1,2,34,5,6,3,8,9;int *p,*q;int i,x;q=&a8;for(i=0;i3;i+)if(*(p+i)=*(q-i)x=*(p+
30、i)*2;A. 2B.4C. 6D.不拟定142.下面程序的输出结果是()。#includevoid main()(int i;char *s=abc;for(i=0;i3;i+)printf(n%snn,s+i);A. abc beB. c be abc C. abcbeD. a ab abc 143.下面程序的输出结果是()o#include void main() char *str=12345,*ps=str+4;A printf(n%cn,ps-4);)A. 1B.23D.错误144.以下程序执行时,输入1 2 3 4 5回车,输出为:A #include #define N 5vo
31、id main()(int aN;int *p=a;while(pa)printf(n%dp);)A. 5 43 2 1B. 1 2345C. 2 3 45 1D. 4 3 2 1 5c145 ,设有以下定义语句:struct student int num;char name 10;float score; wang,zhang;则不对的的叙述是()oA. struct是结构体类型的关键字B. zhang是结构体变量名C. wang是结构体类型名D. num, name, score都是结构体类型student的成员名B146.设有以下定义语句:struct student int num;
32、char name 10;float score; wang,zhang;则变量wang所占的内存字节数是()oA. 14B. 16C. 18D. 20B147.设有如下定义语句: union u_type int i; /一个字节 double x; 八个字节 float f;四个字节);struct str_type char str100;union u_type u|2;则语句printf(”d”, sizeof(struct stjtype);”的输出结果是()。A. 100116B. 120200148.若有定义:struct teacher int num;char name10
33、;char sex; int age;C float score; teacher 1;则变量teacherl所占用的内存字节数是()。A. 514B. 1920149.下句对绪构体类型变量定义不对的的是()。A. struct teacher int num; int age; teach 1;B. struct int num; int age; teach l,teach2;C C. struct int num; int age; teacher;struct teacher teach 1;D. struct teacher int num;int age;);struct teac
34、her teach 1;150.若有定义: struct teacherint num; char sex; int age; teacherl;则下列叙述不对的的是()ostruct是结构体类型的关键字A. struct teacher是用户定义的结构体类型num,sex,age都是结构体变量teacher 1的成员B. teacher 1是结构体类型名151.以下程序的运营结果是()。#include union Utypeint i;float f;u2;void main() printf(nsizeof(u):%dnn,sizeof(u);A. 2B.4C. 68152.以下程序的运
35、营结果是()o#include union Utypeint i;float f;);struct char ch2;int i;union Utype u;a;void main()printf(nsizeof(a):%dnn,sizeof(a);A. 5B.67C. 8153.以下C语言共用体类型数据的描述中,不对的的是()oA,共用体变量占的内存大小等于所需内存最大的成员所占的内存D B.共用体类型可以出现在结构体类型定义中C.在定义共用体变量的同时允许对第一个成员的值进行初始化D.同二共用体中各成员的首地址不相同A 154.若看以下定义:struct link int data;str
36、uct link *next; *head, *p;并已建立如下图所示的链表结构:IIIIIIhead 一 | data | next-| | data | next-|-IIIIII指针p指向如下结点:IIIp 一 | data | next |IIIdata NULL则可以把p所指结点插入到链表中成为链表第2个结点的程序段是()。A. 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).ne
37、xt =(*head).next;155.若看以不定义:struct link int data;struct link *next; a,b,c, *head, *p;其中,指针,head指向变量a, p指向变量c, a.next指向变量b,链表结构如下图所示:head | data | next-| | data | NULL |p | data | next |则可以把c插入到a和b之间并形成新链表的程序段是()oa.next 二 c; c.next 二 b;A. head.next = p; p.next = head.next;head-next = &c; p-next = hea
38、d-next;B. (*head).next = p; (*p).next = &b;156.若有以不定义:struct link int data;struct link *next; *head, *p;并已建立如下图所示的链表结构:headIIIIIIII一| data | next-| | data | next-)一IIIIIII|_1| data | NULL |I则能保存链表其它结点,而删除P所指向结点的程序段是()oA. head-next = p-next; free(p);head-next = p; p-next = head-next; free(p);B. free(
39、p); head-next = p; p-next = head-next;free(p); head-next = p-next;157 .若有定义: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;)调用时head是指向链表首结点的指针,整个链表的结构如下图:III I_I_IIIIhead一|2 | +一|15| 十一.一|27| 十一NULL I_I_I I_I_II
40、_I_I则函数fun()的功能是()oA.删除整个单向链表B.删除单向链表中的一个结点C.显示单向链表中的所有数据D.创建单向链表.若有定义:struct node int data;struct node *next;;及函数:void fun(struct node * head) struct node * p = head;while(p)(printf(n%d n, p-data);p = p-next;break;)调用时head是指向链表首结点的指针,整个链表的结构如下图:C. 2e4.5D. 123A18.若有说明语句:charc=95,;则变量c包含()个字符。A. 1 dd
41、d :表达1到3位八进制数所代表的字符B. 2 xhh表达1到2位十六进制数所代表的字符C. 3D.语法错误A19.若有定义:inta=2;则对的的赋值表达式是()。A. a-=(a*3)B. double(-a) /(double)(-a)C. a*3D. a*4=3C20.语句x=(a=3,b=+a);运营后,x、a、b的值依次为()。A. 3,3,4逗号运算符及逗号表达式B. 4,4,3C. 4,4,4D. 3,4,3B21.语句a=(3/4)+3%2;运营后,a的值为()。A. 0B. 1注意除号/两边均为整型时,结果为整数(不含小数点)C.2D. 3A22. char型变量存放的是()。/考察变量类型A. ASCII代码值B.字符自身C.十进制代码值D.十六进制代码