c语言经典选择填空题1.docx

上传人:b****5 文档编号:29682529 上传时间:2023-07-26 格式:DOCX 页数:23 大小:23.60KB
下载 相关 举报
c语言经典选择填空题1.docx_第1页
第1页 / 共23页
c语言经典选择填空题1.docx_第2页
第2页 / 共23页
c语言经典选择填空题1.docx_第3页
第3页 / 共23页
c语言经典选择填空题1.docx_第4页
第4页 / 共23页
c语言经典选择填空题1.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

c语言经典选择填空题1.docx

《c语言经典选择填空题1.docx》由会员分享,可在线阅读,更多相关《c语言经典选择填空题1.docx(23页珍藏版)》请在冰豆网上搜索。

c语言经典选择填空题1.docx

c语言经典选择填空题1

选择题(30分)(第一部分分10分,第二部分12分,第三部分8分)

第一部分:

简单类题目(50个题目,从中选择10,每题1分)

1、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为(C)

A.4B.16C.32D.522

2.以下程序的输出结果(B)。

main()

{intx1=3,x2=0,x3=0;

if(x1=x2+x3)

printf("****");

elseprintf("####");

}

A.输出:

****B.输出:

####

C.存在语法错误D.无输出结果

3.下面四个选项中,均是合法转义字符的选项是(A)。

A.'\'''\\''\n'B.'\''\017''\"'

C.'\018''\f''xab'D.'\\0''\101''xlf'

4.若有说明:

inta=1,b=2,c=3,d=4;则表达式a

a:

c

c:

d的值是(D)。

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

5.设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是(D)。

A.i&&jB.i<=j

C.i||j+k&&j-kD.!

((i

k||1)

6.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。

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

A.num%2==1B.!

(num%2==0)C.!

(num%2)D.num%2

7.有以下程序

main()

{intm=3,n=4,x;

x=-m++;

x=x+8/++n;

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

}

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

A.3B.5C.-1D.-2

8.若有变量说明:

inta=0,b=0,c=0;,以下符合C语言语法的赋值表达式是(C)。

A.a=9+b+c=a+9B.a=9+b;c=a+9;

C.a=(9+b,b++)D.a=9+b++=a+7

9.若有以下定义,若intm=7,n=12,则能得到值为3的表达式是(D)。

A.n%=(m%=5)B.n%=(m-m%5)

C.n%=m-m%5D.(n%=m)-(m%=5)

10.以下能正确定义整型变量x、y和z并为其赋初值5的语句是(C)。

A.intx=y=z=5;B.intx,y,z=5;

C.intx=5,y=5,z=5;D.x=5,y=5,z=5;

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

A.abs(x-y)<10B.x-y>-10&&x-y<10

C.(x-y)<-10||!

(y-x)>10D.(x-y)*(x-y)<100

12.设inta=12,则执行完语句a+=a-=a*a后,a的值是(D)。

A552B264C144D-264

13以下叙述不正确的是(D)

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

B)一个C源程序必须包含一个main函数

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

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

14下关于运算符优先顺序的描述中正确的是(C)。

A)关系运算符<算术运算符<赋值运算符<逻辑与运算符

B)逻辑运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑与运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑与运算符

15下列程序的输出结果是(C)

main()

{inta=7,b=5;

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

}

A5B1C0D不确定值

16printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。

如果字符串长度大于5,则输出按方式(B)

A)从左起输出该字串,右补空格

B)按原字符长从左向右全部输出

C)右对齐输出该字串,左补空格

D)输出错误信息

17.以下叙述正确的是(C)

A.在C程序中,main函数必须位于程序的最前面

B.C程序的每行中只能写一条语句

C.C语言本身没有输入输出语句

D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误

18.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B)

A.7B.8C.6D.2

19.下面不正确的字符串常量是(A)

A.'abc'B."1212"C."0"D.""

20.已知各变量的类型说明如下:

inti=8,k,a,b;

unsignedlongw=5;

doublex=1.42,y=5.2;

则以下符合C语言语法的表达式是(A)

A.a+=a-=(b=4)*(a=3)B.a=a*3=2

C.x%(-3)D.y=f1oat(i)

21.若有说明语句:

charc='\72'则变量c描述正确的是(A)

A.包含1个字符B.包含2个字符

C.包含3个字符D.说明不合法,c的值不确定

22.已有定义intx;f1oaty;且执行scanf("%3d%f",&x,&y);语句,若输入1234578(回车),则x的值为(B)

A.12345B.123C.45D.345

23.能正确表示"当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是(C)

A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

B.(x>=1)||(x<=10)||(x>=200)||(x<=210)

c.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)

24.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A)

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

25.在if(x)语句中的x与下面条件表达式等价的是:

(A)

