c语言笔试题库.docx

上传人:b****3 文档编号:5487750 上传时间:2022-12-17 格式:DOCX 页数:17 大小:24.93KB
下载 相关 举报
c语言笔试题库.docx_第1页
第1页 / 共17页
c语言笔试题库.docx_第2页
第2页 / 共17页
c语言笔试题库.docx_第3页
第3页 / 共17页
c语言笔试题库.docx_第4页
第4页 / 共17页
c语言笔试题库.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

c语言笔试题库.docx

《c语言笔试题库.docx》由会员分享,可在线阅读,更多相关《c语言笔试题库.docx(17页珍藏版)》请在冰豆网上搜索。

c语言笔试题库.docx

c语言笔试题库

2010上半年等考二级C语言笔试精选试题

(1)

计算机等级考试网更新:

2010-8-2编辑:

fatcatthea

  1.若变量已正确定义并赋值,对库函数错误调用的是

  A)k=scanf("%d%d",&i,&j);

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

  C)getchar(ch);

  D)putchar(ch);

  2.要求定义一个返回值为double类型的名为mysum的函数,其功能为求两个double类型数的和值,正确的定义是:

  A)mysum(doublea,b)

  {return(a+b);}

  B)mysum(doublea,doubleb)

  {returna+b;}

  C)doublemysum(inta,intb);

  {returna+b;}

  D)doublemysum(doublea,doubleb)

  {retrun(a+b);}

  3.以下是对fun函数的正确调用:

  fun(a+b,fun(a+b,(a,b)));

  则fun函数有______个形参。

  4.若有以下函数定义:

  myfun(doublea,intn)

  {……}

  则myfun函数值的类型是

  A)void

  B)double

  C)int

  D)char

  5.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值。

以下选项中错误的程序是

  A)doublefun(inta,intb)

  {……}

  main()

  {┇

  fun(i,k);

  ┇

  }

  B)main()

  {

  printf("%f\n",fun(2,10));

  ┇

  }

  doublefun(inta,intb)

  {……}

  C)doublefun(int,int);

  main()

  {┇

  x=fun(i,k);

  ┇

  }

  doublefun(inta,intb)

  {……}

  D)main()

  {doublefun(inti,inty);

  ┇

  x=fun(i,k);

  ┇

  }

  doublefun(inta,intb)

  {……}

  6.若有以下函数:

  intfun(intx)

  {return(1+x*x);}

  则语句printf("%d\n",fun(fun(fun(fun

(1)))));的输出结果是

  答案:

CD2CB677

 

1.若有以下定义:

floatx;inta,b,c=2;,则正确的switch语句是()

  A)switch(x)

  {case1.0∶printf("*\n");

  case2.0∶printf("**\n");

  }

  B)switch(int(x))

  {case1∶printf("*\n");

  case2∶printf("**\n");

  }

  C)

  switch(a+b)

  {case1∶printf("*\n");

  case1+2∶printf("**\n");

  }

  D)switch(a+b)

  {case1∶printf("*\n");

  casec∶printf("**\n");

  }

  2.执行下面程序片段的结果是()

  intx=123;

  do

  {printf("=\n",x--);}

  while(!

x);

  A)打印出321

  B)打印出123

  C)不打印任何内容

  D)陷入死循环

  3.以下程序的输出结果是()

  #include

  main()

  {inti=0,a=0;

  while(i<20)

  {for(;;){if((i)==0)break;elsei--;}

  i+=11;a+=i;

  }考试通

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

  }

  A)21B)32C)33D)11

  4.下列与表达式“b=(a<0?

-1∶a>0?

1∶0)”的功能等价选项是()

  A)b=0;

  if(a>=0)

  if(a>0)b=1;

  elseb=-1;

  B)if(a>0)b=1;

  elseif(a<0)b=-1;

  elseb=0

  C)if(a)

  if(a<0)b=-1;

  elseif(a>0)b=1;

  elseb=0;

  D)b=-1;

  if(a)

  if(a>0)b=1;

  elseif(a==0)b=0;

  elseb=-1;

  5.若有以下定义:

