二级C笔试试题及答案Word格式.docx

上传人:b****6 文档编号:19180276 上传时间:2023-01-04 格式:DOCX 页数:13 大小:22.48KB
下载 相关 举报
二级C笔试试题及答案Word格式.docx_第1页
第1页 / 共13页
二级C笔试试题及答案Word格式.docx_第2页
第2页 / 共13页
二级C笔试试题及答案Word格式.docx_第3页
第3页 / 共13页
二级C笔试试题及答案Word格式.docx_第4页
第4页 / 共13页
二级C笔试试题及答案Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

二级C笔试试题及答案Word格式.docx

《二级C笔试试题及答案Word格式.docx》由会员分享,可在线阅读,更多相关《二级C笔试试题及答案Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

二级C笔试试题及答案Word格式.docx

  D)C语言中既没有逻辑类型也没有集合类型

(15)下列关于C语言用户标识符的叙述中正确的是

  A)用户标识符中可以出现在下划线和中划线(减号)

  B)用户标识符中不可以出现中划线,但可以出现下划线

  C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头

  D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头

(16)若有以下程序段(n所赋的是八进制数) 

  intm=32767,n=032767

  printf("

%d,%o/n"

m,n);

  执行后输出结果是

  A)32767,32767B)32767,032767

  C)32767,77777D)32767,077777

(17)下列关于单目运算符++、--的叙述中正确的是

  A)它们的运算对象可以是任何变量和常量

 B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量

  C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量

  D)它们的运算对象可以是char型变量、int型变量和float型变量

(18)若有以下程序段

  intm=0xabc,n=0xabc;

  m-=n;

%X\n"

m);

  A)0X0B)0x0C)0D)0XABC

(19)有以下程序段

  intm=0,n=0;

charc='

a'

;

  scanf("

%d%c%d"

&

m,&

c,&

n);

%d,%c,%d\n"

m,c,n);

  若从键盘上输入:

10A10<

回车>

,则输出结果是:

  A)10,A,10

  B)10,a,10

  C)10,a,0

  D)10,A,0

(20)有以下程序

  main()

  {inti;

  for(i=0;

i<

3;

i++)

  switch(i)

  {case1:

printf("

%d"

i);

  case2:

  default:

  }

}

执行后输出结果是

A)011122B)012C)012020D)120

(21)有以下程序

main()

{inti=1,j=1,k=2;

if((j++‖k++)&

&

i++)printf("

%d,%d,%d\n"

i,j,k);

A)1,1,2

  B)2,2,1

  C)2,2,2

  D)2,2,3

(22)有以下程序

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

  if(a>

b>

c)

%d\n"

d);

  elseif((c-1>

=d)==1)

d+1);

  else

d+2)

  A)2

  B)3

  C)4

  D)编译时有错,无结果

(23)有以下程序

  {intp[7]={11,13,14,15,16,17,18},i=0,k=0;

  while(i<

7&

p[i]%2){k=k+p[i];

i++;

k);

  A)58B)56C)45D)24

(24)有以下程序

  {inti=0,s=0;

  do{

  if(i%2){i++;

continue;

  i++;

  s+=i;

  }while(i<

7);

s);

  A)16B)12C)28D)21

(25)有以下程序

  {inti=10,j=1;

%d,%d\n"

i--,++j);

  A)9,2B)10,2C)9,1D)10,1

(26)有以下程序

  {chara,b,c,*d;

  a='

\'

b='

\xbc'

 c='

\0xab'

d="

\017"

  print("

%c%c%c\n"

a,b,c,*d);

  编译时出现错误,以下叙述中正确的是

 A)程序中只有a='

语句不正确B)b='

语句不正确

 C)d="

\0127"

语句不正确D)a='

和c='

语句都不正确

(27)有以下程序

  intfl(intx,inty)

  {returnx>

y?

x:

y;

}

  intf2(intx,inty)

y:

x;

  {inta=4,b=3,c=5,d,e,f;

  d=f1(a,b);

d=f1(d,c);

  e=f2(a,b);

e=f2(e,c);

  f=a+b+c-d-e;

d,f,e);

  A)3,4,5

  B)5,3,4

  C)5,4,3

  D)3,5,4

