二级C语言分类模拟题554.docx

上传人:b****8 文档编号:30551503 上传时间:2023-08-16 格式:DOCX 页数:20 大小:24.39KB
下载 相关 举报
二级C语言分类模拟题554.docx_第1页
第1页 / 共20页
二级C语言分类模拟题554.docx_第2页
第2页 / 共20页
二级C语言分类模拟题554.docx_第3页
第3页 / 共20页
二级C语言分类模拟题554.docx_第4页
第4页 / 共20页
二级C语言分类模拟题554.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

二级C语言分类模拟题554.docx

《二级C语言分类模拟题554.docx》由会员分享,可在线阅读,更多相关《二级C语言分类模拟题554.docx(20页珍藏版)》请在冰豆网上搜索。

二级C语言分类模拟题554.docx

二级C语言分类模拟题554

二级C语言分类模拟题554

选择题

1、若有定义

  inta;

  floatb;

  doublec;

  程序运行时输入:

  345<回车>

  能把值3输入给变量a、4输入给变量b、5输入给变量c的语句是______。

  A.scanf("%lf%lf%lf",&a,&b,&c);  B.scanf("%d%lf%lf",&a,&b,&c);

  C.scanf("%d%f%f",&a,&b,&c);  D.scanf("%d%f%lf",&a,&b,&c);

2、以下叙述正确的是______。

  A.C语言程序是由过程和函数组成的

  B.C语言函数可以嵌套调用,例如:

fun(fun(x))

  C.C语言函数不可以单独编译

  D.C语言中除了main函数,其他函数不可作为单独文件形式存在

3、下面程序的输出结果是______。

  #definea121

  constb=12;

  enumc{a1,a2};

  main()

  {

   printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));

  }

  A.121,0,4  B.2,2,2   C.0,2,4   D.0,2,2

4、设文件指针fp已定义,执行语句fp=fopen("file","w");后,以下针对文本文件file操作叙述的选项中正确的是______。

  A.只能写不能读  B.写操作结束后可以从头开始读

  C.可以在原有内容后追加写  D.可以随意读和写

5、设有定义:

inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,若0≤i≤9,则对a数组元素的引用错误的是______。

  A.a[10]  B.*(&a[i])  C.p[i]  D.a[p-a]

6、有以下程序:

  #include<stdio.h>

  main()

  { charch;

  ch='A'+'5'-'3';

  printf("%d,%c\n",ch,ch);

  }

  程序的输出结果是

  A.67,C  B.B,C  C.C,D  D.不确定的值

7、在C语言中,只有在使用时才占用内存单元的变量,其存储类型是

  A.auto和register  B.extern和register  C.auto和static  D.static和register

8、在C语言中,不适用于局部变量的存储类说明符是  (  )

 A.auto  B.register  C.static  D.extern

9、以下选项中表示一个合法的常量是(说明:

符号□表示空格)______。

  A.9□9□9  B.0Xab

  C.123E0.2  D.2.7e

10、有以下程序:

  #include<stdio.h>

  inta=1;

  intf(intc)

  { staticinta=2;

  c=c+1;

  return(a++)+c;

  }

  main()

  { inti,k=0;

  for(i=0;i<2;i++){inta=3;k+=f(a);}

  k+=a;

  printf("%d\n",k);

  }

  程序运行结果是______。

  A.14  B.15

  C.16D.17

11、若已包括头文件<string.h>且已有定义chars1[18],s2={"ABCDE"}和inti,现要将字符串"ABCDE"赋给s1,下列语句错误的是(  )

  A.strcpy(s1,s2)

  B.strcpy(s1,"ABCDE");

  C.s1="ABCDE";

  D.for(i=0;i<6;i++)

     s1[i]=s2[i];

12、若有以下程序:

  #include<stdio.h>

  voidf(intn);

  main()

  {voidf(intn);

  f(5);

  }

  voidf(intn)

  {printf("%d\n",n);

  }

  则以下叙述中,不正确的是______。

  A.若在主函数中对函数f()进行说明,则只能在主函数中正确调用函数f()

  B.若在主函数前对函数f()进行说明,则在主函数和其他函数中都可以正确调用f()

  C.对于以上程序,编译时系统会报错,提示对f()函数重复说明

  D.函数f()无返回值,所以可用void将其类型定义为无值型

