c试题4.docx

上传人:b****1 文档编号:1902729 上传时间:2023-05-02 格式:DOCX 页数:17 大小:31.30KB
下载 相关 举报
c试题4.docx_第1页
第1页 / 共17页
c试题4.docx_第2页
第2页 / 共17页
c试题4.docx_第3页
第3页 / 共17页
c试题4.docx_第4页
第4页 / 共17页
c试题4.docx_第5页
第5页 / 共17页
c试题4.docx_第6页
第6页 / 共17页
c试题4.docx_第7页
第7页 / 共17页
c试题4.docx_第8页
第8页 / 共17页
c试题4.docx_第9页
第9页 / 共17页
c试题4.docx_第10页
第10页 / 共17页
c试题4.docx_第11页
第11页 / 共17页
c试题4.docx_第12页
第12页 / 共17页
c试题4.docx_第13页
第13页 / 共17页
c试题4.docx_第14页
第14页 / 共17页
c试题4.docx_第15页
第15页 / 共17页
c试题4.docx_第16页
第16页 / 共17页
c试题4.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c试题4.docx

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

c试题4.docx

c试题4

C程序设计—试题4

一:

单项选择题(每题1分,共40分)

1、以下叙述不正确的是_______。

A、一个C源程序可由一个或多个函数组成

B、一个C源程序必须包含一个MAIN函数

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

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

2、若x,i,j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后x的值为________。

A、4B、16C、32D、52

3、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符______。

A、必须为字母B、必须为下划线

C、必须为字母和下划线D、可以为三种中任一种字符

4、下面正确的字符常量是________。

A、“C”B:

‘\\”C、‘W’D、‘’

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

已有定义、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);

6、设x,y均为float型变量,则以下不合法的赋值语句是________。

A、++x;B、y=(x%2)/10;C、x*=y+8;D、x=y=0;

7、以下不正确的if语句形式是________。

A、if(x>y&&x!

=y);B、if(x==y)x+=y;

C、if(x!

=y)scanf(“%d”,&x)elsescanf(“%d”,&y);

D、if(x

8、假定有以下变量定义:

intk=7,x=12;则能使值为3的表达式是_________。

  A、x%=(k%=5) B、x%=(k-k%5) C、x%=k-k%5D、(x%=k)-(k%=5)

9、设x和y均为int型变量,则以下语句:

x+=y;y=x-y;x-=y;的功能是________。

  A、把x和y按从大到小排列 B、把x和y按从小到大排列 

C、无确定结果 D)交换x和y中的值

10、以下程序输出结果是_______。

main()

  {intm=5;

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

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

  }

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

  

11、下面程序段的运行结果是________。

a=1;b=2;c=2;

