广西区计算机等级二级C历年试题汇总.docx

上传人:b****3 文档编号:3545976 上传时间:2022-11-23 格式:DOCX 页数:18 大小:27.96KB
下载 相关 举报
广西区计算机等级二级C历年试题汇总.docx_第1页
第1页 / 共18页
广西区计算机等级二级C历年试题汇总.docx_第2页
第2页 / 共18页
广西区计算机等级二级C历年试题汇总.docx_第3页
第3页 / 共18页
广西区计算机等级二级C历年试题汇总.docx_第4页
第4页 / 共18页
广西区计算机等级二级C历年试题汇总.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

广西区计算机等级二级C历年试题汇总.docx

《广西区计算机等级二级C历年试题汇总.docx》由会员分享,可在线阅读,更多相关《广西区计算机等级二级C历年试题汇总.docx(18页珍藏版)》请在冰豆网上搜索。

广西区计算机等级二级C历年试题汇总.docx

广西区计算机等级二级C历年试题汇总

广西区计算机等级二级C历年试题汇总

一.选择题

1、c语言规定:

在一个源程序中,main函数的位置A    

A)必须在最开始B)必须在系统调用的库函数的后面

C)可以任意D)必须在最后

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

main()

 {structcmplx{intx;

               inty;

               }cnum[2]={1,3,2,7};

 printf(”%d\n”,cnum[0].y/cnum[0].x *cnum[l].x); }

A)0      B)1      C)3      D)6

3、表达式18/4*2/8值的数据类型为_A____

A)int   B)float   C)double   D)不确定

4、以下不正确的叙述是D    。

A)在c程序中,逗号运算符的优先级最低

B)在C程序中,APH和aph是两个不同的变量

c)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变。

D)当从键盘输入数据时,对于整型变量只能输入整型数值.对于实型变量只能输入实型数值。

5、以下程序的运行结果是______。

#include"stdio.h”

main()

 {structdate

    {intyear,month,day;

     }today;

  printf(“%d\n”,sizeof(structdate)); }

 A)6    B)8    C)10     D)12

6、以下说法正确的是   。

A)输入项可以为一实型常量,如scanf("%f",3.5);

B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d”);

C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf (“%4.2f",&f);

D)当输入数据时,必须指明变量的地址,如scanf(“%f",&f);

7、己知各变量的类型说明如下:

int i=8,k,a,b;

unsignedlong   w=55;

double   x=1.42,y=5.2;

则以下符合c语言语法的表达式是_____。

A)a+=a-=(b=4)*(a=3)   B)a=a*3=2

C)x%(-3)             D)y=float(i)

8、已知ch是字符型变量,下面不正确的赋值语句是______。

A)ch='a+b';   B) ch='\0';  C)ch='7'+'9';   D)ch=5+9

9、有输入语句:

scanf("a=%d,b=%d,c=%d",&a,&b,&c),为使变量a的值为1.b为3,c为2,从键盘输入数据的正确形式应当是______。

A)132<回车>B)1,3,2<回车>

C)a=lb=3c=2<回车>D)a=1,b=3,c=2<回车>

10、逻辑运算符两侧运算对象的数据类型_____。

A)只能是0或lB)只能是0或非0正数

c)只能是整型或字符型数据D)可以是任何类型的数据

11、一个c程序的执行是从      。

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结柬

C)本程序的main函数开始,到本程序文件的最后一个函数结束

D)本程序文件的第一个函数开始,到本程序main函数结束

12、以下程序的输出结果是________。

main()

{inta=100,x=l0,y=20,ok1=5,ok2=0;

 if(x

   if(y!

=10)

if(!

ok1)

        a=1;

 else

     if(ok2)  a=10;

a=-1;

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

}

A)1   B)0     C)-1    D)值不确定

13、以下正确的叙述是_____。

A)C语言允许main函数带形参,且形参个数和形参名均可由用户指定

B)C语言允许main函数带形参,形参名只能是argc和argv

C)当main函数带有形参时,传给形参的值只能从命令行中得到

D)若有说明:

main(intargc,char *argv),则形参argc的值必须大于1

14、阅读以下程序:

若假设第一个printf语句输出的是ffca,则第二个printf语句的输出是______。

