二级C语言上机题库05.docx

上传人:b****3 文档编号:4594722 上传时间:2022-12-07 格式:DOCX 页数:26 大小:23.29KB
下载 相关 举报
二级C语言上机题库05.docx_第1页
第1页 / 共26页
二级C语言上机题库05.docx_第2页
第2页 / 共26页
二级C语言上机题库05.docx_第3页
第3页 / 共26页
二级C语言上机题库05.docx_第4页
第4页 / 共26页
二级C语言上机题库05.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

二级C语言上机题库05.docx

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

二级C语言上机题库05.docx

二级C语言上机题库05

一、选择题答案

1.下列选项中,合法的C语言关键字是

A)VAR

B)cher

C)integer

D)default

你所选择的答案是:

*,正确答案是:

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

A)-3

B)9

C)-12

D)6

你所选择的答案是:

*,正确答案是:

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

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(5,2,a);

printf("%d",a);

}

A)0

B)29

C)31

D)无定值

你所选择的答案是:

*,正确答案是:

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

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

你所选择的答案是:

*,正确答案是:

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

main()

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

printf("%d",*--p);

}

A)非法

B)a[4]的地址

C)5

D)3

你所选择的答案是:

*,正确答案是:

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

main()

{intx=0.5;charz='a';

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

A)0

B)1

C)2

D)3

你所选择的答案是:

*,正确答案是:

7.设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为

A)0

B)1

C)2

D)3

你所选择的答案是:

*,正确答案是:

8.阅读以下程序:

main()

{intx;

scanf("%d",&x);

if(x--<5)printf("%d"'x);

elseprintf("%d"'x++);

}

程序运行后,如果从键盘上输人5,则输出结果是

A)3

B)4

C)5

D)6

你所选择的答案是:

*,正确答案是:

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

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

你所选择的答案是:

*,正确答案是:

10.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是

A)地址传递

B)单向值传递

C)由实参传给形参,再由形参传回实参

D)传递方式由用户指定

你所选择的答案是:

*,正确答案是:

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

amovep(intp,int(a)[3],intn)

{inti,j;

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

for(j=0;j

}

main()

{int*p,a[3][3]={{1,3,5},{2,4,6}};

p=(int*)malloc(100);

amovep(p,a,3);

printf("%d%d\n",p[2],p[5]);free(p);

}

A)56

B)25

C)34

D)程序错误

你所选择的答案是:

*,正确答案是:

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

#defineM(x,y,z)x*y+z

main()

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

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

}

A)19

B)17

C)15

D)12

你所选择的答案是:

*,正确答案是:

13.若有说明语句:

inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是

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

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

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

D)scanf("%d%d%d",a,b,*d);

你所选择的答案是:

*,正确答案是:

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

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)不确定

你所选择的答案是:

*,正确答案是:

15.以下程序段的输出结果是

chars[]="\\141\141abc\t";

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

A)9

B)12

C)13

D)14

你所选择的答案是:

*,正确答案是:

16.不合法的main函数命令行参数表示形式是

A)main(inta,char*c[])

B)main(intarc,char**arv)

C)main(intargc,char*argv)

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

你所选择的答案是:

*,正确答案是:

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

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

你所选择的答案是:

*,正确答案是:

18.若以下定义:

structlink

{intdata;

strucklink*next;

}a,b,c,*p,*q;

且变量a和b之间已有如下图所示的链表结构:

ab

datanextdatanext

┌──┬──┐┌──┬──┐

│5│┼──→│9│\0│

└──┴──┘└──┴──┘

↑p

c

datanext

┌──┬──┐

│7││

└──┴──┘

↑q

指针p指向变量a,q指向变量c。

则能够把c插入到a和b之间并形成新的链表的语句组是:

A)a.next=c;c.next=b;

B)p.next=q;q.next=p.next;

C)p->next=&c;q->next=p->next;

D)(*p).next=q;(*q).next=&b;

你所选择的答案是:

*,正确答案是:

19.以下选项中合法的实型常数是

A)5E2.0B)E-3C).2E0D)1.3E

你所选择的答案是:

*,正确答案是:

20.与数学式子对应的C语言表达式是

A)3*x^n(2*x-1)

B)3*x**n(2*x-1)

C)3*pow(x,n)*(1/(2*x-1))

D)3*pow(n,x)/(2*x-1)

你所选择的答案是:

*,正确答案是:

21.若有以下程序:

#include"stdio.h"

main()

{

intk=2,i=2,m;

m=(k+=i*=k);printf("%d,%d\n",m,i);

}

执行后的输出结果是

A)8,6

B)8,3

C)6,4

D)7,4

你所选择的答案是:

*,正确答案是:

22.有以下程序

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)9

C)21

D)9.0

你所选择的答案是:

*,正确答案是:

23.有以下程序

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

你所选择的答案是:

*,正确答案是:

24.有以下程序

inta=3;

main()

{ints=0;

{inta=5;s+=a++;}

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

}

程序运行后的输出结果是

A)8

B)10

C)7

D)11

你所选择的答案是:

*,正确答案是:

25.有以下程序

main()

{inti=10,j=1;

 printf("%d,%d\n",i--,++j);

}

执行后输出结果是( )。

A)9,2

B)10,2

C)9,1

D)10,1

你所选择的答案是:

*,正确答案是:

26.有如下程序

  voidf(intx,inty)

  {intt;

  if(x  }

  main()

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

  f(a,b);f(a,c);f(b,c);

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

  }

执行后输出结果是( )。

 A)3,4,5

 B)5,3,4

 C)5,4,3

 D)4,3,5

你所选择的答案是:

*,正确答案是:

27.有以下程序

  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

你所选择的答案是:

*,正确答案是:

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

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

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

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

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

你所选择的答案是:

*,正确答案是:

29.有以下程序

main()

{

inta=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

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

}

程序运行后的输出结果是

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

你所选择的答案是:

*,正确答案是:

30.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )。

 A)x=x*100+0.5/100.0;

 B)x=(x*100+0.5)/100.0;

 C)x=(int)(x*100+0.5)/100.0;

 D)x=(x/100+0.5)*100.0;

你所选择的答案是:

*,正确答案是:

31.有以下程序

  main()

  {ints=0,a=1,n;

  scanf("%d",&n);

  do

  {s+=1;a=a-2;}

  while(a!

=n);

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

  }

若要使程序的输出值为2,则应该从键盘给n输入的值是( )。

 A)-1

 B)-3

 C)-5

 D)0

你所选择的答案是:

*,正确答案是:

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

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

你所选择的答案是:

*,正确答案是:

33.有以下函数定义:

  voidfun(intn,doublex){……}

若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。

 A)fun(inty,doublem);

 B)k=fun(10,12.5);

 C)fun(x,n);

 D)voidfun(n,x);

你所选择的答案是:

*,正确答案是:

34.若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是( )。

A)int*i=NULL;

B)float*f=NULL;

  scanf("%d",i);*f=10.5;

C)chart='m',*c=&t;

D)long*L;

  *c=&t;L='\0';

  

你所选择的答案是:

*,正确答案是:

35.以下能正确定义一维数组的选项是( )。

A)intnum[];

B)#defineN100

 intnum[N];

C)intnum[0..100];

D)intN=100;

 intnum[N];

你所选择的答案是:

*,正确答案是:

36.有以下程序

main()

{

charstr[][20]={"Hello","Beijing"};

char*p=str[0];

printf("%d\n",strlen(p+20));

}

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

 A)0

 B)5

 C)7

 D)20

你所选择的答案是:

*,正确答案是:

37.有以下程序

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

你所选择的答案是:

*,正确答案是:

38.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是

A)chars[10]="abcdefg";B)chart[]="abcdefg",*s=t;

C)chars[10];s="abcdefg";D)chars[10];strcpy(s,"abcdefg");

你所选择的答案是:

*,正确答案是:

39.有以下程序(提示:

程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)

#include

main()

{FILE*fp;inti,a[4]={1,2,3,4},b;

fp=fopen("data.dat","wb");

for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);

fclose(fp);