chara;intb;floatc;doubled;则表达式“a*b+d-c”值的类型为()

  A)floatB)intC)charD)double

  6.以下叙述中正确的是()

  A)在函数中必须要有return语句

  B)在函数中可以有多个return语句,但只执行其中的一个

  C)return语句中必须要有一个表达式

  D)函数值并不总是通过return语句传回调用处

  7.有以下程序

  floatfun(intx,inty)

  {return(x+y);

  }

  main()

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

  printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

  }

  程序运行后的输出结果是()

  A)编译出错B)9C)21D)9.0

  8.若已定义:

  inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;

  其中0≤i≤9,则对a数组元素不正确的引用是()

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

  9.以下叙述中正确的是()

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

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

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

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

  10.若有如下程序:

  main()

  {chara[][9]={"china","Japan","USA","France"};

  printf("\′%s\′\n",a[2]);}

  则程序运行后的输出结果是()

  A)′Japan′B)′USA′C)USAD)′inaJapanUSAFrance′

  答案:

1.C2.B3.B4.B5.D6.B7.B8.D9.B10.B

1.若变量c为char类型,能正确判断出c为小写字母的表达式是()

  A)′a′<=c<=′z′

  B)(c>=′a′)||(c<=′z′)

  C)(′a′=C)

  D)(c>=′a′)&&(c<=′z′)

  2.下面程序的输出结果是()

  main()

  {intx=2,y=0,z;

  x+=3+2;printf("%d",x);

  x*=y=z=4;printf("%d",x);

  }

  A)728B)无法计算C)7,4D)8,4

  3.有如下程序

  main()

  {intx=1,a=0,b=0;

  switch(x){

  case0∶b++;

  case1∶a++;

  case2∶a++;b++;

  }

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

  }

  程序运行后的输出结果是()

  A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2

  4.以下选项中,正确的if-else语句是()

  A)if(x!

=0)

  printf("%d",x)

  else

  printf("%d",-x);

  B)if(x!

=0)

  {x=x+y;printf("%d",x);}

  else

  printf("%d",-x);

  C)if(x!

=0)

  x=x+y;printf("%d",x);

  else

  printf("%d",-x);

  D)if(x!

=0)

  {x=x+y;printf("%d",x)};

  else

  printf("%d",-x);

  5.有以下程序段

  intn=0,p;

  do{scanf("%d",&p);n++;}while(p!

=12345&&n<3);

  此处do-while循环的结束条件是()

  A)p的值不等于12345并且n的值小于3

  B)p的值等于12345并且n的值大于等于3

  C)p的值不等于12345或者n的值小于3

  D)p的值等于12345或者n的值大于等于3

  6.若有如下程序段:

  main()

  {intn=0;

  while(printf("*"))

  {n++;

  if(n<3)break;}}

  则下列描述正确的是()

  A)其中循环控制表达式与0等价

  B)其中循环控制表达式与’0’等价

  C)其中循环控制表达式是不合法的

  D)以上说法都不对

  7.C语言中main函数参数的非法表示形式是()

  A)main(char*argv[],intargc)

  B)main(inta,char**b)

  C)main(inty,char*x[])

  D)main(intargv,char*argc[])

  8.设有如下枚举类型定义:

  enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};

  枚举类型Fortran的值为()

  A)4B)7C)102D)103

  9.阅读下述程序段:

  y=-1;http:

//www.E

  if(x!

=0)

  if(x>0)

  y=1;

  else

  y=0;

  该程序段所描述的数学关系是()

  A)y=-1(x<0)

  0(x=0)

  1(x>0)

  B)y=1(x<0)

  0(x=0)

  -1(x>0)

  C)y=0(x<0)

  -1(x=0)

  1(x>0)

  D)y=-1(x<0)

  1(x=0)

  0(x>0)

  10.设有数组定义:

chararray[]="China";蚴閍rray所占的空间为()

  A)4个字节B)5个字节C)6个字节D)7个字节

  答案:

1.D2.A3.A4.B5.D6.B7.A8.C9.C10.C

 

