计算机二级C语言选择题复习资料.docx

上传人:b****4 文档编号:24140323 上传时间:2023-05-24 格式:DOCX 页数:104 大小:79.83KB
下载 相关 举报
计算机二级C语言选择题复习资料.docx_第1页
第1页 / 共104页
计算机二级C语言选择题复习资料.docx_第2页
第2页 / 共104页
计算机二级C语言选择题复习资料.docx_第3页
第3页 / 共104页
计算机二级C语言选择题复习资料.docx_第4页
第4页 / 共104页
计算机二级C语言选择题复习资料.docx_第5页
第5页 / 共104页
点击查看更多>>
下载资源
资源描述

计算机二级C语言选择题复习资料.docx

《计算机二级C语言选择题复习资料.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言选择题复习资料.docx(104页珍藏版)》请在冰豆网上搜索。

计算机二级C语言选择题复习资料.docx

计算机二级C语言选择题复习资料

复习题一

一、单项选择题

1.以下选项中,均符合C常量形式的是

(1)。

A)’\123’,0123B)0xffce,‘\678’C)0246,e-5D)102,123

2.假定有chara=’A’,b=’B’,c,则执行printf(“%d”,(c=a

a+b:

a-b);的值是

(2)。

A)130B)131C)0D)都不是

[特别说明:

]根据c=a

a+b:

a-b计算得到c的整数值为130,但常用字符的ASCII值最大为127,130超过了127,130的二进制形式是:

10000010,最高位为1,因此可以肯定它是一个负数,根据负数二进制补码的求法可以得出它是-126的补码值。

3.假定inta=1,b=2,c=0,表达式:

c=(a==--b||--a,a+b+1.0/2)的值是(3)。

A)1B)2C)1.5D)2.5

4.表达三个变量a、b、c中有一个为0,两个为非0的正确表达式是(4)。

A)a*b*c==0B)a*b!

=0||a*c!

=0||b*c!

=0

C)(a*b||a*c||b*c)&&!

(a*b*c)D)!

(a*b*c)&&(a+b+c)

5.在以下表达式中,与a==0&&b!

=0不等价的是(5)。

A)!

a&&bB)!

(a!

=0||b==0)

C)!

(a==0||b!

=0)D)!

(a*b)&&b

6.上机运行以下程序会出现一个错误,这个错误的性质是(6)。

main()

{inti,j,a[]={3,2,1},b[]={6,4,2,0};

floats=0;

for(i=0;i<3;i++){j=b[a[i]];s+=1.0/j;}

printf(“\n%f”,s);

}

A)数组说明语法错B)分母为0运算错

C)数组元素引用语法错D)数组元素引用下标超界错

7.设chara[]=”xy\n0\1238\\0”;则数组a的长度是(7)。

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

8.以下程序的功能是(8)。

main()

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

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

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

}

A)求矩阵a的所有元素之和B)求矩阵a的上三角元素之和

C)求矩阵a的下三角元素之和D)都不是

9.以下程序的功能是(9)。

main()

{inta[10]={3,5,2,9,1,8,0,2,4,6},i,p=0,q=0;

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

{if(a[i]>p)p=a[i];

if(a[i]

}

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

}

A)求最大值和最小值B)求最大值的位置和最小值的位置

C)求最大值的位置和最小值D)求最大值和最小值的位置

10.若希望当字符变量a中为数字字符时,表达式的值为“真”,为非数字字符时,表达式的值为“假”。

则以下不能满足要求的表达式是(10)。

A)a>=0&&a<=9B)a>=’0’&&a<=’9’

C)a>=48+0&&a<=48+9D)a-‘0’>=0&&a-‘0’<=9

11.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式(11)。

A)只能用逻辑表达式        B)只能用关系表达式

C)只能用逻辑表达式或关系表达式D)可用任意表达式

12.以下论述中正确的是(12)。

A)在同一个函数中不能定义多个同名的变量

B)结构体变量的名字可以与其所属的成员的名字相同

C)局部变量的名字不能与函数名相同

D)局部变量的名字不能与全局变量的名字相同

13.在以下各循环语句中,不能正确计算自然数1-100中所有数之和的是(13)。

