C语言试题 5.docx

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

C语言试题 5.docx

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

C语言试题 5.docx

C语言试题5

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

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

改错题的源文件分为:

modi1.c,

第1题分值为:

10分,

下列给定程序中,函数fun()的功能是找出100~n(不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。

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

注意:

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

#include

#defineN100

intfun(int*s,intn)

{

inti,j,k,a,b,c;

j=0;

for(i=100;i

{

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

k=n;

a=k%10;

k/=10;

b=k%10;

c=k/10;

if(a==b+c)

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

s[j]=i;

}

returnj;

}

main()

{

inta[N],n,num=0,i;

do

{

printf("\nEntern(<=1000):

");

scanf("%d",&n);

}

while(n>1000);

num=fun(a,n);

printf("\n\nTheresult:

\n");

for(i=0;i

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

printf("\n\n");

}

请编写一个函数floatfun(intn),求s=1+(1/2)+(1/3)+...+(1/n),n通过键盘输入,大小n不超过1000,

如输入3,输出结果应为1.833333,函数的返回值为所求和。

注意:

部分源程序已给出。

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

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

prog1.c

#include

floatfun(intn)

{

}

main()

{

FILE*wf;

intn,i,k=0;

floats,bb[10];

printf("请输入不超过1000的n:

\n");

scanf("%d",&n);

s=fun(n);

printf("和为:

%f",s);

printf("\n");

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

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

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

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

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

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

fclose(wf);

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

}

一、选择题答案

1.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是

A)-3

B)9

C)-12

D)6

你所选择的答案是:

*,正确答案是:

2.有以下程序段

intx=3

do

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

while(!

(--x));

其输出结果是

A)1

B)30

C)1-2

D)死循环

你所选择的答案是:

*,正确答案是:

3.在C语言中,合法的长整型常数是

A)OLB)4962710C)324562&D)216D

你所选择的答案是:

*,正确答案是:

4.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是

A)INPUTx、y、z;

B)scanf("%d%d%d",&x,&y,&z);

C)scanf("%d%d%d",x,y,z);

D)read("%d%d%d",&x,&y,&z);

你所选择的答案是:

*,正确答案是:

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

main()

{

intnum=0;

while(num<=2)

{num++;printf("%d\n",num);}

}

A)1

2

3

4

B)1

2

3

C)1

2

D)l

你所选择的答案是:

*,正确答案是:

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

main()

{charst[20]="hello\0\t\\\";

printf(%d%d\n",strlen(st),sizeof(st));

}

A)99

B)520

C)1320

D)2020

你所选择的答案是:

*,正确答案是:

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

structHAR

{intx,y;structHAR*p;}h[2];

main()

{h[0],x=1;h[0];y=2;

h[1],x=3;h[1];y=4;

h[0],p=&h[1],p=h;

printf("%d%d\n",(h[0],p)->x,(h[1],p)->y);

}

A)12

B)23

C)14

D)32

你所选择的答案是:

*,正确答案是:

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

#include"stdio.h"

main()

{

inta,b;

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

{

if(b>=10)break;

if(b%3==1)

{b+=3;continue;}

}

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

}

A)101

B)6

C)5

D)4

你所选择的答案是:

*,正确答案是:

9.以下叙述正确的是

A)可以把define和if定义为用户标识符

B)可以把define定义为用户标识符,但不能把if定义为用户标识符

C)可以把if定义为用户标识符,但不能把define定义为用户标识符

D)define和if都不能定义为用户标识符

你所选择的答案是:

*,正确答案是:

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

main()

{

inta=5,b=4,c=6,d;

printf("%d\n",d=a>b?

(a>c?

a:

c):

(b));

}

A)5

B)4

C)6

D)不确定

你所选择的答案是:

*,正确答案是:

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

main()

{charcf[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"

你所选择的答案是:

*,正确答案是:

12.在说明语句:

int*f();中,标识符f代表的是

A)一个用于指向整型数据的指针变量

B)一个用于指向一维数组的行指针

C)一个用于指向函数的指针变量

D)一个返回值为指针型的函数名

你所选择的答案是:

*,正确答案是:

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

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

你所选择的答案是:

*,正确答案是:

14.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是

A)字符A

B)字符a

C)字符e

D)非法的常量

你所选择的答案是:

*,正确答案是:

15.已知i、j、k为int型变量,若从键盘输入:

1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是

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

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

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

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

你所选择的答案是:

*,正确答案是:

16.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是

A)void

B)int

C)float

D)double

你所选择的答案是:

*,正确答案是:

17.有以下程序

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;

}

main()

{inti,j=0;

for(i=i;i<3;i++)j+=f(i);

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

}

程序运行后的输出结果是

A)4

B)3

C)2

D)1

你所选择的答案是:

*,正确答案是:

18.若有以下说明和定义

typedefint*INTEGER;

INTEGERp,*q;

以下叙述正确的是

A)P是int型变量

B)p是基类型为int的指针变量

C)q是基类型为int的指针变量

D)程序中可用INTEGER代替int类型名

你所选择的答案是:

*,正确答案是:

19.有以下程序

intfl(intx,inty)

{returnx>y?

x:

y;}

intf2(intx,inty)

{returnx>y?

y:

x;}

main()

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

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

}

执行后输出结果是( )。

A)3,4,5

B)5,3,4

C)5,4,3

D)3,5,4

你所选择的答案是:

*,正确答案是:

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

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

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

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

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

你所选择的答案是:

*,正确答案是:

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

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

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

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

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

你所选择的答案是:

*,正确答案是:

22.有定义语句:

inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是( )。

A)if(c

 elseif(b

 elsex=3;

C)if(a<3)x=3;

 if(a<2)x=2;

 if(a<1)x=1;

B)if(a<3)x=3;

elseif(a<2)x=2;

elsex=1;

D)if(a

if(b

 if(c

你所选择的答案是:

*,正确答案是:

23.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。

 A)函数调用可以作为独立的语句存在

 B)函数调用可以作为一个函数的实参

 C)函数调用可以出现在表达式中

 D)函数调用可以作为一个函数的形参

你所选择的答案是:

*,正确答案是:

24.已定义以下函数

fun(char*p2,char*p1)

{while((*p2=*p1)!

='\0'){p1++;p2++;}}

函数的功能是( )。

 A)将p1所指字符串复制到p2所指内存空间

 B)将p1所指字符串的地址赋给指针p2

 C)对p1和p2两个指针所指字符串进行比较

 D)检查p1和p2两个指针所指字符串中是否有'\0'

你所选择的答案是:

*,正确答案是:

25.以下4组用户定义标识符中,全部合法的一组是( )。

A)_main

 enclude

 sin

B)If

 -max

 turbo

C)txt

 REAL

 3COM

D) int

 k_2

 _001

你所选择的答案是:

*,正确答案是:

26.设有以下定义

#defined2

inta=0;

doubleb=1.25;

charc=’A’;

则下面语句中错误的是( )。

A)a++;  B)b++  C)c++;  D)d++;

你所选择的答案是:

*,正确答案是:

27.有以下程序

main()

{

intx=102,y=012;

printf(“%2d,%2d\n”,x,y);

}

执行后输出结果是( )。

A)10,01   B)02,12  C)102,10  D)02,10

你所选择的答案是:

*,正确答案是:

28.有以下程序

main()

{inti,n=0;

for(i=2;i<5;i++)

{do

{if(i%3)continue;

   n++;

}while(!

i);

   n++;

}

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

}

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

A)n=5  B)n=2  C)n=3  D)n=4

你所选择的答案是:

*,正确答案是:

29.有以下程序

main()

{unsignedchara,b;

a=4|3;

b=4&3;

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

}

执行后输出结果是

A)70B)07C)11D)430

你所选择的答案是:

*,正确答案是:

30.s12和s2已正确定义并分别指向两个字符串。

若要求:

当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是( )。

A)if(s1>s2)S;

B)if(strcmp(s1,s2))S;

C)if(strcmp(s2,s1)>0)S;

D)if(strcmp(s1,s2)>0)S;

你所选择的答案是:

*,正确答案是:

31.设有定义语句

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)++);

你所选择的答案是:

*,正确答案是:

32.有以下程序

  main()

  {charstr[][10]={"China","Beijing"},*p=str;

  printf("%s\n",p+10);

  }

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