main()

 {inta[l0]={2,4,6,8,10,12,14,16,18,20},*p;

 p=a;

 printf(“%x\n”,p),

 printf(“%x\n”,p+9),

A)ffdd       B)ffdc       C)ffde        D)ffcd

15、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其正确的解释是_____。

main()

 {int*p,*q,a,b;

  p=&a;

  printf("inputa:

");

  scanf("%d",*p);

……}

A)*p表示的是指针变量p的地址

B)*p表示的是变量a的值,而不是变量a的地址

c)*p表示的是指针变量p的值

D)*p只能用来说明p是—个指针变量

16、设有程序段intk=10;

while(k=0) k=k-1;

则下面描述中正确的是_______。

A)while循环执行10次          B)循环是无限循环

C)循环体语句一次也不执行      D)循环体语句执行

17、为了避免在嵌套的条件语句if—else中产生二义性,c语言规定:

else总是与_______配对。

A)缩排位置相同的if   B)其之前最近的if

c)其之后最近的if     D)同一行上的if

18、以下程序的运行结果是_____。

main()

{intm=5;

 if(m++>5)printf("%d\n",m);

 else    printf("%d\n",m--);}

A)4        B)5     C)6     D)7

19、执行以下语句后b的值为_____。

inta=5,b=6,w=1,x=2,y=3,z=4;

(a=w>x)&&(b=y>z);

 A)5   B)0   C)6   D)1

20、若有定义:

int a[5];则a数组中首元素的地址可以表示为_____。

A)&a   B)a+l   C)a   D)&a[1]

21、以下程序段_____。

x=-1;

do

 {x=x*x;}

 while(!

x);         

A)是死循环

B)循环执行二次

C)循环执行一次     

D)有语法错误

22、若i为整型变量,则循环执行次数是_____。

for(i=2;i==0;) printf("%d",i--);

A)无限次   B)0次   C)1次   D)2次

23、以下有关宏替换的叙述不正确的是______。

A)宏替换不占用运行时间   B)宏名无类型

C)宏替换只是字符替换     D)宏名必须用大写字母表示

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

#include

main()

 {int y=10;

  do{y--;}while(--y);

  printf("%d\n",y--); }

A)-1    B)1    C)8    D)0

25、下列四组选项中,均不含c语言关键字的选项是______。

A)define   B)getc   C)include   D)while

 IF         char     scanf       go

 type       printf   case        pow

26、下面程序的运行结果是____。

#include<stdio.h>

voiddelch(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*item="a34bc";

 delch(item);

 printf("\n%s",item); }

A)abc     B)34     C)a34      D)a34bc

27、下列程序段不是死循环的是____。

A)inti=100;B)for(;;);

 while

(1)

 {i=i%100+1;

   if(i>l00)break;  }

C)intk=0;D)ints=365;

 do{++k;} while(k>=0); while(s);--s;

28、根据定义和数据的插入方式,输入语句的正确形式为_____。

已有定义:

floatf1,f2;

数据的输入方式:

4.52

          3.5

A)scanf("%f,%f",&f1,&f2);

B)scanf("%f%f",&f1,&f2);

C)scanf("%3.2f%2.1f",&f1,&f2);

D)scanf("%3.2f,%2.1f",&f1,&f2);

29、在C语言中,引用数组元素时,其数组下标的数据类型允许是_____。

A)整型常量              B)整型表达式

C)整型常量或整型表达式   D)任何类型的表达式

30、下面程序的运行结果是

#include

main()

 {int num=0;

  while(num<=2)

   {num++;

   printf("%d\n",num);}  }

A)1    B)1    C)1     D)1

    2      2       2

            3       3

                     4

31、若有如下语句:

intx=3;

do{printf("%d\n",x-=2);}while(!

(--x));则上面程序段_____。

A)输出的是1 B)输出的是l和-2 C)输出的是3和0  D)是死循环

32、以下能对一维数组a进行正确初始化的语句是______。

A)inta[l0]=(0,0,0,0,0);   B) inta[l0]={};

C)inta[]={0};             D) inta[10]={10*1

33、以下不正确的定义语句是_____。

A)doublex[5]={2.0,4.0,6.0,8.0,10.0};B)int y[5]={0,1,3,5,7,9};

C)char c1[]=('1','2','3'',4','5');D)char c2[]={'\x10','\xa','\x8'};