(28)有如下程序

  voidf(intx,inty)

  {intt;

  if(x

  {inta=4,b=3,c=5;

  f(a,b);

f(a,c);

f(b,c);

a,b,c);

  D)4,3,5

(29)若有以下定义和语句

  #include

  inta=4,b=3,*p,*q,*w;

  p=&

a;

q=&

b;

w=q;

q=NULL;

  则以下选项中错误的语句是

 A)*q=0;

  B)w=p;

C)*p=a;

  D)*p=*w;

(30)有以下程序

 int*f(int*x,int*y)

 {if(*x<

*y)

  returnx;

  returny;

  {inta=7,b=8,*p,*q,*r};

 执行后输出结果是

  A)7,8,8B)7,8,7C)8,7,7D)8,7,8

(31)有以下程序

  {char*s[]={"

one"

"

two"

three"

},*p;

  p=s[1];

%c,%s\n"

*(p+1),s[0]);

  A)n,twoB)t,oneC)w,oneD)o,two

(32)有以下程序

  {intx[8]={8,7,6,5,0,0},*s;

  s=x+3

s[2]);

  A)随机值B)0C)5D)6

(33)以下能正确定义数组并正确赋初值的语句是

 A)intN=5,b[N][N];

B)inta[1][2]={{1},{3}};

C)intc[2][]={{1,2},{3,4}};

D)intd[3][2]={{1,2},{34}};

(34)有以下程序

 main()

  {intm[][3]={1,4,7,2,5,8,3,6,9};

  inti,j,k=2;

  {printf("

m[k][i]);

  A)456B)258C)369D)789

(35)以下函数的功能是:

通过键盘输入数据,为数组中的所有元素赋值。

  #defineN10

  voidarrin(intx[N])

  {inti=0;

N)

);

 在下划线处应填入的是

  A)x+iB)&

x[i+1]C)x+(i++)D)&

x[++i]

(36)有以下程序

  {chars[]="

\n123\\"

strlen(s),sizeof(s));

  A)赋初值的字符串有错B)6,7C)5,6D)6,6

(37)阅读以下函数

  fun(char*s1,char*s2)

  while(s1[i]==s2[i]&

s2[i]!

='

\0'

)i++;

  return(s1[i]==&

s2{i}!

=='

);

  此函数的功能是

  A)将s2所指字符串赋给s1

  B)比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0

  C)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

  D)比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0

(38)以下叙述中正确的是

 A)全局变量的作用域一定比局部变量的作用域范围大

 B)静态(static)类别变量的生存期贯穿于整个程序的运行期间

  C)函数的形参都属于全局变量

  D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值

(39)设有如下说明

 typedefstruct

  {intn;

charc;

doublex;

}STD;

  则以下选项中,能正确定义结构体数组并赋初值的语句是

  A)STDtt[2]={{1,'

A'

62},{2,'

B'

75}};

  B)STDtt[2]={1,"

A"

62},2,"

B"

75};

  C)structtt[2]={{1,'

},{2,'

}};

  D)structtt[2]={{1,"

62.5},{2,"

75.0}};

(40)有以下程序

  {union{unsignedintn;

  unsignedcharc;

  }u1;

 ul.c=`A`;

%c\n"

u1.n);

  A)产生语法错B)随机值C)AD)65

(41)有以下程序

  {charstr[]="

xyz"

*ps=str;

  while(*ps)ps++;

  for(ps--;

ps-str>

=0;

ps--)puts(ps);

  

行后的输出结果是

  A)yz

  B)z

  C)z

  D)x

  xyzyzyzxy

  xyzxyz

(42)有以下程序

  {inta[][3]={{1,2,3},{4,5,0}},{*pa}[3],i;

  pa=a;

  if(i<

2)pa[1][i]=pa[1][i]-1;

  elsepa[1][i]=1;

a[0][1]+a[1][1]+a[1][2]);

  A)7B)6C)8D)无确定值

(43)有以下程序

  voidfun(int*a,inti,intj)

J)

  {t=a[i];

a[i]=a[j];

a[j]=t;

  fun(a,++i,--j);

  }  

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

  fun(a,0,5)

6;

a[i]);

  执行后的输出结果是

 A)654321B)432156C)456123D)123456

