C语言试题 8.docx

上传人:b****4 文档编号:26859343 上传时间:2023-06-23 格式:DOCX 页数:35 大小:24.21KB
下载 相关 举报
C语言试题 8.docx_第1页
第1页 / 共35页
C语言试题 8.docx_第2页
第2页 / 共35页
C语言试题 8.docx_第3页
第3页 / 共35页
C语言试题 8.docx_第4页
第4页 / 共35页
C语言试题 8.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

C语言试题 8.docx

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

C语言试题 8.docx

C语言试题8

本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。

不得增行与减行,改正后使程序运行正确存盘即可。

改错题的源文件分为:

modi1.c,

第1题分值为:

10分,

下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。

high由主函数传给fun()函数。

若high的值为100,则函数的值为1060。

请改正程序中的错误,使它能得到正确结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include

#include

#include

intfun(inthigh)

{

intsum=0,n=0,j,yes;

while(high>=2)

{

yes=1;

for(j=2;j<=high/2;j++)

/**********************found***********************/

ifhigh%j==0

{

yes=0;

break;

}

/**********************found***********************/

if(yes==0)

{

sum+=high;

n++;

}

high--;

}

returnsum;

}

main()

{

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

}

请编写一个函数intfun(intn),求s=1+2+...+n,n通过键盘输入,大小n不超过1000,如输入100,输出结果应为5050,函数的返回值为所求和。

注意:

部分源程序已给出。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

此题的源文件在考生目录下,文件名为:

prog1.c

#include

#include

intfun(intn)

{

}

main()

{

FILE*wf;

intn,i,k=0;

ints,bb[10];

printf("请输入n:

\n");

scanf("%d",&n);

s=fun(n);

printf("和为:

%d",s);

printf("\n");

/******************************/

wf=fopen("out.dat","w");

for(i=101;i<=110;i++)

bb[k++]=fun(i);

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

fprintf(wf,"%d",bb[k]);

fclose(wf);

/*****************************/

}

一、选择题答案

1.若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:

A)10<回车>

22<回车>

33<回车>

B)10.0,22.0,33.0<回车>

C)10.0<回车>

22.033.0<回车>

D)1022<回车>

33<回车>

你所选择的答案是:

*,正确答案是:

2.下列程序段的输出结果是

voidfun(int*x,int*y)

{printf("%d%d",*x,*y);*x=3;*y=4;}

main()

{intx=1,y=2;

fun(&y,&x);

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

}

A)2143

B)1212

C)1234

D)2112

你所选择的答案是:

*,正确答案是:

3.当调用函数时,实参是一个数组名,则向函数传送的是

A)数组的长度

B)数组的首地址

C)数组每一个元素的地址

D)数组每个元素中的值

你所选择的答案是:

*,正确答案是:

4.以下程序的输出结果是

main()

{intx=0.5;charz='a';

printf("%d\n",(x<1)&&(z<'z'));}

A)0

B)1

C)2

D)3

你所选择的答案是:

*,正确答案是:

5.假定int类型变量占用两个字节,其有定义:

intx[10]={0,2,4};,则数组x在内存中所占字节数是

A)3

B)6

C)10

D)20

你所选择的答案是:

*,正确答案是:

6.以下选项中,不能正确赋值的是

A)chars1[10];s1="Ctest";

B)chars2[]={'C','t','e','s','t'};

C)chars3[20]="Ctest";

D)char*s4="Ctest\n"

你所选择的答案是:

*,正确答案是:

7.若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是

A)fopen("A:

\user\abc.txt","r")

B)fopen("A:

\\user\\abc.txt","r+")

C)fopen("A:

\user\abc.txt","rb")

C)fopen("A:

\\user\\abc.txt","w")

你所选择的答案是:

*,正确答案是:

8.若有定义:

intaa[8];。

则以下表达式中不能代表数组元aa[1]的地址的是

A)&aa[0]+1

B)&aa[1]

C)&aa[0]++

D)aa+1

你所选择的答案是:

*,正确答案是:

9.以下程序的输出的结果是

intx=3;

main()

{

voidncre();

inti;

for(i=1;i

}

voidncre()

{

staticintx=1;

x*=x+1;

printf("%d",x);

}

A)33

B)22

C)26

D)25

你所选择的答案是:

*,正确答案是:

10.有一函数,

1(x>0)

y=0(x=0)

-1(x<0)

以下程序段中不能根据x值正确计算出y值的是

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

elseif(x==0)y=0;

elsey=-1;

B)y=0;

if(x>0)y=1;

elseif(x<0)y=-1;

C)y=0;

if(x>=0);

if(x>0)y=1;

elsey=-1;

D)if(x>=0)

if(x>0)y=1;

elsey=0;

elsey=-1;

你所选择的答案是:

*,正确答案是:

11.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i

for(j=i+1,j

if(a[i]}

main()

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

sort(&aa[3],5);

for(i=o;i<10;i++)print("%d,",aa[i]);

printf('\n");

}

程序运行后的输出结果是

A)1,2,3,4,5,6,7,8,9,10B)10,9,8,7,6,5,4,3,2,1,

C)1,2,3,8,7.6.5.4.9,10D)1,2,10,9,8,7,6,5,4,3

你所选择的答案是:

*,正确答案是:

12.有以下程序

#include

structNODE

{intnum;structNODE*next;};

main()

{structNODE*p,*Q,*R;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeof(structNODE));

p->num=10;q->num=20;r->num=30;

p->next=q;q->next=r;

printf("%d\n",p->num+q->next->num);

}

程序运行后的输出结果是

A)10

B)20

C)30

D)40

你所选择的答案是:

*,正确答案是:

13.若有以下程序段

  intm=0xabc,n=0xabc;

  m-=n;

  printf("%X\n",m);

  执行后输出结果是( )。

 A)0X0

 B)0x0

 C)0

 D)0XABC

你所选择的答案是:

*,正确答案是:

14.有以下程序

  main()

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

  s=x+3

  printf("%d\n",s[2]);

  }

执行后输出结果是( )。

 A)随机值

 B)0

 C)5

 D)6

你所选择的答案是:

*,正确答案是:

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

 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}};

你所选择的答案是:

*,正确答案是:

16.有以下程序

  main()

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

  inti,j,k=2;

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

  {printf("%d",m[k][i]);}

  }

执行后输出结果是( )。

 A)456

 B)258

 C)369

 D)789

你所选择的答案是:

*,正确答案是:

17.有以下程序

main()

{

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

pa=a;

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

if(i<2)pa[1][i]=pa[1][i]-1;

elsepa[1][i]=1;

printf("%d\n",a[0][1]+a[1][1]+a[1][2]);

}

执行后输出结果是( )。

 A)7

 B)6

 C)8

 D)无确定值

你所选择的答案是:

*,正确答案是:

18.有定义语句:

intx,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是( )。

 A)1112<回车>

 B)11,12<回车>

 C)11,12<回车>

 D)11,<回车>

  12<回车>

你所选择的答案是:

*,正确答案是:

19.要求以下程序的功能是计算:

s=1+1/2+1/3+……+1/10

  main()

  {intn;floats;

  s=1.0;

  for(n=10;n>1;n--)

  s=s+1/n;

  printf("%6.4f\n",s);

  }

程序运行后输出结果错误,导致错误结果的程序行是( )。

 A)s=1.0;

 B)for(n=10;n>1;n--)

 C)s=s+1/n;

 D)printf("%6.4f\n",s);

你所选择的答案是:

*,正确答案是:

20.以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址

#include

#include

char*scmp(char*s1,char*s2)

{if(strcmp(s1,s2)<0)

return(s1);

elsereturn(s2);

}

main()

{inti;charstring[20],str[3][20];

for(i=0;i<3;i++)gets(str[i]);

strcpy(string,scmp(str[0],str[1]));/*库函数strcpy对字符串进行复制*/

strcpy(string,scmp(string,str[2]));

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

}

若运行时依次输入:

abcd、abba和abc三个字符串,则输出结果为( )。

 A)abcd

 B)abba

 C)abc

 D)abca

你所选择的答案是:

*,正确答案是:

21.有以下程序

main()

{

intx=0,y=5,z=3;

while(z-->0&&++x<5)y=y-1;

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

}

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

A)3,2,0  B)3,2,-1  C)4,3,-1  D)5,-2,-5

你所选择的答案是:

*,正确答案是:

22.若程序中定义了以下函数

doublemyadd(doublea,doubleB)

{return(a+B);}

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是( )。

A)doublemyadd(doublea,B);

B)doublemyadd(double,double);

C)doublemyadd(doubleb,doubleA);

D)doublemyadd(doublex,doubley);

你所选择的答案是:

*,正确答案是:

23.下列选项中,不能用作标识符的是( )。

A)_1234_

B)_1_2

C)int_2_

D)2_int_

你所选择的答案是:

*,正确答案是:

24.有以下程序

  main()

  {intm=3,n=4,x;

  x=-m++;

  x=x+8/++n;

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

  }

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

A)3

B)5

C)-1

D)-2

你所选择的答案是:

*,正确答案是:

25.有以下程序

  main()

  {inti;

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

  switch(i)

  {

  case0:

printf("%d",i);

  case2:

printf("%d",i);

  default:

printf("%d",i);

  }

  }

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

A)022111

B)021021

C)000122

D)012

你所选择的答案是:

*,正确答案是:

26.有以下程序

  main()

  {inti=0,x=0;

  for(;;)

  {

  if(i==3||i==5)continue;

  if(i==6)break;

  i++;

  s+=i;

  };

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

  }

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

A)10

B)13

C)21

D)程序进入死循环

你所选择的答案是:

*,正确答案是:

27.有以下程序

  main()

  {chara,b,c,d;

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

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

  }

若运行时从键盘上输入:

6,5,65,66<回车>。

则输出结果是( )。

A)6,5,A,B

B)6,5,65,66

C)6,5,6,5

D)6,5,6,6

你所选择的答案是:

*,正确答案是:

28.设有定义语句

intx[6]={2,4,6,8,5,7},*p=x,i;

要求依次输出x数组6个元素中的值,不能完成此操作的语句是( )。

A)for(i=0;i<6;i++)printf("%2d",*(p++));

B)for(i=0;i<6;i++)printf("%2d",*(p+i));

C)for(i=0;i<6;i++)printf("%2d",*p++);

D)for(i=0;i<6;i++)printf("%2d",(*p)++);

你所选择的答案是:

*,正确答案是:

29.有以下程序

  #include

  main()

  {inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;

  *q=*(p+5);

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

  }

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

A)运行后报错

B)66

C)611

D)510

你所选择的答案是:

*,正确答案是:

30.有以下程序

main()

{

chars[]="ABCD",*p;

for(p=s+1;p

}

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

A)ABCD

 BCD

 CD

 D

B)A

 B

 C

 D

C)B

 C

 D

D)BCD

 CD

 D

你所选择的答案是:

*,正确答案是:

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

 A)用C程序实现的算法必须要有输入和输出操作

 B)用C程序实现的算法可以没有输出但必须要有输入

 C)用C程序实现的算法可以没有输入但必须要有输出

 D)用C程序实现的算法可以既没有输入也没有输出

你所选择的答案是:

*,正确答案是:

32.有定义语句:

intb;charc[10];,则正确的输入语句是( )。

 A)scanf("%d%s",&b,&c);

 B)scanf("%d%s",&b,c);

 C)scanf("%d%s",b,c);

 D)scanf("%d%s",b,&c);

你所选择的答案是:

*,正确答案是:

33.有以下程序

#include"stdio.h"

#include"string.h"

main()

{

chara[7]="abcd";inti,j;

i=sizeof(a);j=strlen(a);

printf("%d%d",i,j);

}

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

 A)22

 B)74

 C)72

 D)62

你所选择的答案是:

*,正确答案是:

34.有以下程序

main()

{

intc=35;printf("%d",c&c);

}

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

 A)0

 B)70

 C)35

 D)1

你所选择的答案是:

*,正确答案是:

35.有以下程序

main()

{

inta=1,b;

for(b=1;b<=10;b++)

{

if(a>=8)break;

if(a%2==1){a+=5;continue;}

a-=3;

}

printf("%d",b);

}

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

 A)3

 B)4

 C)5

 D)6

你所选择的答案是:

*,正确答案是:

36.有以下程序

#include"stdio.h"

voidWriteStr(char*fn,char*str)

{

FILE*fp;

fp=fopen(fn,"W");

fputs(str,fp);

fclose(fp);

}

main()

{

WriteStr("t1.dat","start");

WriteStr("t1.dat","end");

}

程序运行后,文件t1.dat中的内容是( )。

 A)start

 B)end

 C)startend

 D)endrt

你所选择的答案是:

*,正确答案是:

37.设函数fun的定义形式为

  voidfun(charch,floatx){…}

则以下对函数fun的调用语句中,正确的是( )。

  A)fun("abc",3.0);   B)t=fun('D',16.5);

  C)fun('65',2.8);   D)fun(32,32);

你所选择的答案是:

*,正确答案是:

38.有以下程序

main()

{

intk=5,n=0;

while(k>0)

{

switch(k)

{

default:

break;

case1:

n+=k;

case2:

case3:

n+=k;

}

k--;

}

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

}

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

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

你所选择的答案是:

*,正确答案是:

39.有以下程序

  main()

  {inta[]={2,4,6,8,10},y=0,x,*p;

  p=&a[1];

  for(x=1;x<3;x++)y+=p[x];

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

  }

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

  A)10   B)11  C)14  D)15

你所选择的答案是:

*,正确答案是:

40.有以下程序

  inta=2;

  intf(intn)

  {staticinta=3;

  intt=0;

  if(n%2){staticinta=4;t+=a++;}

  else{staticinta=5;t+=a++;}

  returnt+a++;

  }

  main()

  {ints=a,i;

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

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

  }

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

  A)26  B)28  C)29  D)24

你所选择的答案是:

*,正确答案是:

41.有以下

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

当前位置:首页 > 法律文书 > 起诉状

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

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