A)for(s=0,i=1;i<=100;)s+=++i;

B)for(s=100,n=100;--n;)s+=n;

C)for(s=0,i=1,j=100;i<=j;i++,j--)s+=i+j;

D)for(s=0,i=0;i<=100;)s+=i++;

14.假定要使以下程序的输出结果第一行都是1,第二行都是2,第三行都是3,则正确的数据输入格式是(14)。

main()

{inti,j,a[3][3];

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

for(i=0;i<3;i++)scanf(“%d”,&a[i][j]);

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

{printf(“\n”);for(j=0;j<3;j++)printf(“%d”,a[i][j]);}

}

A)123123123B)111222333

C)1,2,3,1,2,3,1,2,3D)1,1,1,2,2,2,3,3,3

15.以下各程序段中,不能正确输入10个数到数组a中的是(15)。

A)inti,a[10];for(i=0;i<10;i++)scanf(“%d”,a[i]);

B)inti,a[10];for(i=0;i<10;i++)scanf(“%d”,a+i);

C)inta[10],*p;for(p=a;i<10;p++)scanf(“%d”,p);

D)inti,a[10],*p=a;for(i=0;i<10;i++)scanf(“%d”,p++);

二、程序阅读题

16.以下程序的运行结果是(16)。

main()

{inti,n=0;

for(i=1;i<20;i++)if(i%3==0&&i%5)n++;

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

}

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

17.以下程序的运行结果是(17)。

main()

{ inti,n=0;

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

    { do { if(i%3) continue;n++;}while(!

i);

        n++;

    }

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

}  

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

18.以下程序的运行结果是(18)。

inta=2;

intf(int*a){return(*a)++;}

main()

{ ints=0;

  {inta=5;s+=f(&a);}

   s+=f(&a);

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

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

19.以下程序的运行结果是(19)。

main()f(char*c)

{char*a[]=”FORTRAN77”;{for(;*c;c++)

f(a+1);printf(“%s”,a);if(*c>=’A’&&*c<=’Z’)*c=*c+32;

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

A)Fortran77B)fortran77C)FORTRAN77D)fORTRAN77

20.以下程序的运行结果是(20)。

main()

{inti=6,j=0,k;

for(k=0;k<3;k++){j=j*2+i%2;i/=2;}

printf(“%\n%d,%d”,i,j);

}

A)6,3B)0,3C)0,6D)6,6

21.以下程序的运行结果是(21)。

main()f(int*x,intb)

{inta=3,b=5;{

f(&a,b);*x+=2;

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

}}

A)3,5B)5,6C)3,6D)5,5

22.以下程序的运行结果是(22)。

inta=3,b=5;

f(inta){a++;b+=a;}

main()

{inta=6;f(a-1);printf("\n%d,%d",a,b);}

A)3,8B)3,11C)6,8D)6,11

23.以下程序的运行结果是(23)。

main()

{inti,b,k=0;

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

{b=i%2;while(b––>=0)k++;}

printf(“%d,%d”,k,b);

}

}

A)3,–1B)8,–1C)3,0D)8,–2

25.以下程序的运行结果是(25)。

voidf(char*s,char*p)main()

{for(;*s;s++);{chara[10]="fx",b[]=abCD12";

for(;*p;p++)f(a,b);

if(*p>='A'&&*p<='Z')*s++=*p;printf("\n%s",a);

*s=0;}

}

A)abCD12B)fxabCD12C)CDD)fxCD

三、程序填充题

选择适当的内容填在以下各程序的下划线处,以使程序完整。

●用折半查找法查找整数k在数列a中的位置(数列a中的数按从小到大有序),若a中有与k相同的数则返回其位置(下标),否则返回-1。

intsearch(inta[],intn,intk)

{inti=0,j=n–1,m;

while(i<=j)

{m=(i+j)/2;

if(a[m]

elseif(a[m]>k)(27);

else(28);

}

return(–1);

}

}

(26)A)i=m-1B)i=m+1C)j=m-1D)j=m+1

(27)A}i=m-1B)i=m+1C)j=m-1D)j=m+1

28)A}return–1B)returnCreturniD)return

●将两个有序的数组合并到另一个数组中,要求合并后仍有序。