13、以下涉及字符串数组、字符指针的程序片段,没有编译错误的是______。

  A.charline[];line="=============":

  B.char*name[10],*str;name="HelloWorld";

  C.charstr1[10],str2[10]="prog.c";str1=str2;

  D.charname[10],*str="HelloWorld";

14、下列程序执行后的输出结果是______。

  voidfunc(int*a,intb[])

  {b[0]=*a+6;}

  main()

  {inta,b[5]={0};

  a=0;b[0]=3;

  func(&a,b);

  printf("%d\n",b[0]);

  }

  A.6  B.7  C.8  D.9

15、有以下程序

  #include<stdio.h>

  intf(intn)

  { intt=0,a=5;

   if(n/2){inta=6;t+=a++;}

   else{inta=7;t+=a++;}

   returnt+a++;

  }

  main()

  { ints=0,i=0;

   for(;i<2;i++)s+=fi);

  printf("%d\n",s);

  }

  程序运行后的输出结果是______。

  A.24  B.28  C.32  D.36

16、若有如下说明,且int类型占两个字节,则正确的叙述为______。

  structst

  {inta;

  intb[2];

  }a;

  A.结构体变量a与结构体成员a同名,定义是合法的

  B.程序只在执行到该结构体时才为结构体st分配存储单元

  C.程序运行时为结构体st分配8字节存储单元

  D.类型名structst可以通过extern关键字提前引用

17、若有以下程序

  #include<stdio.h>

  #defineS(x)x*x

  #defineT(x)S(x)*S(x)

  main()

  {intk=5,j=2;

  printf("%d,%d\n",S(k+j),T(k+j));

  }

  则程序的输出结果是______。

  A.17,37  B.49,2401  C.17,289  D.49,289

18、设有以下说明,则不正确的叙述是______。

  unionun

  {inta;

  charb;

  floatc;

  }arr;

  A.arr所占的内存长度等于成员c的长度

  B.arr的地址和它的各成员的地址都是同一地址

  C.arr可以作为函数参数

  D.不能在定义arr时对它初始化

19、有以下程序:

  #include<stdio.h>

  main()

  { shortc=124;

  c=c______;

  printf("%d\n",c);

  }

  若要使程序的运行结果为248,应在横线处填入的是______。

  A.>>2

  B.|248

  C.&0248

  D.<<1

20、关系模型允许定义3类数据约束,下列不属于数据约束的是______。

  A.实体完整性约束

  B.参照完整性约束

  C.属性完整性约束

  D.用户自定义的完整性约束

21、下面程序的运行结果是______。

  #include<stdio.h>

  voiddel(char*s)

  {inti,j;

  char*a;

  a=s;

  for(i=0,j=0;a[i]!

='\0';i++)

  {if(a[i]>='0'&&a[i]<='9'){s[j]=a[i];j++;)

  s[j]='\0';}}

  main()

  {char*s="aa89gggh";del(s);printf("\n%s",s);}

  A.aa  B.89  C.gggh  D.aa89gggh

22、以下程序的输出结果是______。

  main()

  {charst[20]="hello\0\t\\\";

  printf("%d%d\n",strlen(st),sizeof(st));

  }

  A.99  B.520

  C.1320  D.2020

23、下列叙述中,正确的是______。

  A.线性链表是线性表的链式存储结构  B.栈与队列是非线性结构

  C.双向链表是非线性结构  D.只有根结点的二叉树是线性结构

24、有如下程序:

  #include<stdio.h>

  structpair

  {

  intfirst,second;

  };

  structpairget_min_max(int*array,intlen)

  {

  inti;

  structpairres;

  res.first=array[0];

  res.second=array[0];

  for(i=1;i<len;i++)

  {

  if(array[i]<res.first)

  res.first=array[i];

  if(array[i]>res.second)

  res.second=array[i];

  }

  returnres;

  }

  main()

  {

  intarray[5]={9,1,3,4};

  struetpairmin_max=get_min_max(array,5)

  printf("min=%d,max=%din",min_max.first,min_max.second);

  }

  程序运行后的输出结果是______。

  A.min=1,max=9  B.min=0,max=9

  C.min=1,max=4D.min=0,max=4