fp=fopen("data.dat","rb");

fseek(fp,-2L*sizeof(int).SEEK_END);

fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/

fclose(fp);

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

}

执行后输出结果是

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

你所选择的答案是:

*,正确答案是:

40.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是( )。

A)abs(x-y)<10

B)x-y>-10&&x-y<10

C)!

(x-y)<-10||!

(y-x)>10

D)(x-y)*(x-y)<100

你所选择的答案是:

*,正确答案是:

41.有以下程序

  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)程序进入死循环

你所选择的答案是:

*,正确答案是:

42.以下能正确定义二维数组的是( )。

A)inta[][3];

B)inta[][3]=2{2*3};

C)inta[][3]={};

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

你所选择的答案是:

*,正确答案是:

43.有以下程序

intf(inta)

{returna%2;}

main()

{ints[8]={1,3,4,2,3,6},i,d=0;

for(i=0;f(s[i]);i++)

{d=d+s[i];printf("%d,%d\n",i,s[i]);}

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

}

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

A)9

B)4

C)19

D)21  

你所选择的答案是:

*,正确答案是:

44.有以下定义和语句

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

p[0]=a[1];

则*p[0]+1)所代表的数组元素是( )。

A)a[0][1]

B)a[1][0]

C)a[1][1]

D)a[1][2]

你所选择的答案是:

*,正确答案是:

45.有以下程序

main()

{intm,n,p;

scanf("m=%dn=%dp=%d",&m,&n,&p);

printf("%d%d%d",m,n,p);

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( )。

 A)m=123n=456p=789

 B)m=123n=456p=789

 C)m=123,n=456,p=789

 D)123456789

你所选择的答案是:

*,正确答案是:

46.有以下程序

main()

{

intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7)if(p[i]%2)j+=p[i];

printf("%d",j);

}

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

 A)42

 B)45

 C)56

 D)60

你所选择的答案是:

*,正确答案是:

47.有以下程序

voidf(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

}

main()

{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p

{

f(p,q);

p++;

q--;

}

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

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

}

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

 A)8,2,3,4,5,6,7,1,

 B)5,6,7,8,1,2,3,4,

 C)1,2,3,4,5,6,7,8,

 D)8,7,6,5,4,3,2,1,

你所选择的答案是:

*,正确答案是:

48.有以下程序

main()

{

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

}

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

 A)0

 B)70

 C)35

 D)1

你所选择的答案是:

*,正确答案是:

49.以下叙述中错误的是( )。

  A)C语句必须以分号结束

  B)复合语句在语法上被看作一条语句

  C)空语句出现在任何位置都不会影响程序运行

  D)赋值表达式末尾加分号就构成赋值语句

你所选择的答案是:

*,正确答案是:

50.以下关于函数的叙述中正确的是( )。

  A)每个函数都可以被其它函数调用(包括main函数)

  B)每个函数都可以被单独编译

  C)每个函数都可以单独运行

  D)在一个函数内部可以定义另一个函数

你所选择的答案是:

*,正确答案是:

51.若有语句:

char*line[5];,以下叙述中正确的是( )。

  A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量

  B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

  C)定义line是一个指针数组,语句中的*号称为间址运算符

  D)定义line是一个指向字符型函数的指针

你所选择的答案是:

*,正确答案是:

52.设变量已正确定义,则以下程序不能正确计算f=n!

的程序段是( )。

A)f=1;

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

f*=i;

B)f=0;

for(i=1;i<=n;i--)

 f*=i;

C)f=1;         

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

f=f*i;

D)f=1;

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

f=f*i

你所选择的答案是:

*,正确答案是:

53.以下数组定义中错误的是

 A)intx[][3]={0};

 B)intx[2][3]={{1,2},{3,4},{5,6}};

 C)ntx[][3]={{1,2,3},{4,5,6}};

 D)intx[2][3]={1,2,3,4,5,6};

你所选择的答案是:

*,正确答案是:

54.已定义以下函数

intfun(int*p)

{return*p;}

fun函数返回值是

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

当前位置:首页 > 初中教育 > 语文

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

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