main()

{inti=0,m=5,a[5]={1,3,7,9,13};

intj=0,n=6,b[6]={2,4,8,16,20,24};

intk=0,c[11];

while(i+j

{if(i>=m)c[k++]=(29);

elseif(j>=n)c[k++]=(30);

elseif((31))c[k++]=a[i++];

elsec[k++]=b[j++];}

for(i=0;i

(29)A)a[i++]B)a[j++]C)b[i++]D)b[j++]

30)A)a[i++]B)a[j++]C)b[i++]D)b[j++]

●给定一英文句子的字符串,统计其中的单词个数的函数。

intword_num(char*a)

{intn=0,in_word=0;

for(;*a;a++)

{if(*a!

='')

{

if(!

in_word)(32);

}else(33);

}

returnn;

}

(32)A}n++;in_word=0;B)n++C)n++;in_word=1D)in_word=1

(33)A}n++B)in_word=0C)in_word=1D)continue

●从数列a中找到最小的数,并将它插入到最前面。

voidreplace(inta[],intn)

{inti,j=0,k;

for(i=0;i

k=a[j];

for((34))a[i]=a[i-1];

(35);

}

(34)A)i=n-1;i>j;i--B)i=j;i>0;i--C)i=1;i

(35)A)a[i]=a[j]B)a[i]=kC)a[0]=k;D)a[0]=a[j]

四、程序设计

1.输入两个正整数x和y,求它们的最小公倍数,输出运行结果。

2.输入某年某月,输出该月的天数。

 

答案

一.单项选择题

1.A2.D3.B4.C5.C6.B7.C8.C9.D10.A

11.D12.B13.A14.A15.A

二.程序阅读题

16.B17.C18.A19.A20.B21.D22.D23.D24.D25.D

三.程序填充题

26.B27.C28.B29.D30.A31.C32.C33.B34.B35.C

四、程序设计

1.#include“stdio.h”

main()

{inta,b,max,i;

printf(“pleaseinputaandb:

”);

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

if(a>b)

max=a;

else

max=b;

for(i=max;i<=a*b;i++)

if(i%a==0&&i%b==0)break;

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

}

2.#include“stdio.h”

main()

{inty,m,days;

printf(“inputyearandmonth:

”);

scanf(“%d,%d”,&y,&m);

switch(m)

{case1:

case3:

case5:

case7:

case8:

case10:

case12:

days=31;break;

case4:

case6:

case9:

case11:

days=30;break;

case2:

if(y%4==0&&y%100!

=0||y%400==0)days=29;

elsedays=28;

}

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

}

复习题二

一.填空题

1.若有以下定义,则执行表达式y+=y-=m*=y后y的值是______。

intm=5,y=2;

2.若有说明:

inta[3][4]={{1,2},{0},{4,6,8,10}},则a[1][2]=;

3.能表达“20

4.表达整型变量a能被3整除但不被5整除的表达式是______。

5.定义a为共有16个元素的一维字符数组、同时定义p为指向a数组首地址的指针变量的语句为。

6.C语言中唯一的三元运算符是。

7.设有:

inta=3,b=4,c=5,则!

(a>b)&&!

c||1的值为。

8.设i,j均为int型变量,则执行完下面的for循环后,k的值为。

for(i=1,j=10;i<=j;i++,j--)k=i+j;

9.访问结构体数组元素a[k]的成员b,写作。

10.a、b都是结构体变量,语句“a=b;”能够执行的条件是。

二.选择

1.要使以下程序的输出结果的第一行都是1,第二行都是2,第三行都是3,正确的数据输入格式可以是。

main()

{inti,j,a[3][3];

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

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

scanf(“%1d”,&a[i][j]);

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

{printf(“\n”);

for(j=0;j<3;j++)printf(“%1d”,a[i][j]);

}

}

A.111222333B.123123123C.333222111D.321321321

2.C语言程序的三种基本结构是顺序结构、选择结构和结构。

A.递归B.嵌套C.转移D.循环

3.判断char形变量ch是否是大写字母的正确表达式是。

A.‘A’<=ch<=’Z’B.(ch>=’A’)&(ch<=’Z’)