A)x!

=0B)x==1C)x!

=1D)x==0

26、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为(A)

A、DB、EC、一个不确定的值D、C

27.已知x=3、y=2,则表达式x*=y+8的值为(C)

A)3B)2C)30D)10

28.设x为int型变量,则执行以下语句后,x的值为(B)。

x=10;x+=x-=x-x;

A)10B)20C)40D)30

29若有以下类型说明语句:

chara;intb;

floatc;doubled;则表达式a*b+d-c的结果类型为(D)

A.floatB.charC.intD.double

30若二维数组a有m列,则在a[i][j]前的元素个数为(B)

A)j*m+iB)i*m+j

C)i*m+j-1D)i*m+j+1

31对for(表达式1;;表达式3)可理解为(B)

A)for(表达式1;0;表达式3)

B)for(表达式1;1;表达式3)

C)for(表达式1;表达式1;表达式3)

D)for(表达式1;表达式3;表达式3)

32以下描述不正确的是(C)。

A.使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成

B.while循环是先判断表达式,后执行循环语句

C.do-while和for循环均是先执行循环语句,后判断表达式

D.for、while和do-while循环中的循环体均可以由空语句构成

33.下列程序段的运行结果是(C)。

intn=0;while(n++<=3);printf(“%d”,n);

A3B4C5D有语法错误

34.设inta=3,b=4,c=5;,下列表达式的值不为1的是(A)。

A)a+b>c&&b==cB)a||b+c&&b-c

C)!

(a>b)&&!

c||1D)!

(a+b)+c-1&&b+c/2

35.有以下程序:

#include

voidmain()

{

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

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

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

}

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

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

36、以下能正确进行字符串赋值操作的是(D)

A、chars[5]={"ABCDE"};

B、chars[5]={'A','B','C','D','E'};

C、char*s;*s="ABCDE";

D、char*s="ABCDE";

37下面程序的运行结果是(B)

#include

#include

main()

{

char*s1="AbDeG";

char*s2="AbdEg";

s1+=2;s2+=2;

printf("%d",strcmp(s1,s2));

}

A)正数B)负数C)零D)不确定的值

38若有定义:

inta[2][3],则对a数组的第i行j列元素地址的正确引用为(A)

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

39以下能对二维数组y进行初始化的语句是(B)

A、staticinty[2][]={{1,0,1},{5,2,3}};

B、staticinty[][3]={{1,2,3},{4,5,6}};

C、staticinty[2][4]={{1,2,3},{4,5},{6}};

D、staticinty[][3]={{1,0,1,0},{},{1,1}};

40以下printf语句的输出结果是(B)

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

A、7B、6C、存在语法错误D、不定值

41不能把字符串:

Hello!

赋给数组b的语句是(B)。

A.charb[10]={'H','e','l','l','o','!

'};

B.charb[10];b="Hello!

";

C.charb[10];strcpy(b,"Hello!

");

D.charb[10]="Hello!

";

42.设有定义:

inta[10],*p=a+6,*q=a;,则下列运算哪种是错误的(C)

Ap-qBp+3Cp+qDp>q

43.下列描述中不正确的是(C)

A)字符型数组中可以存放字符串

B)可以对字符型数组进行整体输入、输出

C)可以对整型数组进行整体输入、输出

D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值

44以下对指针变量的操作中,不正确的是(D)

A、inta,*p,*q;p=q=&a;

B、inta=6,*p,*q=&a;p=q;

C、inta=b=6,*p;p=&a;b=*p;

D、inta,*p,*q;q=&a;p=*q;

45.给出以下定义

charx[]="abcdefg";

chary[]={'a','b','c','d','e','f','g'};

则正确的叙述为(C)。

A)数组x和数组y等价

B)数组x和数组y的长度相同

C)数组x的长度大于数组y的长度

D)数组x的长度小于数组y的长度

46、设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是(B)

A、y=(y*100+0.5)/100.0B、x=y*100+0.5,y=x/100.0

C、y=y*100+0.5/100.0D、y=(y/100+0.5)*100.0

47判断char型变量c1是否为大写字母的正确表达式是(C)

A、'A'<=c1<='Z'B、(c1>='A')&(c1<='Z')

C、(c1>='A')&&(c1<='Z')D、('A'<=c1)AND('Z'>=c1)

48若a为已知整型变量,则对指针变量p的正确说明和初始化为(B)。

A.int*p=a;B.int*p=&a;C.int*p=*a;D.int&p=&a;

49下列条件语句中,功能与其它语句不同的是(D)。

A.if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y);

B.if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x);

C.if(a!

=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);

D.if(a=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);

50.若有语句:

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

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

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

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

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

第二部分:

中等难度题目(24个题目,从中选择8个,每题1.5分共12分)

