国二C语言 模拟考试题.docx

上传人:b****4 文档编号:6072325 上传时间:2023-05-09 格式:DOCX 页数:81 大小:36.60KB
下载 相关 举报
国二C语言 模拟考试题.docx_第1页
第1页 / 共81页
国二C语言 模拟考试题.docx_第2页
第2页 / 共81页
国二C语言 模拟考试题.docx_第3页
第3页 / 共81页
国二C语言 模拟考试题.docx_第4页
第4页 / 共81页
国二C语言 模拟考试题.docx_第5页
第5页 / 共81页
国二C语言 模拟考试题.docx_第6页
第6页 / 共81页
国二C语言 模拟考试题.docx_第7页
第7页 / 共81页
国二C语言 模拟考试题.docx_第8页
第8页 / 共81页
国二C语言 模拟考试题.docx_第9页
第9页 / 共81页
国二C语言 模拟考试题.docx_第10页
第10页 / 共81页
国二C语言 模拟考试题.docx_第11页
第11页 / 共81页
国二C语言 模拟考试题.docx_第12页
第12页 / 共81页
国二C语言 模拟考试题.docx_第13页
第13页 / 共81页
国二C语言 模拟考试题.docx_第14页
第14页 / 共81页
国二C语言 模拟考试题.docx_第15页
第15页 / 共81页
国二C语言 模拟考试题.docx_第16页
第16页 / 共81页
国二C语言 模拟考试题.docx_第17页
第17页 / 共81页
国二C语言 模拟考试题.docx_第18页
第18页 / 共81页
国二C语言 模拟考试题.docx_第19页
第19页 / 共81页
国二C语言 模拟考试题.docx_第20页
第20页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

国二C语言 模拟考试题.docx

《国二C语言 模拟考试题.docx》由会员分享,可在线阅读,更多相关《国二C语言 模拟考试题.docx(81页珍藏版)》请在冰点文库上搜索。

国二C语言 模拟考试题.docx

国二C语言模拟考试题

C语言模拟试题

选择题

(1)

1.若有下列定义:

charc[3],*pc=c;则对c数组元素地址的正确引用是:

A.&c[3]

B.pc[3]

C.pc+2

D.&c

2.执行语句printf(“%d\n”,strlen(“abc\x41\n”));输出结果是:

A.5

B.7

C.3

D.4

3设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为:

structstudent

{

charname[20];

intage;

charsex;

}stu[5],*p;

p=stu;

A.scanf("%s",stu[0].name);

B.scanf("%d",p->age);

C.scanf("%c",&p->sex);

D.scanf("%d",&stu[0].age);

4若有定义:

intb=7;floata=2.5,c=4.7;

则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为:

A.0

B.1

C.2

D.3

5若有定义:

inta[3][4]={{1,2},{0},{4,6,8,10}};则执行此语句后,a[2][1]得到的初值是:

A.4

B.2

C.6

D.8

6若有inta=1,b=4,c=3,d=2;语句,则执行完该语句后,条件表达式a

a:

c

c:

d的值为:

A.1

B.2

C.3

D.4

7putchar()函数可以向终端输出一个:

A.整型变量表达式值

B.实型变量值

C.字符串

D.字符或字符型变量值

8下列各语句中正确定义了数组的是:

A.inta[5],b[2,3];

B.charstr(30);

C.intx[];

D.intx[5]={1,2,3};

9将整型变量a、b中的较大值为变量c赋值,下列语句中正确的是:

A.c==(a>b)?

a:

b;

B.c=(a>b)?

a:

b;

C.c=if(a>b)aelseb;