C.(ch>=’A’)&&(ch<=’Z’)D.(‘A’<=ch)AND(‘Z’>=ch)

4.已知intx=10,y=20,z=30;以下语句执行后,x、y、z的结果是。

if(x>y)

z=x;x=y;y=z;

A.x=10,y=20,z=30B.x=20,y=30,z=30

C.x=20,y=30,z=10D.x=20,y=30,z=20

5.定义函数时,缺省函数的类型声明,则函数类型取缺省类型。

A.voidB.char

C.floatD.int

6.以下程序段的运行结果是。

x=0;y=0;

while(x<15)y++,x+=++y;

printf(“%d,%d”,y,x);

A.20,7B.6,20C.20,8D.8,20

7.若用数组名作为函数调用的实参,传递给形参的是。

A.数组的首地址B.数组第一个元素的值

C.数组全部元素的值D.数组元素的个数

8.以下程序的运行结果是。

main()

{inta[5]={1,2,3,4,5},i,j,t;

for(j=1;j<=2;j++)

{t=a[4];

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

a[0]=t;

}

for(i=0;i<5;i++)printf("%d",a[i]);

}

A.45123B.34512C.51111D.15555

9.若有以下的定义:

intt[3][2];能正确表示t数组元素地址的表达式是。

A.&t[3][2]B.t[3]C.t[1]D.t[2][0]

10.以下程序的运行结果是。

inta=3,b=5;

f(inta){a++;b+=a;}

main()

{inta=6;

f(a-1);

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

}

A.3,8B.3,11C.6,8D.6,11

11.不是无限循环的语句有

A.for(i=0;i=10;i++);B.for(i=10;i--;);

C.for(i=-10;;i++);D.for(;i=1;);

12.若inta=10;执行下列程序后,变量a的正确结果是

switch(a){case9:

a+=1;

case10:

a+=1;

case11:

a+=1;

default:

a+=1;

}

A.10B.11C.12D.13

13.以下程序的运行结果是。

main()

{chara[20]="xyz",*p=a,*p1;

for(;*p;p++);

for(p1=p-1;p1>=a;p++,p1--)*p=*p1;

*p=0;

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

}

A.xyzB.zyxC.xyzxyzD.xyzzyx

14.以下程序的运行结果是。

voidf(char*p)

{if(*P==0)return;

if(*p!

=’d’)f(p+1);

printf(“%c”,*p);

}

main()

{charc[]=“abcdef”;

f(c);

}

A.abcdefB.fedcbaC.abcdD.dcba

15.以下程序的正确的运行结果是。

sub(intx,inty,int*z)

{*z=y-x;}

main()

{inta,b,c;

sub(10,5,&a);

sub(7,a,&b);

sub(a,b,&c);

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

}

A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7

16.以下程序中,不符合C语法规则的语句有。

main()

{int*p1,a[10];

float*p2;

A.p1=a+1;

B.p2=p1;

C.p2=(float*)p1;

D.p1=a++;

}

17.以下程序中不符合C语法规则的语句是。

main()

{

A.inta[‘a’*2],*p=a,i;

B.for(i=0;i<10;i++)scanf(“%d”,a);

C.for(i=0;i<10;i++)scanf(“%d”,p++);

D.for(i=0;i<10;i++)scanf(“%d”,a++);

}

18.设有inta[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是。

A.10,11,12

B.11,12,12

C.10,12,12

D.11,11,12

19.以下对结构体变量的操作中,不能正确执行的语句是。

struct

{intnum;

charname[10];

floatscore;

}a,b;

A.a=b;B.a.num=b.num;C.a.name=b.name;D.a.score=b.num

20.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是。

A.EOFB.0C.非零值D.NULL

三.程序阅读题

(1)main()

{intj,F[5]={0,1};

for(j=2;j<5;j++)F[j]=F[j-1]+F[j-2];

for(j=0;j<5;j++)printf(“%5d”,F[j]);

printf(“\n”);

}

(2)main()

{inta=0,b=5,c=0,d=10;

if(a)d+=10;

elseif(!

b)

if(!

c)d=15;

elsed

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

当前位置:首页 > 医药卫生 > 基础医学

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

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