1.有以下程序:

  main()

  {intx=0xFFFF;printf("%d\n",x--);}

  执行后的输出结果是()

  A)32767B)FFFEC)-1D)-32768

  2.以下程序的输出结果是()

  #include

  #include

  main()

  {charstr[12]={′s′,′t′,′r′,′i′,′n′,′g′};

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

  }

  A)6B)7C)11D)12

  3.若有以下定义:

  chars[20]="programming",*ps=s;

  则不能代表字符o的表达式是()

  A)ps+2B)s[2]C)ps[2]D)ps+=2,*ps

  4.关于语句“for(表达式1;表达式2;表达式3)”,下面说法中错误的是()

  A)for语句中的三个表达式可以同时省略

  B)for语句可以用于循环次数不确定的情况

  C)for语句中表达式2只能是关系表达式或逻辑表达式

  D)for语句中表达式1和表达式3可以是逗号表达式

  5.执行下面程序片段的结果是()

  intx=23;

  do

  {printf("-",x--);}

  while(!

x);

  A)打印出321B)打印出23C)不打印任何内容D)陷入死循环

  6.与y=(x>0?

1∶x<0?

-1∶0);的功能相同的if语句是()

  A)if(x>0)y=1;

  elseif(x<0)y=-1;

  elsey=0;

  B)if(x)

  if(x>0)y=1;

  elseif(x<0)y=-1;

  elsey=0;

  C)y=-1;

  if(x)

  if(x>0)y=1;

  elseif(x==0)y=0;

  elsey=-1;

  D)y=0;

  if(x>=0)

  if(x>0)y=1;

  elsey=-1;

  7.标准库函数fgets(s,n,f)的功能是()

  A)从文件f中读取长度为n的字符串存入指针s所指的内存

  B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存

  C)从文件f中读取n个字符串存入指针s所指的内存

  D)从文件f中读取长度为n-1的字符串存入指针s所指的内存

  8.若有如下函数调用语句:

  sub(a,1,fun(b,c),d+c,(a+d,c*f));

  则在该函数调用语句中含有实参的个数是()

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

  9.若要定义a为3×4的二维数组,正确的定义语句是()

  A)floata(3,4);B)floata[3][4];C)floata(3)(4);D)floata[3,4];

  10.有以下程序

  main()

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

  inti,s=0;

  for(i=0;i<4;i++)s+=aa[i][1];

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

  }

  程序运行后的输出结果是()

  A)11B)19C)13D)20

  答案:

1.C2.A3.A4.C5.B6.A7.B8.A9.B10.B

 

1.以下程序的输出结果是()

  #include

  main()

  {inta,b,d=241;

  a=d/100%9

  b=(-1)&&(+1);

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

  A)6,1B)2,1C)6,0D)2,0

  2.关于if后一对圆括号中的表达式,以下叙述中正确的是()

  A)只能用逻辑表达式B)只能用关系表达式C)既可用逻辑表达式也可用关系表达式D)可用任意表达式

  3.有以下程序

  main()http:

//www.E

  {inta,b;

  for(a=1,b=1;a<=100;a++)

  {if(b>=20)break;

  if(b%3==1)

  {b+=3;

  continue;}

  b-=5;

  }

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

  }

  程序运行后的输出结果是()

  A)7B)8C)9D)10

  4.C语言中()

  A)不能使用do-while语句构成的循环

  B)do-while语句构成的循环必须用break语句才能退出

  C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

  D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环

  5.当a=1、b=3、c=5、d=4时,执行下面一段程序:

  if(a  if(c  else

  if(a  if(b  elsex=3;

  elesx=6;

  elsex=7;

  程序执行后,x的值为()

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

  6.若x、y、z、m均为int型变量,则执行下面语句后m的值是()

  m=1;x=2;y=3;

  m=(m  m=(m  m=(m

  A)1B)2C)3D)4

  7.设有如下的函数

  funct(x)

  floatx;

  {x*=x;printf("\n%d",x);return(x);}

  则函数的类型()

  A)与参数x的类型相同B)voidC)intD)无法确定

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

  A)autoB)registerC)staticD)extern

  9.有以下程序

  intf(intn)

  {if(n==1)return1;

  elsereturnf(n-1)+1;

  }

  main()

  {inti,j=0;

  for(i=1;i<5;i++)j+=f(i);

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

  }

  程序运行后的输出结果是()

  A)15B)10C)6D)3

  10.有以下程序

  intb=2;

  intfunc(int*a)

  {b+=*a;return(b);}

  main()

  {inta=2,res=2;

  res+=func(&a);

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

  }

  程序运行后的输出结果是()

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

  答案:

1.B2.D3.B4.D5.B6.A7.C8.D9.B10.B

1.下面叙述正确的是()

  A)define和auto都不能定义为用户标识符

  B)可以把define和auto定义为用户标识符

  C)可以把define定义为用户标识符,但auto是C语言的关键字

  D)可以把auto定义为用户标识符,但define是C语言的关键字

  2.以下的for循环()

  for(x=0,y=0;(y!

=123)&&(x<4);x++)

  A)是无限循环B)循环次数不定C)执行4次D)执行3次

  3.下述对C语言字符数组的描述中错误的是()

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

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

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

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

  4.设有定义:

inta,*p=&a,**pp=&p;,则与a=100;等价的语句为()

  A)**p=100;B)**pp=100;C)&*p=100;D)*pp=10;

  5.有以下程序

  intx=3;

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

(--x));

  程序运行后的输出结果是()

  A)1B)30C)1-2D)死循环

  6.执行下面程序的正确结果是()

  main()中华考试网

  {floata=1.9;

  switch(a)

  {case0∶printf("0000");

  case1∶printf("1111");

  case2∶printf("3333");

  }

  printf("%f",a);

  }

  A)1.900000B)111133331.900000C)33331.900000D)00001111233331.900000

  7.对下述程序,正确的判断是()

  main()

  {inta,b;

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

  if(a>b)a=b;b=a;

  elsea++;b++;

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

  A)有语法错误不能通过编译B)若输入4,5则输出5,6C)若输入5,4则输出4,5D)若输入5,4则输出5,5

  8.若有如下程序:

  sub(intn)

  {intt;

  if(n==1)returnt=5;

  elset=sub(n-1)+3;

  returnt;}

  main()

  {printf("%d\n",sub(5));}

  则程序运行后的输出结果是()

  A)17B)18C)19D)20

  9.下面各被调用函数首部书写正确的是()

  A)voidsub(floatx;floaty);

  B)voidsub(floatx,y)

  C)voidsub(floatx,floaty)

  D)voidsub(floatx,floaty);

  10.设有如下程序:

  #include"string.h"

  main()

  {staticchars1[20],s2[20];

  scanf("%s",s1);scanf("%s",s2);

  if(strcmp(s1,s2))printf("@");

  elseprintf("$");

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

  如果从键盘上输入name<回车>name1<回车>,则程序运行后的输出结果是()

  A)$8B)@10C)$9D)@9

  答案:

1.C2.C3.C4.B5.C6.B7.A8.A9.C10.D

 

1.以下程序运行后,输出结果是()

  #include

  ss(char*s)

  {char*p=s;

  while(*p)p++;

  return(p-s);

  }

  main()

  {char*a="abded";

  inti;

  i=ss(a);

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

  }

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

  2.若有如下程序:

  intsub()

  {staticintn=1;

  intx=1;

  x*=n;n++;

  returnx;}

  main()

  {intn,t=1;

  for(n=1;n<6;n++)t*=sub();

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

  则程序运行后的输出结果是()

  A)15B)120C)34560D)-30976

  3.在C语言中,函数的隐含存储类别是()

  A)staticB)autoC)externD)register

  4.有以下程序:

  intf1(doublea)

  {returna*a;}

  intf2(doublex,doubley)

  {doublea,b;

  a=f1(x);

  b=f1(y);

  

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

当前位置:首页 > 解决方案 > 学习计划

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

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