while(a

printf(“%d,%d,%d”,a,b,c);

A、1,2,0B、2,1,0C、1,2,1D、2,1,1

12、以下程序段_______。

x=-1;

do

{x=x*x;}

while(!

x);

A、是死循环B、循环执行二次C、循环执行一次D、有语法错误

13、执行以下程序后,输出的结果是________。

 main()

  {inty=10;

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

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

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

 14、若i为整型变量,则以下循环执行次数是_________。

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

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

15、有说明inta[10];则对a数组元素的正确引用是_______。

A、a[10]B、a[3.5]C、a(5)D、a[10-10]

16、运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为_________。

#include

  main()

{intv1=0,v2=0;

  charch;

  while((ch=getchar())!

='#')

  switch(ch)

  {case'a':

  case'h':

  default:

v1++;

  case'0':

v2++;

  }

printf("%d,%d\n",v1,v2);}

  A、2,0B、5,0C、5,5D、2,5

 17、对两个数组a和b进行如下初始化

chara[]=”abcdef”;

charb[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’};

则以下叙述正确的是_________。

A、a与b数组完全相同B、a与b长度相同

C、a和b中都存放字符串D、a数组比b数组长度长

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

(假设a[0][0]位于数组的第1位置上,则a[0][1]位于数组的第2位。

A、i*m+jB、j*m+iC、i*m+j-1D、i*m+j+1

19、以下正确的函数定义形式是________。

A、doublefum(intx,inty)B、doublefum(intx;inty)

C、doublefum(intx,inty);D、doublefum(intx,y);

20、以下程序的功能是计算函数f(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。

#include

h>

#include

h>

floatf(float,float);

main()

{floatx,y,z,sum;

scanf(“%f%f%f”,&x,&y,&z);

sum=f

(1)+f

(2);

printf(“sum=”%f\n”,sum);

}

floatf(floata,floatb)

{floatvalue;

value=a/b;

return(value);

}

(1)A、x-y,x+yB、x+y,x-yC、z+y,z-yD、z-y,z+y

(2)A、x-y,x+yB、x+y,x-yC、z+y,z-yD、z-y,z+y

21、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是______。

A、int型B、float型C、long型D、double型

22、若有宏定义如下、

#defineX5

#defineYX+1

#defineZY*X/2

则执行以下printf语句后,输出结果是_________。

inta;a=Y;

printf(“%d\n”,Z);

printf(“%d\n”,--a);

A、7B、12C、12D、7

6655

23、有如下语句inta=10,b=20,*p1,*p2;p1=&a;p2=&b;如图1所示;若要实现图2所示的存储结构,可选用的赋值语句为_________。

b

P2

P1

P2

P1

20

10

b

a

图1图2

A、*p1=*p2B、p1=p2C、p1=*p2D、*p1=p2

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

    main()

 {charch[7]={"65ab21"};

  inti,s=0

 for(i=0;ch[i]>='0'&&ch[i]<'9';i+=2)s=10*s+ch[i]-'0';

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

A、12ba56B、6521C、6D、62

25、以下程序运行后输出结果是________。

 #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

26、以下程序运行后,输出结果是_________。

    #include

  #definePT5.5

  #defineS(x)PT*x*x

  main()

{inta=1,b=2;printf("%4.1f\n",S(a+b))}

A、49.5B、9.5C、22.0D、45.0

27、以下程序运行后,输出结果是_________。

 main()

  {staticchara[]="ABCDEFGH",b[]="abCDefGh";

  charp1,p2;

  intk;

  p1=a;p2=b;

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

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

  printf("\n");

  }

A、ABCDEFGB、CDGC、abcdefghD、abCDefGh

28、以下程序运行后,输出结果是_________。

intd=1;

fun(intp)

  {intd=5;d+=p++;printf("%d",d);}

main()

  {inta=3;fun(a);d+=a++;printf("%d\n",d;)

A、84B、99C、95D、44

29、设有如下定义:

inta=1,b=2,c=3,d=4,m=2,n=2;

  则执行表达式:

(m=a>b)&&(n=c>d)后,n的值为_______。

A、1B、2C、3D、0

30、以下程序的输出结果是_______。

main()

{inti,j,x=0;

  for(i=0,i<2;i++)

  {x++;

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

  {if(j%2)continue;

  x++;}

  x++;}

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

A、x=4B、x=6C、x=8D、x=12

31、以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为_________。

  #include

  #include

  func(charstr[])

  {intnum=0;

  while(*(str+num)!

='\0')num++;

  return(num);}

  main()

  {charstr[10],*p=str;

  gets(p);printf("%d\n",func(p));}

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

 32、假定a和b为int型变量,则执行以下语句后b的值为_________。

  a=1;b=10;

  do

  {b-=a;a++;}

  while(b--<0);

  A、9B、-2C、-1D、8

  33、设有以下宏定义:

  #defineN3

  #defineY(n)((N+1)*n)

  则执行语句:

z=2*(N+Y(5+1));后,z的值为________。

  A、出错B、42C、48D、54

 34、设有如下定义:

  intarr[]={6,7,8,9,10};

  int*ptr;

  则下列程序段的输出结果为_________。

  ptr=arr;

  *(ptr+2)+=2;

  printf("%d,%d\n",*ptr,*(ptr+2));

  A、8,10B、6,8C、7,9D、6,10

 35、以下程序的输出结果是_________。

  main()

  {

inti,k,a[10],p[3]:

  k=5;

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

  for(i=0;i<3;i++)p[i]=a[i*(i+1)];

  for(i=0;i<3;i++)k+=p[i]*2;

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

}

 A、20B、21C、22D、23

36、执行以下程序段后,m的值为_________。

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

  intm,*p;

  p=&a[0][0];

  m=(*p)*(*(p+2))*(*(p+4));

A、15B、14C、13D、12

37、有以下程序

structstu

 {intnum;charname[10];intage;};

voidfun(structstu*p)

 {printf("%s\n",(*p).name);}

main()

 {structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}};

  fun(students+2);}

  输出结果是_________。

A、ZhangB、ZhaoC、WangD、18

38、以下程序输出结果是_______。

main()

{chara[]="programming",b[]="language";

char*p1,*p2;

inti;

p1=a;p2=b;

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

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

}

A、gmB、rgC、gaD、or

39、若有以下定义:

chara;intb;floatc;doubled;

  则表达式a*b+d-c值的类型为________。

  A、floatB、intC、charD、double

40、fgetc()函数的作用是从指定文件读入一个字符,该文件的打开方式必须是___。

A、只写B:

追加C:

读或读写D:

答案B和C都正确

二:

填空题(20%)

1、在一个C程序中至少应包含________函数。

2、若有定义:

charc=’\010’;则变量c中包含的字符个数是_________。

3、若有代数式

,则C语言表达式是_________。

4、在C语言中,表示逻辑“假”值用____________。

5、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式

______________________________________________。

6、若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是

________________。

  chara[10],b;

scanf("a=%sb=%c",a,&b);

7、下面程序的输出结果是______________。

  main()

  {charb[]="ABCD";*cHP;

  for(cHP=b;*cHP;cHP+=2)printf("%s",cHP);

  printf("\n");

}

8、下面程序的输出结果是__________。

  #defineMAX3

  inta[MAX];

  main()

  {fun1();

fun2(a);

printf("\n");

}

  fun1()

  {intk,t=0;

  for(k=0;k

  }

  fun2(intb[])

 {intk;

  for(k=0;k

9、以下函数的功能是:

把两个整数指针所指的存储单元中的内容进行交换。

请填空。

  exchange(int*x,int*y)

  {intt;

  t=*y;

y=________;

*x=________;

  }

10、以下程序实现:

输入圆半径r和运算标志m,按照运算标志进行指定运算。

请在____内填入

正确内容。

运算规则如下:

标志运算

a面积

b周长

c二者均计算

#definepi3.14159

main()

{

charm;

floatr,c,a;

printf(“inputmarka、corb&&r\n”);

scanf(“%c%f,&m,&r);

if(____________)

{

a=pi*r*r;

printf(“areais%f”,a);

}

if(______________)

{

c=2*pi*r;

printf(“circleis%f”,c);

}

if(____________)

{

a=pi*r*r;

c=2*pi*r;

printf(“area&&circleare%f%f”,a,c);

}

}

三、判断题(10%)

1、一个C程序的执行是从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。

()

2、putchar函数是向终端输出一各字符串。

()

3、在switch语句中,每一个case的常量表达式的值必须不同。

()

4、continue语句只结束本次循环,而不是终止整个循环的执行。

()

5、函数的返回值是通过函数中的return语句获得的。

()

6、函数调用结束后,实参的存储单元被释放。

()

7、对于格式输入函数scanf,只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);()

8、判断char型变量cl是否为小写字母的正确表达式为(cl>=’a’)||(cl<=’z’)。

()

9、循环语句中表示循环条件的表达式必须是逻辑表达式。

()

10、任何未经赋值的指针变量均不能使用。

()

四、改错题(10%,每小题2分)

以下程序各有一处出错,试指出并更正。

1、设

if(a=3)

a++;

2、设

chara;

a=’xy’;

3、设

if(x>0)

{x++,y--;};

4、设

p=&n;

scanf(“%d”,*p);

5、设

voidadd(floata,floatb)

{floatc;

c=a+b;

returnc;

}

1、main()

{inti;

for(i=1;i<=5;i++)printf(“*”);

}

五、画出程序流程图(10%)

2a);}

else{printf(“不是3的倍数,重新输入:

”);

scanf(“%d”,&a);}

}、main()

{inta,b=0;

scanf(“%d”,&a);

while(a<=100)

{if(a%3==0){b++;scanf(“%d”,&

printf(“1—100之间3的倍数的个数为:

”,b);

}

 

六、程序设计(10%)

1、从键盘输入一个大写字母,要求改写小写字母输出。

2、输入一行字符,分别统计出英文字母,空格,数字和其它字符的个数。

 

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

当前位置:首页 > 自然科学 > 物理

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

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