C语言复习题.docx

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

C语言复习题.docx

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

C语言复习题.docx

C语言复习题

一、(01)在while(x)中的(x)与下面条件等价的是(D)

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

=1D)x!

=0

(02)C语言中,运算对象必须是整型数的运算符是(A)

A)%B)/

C)

(03)以下选项中合法的用户标识符是(B)

A)longB)_2TestC)3DmaxD)A.dat

(04)以下选项中属于C语言的数据类型的是(C)

A)复数型B)逻辑型C)双精度型D)集合型

(05)设x,y,z和k都是int型变量,则执行表达式:

x=(y=4,z=16,k=32)后,x的值为(C)

A)4B)16

C)32D)52

(06)设x、y、t均为int型变量,则执行语句:

x=y=3;t=++x||++y;后,y的值为(C)

A)不定值B)4C)3D)1

(07)以下程序的输出结果是(C)

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,1

C)1,0D)1,1

(08)以下程序的输出结果是(B)

main()

{inti=10,j=1;

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

}

A)9,2B)10,2C)9,1D)10,1

(09)已知:

intI;floatf;以下语句正确的是(D)

A)(intf)%IB)int(f)%I

C)int(f%I)D)(int)f%I

(10)以下程序的输出结果是(小数点后只写一位)(A)

main()

{doubled;

floatf;

longl;

inti;

i=f=l=d=20/3;

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

}

A)666.06.0

B)666.76.7

C)666.06.7

D)666.76.0

(11)有以下程序,程序运行后的输出结果是(D)

main()

{intm=3,n=4,x;

x=-m++;

x=x+8/++n;

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

}

A)3B)5

C)-1D)-2

(12)有定义语句:

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

A)1112<回车>

B)11,12<回车>

C)11,12<回车>

D)11,<回车>

12<回车>

(13)若intx;且有下面的程序片段,则输出结果是(D)

for(x=3;x<6;x++)printf((x%2)?

”**%d”:

”##%d\n”,x);

A)**3

##4

**5

B)##3

**4

##5

C)##3

**4##5

D)**3##4

**5

(14)有以下程序,执行后输出结果是(D)

main()

{inti,s=0;

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

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

}

A)自然数1~9的累加和

B)自然数1~10的累加和

C)自然数1~9中奇数之和

D)自然数1~10中偶数之和

(15)以下程序的输出结果是(B)

main()

{ints,i;

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

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

A)6B)5

C)10D)12

(16)已知:

intx=1,y=2,z;则执行:

z=x>y?

++x:

++y,z的值为(C)

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

(17)C语言中的函数是(D)

A)可以嵌套定义。

B)不可以嵌套调用

C)嵌套调用,但不能递归调用。

D)嵌套调用和递归调用均可

(18)以下不能正确定义二位数组的选项是(C)

A)inta[2][2]={{1},{2}} ;

B)inta[2][2]={{1},2,3}

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

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

(19)以下函数调用语句含有(B)个实参。

func((exp1,exp2),(exp3,exp4,exp5));

A)1B)2

C)3D)4

(20)若所有变量都是整型,

表达式(a=2,b=5,a>b?

a++:

b++,a+b)的值是(C)。

A)2B)7

C)8D)9

二、(01)以下程序的输出结果是(C)

main()

{inta=-1,b=1,k;

if((++a<0)&&!

(b--<=0))printf(“%d%d\n”,a,b);

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

}

A)-11B)01

C)10D)00

(02)以下程序的输出结果是(A)

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;}

case2:

a++;b++;break;}

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

A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2

(03)以下程序的输出结果是(C)

main()

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

if(a

if(b<0)c=0;

elsec++;

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

A)0B)1

C)2D)3

(04)执行下面的程序时从键盘上输入3和4,则输出(B)

main()

{inta,b,s;

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

s=a;

if(a

s=s*s;

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

A)14B)16

C)18D)20

(05)有定义语句:

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

A)if(c

elseif(b

elsex=3;

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

elseif(a<2)x=2;

elsex=1;

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

if(a<2)x=2;

if(a<1)x=1;

D)if(a

if(b

if(c

(06)以下程序输出的结果是(C)

main()

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

d=(a>b>c);

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

}

A)-1B)1

C)0D)无结果

(07)下面程序的输出结果是(A)

main()

{intn=0;

while(n++<=1)printf(“%d\t”,n);printf(“%d\n”,n);

}

A)123B)012

C)112D)122

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