A)China

B)Bejing

C)ng

D)ing  

你所选择的答案是:

*,正确答案是:

33.以下不能定义为用户标识符的是( )。

 A)Main

 B)_0

 C)_int

 D)sizeof

你所选择的答案是:

*,正确答案是:

34.数字字符0的ASCII值为48,若有以下程序

main()

{chara='1',b='2';

printf("%c,",b++);

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

}

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

 A)3,2

 B)50,2

 C)2,2

 D)2,50

你所选择的答案是:

*,正确答案是:

35.有以下程序

main()

{

inta,b,d=25;

a=d/10%9;

b=a&&(-1);

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

}

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

 A)6,1

 B)2,1

 C)6,0

 D)2,0

你所选择的答案是:

*,正确答案是:

36.有以下程序

main()

{

inta[3][3],*p,i;

p=&a[0][0];

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

p[i]=i;

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

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

}

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

 A)012

 B)123

 C)234

 D)345

你所选择的答案是:

*,正确答案是:

37.有以下程序

#defineN20

fun(inta[],intn,intm)

{inti,j;

for(i=m;i>=n;i--)

a[i+1]=a[i];

}

main()

{

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

fun(a,2,9);

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

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

}

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

 A)10234

 B)12344

 C)12334

 D)12234

你所选择的答案是:

*,正确答案是:

38.有以下程序

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

你所选择的答案是:

*,正确答案是:

39.有以下程序

point(char*p)

{

p+=3;

}

main()

{charb[4]={'a','b','c','d'},*p=b;

point(p);printf("%c",*p);

}

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

 A)a

 B)b

 C)c

 D)d

你所选择的答案是:

*,正确答案是:

40.程序中若有如下的说明和定义语句

charfun(char*);

main()

{

char*s="one",a[5]={0},(*f1)()=fun,ch;

……

}

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

 A)(*f1)(a);

 B)*f1(*s);

 C)fun(&a);

 D)ch=*f1(s)

你所选择的答案是:

*,正确答案是:

41.以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是( )。

 A)feof(fp)

 B)ftell(fp)

 C)fgetc(fp)

 D)rewind(fp)

你所选择的答案是:

*,正确答案是:

42.有以下程序段

  intk=0,a=1,b=2,c=3;

  k=a

b:

k;

  执行该程序段后,k的值是( )。

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

你所选择的答案是:

*,正确答案是:

43.有以下程序

  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

你所选择的答案是:

*,正确答案是:

44.以下能正确定义字符串的语句是

 A)charstr[]={'\064'};

 B)charstr="\x43";

 C)charstr="abc"; 

 D)charstr[]="a\0";

你所选择的答案是:

*,正确答案是:

45.有以下程序

main()

{

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

for(i=0;i<3;i++)printf(“%d”,t[2-i][i]);

}

程序的执行后的输出结果是

 A)753

 B)357

 C)369

 D)751

你所选择的答案是:

*,正确答案是:

46.以下叙述中错误的是

 A)算法正确的程序最终一定会结束

 B)算法正确的程序可以有零个输出

 C)算法正确的程序可以有零个输入

 D)算法正确的程序对于相同的输入一定有相同的结果

你所选择的答案是:

*,正确答案是:

47.有以下程序

fun(intx,inty){return(x+y);}

main()

{

inta=1,b=2,c=3,sum;

sum=fun((a++,++b,a+b),c++);

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

}

执行后的输出结果是________。

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

你所选择的答案是:

*,正确答案是:

48.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是

A)#defineN10

inta[N];

B)#definen5

inta[2*n];

C)inta[5+5];

D)intn=10;

inta[n];

你所选择的答案是:

*,正确答案是:

49.有以下程序

voidfun2(chara,charb)

{printf("%c%c",a,b);}

chara='A',b='B';

voidfun1(){a='C',b='D';}

main()

{fun1();

printf("%c%c",a,b);

fun2('E','F');

}

程序的运行结果是________。

  A)CDEF B)ABEF C)ABCD D)CDAB

你所选择的答案是:

*,正确答案是:

50.

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

当前位置:首页 > 外语学习 > 英语学习

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

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