(44)有以下程序

  main(intarge,char*argv[])

  {intn,i=0;

  while(arv[1][i]!

  {n=fun();

i++;

  printf(%d\n"

n*argc);

 intfun()

  {staticints=0;

  s+=1;

  returns;

  假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行

  exam123<

  则运行结果为

  A)6B)8C)3D)4

(45)以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

  A)main()B)main

  {int*p;

{int*p;

  fun(p);

fun(&

p);

  intfun(int*p)intfun(int**p)

  {ints;

p=&

s;

}{ints;

*p=&

  C)#includeD)#include

  main()main()

  fun(&

fun(p);

  }}

  intfun(int**p)intfun(int*p)

  {*p=(int*)malloc

(2);

}{p=(int*)malloc(sizeo(int));

(46)若要说明一个类型名STP,使得定义语句STPs等价于char*s,以下选项中正确的是

  A)typedefSTPchar*s;

B)typedef*charSTP;

  C)typedefstp*char;

D)typedefchar*STP;

(47)设有如下定义

  structss

  {charname[10];

  intage;

  charsex;

  }std[3],*p=std;

  下面各输入语句中错误的是

  A)scanf("

(*p).age);

B)scanf("

%s"

std.name);

  C)scanf("

%c"

std[0].sex)D)scanf("

(p->

sex));

(48)设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是

  A)10101001B)10101000C)11111101D)01010101

(49)以下叙述中不正确的是

  A)C语言中的文本文件以ASCⅡ码形式存储数据

  B)C语言中对二进制文件的访问速度比文本文件快

  C)C语言中,随机读写方式不适用于文本文件

  D)C语言中,顺序读写方式不适用于二进制文件

(50)以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。

  {FILE*fout;

charch;

  fout=fopen('

abc.txt'

'

w'

  ch=fgetc(stdin);

  while(ch!

#'

  {fputc(ch,fout);

  fclose(fout);

  出错的原因是

A)函数fopen调用形式错误B)输入文件没有关闭

  C)函数fgetc调用形式错误D)文件指针stdin没有定义

二、填空题(每空2分,共20分)

  请将每空的正确答案写在答题卡上【1】-【20】序号的横线上,答在试卷上不得分。

(1)用十六进制绘存储器中的字节地址进行编号,若地址编号从000到FFFF,则该存诸器的容量为【1】KB。

(2)假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。

若使用COPY命令,则完整的命令为【2】。

(3)E-mail地址由用户和域名两部分组成,这两部分的分隔符为【3】。

(4)假设在当前盘当前目录下有一个可执行程序USER.EXE。

现要执行该程序,并要求在执行过程中将显示输出的结果信息存入当前盘当前目录的文件OUT.DAT中,则完整的DOS命令为【4】。

(5)在DOS环境下,表示打印机的设备文件名为【5】。

(6)若有语句

 inti=-19,j=i%4;

j);

  则输出结果是 【6】 。

(7)若有程序

  {inti,j;

i=%d,j=%d"

i,&

j);

i=%d,j=%d\n"

i,j);

  要求给i赋10,给j赋20,则应该从键盘输入 【7】 。

(8)若有以下程序

  {intp,a=5;

  if(p=a!

=0)

p);

p+2);

  执行后输出结果是 【8】 。

(9)若有以下程序

  {inta=4,b=3,c=5,t=0;

  if(a

%d%d%d\n"

执行后输出结果是【9】。

(10)若有以下程序

  {inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};

  inti,j,s=0;

4;

  {for(j=0;

j<

j++)

  {if(a[i][j]<

0)continue;

  if(a[i][j]==0)break;

  s+=a[i][j];

  执行后输出的结果是 【10】 。

(11)若有以下程序

  {chara;

H'

-'

+'

0'

a);

  执行后的输出结果是【11】。

(12)若有以下程序

  intf(intx,inty)

  {return(y-x)*x;

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

  d=f(f(3,4),f(3,5));

  执行后输出的结果是【12】。

(13)函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下

  1

  11

  121

  1331

  14641

  其构成规律是:

  第0列元素和主对角线无素均为1

  其余元素为其左上方和正上方元素之和

  数据的个数每行递增1

  请将程序补充完整。

  #defintN6

  voidYangHui(int*[N][N])

  x[0][0]=1

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

当前位置:首页 > 工程科技 > 能源化工

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

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