25、有以下程序片段:

  y=-1;

  if(x!

=0)

  if(x>0)y=1;

  elsey=0;

  其能正确表示的数学函数关系是

  A.

  B.

  C.

  D.

26、设有以下定义和语句

  int a[3][2]={1,2,3,4,5,6},*p[3];

  p[0]=a[1];

  则*(p[0]+1)所代表的数组元素是

  A.a[0][1]  B.a[1][0]  C.a[1][1]  D.a[1][2]

27、以下叙述中错误的是( )。

  A.用户定义的函数中可以没有return语句

  B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

  C.用户定义的函数中若没有return语句,则应当定义函数为void类型

  D.函数的return语句中可以没有表达式

28、C语言主要是借助______来实现程序模块化。

  A.定义函数  B.定义常量和外部变量

  C.三种基本结构语句  D.丰富的数据类型

29、以下关于switch语句的叙述中正确的是______。

  A.所有case的标号都应当是连续的

  B.每个case语句标号后面可以没有break语句

  C.char型常量不能做case的标号使用

  D.default必须放在全部case的最后

30、若有以下定义:

  chars[100]="string";

  则下述函数调用中,______是错误的。

  A.strlen(strcpy(s,"Hello"))          B.strcat(s,strcpy(s1,"s"));

  C.puts(puts("Tom"))             D.!

strcmp("",s)

31、若有定义语句“inta,b;doublex;”,则下列选项中没有错误的是______。

  A.switch(x%2)

  {case0:

a++;break;

  case1:

b++;break;

  default:

a++;b++;

  }

  B.switch((int)x/2.0)

  {case0:

a++;break;

  case1:

b++;break;

  default:

a++;b++;

  }

  C.switch((int)x%2)

  {case0:

a++;break;

  case1:

b++;break;

  default:

a++;b++;

  }

  D.switch((int)(x)%2)

  {case0.0:

a++;break;

  case1.0:

b++;break;

  default:

a++;b++;

  }

32、若有以下定义和语句  ( )

intu=010,v=Ox10,w=10;

printf("%d,%d%d\n",u,v,w);

则输出结果是

A.8,16,10

B.10,10,10

C.8,8,10

D.8,10,10

33、逻辑模型是面向数据库系统的模型,下面属于逻辑模型的是______。

  A.关系模型  B.谓词模型

  C.物理模型  D.实体—联系模型

34、有以下程序

  #include<stdio.h>

  main()

  {intx,y,z;

   x=y=1;

   z=x++,y++,++y;

   printf("%d,%d,%d\n",x,y,z);

  }

  程序运行后的输出结果是______。

  A.2,3,1  B.2,3,2  C.2,3,3  D.2,2,1

35、以下叙述中错误的是______。

  A.C程序对预处理命令行的处理是在程序执行的过程中进行的

  B.预处理命令行的最后不能以分号表示结束

  C.#defineMAX是合法的宏定义命令行

  D.在程序中凡是以”#”开始的语句行都是预处理命令行

36、C源程序中不能表示的数制是______。

  A.十六进制  B.八进制  C.十进制  D.二进制

37、下列叙述中错误的是______。

  A.算法的时间复杂度与问题规模无关

  B.算法的时间复杂度与计算机系统无关

  C.算法的时间复杂度与空间复杂度没有必然的联系

  D.算法的空间复杂度与算法运行输出结果的数据量无关

38、下列选项中,能正确定义数组的语句是______。

  A.intnum[0..2008];

  B.intnum[];

  C.intN=2008;

  intnum[N];

  D.#defineN2008

  intnum[N];

39、以下数据结构中不属于线性数据结构的是______。

  A.队列  B.线性表  C.二叉树  D.栈

40、对于一个正常运行的C程序,以下叙述中正确的是______。

  A.程序的执行总是从程序的第一个函数开始,在main函数结束

  B.程序的执行总是从main函数开始

  C.程序的执行总是从main函数开始,在程序的最后一个函数中结束

  D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

 

答案:

选择题

1、D

[解析]int,float,double对应的格式控制符分别为%d,%f,%lf,所以答案选择D。

2、B

[解析]C语言程序是由主函数和若干子函数构成的,可以嵌套使用。