34、下面程序______(每行程序前面的数字表示行号)

1 main()

2 {

3  floata[0]={0.0};

4  inti;

5  for(i=0;i<3;i++)scanf("%d",&a[i]);

6  for(i=1;i<10;i++)a[0]=a[0]+a[i];

7  printf("%f\n",a[0]; }

A)没有错误      

B)第3行有错误

C)第5行有错误   

D)第7行有错误

35、下面程序段的运行结果是____。

charc[5]={'a','b','\0','c','\0'};

printf("%s",c);}

A)'a''b'   B)ab   C)abc   D)abc

36、下面四个选项中,均是合法的用户标识符的选项是______。

A)A    B)float    C)b_a    D)_123

P_O   1ao        goto     temp

do      _A       int      INT

37、以下正确的函数形式是____。

A)doublefun(intx,inty)

   {z=x+y,returnz;)

B)fun(intx,y)

   {intz;

    returnz;}

C)fun(x,y)

     {intx,y; doublez;}

       z=x+y;returnz;}

D)doublefun(intx,inty)

     {doublez;

       z=x+y;returnz;}

38、若运行以下程序时,从键盘输入3.6  2.4(表示回车),则下面程序的运行结果是_______。

#include<math.h>

#include<stdio.h>

main()

 {floatx,y,z;

 scanf("%f%f",&x,&y);

 z=x/y;

 while

(1)

  {if(fabs(z)>1.0){x=y;y=z;z=x/y};

   elsebreak;   }

 printf('%f\n",y); }

A)1.500000      B)1.600000   C)2.000000    D)2.400000

39、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为____。

(假设a[0][0]位于数组的第一个位置上。

A)i*m+j   B)j*m+i   C)i*m+j-1   D)i*m+j+1

40、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是

if(x>y)

z=x;x=y;y=z;

A)x=10,y=20,z=30B)x=20,y=30,z=30

C)x=20,y=30,z=10D)x=20,y=30,z=20

41、以下叙述不正确的是     。

A)一个c源程序可由一个或多个函数组成

B)一个c源程序必须包含一个main函数

C)c程序的基本组成单位是函数

D)在c程序中,注释说明只能位于一条语句的后面

42、若有定义:

int *p[4];则标识符p_____。

A)是一个指向整型变量的指针B)是一个指针数组名

C)是一个指针,它指向一个含有四个整型元素的一维数组D)说明不合法

43、以下关于运算符优先顺序的描述中正确的是——。

A)关系运算符<算术运算符<赋值运算符<逻辑与运算符

B)逻辑与运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑与运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑与运算符

44、若有说明:

inta[3][4]=(0);则下面正确的叙述是_____。

A)只有元素a[0][0]可得到初值0

B)此说明语句不正确

C)数组a中各元素都可得到初值,但其值不一定为0

D)数组a中每个元素均可得到初值0

45、下述对C语言字符数组的描述中错误的是_____。

A)字符数组可以存放字符串

B)字符数组的字符串可以整体输入、输出

C)可以在赋值语句中通过赋值运算符"="字符数组整体赋值

D)不可以用关系运算符对字符数组中的字符串进行比较

46、判断字符串a和b是否相等,应当使用_____。

A)if(a==b)          B)if(a=b)

C)if(strcpy(a,b))      D)if(strcmp(a,b))

47、若有以下说明和语句:

struct  student

 {int age;

 int num;

 }std,*p;

 p=&std;

则以下对结构体变量std中成员age的引用方式不正确的是_______。

 A)std.age       B) p->age C)(*p).age      D) *p.age

48、以下正确的说法是______。

A)定义函数时,形参的类型说明可以放在函数体内

B)return后边的值不能为表达式

C)如果函数值的类型与返回值类型不一致,以函数值类型为准

D)如果形参与实参的类型不一致,以实参类型为准

49、以下不正确的说法为_____。

A)在不同函数中可以使用相同名字的变量

B)形式参数是局部变量

C)在函数内定义的变量只在本函数范围内有效

D)在函数内的复合语句中定义的变量在本函数范围内有效

50、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为   

A)char

C)char

51、以下程序的正确运行结果是______。