1设有声明语句:

inta=1,b=0;则执行以下语句后输出:

(B)

switch(a)

{

case1:

switch(b)

{

case0:

printf("**0**");break;

case1:

printf("**1**");break;

}

case2:

printf("**2**");break;

}

A)**0**B)**0****2**

C)**0****1****2**D)有语法错误

2若有如下程序段,其中s,a,b,c均已定义为整型变量,且a、c均已赋值

s=a;

for(b=1;b<=c;b++)s=s+1;

则与上述程序段功能等价的赋值语句是(B)。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

3.若有程序段:

for(m=1;m<=100;m++)

{

scanf("%d",&y);

if(y<0)continue;

printf("%3d",m);

}

正确的描述是(D)。

A当y<0时整个循环结束By>=0时什么也不输出

Cprintf函数永远也不执行D最多允许输出100个非负整数

4.若有程序段如下:

a=b=c=0;x=35;

if(!

a)x--;

elseif(b);if(c)x=3;

elsex=4;

执行后,变量x的值是(B)

A.34B.4C.35D.3

5.有以下程序:

#include

voidmain()

{

inti=0,s=0;

for(;;)

{

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

if(i==6)break;

i++;

s+=i;

};

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

}

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

A)10B)13C)21D)程序进入死循环

6下面程序段是输出两个字符串中对应位置相等的字符,横线处应该是(A)

charx[]=”programming”;

chary[]=”Fortran”;

inti=0;

while(x[i]!

=’\0’&&y[i]!

=’\0’)

if(x[i]==y[i])printf(“%c”,);

elsei++;

A)x[i++]B)y[++i]

C)x[i]D)y[i]

7.阅读以下程序:

#include

voidmain()

{

intx;

scanf("%d",&x);

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

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

}

程序执行后,如果从键盘上输入5,则输出结果是(B)

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

8intfun(char*a,char*b)

{

while((*a!

='\0')&&(*b!

='\0')&&(*a==*b))

{

a++;b++;

}

return(*a-*b);

}

该函数的功能是___D___。

A)计算a和b所指字符串的长度之差

B)将b所指字符串连接到a所指字符串中

C)将b所指字符串连接到a所指字符串后面

D)比较a和b所指字符串的大小

9.有如下程序段:

charstr[14]={"Iam"};

strcat(str,"sad!

");

scanf("%s",str);

printf("%s",str);

当输入为happy!

时,输出的结果是(B)。

(A)Iamsad!

(B)happy!

(C)Iamhappy!

(D)happy!

ad!

10.以下程序的输出结果是(C)。

#include

#include

voidmain()

{

charb[30];

strcpy(&b[0],"CH");

strcpy(&b[1],"DEF");

strcpy(&b[2],"ABC");

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

}

A)CHDEFB)DEFABCC)CDABCD)CHABC

11.下面程序的输出结果为(A)。

#include

voidmain()

{

inta[3],i,j,k=2;

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

a[i]=0;

for(i=0;i

for(j=0;j

a[j]=i*j;

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

}

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

12.以下程序:

#include

voidmain()

{

intaa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];

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

{

if(i==0)aa[i][i+1]=*p+1;

else++p;

printf("%d",*p);

}

printf("\n");

}

其输出结果是(A)

A)23B)26C)33D)36

13.下面程序的输出结果是(B)。

#include

voidmain()

{

inti,j,k;

charstr[5];

for(i=0;i<5;i++)str[i]='A';

k=4;

for(i=0;i

for(j=0;j

str[j]=str[i]+32;

printf("%c\n",str[k]);

}

A)aB)AC)BD)不确定的值

14.下列程序的输出结果为(B)。

#include

voidmain()

{

intk=0,i,s[]={1,-9,7,2,-10,3};

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

if(s[i]>s[k])

k=i;

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

}

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

15.以下程序的输出结果是(C)。

#include

voidmain()

{

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

inti;

i=8;

p=a+i;

printf("%s\n",p-3);

}

A)6B)'6'C)6789D)789

16.有以下程序

#include

voidmain()

{

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

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

}

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

A)16B)10C)8D)6

17.有以下程序

#include

voidmain()

{

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

}

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

A)012B)123C)234D)345

18.有以下程序

#include

voidmain()

{

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\n",j);

}

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

A)42B)45C)56D)60

19.有以下程序

voidsum(int*a)

{a[0]=a[1];}

main()

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

for(i=2;i>=0;i--)sum(&aa[i]);

printf("%d\n",aa[0]);

}执行后的输出结果是(A)

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

20.以下程序运行后,输出结果是(A)。

#include

intd=1;

voidfun(intp)

{

intd=5;

d

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

当前位置:首页 > 高中教育 > 高中教育

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

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