主函数调用子函数,子函数在定义时是并列的,子函数可相互调用或被多次调用。

3、B

[解析]sizeof函数是取变量所占的存储空间的字节数,标识a代表常量121;constb=12;,其中数据类型可以缺省,默认为整型;enumc{a1,a2};定义了—个枚举类型enumc,a1,a2为枚举元素,在C编译时,对枚举元素按常量处理,它们的值按定义顺序依次为0,1。

因此它们的字节数均为2,2,2。

4、A

[解析]本题考查文件操作函数fopen()的基础知识。

以“w”方式打开文件,只能写不能读,故选项A正确。

5、A

[解析]长度为n的数组其各个元素的下标应该是从0到n-1,因此,长度为10的数组a,第10个元素为a[9],而不是a[10],故答案为A选项。

6、A  

7、A

[解析]在C语言中只有自动变量和寄存器变量在使用时才占用内存单元。

8、D  

9、B

[解析]当用指数形式表示浮点数据时,E的前后都要有数据,并且E的后面数要为整数。

10、A

[解析]在主函数中,k的初值为0,首先调用函数f(3),返回值为6,k的值变为6,而函数intfun(intc)中的局部静态变量a等于3。

第二次调用函数f(3)时,返回值为7,所以k=6+7=13。

退出循环语句,k再加上全局变量a的值1,其最终的值为14。

11、C

[解析]数组名s1是代表s1数组首地址的地址常量,而不是变量,因为“=”左边不能出现常量, 因此sl="ABCDE"的方法是错误的。

12、C

[解析]C语言规定,在一个函数中调用另一个函数(即被调用函数)需要具备的条件有:

①首先被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数);②如果使用库函数,一般还应该在本文件开头用"#include"命令;③如果使用自定义函数,而且该函数与调用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数作声明。

13、D

[解析]C语言中,字符指针变量可以直接使用字符串赋值,而字符数组不能直接使用字符串或字符数组赋值,选项A、B、C错误,选项D正确。

故本题答案为D选项。

14、A  

15、A

[解析]第一次循环返回12,第二次循环返回12,累加结果为24。

16、A

[解析]本题主要考查结构体的用法:

①结构体变量a与结构体成员a同名,定义合法;②在程序编译的时候结构的定义并不会使系统为该结构分配内存空间,只有在说明结构变量时才分配内存空间;③inta占2个字节,intb[2]占4个字节,共6个;④类型名“structst”不可以通过extern关键字提前引用。

17、A

[解析]S(k+j)展开后为5+2*5+2值为17,T(k+j)展开后5+2*5+2*5+2*5+2值为37,所以答案选择A。

18、C

[解析]本题主要考查联合体的内存使用:

联合体所占用的内存空间为最长的成员所占用的空间,int占2个字节,char占1个字节,float占4个字节,所以arr所占的内存长度等于成员c的长度;arr的地址和它的各成员的地址都是同一地址;不能直接对arr赋值,即不能在定义arr时对它初始化;arr也不可以作为函数参数。

19、D

[解析]124的2进制值为1111100,要输出为248即124*2,则2进制值为11111000,即右移1位,所以选D。

20、C

[解析]关系模型允许3类数据约束,它们是:

  ●实体完整性约束

  该约束要求关系的主键中属性值不能为空值,这是数据库完整性的最基本要求。

  ●参照完整性约束

  该约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组:

即在关系中的外键要么是所关联关系中实际存在的元组,要么就为空值。

  ●用户定义的完整性约束

  用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

21、B  

22、B

[解析]从题目中可知,'\0'、'\t'、'\\'分别为一个字符,而sizeof是求字节个数的函数,其中包括'\0'占的字节;strlen函数是求数组长度的函数,其以'\0'结束,因此strlen的值为5,sizeof的值为20。

23、A

[解析]根据数据结构中各数据元素之间前后关系的复杂程度,可将数据结构分为两大类型:

线性结构与非线性结构。

如果一个非空的数据结构满足下列两个条件:

①有且只有一个根结点;②每个结点最多有一个前驱,也最多有一个后继。

则称该数据结构为线性结构,也叫做线性表。

若不满足上述条件,则称之为非线性结构。

线性表、栈、队列和线性链表都是线性结构,而二叉树

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1