D.(a

c=a:

c=b;

10若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是:

A.1

B.2

C.2.0

D.2.5

11以下语句或语句组中,能正确进行字符串赋值的是:

A.chars[10];s="right!

";

B.char*sp="right!

";

C.chars[10];*s="right!

"

D.char*sp;*sp="right!

";

12若inta[][4]={1,2,3,4,5,6,7,8,9};则a数组第一维的大小是:

A.1

B.2

C.3

D.无确定值

13若要求以下程序的输出结果是a=5,b=4,则输入数据的形式应该是:

#include“stdio.h”

main()

{inta,b;

scanf("%d,b=%d",&a,&b);

printf("a=%d,b=%d",a,b);}

A.54

B.5,4

C.5b=4

D.5,b=4

14以下运算符中,优先级最高的是:

A.<=

B.&&

C.=

D.++

15以下对C语言函数的描述中,不正确的是:

A.C语言中,函数可以嵌套定义

B.C语言中,函数可以递归调用

C.C语言中,函数可以没有返回值

D.C语言程序由函数组成

16若有以下定义和语句,则不能访问数组元素的表达式是:

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

p=a;

A.*(a+i)

B.a[p-a]

C.p+i

D.*(&a[i])

17C语言中NULL表示:

A.空指针

B.变量未找到

C.字符串的结束符

D.文件的结束符

18以下程序的运行结果是:

#include"stdio.h"

main()

{intm=5;

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

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

A.4

B.5

C.6

D.7

19以下程序的运行结果是:

#include"stdio.h"

main()

{inta[][3]={{1,2,3},{4,5},{6},{0}};

printf("%d,%d,%d\n",a[1][1],a[2][1],a[3][1]);}

A.3,2,1

B.5,0,0

C.4,1,0

D.1,5,0

20下面程序的运行结果是:

#include"stdio.h"

main()

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

p=a+5;

printf("%d,%d\n",*(p+1),*++p+1);}

A.16,15

B.14,16

C.16,18

D.15,14

21以下程序的输出结果是:

#include"stdio.h"

fun2(inta,intb)

{intc;

c=a*b%3;

returnc;}

fun1(inta,intb)

{intc;

a+=a;b+=b;

c=fun2(a,b);

returnc*c;}

main()

{intx=11,y=19;

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

A.3

B.5

C.4

D.6

22以下程序运行后的输出结果是?

#include"stdio.h"

#defineSQR(x)x*x

main()

{inta,k=3;

a=++SQR(k+1);

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

A.7

B.8

C.9

D.10

23执行语句for(i=10;i>0;i--);后,变量i的值为:

A.10

B.0

C.9

D.1

24下列i,j,k均为整型变量,选项中不正确的C语言赋值语句是:

A.i+1=k;

B.i=j=k=1;

C.i=j+=++k;

D.j=i+1==i++;

25设有语句inta[10]={0,l,2,3,4,5,6,7,8,9},*p=a;则不能对a数组元素的正确引用是:

A.a[p-a]

B.*(*(a+5))

C.p[5]

D.*(&a[5])

26已有定义:

chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是:

A.数组a和b的元素个数相同

B.a数组元素少于b数组

C.a数组元素多于b数组

D.上述说法都不对

27以写方式打开二进制文件my.dat的正确写法是:

A.fopen(“my.dat”,”rb”);

B.fopen(“my.dat”,”r”);

C.fopen(“my.dat”,”wb”);

D.fopen(“my.dat”,”w”);

28对于定义

structsa

{intx;floaty;}data,*p=&data;

请从下列候选答案中,选择变量data的x成员的正确引用:

A.(*p).data

B.(*p).x

C.p->data.x

D.p.data.x

29循环语句的循环体中执行continue语句,其作用是:

A.立即终止程序执行

B.继续执行continue语句之后的循环体各语句

C.结束本次循环

D.跳出循环

30定义floata;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用:

A.scanf(“%f”,&a);

B.scanf(“%5.2f”,a);

C.scanf(“%6.2f”,&a);

D.scanf(“%f”,a);

选择题

(2)

1.以下叙述正确的是

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

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

fun(fun(x))

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

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

2以下关于C语言的叙述中正确的是

A.C语言中的注释不可以夹在变量名或关键字的中间

B.C语言中的变量可以在使用之前的任何位置进行定义

C.在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D.C语言的数值常量中夹带空格不影响常量值的正确表示

3以下C语言用户标识符中,不合法的是

A._1

B.AaBc

C.a_b

D.a-b

4若有定义:

doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是

A.a=a++,i++;

B.i=(a+k)<=(i+k);

C.i=a%11;

D.i=!

a;

5有以下程序

  #include

  main(){chara,b,c,d;scanf("%c%c",&a,&b);

  c=getchar();d=getchar();

  printf("%c%c%c%c\n",a,b,c,d);}

  当执行程序时,按下列方式输入数据:

代表回车)

  12

  34

  则输出结果是

A.1234

B.12

C.12

3

D.12

34

6以i关于C语言数据类型使用的叙述中错误的是

A.若要准确无误差的表示自然数,应使用整数类型

B.若要保存带有多位小数的数据,应使用双精度类型

C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型

7若a是数值类型,则逻辑表达式(a==1)||(a!

=1)的值是

A.1

B.0

C.2

D.不知道a的值,不能确定

8以下选项中与if(a==1)a=b;elsea++;语句功能不同的switch语句是

A.switch(a)

  {case:

a=b;break;

  default:

a++;

  }

B.switch(a==1)

  {case0:

a=b;break;

  case1:

a++;

  }

C.switch(a)

  {default:

a++;break;

  case1:

a=b;

  }

D.switch(a==1)

  {case1:

a=b;break;

  case0:

a++;

  }

9有如下嵌套的if语句

  if(a

  if(a

  elsek=c;

  else

  if(b

  elsek=c;

  10以下选项中与上述if语句等价的语句是

A.k=(a<b)?

a:

b;k=(b<c)?

b:

c;

B.k=(a<b)?

((b<c)?

a:

b):

((b>c)?

b:

c);

C.k=(a<b)?

((a<c)?

a:

):

((b<c)?

b:

c)

D.k=(a<b)?

a:

b;k=(a<c)?

a:

c;

11有以下程序

  #include

  main()

  {inti,j,m=1;

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

  {for(j=3;j>0;j--)

  {if(i*j)>3)break;

  m=i*j;

  }

  }

  printf("m=%d\n",m);

  }

  程序运行后的输出结果是

A.m=6

B.m=4

C.m=2

D.m=5

12有以下程序

  #include

  main()

  {inta=l,b=2;

  for(;a<8;a++){b+=a;a+=2;}

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

  }

  程序运行后的输出结果是

A.9,18

B.8,11

C.7,11

D.10,14

13有以下程序,其中k的初值为八进制数

  #include

  main()

  {intk=011;

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

  }

  程序运行后的输出结果是

A.12

B.11

C.10

D.9

 

14以下关于return语句的叙述中正确的是

A.一个自定义函数中必须有一条return语句

B.一个自定义函数中可以根据不同情况设置多条return语句

C.定义成void类型的函数中可以有带返回值的return语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处

15下列语句组中,正确的是

A.char*s;s="Olympic";

B.chars[7];s="Olympic";

C.char*s;s={"Olympic"};

D.chars[7];s={"Olympic"};

16下列选项中,能正确定义数组的语句是

A.intnum[0..2008];

B.intnum[];

C.intN=2008;

intnum[N];

D.#defineN2008

intnum[N];

 

17有以下程序

  #include

  voidfun(char*c,intd)

  {*c=*c+1;d=d+1;

  printf("%c,%c,",*c,d);}

  main()

  {charb='a',a='A';

  fun(&b,a);printf("%e,%e\n",b,a);

  }

程序运行后的输出结果是

A.b,B,b,A

B.b,B,B,A

C.a,B,B,a

D.a,B,a,B

18若有定义int(*Pt)[3];,则下列说法正确的是[D]

A.定义了基类型为int的三个指针变量

B.定义了基类型为int的具有三个元素的指针数组pt

C.定义了一个名为*pt、具有三个元素的整型数组

D.定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组

19设有定义doublea[10],*s=a;,以下能够代表数组元素a[3]的是

A.(*s)[3]

B.*(s+3)

C.*s[3]

D.*s+3

 

20有以下程序

  #include

  main()

  {inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;

  for(i=0;i<5;i++)s=s+a[b[i]];

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

  }

  程序运行后的输出结果是

A.6

B.10

C.11

D.15

 

21有以下程序

  #include

  main()

  {intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

  for(i=0;i<3;i++)

  for(j=i;j<=1;j++)t+=b[i][b[j][i]];

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

  }

  程序运行后的输出结果是

A.1

B.3

C.2

D.5

 

22若有以下定义和语句

  chars1[10]="abcd!

",*s2="\n123\\";

  printf("%d%d\n",strlen(s1),strlen(s2));

  则输出结果是

A.55

B.105

C.107

D.58

 

23有以下程序

  #include

  #defineN8

  voidfun(int*x,inti)

  {*x=*(x+i);}

  main()

  {inta[N]={1,2,3,4,5,6,7,8},i;

  fun(a,2);

  for(i=0;i

  printf("%d",a[i]);

  printf("\n");

  }

  程序运行后的输出结果是

A.1313

B.2234

C.3234

D.1234

 

24有以下程序

#include

intf(intt[],intn);

main()

{inta[4]={1,2,3,4},s;

s=f(a,4);printf("%d\n",s);

}

intf(intt[],intn)

{if(n>0)returnt[n-1]+f(t,n-1);

elsereturn0;

}

程序运行后的输出结果是

A.4

B.10

C.14

D.6

 

25有以下程序

#include

intfun()

{staticintx=1;

x=x*2;returnx;

}

main()

{inti,s=1;

for(i=1;i<=2;i++)s=fun();

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

}

  程序运行后的输出结果是

A.0

B.1

C.4

D.8

 

26有以下程序

  #include

  #defineSUB(a)(a)-(a)

  main()

  {inta=2,b=3,c=5,d;

  d=SUB(a+b)*c;

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

  }

  程序运行后的输出结果是

A.0

B.-12

C.-20

D.10

 

27设有定义:

  structcomplex

  {intreal,unreal;}data1={1,8},data2;

  则以下赋值语句中错误的是

A.data2=data1;

B.data2=(2,6)

C.data2.real=data1.real;

D.data2.real=data1.unreal;

 

28有以下程序

  #include

  #include

  structA

  {inta;charb[10];doublec;};

  voidf(structAt);

  main()

  {structAa={1001,"ZhangDa",1098.0};

  f(a);printf("%d,%s,%6.1f\n",a.a,a.b,a.c);

  }

  voidf(structAt)

  {t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;}

  程序运行后的输出结果是

A.1001,zhangDa,1098.0

B.1002,changRong,1202.0

C.1001,ehangRong,1098.0

D.1002,ZhangDa,1202.0

29有以下定义和语句

  structworkers

  {intnum;charname[20];charc;

  struct

  {intday;intmonth;intyear;}s;

  };

  structworkersw,*pw;

  pw=&w;

  能给w中year成员赋1980的语句是

A.*pw.year=1980;

B.w.year=1980;

C.pw->year=1980;

D.w.s.year=1980;

30有以下程序

  #include

  main()

  {inta=2,b=2,c=2;

  printf("%d\n",a/b&c);

  }

  程序运行后的输出结果是

A.0

B.1

C.2

D.3

31有以下程序

  #include

  main()

  {FILE*fp;charstr[10];

  fp=fopen("myfile.dat","w");

  fputs("abc",fp);fclose(fp);

  fopen("myfile.data","a++");

  fprintf(fp,"%d",28);

  rewind(fp);

  fscanf(fp,"%s",str);puts(str);

  fclose(fp);

  }

  程序运行后的输出结果是

A.abc

B.28c

C.28

D.因类型不一致而出错

选择题(3)

1、以下叙述中正确的是:

A.C程序中的注释只能出现在程序的开始位置和语句的后面

B.C程序书写格式严格,要求一行内只能写一个语句

C.C程序书写格式自由,一个语句可以写在多行上

D.用C语言编写的程序只能放在一个程序文件中

2以下叙述中正确的是:

A.C程序中的注释只能出现在程序的开始位置和语句的后面

B.C程序书写格式严格,要求一行内只能写一个语句

C.C程序书写格式自由,一个语句可以写在多行上

D.用C语言编写的程序只能放在一个程序文件中

3以下选项中不属于字符常量的是:

A.′C′

B."C"

C.′\xCC′

D.′\072′

4设变量已正确定义并赋值,

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

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2