main()

{ints=0,a=1,n;

scanf(“%d”,&n);

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

while(a!

=n);

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

}

A)-1B)-3

C)-5D)0

(09)以下循环体的执行次数是(C)

main()

{inti,j;

for(i=0,j=1;i<=j+1;i+=2,j--)printf(“%d\n”,i);

}

A)3B)2

C)1D)0

(10)以下程序的输出结果是(A)

main()

{inti;

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

{if(i%2)printf(“*”);

elsecontinue;

printf(“#”);}

printf(“$\n”);}

A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$

(11)执行下面的程序后,变量k的值为(A)

intk=3,s[2];s[0]=k;k=s[1]*10;

A)不定值B)33

C)30D)10

(12)以下程序的输出结果是(D)

main()

{intn[5]={0,0,0},i,k=2;

for(i=0;i

n[i]=n[i]+1;

printf(“%d\n”,n[k]);

}

A)不确定的值B)2

C)1D)0

(13)以下程序的输出结果是(B)

main()

{inti,k=5,a[10],p[3];

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

for(i=0;i<3;i++)p[i]=a[i*(i+1)];

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

k+=p[i]*2;

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

}

A)20B)21C)22D)23

(14)以下各组选项中,均能正确定义二维实型数组s的选项是(D)

A)①floats[3][4];

②floats[][4];

③floats[3][]={{1},{0}};

B)①floats(3,4);

②floats[3][4];

③floats[][]={{0};{0}};

C)①floats[3][4];

②floats[3][];

③floats[][4];

D)①floats[3][4];

②floats[][4]={{0},{0}};

③floats[][4]={{0},{0},{0}};

(15)已有定义:

intx=3,y=4,z=5;则表达式!

(x+y)+z-1&&y+z/2的值是(C)

A)2B)0

C)1D)6

(16)以下程序的输出结果是(D)

voidf(intx,inty)

{intt;

if(x

{t=x;x=y;y=t;}

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,5B)5,3,4C)5,4,3D)4,3,5

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

voidfun(intn,doublex){……}

A)fun(inty,doublem);B)k=fun(10,12.5);

C)fun(x,n);D)voidfun(n,x);

(18)以下程序的输出结果是(B)

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)9C)21D)9.0

(19)程序段如下,则正确的执行结果是last=(C)

intk=0;

while(k++<=2);printf(“last=%d\n”,k);

A)2B)3

C)4D)无结果

(20)假定int类型变量占用两个字节,若有定义:

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

A)3B)6

C)10D)20

三、1、根据下面的公式求y的值。

3x+1(x>10)

y=2x-5(10≥x≥5)

x+3(x<5)

#include“stdio.h”

main()

{floatx,y;

(1)scanf(“%f”,&x);

if(

(2)x>10)

(3)y=3*x+1;

else

if((4)x>=5)

(5)y=2*x-5;

else

y=x+3;

printf(“y=%f\n”,y);

}

2、打印下面的图形。

 

*

***

*****

*******

#include“stdio.h”

main()

{inti,j,k;

for(i=1;

(1)i<=4;i++)

{for(k=1;

(2)k<=4-i;k++)

(3)printf(“”);

for(j=1;(4)j<=2*i-1;j++)

printf(“*”);

(5)printf(“\n”);}

}

四、1、从键盘上输入10个整数,利用一维数组a[10]进行从小到大排序后依次打印出来。

main()

{inti,j,a[10];

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

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

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

{for(j=i+1;j<10;j++)if(a[i]>a[j]){a[i]=a[i]+a[j];a[j]=a[i]-a[j];a[i]=a[i]-a[j];}

printf(“%d”,a[i]);}

printf(“%d”,a[9]);}

2、一个班有20名同学,“网络编程语言”考试结束后产生20个成绩,求这门课程的总分、最高分及最低分。

要求:

输入数据和打印结果由主函数完成,计算总分、最高分及最低分由函数fun完成。

#include“stdio.h”

#defineN20

intsum=0,max=0,min=100;

voidfun(inta[N])

{inti;

for(i=0;i

{sum=sum+a[i];

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];}

}

main()

{ints[N],i;

for(i=0;i

scanf(“%d”,&s[i]);

fun(s);

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

}

B一、(01)已知:

intx=1,y=2,z;则执行:

z=x>y?

++x:

++y,z的值为(C)

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

(02)以下选项中可作为C语言合法整数的是(C)

A)10110BB)0386