main()

 {inta=2;

  for(i=0;i<3;i++)printf("%4d",f(a));  }

 f(inta)

   {intb=0;staticintc=3;

    b++;c++;

    return(a+b+c); }A) 7 7  7B) 7 l0 13C) 7 9 11D)7 8 9

52、以下正确的描述是_______。

A)c语言的预处理功能是指完成宏替换和包含文件的调用

B)预处理指令只能位于c源程序文件的首部

C)凡是C源程序中行首以"#"标识的控制行都是预处理指令

D)C语言的编译预处理就是对源程序进行初步的语法检查

53、请读程序:

#defineADD(x) x+x

main()

 {intm=1,n=2,k=3;

  intsum=ADD(m+n)*k;

  printf("sum=%d",sum);

上面程序的运行结果是_____。

A)sum=9   B)sum=10    C)sum=12     D)sum=18

54、若有语句int*point,a=4;和point=&a; 下面均代表地址的一组选项是_______。

 A)a,point,*&a         B)&*a,&a,*point

 C)*&point,*point,&a   D)&a,&*point,point

55、以下错误的描述是_____。

函数调用可以 A)出现在执行语句中

             B)出现在一个表达式中

             C)做为一个函数的实参

D)做为一个函数的形参

56、已有定义inta=-2;和输出语句:

printf(“%8Lx”,a);以下正确的叙述是      。

A)整型变量的输出格式符只有%d一种

B)%x是格式符的一种,它可以适用于任何一种类型的数据

C)%x是格式符的一种,其变量的值按十六进制输出,但%8Lx是错误的

D)%8Lx不是错误的格式符,其中数字8规定了输出字段的宽度

57、若用数组名作为函数调用的实参,传递给形参的是____。

A)数组的首地址B)数组第一个元素的值

C)数组中全部元素的值D)数组元素的个数

58、当运行以下程序时,从键盘输入Happy!

(表示回车),则下面程序的运行结果是_______。

#include

#include

main()

 {charstr[10],*p=str;

  gets(p);

  printf(“%d\n”,stre(p));  }

stre(char str[])

 {intnum=0;

  while(*(str+num)!

='\0')   num++;

  return(num); }

A)7       B)6      C)5      D)10

59、下面有关for循环的正确描述是_____。

A)for循环只能用于循环次数已经确定的情况

B)for循环是先执行循环体语句,后判断表达式

c)在for循环中,不能用break语句跳出循环体

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

60、设有如下定义:

structsk

{intn;

 floatxl;

}data,*p;

若要使p指向data中的n域,正确的赋值语句是_____。

 A)p=&data.n; B)*p=data.n;

 C)p=(structsk*)&data.n; D)p=(structsk*)data.n;

61、若有以下定义和语句,则对a数组元素的正确引用为______。

inta[2][3],(*p)[3];

p=a,

A)(p+1)[0] B)*(*(p+2)+1) C)*(p[l]+1)  D)p[1]+2

62、若有以下说明和语句:

char*languge[]={"F0RTRAN“,"BASIC”,"PASCAL","JAVA”,"C”};

char  **q;   q=language+2';

则语句printf(”%s\n“,*q);______。

A)输出的是language[2]元素的地址

B)输出的是字符串PASCAL

C)输出的是1anguage[2]元素的值,它是字符串PASCAL的首地址

D)格式说明不正确,无法得到确定的输出

63、已有定义intx;floaty;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345678<回车>,则y的值为_____。

 A)无定值 B)45.000000 C)678.000000   D)123.000000

64、下面程序的运行结果是_____。

#include

main()

 {staticchara[]="Language”,b[]="programe";

  char*p1,*p2;   intk;

  p1=a; p2=b;

  for(k=0;k<=7;k++)

    if(*(p1+k)==*(p2+k))  printf("%c",*(p1+k));  }

A)gae   B)ga   C)Language   D)有语法错

65、表达式 0xl3&0xl7的值是____。

A)0x17   B)0xl3   C)0xf8   D)0xec

66、若已定义inta=5;下面对

(1),

(2)两个语句的正确解释是_____。

(1)int*p=&a;   

(2)*p=a;

A)语句

(1)和

(2)中的,p含义相同,都表示给指针变量p赋值

B)

(1)和

(2)语句的执行结果,都是把变量a的地址值献给指针变量p

C)

(1)在对p进行说明的同时进行初始化,使p指向a(

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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