C)0XffaD)x2a2

(03)下列选项中,不能用作标识符的是(D)

A)_1234_B)_1_2C)int_2_D)2_int_

(04)C语言提供的合法的数据类型关键字是(D)

A)swicthB)cherC)CaseD)default

(05)设intx=1,y=1;表达式(!

x||y--)的值是(B)

A)0B)1

C)2D)-1

(06)设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的值为(B)

A)1B)2

C)3D)4

(07)以下选项中,与k=n++完全等价的表达式是(A)

A)k=n,n=n+1

B)n=n+1,k=n

C)k=++n 

D)k+=n+1

(08)若给定条件表达式(M)?

(a++):

(a--),则其中表达式M(C)

A)和(M==0)等价

B)和(M==1)等价

C)和(M!

=0)等价

D)和(M!

=1)等价

(09)若有定义:

inta=8,b=5,c;执行语句c=a/b+0.4;后,c的值为(B)

A)1.4B)1

C)2.0D)2

(10)设有语句:

inta=3;则执行了语句a+=a-=a*a;后,变量a的值是(D)

A)3B)0

C)9D)-12

(11)有以下程序,程序运行后的输出结果是(D)

main()

{intm=3,n=4,x;

x=-m++;

x=x+8/++n;

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

}

A)3B)5

C)-1D)-2

(12)若变量已正确说明为float型,通过语句scanf(“%f%f%f”,&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是(B)

A)10<回车>

22<回车>

33<回车>

B)10.0,22.0,33.0<回车>

C)10.0<回车>

22.033.0<回车>

D)1022<回车>

33<回车>

(13)以下程序的输出结果是(C)

main()

{intk=2,i=2,m;

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

}

A)8,6B)8,3

C)6,4D)7,4

(14)C语言规定,调用一个函数时,实参和形参变量之间的数据传递是(B)

A)地址传递

B)值传递

C)由实参传给形参,并由形参传回来给实参

D)由用户指定传递方式

(15)为判断char型变量m是否是数字,可以使用表达式(B)

A)0<=m&m<=9B)’0’<=m&&m<=’9’C)’0’<=m&&m<=9

D)以上答案都是错误的。

(16)以下程序的输出结果是(B)

main()

{ints,i;

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

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

}

A)6B)5

C)10D)12

(17)若w,x,y,z,m均为int型变量,则执行下面语句后的m值是:

(A)

 w= 1;

x = 2;

y= 3;

z=4;

m=(w

w:

x;

m= (m

  m:

y; 

m=(m

m:

z;

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

(18)以下描述中正确的是:

C

A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C)在do-while循环体中,一定要有能使while后表达式值变为零("假")的操作

D)do-while循环中,根据情况可以省略while

(19)若有说明:

int a[3][4]; 则对a数组元素的正确引用是_C_。

A)  a[2][4]     B)  a[1,3]   

C)  a[1+1][0]    D)  a

(2)

(1)

(20)C语言中的函数是(D)

A)可以嵌套定义

B)不可以嵌套调用

C)嵌套调用,但不能递归调用

D)嵌套调用和递归调用均可

二、(01)以下程序的输出结果是(B)

main()

{intx=5;

if(x++>5)printf(“%d\n”,x);

elseprintf(“%d\n”,x--);

}

A)7B)6

C)5D)4

(02)以下程序的输出结果是(B)

main()

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

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

elseif((c-1>=d)==1)printf(“%d\n”,d+1);

elseprintf(“%d\n”,d+2);

}

A)2B)3

C)4D)编译时有错,无结果

(03)有以下程序,程序运行后的输出结果是(C)

main()

{inta=7,b=8,*p,*q,*r;

p=&a;

q=&b;

r=p;

p=q;

q=r;printf(“%d,%d,%d,%d\n”,*p,*q,a,b);

}

A)8,7,8,7B)7,8,7,8C)8,7,7,8D)7,8,8,7

(04)以下程序的输出结果是(A)

main()

{intx=1,a=0,b=0;

switch(x)

{case0:

b++;

case1:

a++;

case2:

a++;b++;}

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

}

A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2

(05)以下程序的输出结果是(C)

main()

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

if(b

if(b<0)c=0;

c++;b++;

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

}

A)b=1,c=2B)b=1,c=0C)b=2,c=3D)b=1,c=1

(06)以下程序的输出结果是(B)

main()

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

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

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

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

当前位置:首页 > 求职职场

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

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