admin 管理员组

文章数量: 1184232


2024年4月28日发(作者:redis大数据量频繁读取)

精心整理

C语言基础练习100题(含答案)

雷柳青编排

1、下面程序的输出是________

#include

voidmain()

{intk=11;

printf("k=%d,k=%o,k=%xn",k,k,k);

}

A)k=11,k=12,k=11B)k=11,k=13,k=13

C)k=11,k=013,k=0xbD)k=11,k=13,k=b

2、在下列选项中,不正确的赋值语句是

________.

A)++t;B)n1=(n2=(n3=0));

C)k=i=j;D)a=b+c=1;

3、下面合法的C语言字符常量是

__________.

A)'t'B)"A"C)65D)A

4、字符(char)型数据在微机内存中的存

储形式是____.

A)反码B)补码C)EBCDIC码D)ASCII码

5、设inta=12,则执行完语句a+=a-=a*a

后,a的值是________

A)552B)264 C)144D)-264

精心整理

6、执行下面程序中的输出语句后,输出结

果是______.

#include

voidmain()

{inta;

printf("%dn",(a=3*5,a*4,a+5));

}

A)65B)20 C)15D)10

7、下面程序的输出是__________.

#include

voidmain()

{intx=023;

printf("%dn",--x);

}

A)17B)18 C)23D)24

8、下面程序的输出是___________.

#include

voidmain()

{charch1,ch2;

ch1='A'+'5'-'3';

ch2='A'+'6'-'3';

printf("%d,%cn",ch1,ch2);

}

A)67,DB)B,CC)C,DD)不确定的值

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

#include

voidmain()

{intx=10,y=10;

printf("%d%dn",x--,--y);

}

A)1010B)99 C)910D)109

10、若x和y都是int型变量,x=100,y=200,

且有下面的程序片段:

printf("%d",(x,y));

上面程序片段的输出结果是_______.

A)200B)100

C)100200D)输出格式符不够,输出不确定

的值

11、阅读下面的程序

#include

voidmain()

{

inti,j;

i=010;

j=9;

精心整理

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

}

则程序的运行结果是________.

A)1,19B)-1,19 C)1,17D)-1,17

12、阅读下面的程序

#include

voidmain()

{

inti,j,m,n;

i=8;j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

程序的运行结果是_________.

A)8,10,8,10B)9,11,8,10

C)9,11,9,10D)9,10,9,11

13、若已定义inta,则表达式

a=10,a+10,a++的值是___.

A)20B)10 C)21D)11

14、阅读下面的程序

#include

voidmain()

{

inti,j;

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

printf("i=%d,j=%dn",i,j);

}

如果从键盘上输入1234567<回车>,则程

序的运行结果是________.

A)i=123,j=4567B)i=1234,j=567

C)i=1,j=2D)i=123,j=45

15、下面程序的输出结果是________.

#include

voidmain()

{

inta=-1,b=4,k;

k=(++a<=0)&&(b--<=0);

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

}

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

16、下面程序的输出结果是_______.

#include

voidmain()

{

inta=5,b=3;

floatx=3.14,y=6.5;

printf("%d,%dn",a+b!=a-b,x<=(y-=6.1

精心整理

));

}

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

17、若有以下定义和语句:

inta=010,b=0x10,c=10;

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

则输出结果是_________.

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

18、已知有double型变量x=2.5,y=4.7,

整型变量a=7,

则表达式x+a%3*(int)(x+y)%2/4的值是

_________.

A)2.4B)2.5 C)2.75D)0

19、设有以下语句:intx=10;x+=3+x%3,则x

的值是._________

A)14B)15 C)11D)12

20、若d为double型变量,则表达式

d=1,d+5,d++的值是_______.

A)1B)6.0 C)2.0D)1.0

21、若有定义inta=12,n=5,则表达式

a%=(n%2)运算后,a的值__________.

A)0B)1 C)12D)6

22、若有定义intx=3,y=2和

floata=2.5,b=3.5,则表达

式:(x+y)%2+(int)a/(int)b的值是____.

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

23、在C语言中,以下叙述不正确的是

________.

A)在C程序中,无论是整数还是实数,都能

被准确无误的表示

B)在C程序中,变量名代表存储器中的一

个位置

C)静态变量的生存期与整个程序的生存

期相同

D)C语言中变量必须先定义后引用

24、设a为整型变量,不能正确表达数学

关系10

________.

A)10

14

C)a>10&&a<15D)!(a<=10)&&!(a>=15)

25、如果c为字符型变量,判断c是否

为空格不能使用________.(假设已知空

格ASCII码为32)

A)if(c=='32')B)if(c==32)

C)if(c=='40')D)if(c=='')

26、执行下面程序时,若从键盘输入

"2",则程序的运行结果是________.

精心整理

#include

voidmain()

{intk;charcp;

cp=getchar();

if(cp>='0'&&cp<='9')

k=cp-'0';

elseif(cp>='a'&&cp<='f')

k=cp-'a'+10;

elsek=cp-'A'+10;

printf("%dn",k);

}

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

27、执行下面程序后,运行结果是

________.

#include

voidmain()

{intx=41,y=1;

if(x%3==0&&x%7==0)

{y+=x;printf("y=%dn",y);}

else

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

}

A)y=41B)y=43 C)y=42D)y=1

28、运行下面程序时,从键盘输入

"12,34,9",则输出结果是______.

#include

voidmain()

{intx,y,z;

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

if(x

if(y

elseprintf("%dn",y);

elseif(x

elseprintf("%dn",x);

}

A)34B)12 C)9D)不确定的值

29、运行下面程序时,从键盘输入字母H,

则输出结果是________.

#include

voidmain()

{charch;

ch=getchar();

switch(ch)

{case'H':printf("Hello!n");

case'G':printf("Goodmorning!n");

default:printf("Bye_Bye!n");

}

}

精心整理

A)Hello!B)Hello!

GoodMorning!

C)Hello!D)Hello!

Good morning!Bye_Bye!

Bye_Bye!

30、执行下列程序段后的输出结果是

_________.

intx=1,y=1,z=1;

x+=y+=z;

printf("%dn",x

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

31、设ch是char型变量,值为'A',则表达

式ch=(ch>='A'&&ch<='Z')?ch+32:ch的值

是_____.

A)ZB)aC)zD)A

32、下面程序的输出结果是________.

#include

voidmain()

{intx=8,y=-7,z=9;

if(x

if(y<0)z=0;

elsez-=1;

printf("%dn",z);

}

A)8B)1 C)9D)0

33、运行下面程序时,若从键盘输入"3,

4",则程序的输出结果是_______.

#include

voidmain()

{inta,b,s;

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

s=a;

if(s

s=s*s;

printf("%dn",s);

}

A)14B)16 C)18D)20

34、下列程序的执行结果是_________.

#include

voidmain()

{intx=0,y=1,z=0;

if(x=z=y)

x=3;

printf("%d,%dn",x,z);

}

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

35、能够完成如下函数计算的程序段是

______.

精心整理

┌-1x<0

y=┤0x=0

└1x>0

A)y=1;B)if(x>=0)

if(x!=0)if(x>0)y=1;

if(x>0)y=1;elsey=0;

elsey=0;elsey=-1;

C)y=0;D)y=-1;

if(x>=0)if(x>0)y=1;

if(x>0)y=1;elsey=0;

elsey=-1;

36、以下程序的执行结果是________.

#include

voidmain()

{intx=1,y=0;

switch(x)

{

case1:

switch(y)

{

case0:printf("firstn");break;

case1:printf("secondn");break;

}

case2:printf("thirdn");

}

}

A)firstB)first

secondthird

C)firstD)second

third

37、以下程序的执行结果是________.

#include

voidmain()

{inta,b,c,d,x;

a=c=0;

b=1;

d=20;

if(a)d=d-10;

elseif(!b)

if(!c)x=15;

elsex=25;

printf("d=%dn",d);

}

A)d=20B)d=10 C)d=15D)25

38、下列程序执行后的输出结果是

________.

#include

voidmain()

精心整理

{intx,y=1,z;

if((z=y)<0)x=4;

elseif(y==0)x=5;

elsex=6;

printf("%d,%dn",x,y);

}

A)4,1B)6,1 C)5,0D)出错信息

39、有如下程序

#include

voidmain()

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

switch(x)

{

case0:b++;

case1:a++;

case2:a++;b++;

}

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

}

该程序的输出结果是__________.

A)a=2,b=1B)a=1,b=1

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

40、下面程序的输出结果是_________.

#include

voidmain()

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

if((++a<0)&&(b--<=0))

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

else

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

}

A)-11B)01 C)10D)00

41、假定w、x、y、z、m均为int型变

量,有如下程序段:

w=1;x=2;y=3;z=4;

m=(w

;

则该程序段执行后,m的值是_________.

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

42、以下程序的输出结果是_________.

main()

{inta=100;

if(a>100)printf("%dn",a>100);

elseprintf("%dn",a<=100);

}

A)a<=100B)100 C)0D)1

43、若执行下面的程序从键盘上输入9,

则输出结果是.______________

精心整理

#include

voidmain()

{intn;

scanf("%d",&n);

if(n++<10)printf("%dn",n);

elseprintf("%dn",n--);}

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

44、以下程序段运行结果是________.

intx=1,y=1,z=-1;

x+=y+=z;

printf("%dn",x

A)1B)2 C)4D)不确定的值

45、有以下程序

#include

voidmain()

{inta,b,c=246;

a=c/100%9;

b=(-1)&&(-1);

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

}

输出结果是________.

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

46、运行下面程序时,若从键盘输入数

据为"123",

则输出结果是_______.

#include"stdio.h"

voidmain()

{intnum,i,j,k,place;

scanf("%d",&num);

if(num>99)

place=3;

elseif(num>9)

place=2;

else

place=1;

i=num/100;

j=(num-i*100)/10;

k=(num-i*100-j*10);

switch(place)

{case3:printf("%d%d%dn",k,j,i);

break;

case2:printf("%d%dn",k,j);

break;

case1:printf("%dn",k);

}

}

A)123B)1,2,3 C)321D)3,2,1

47、执行下列程序后的输出结果是

精心整理

_______.

#include

voidmain()

{intk=4,a=3,b=2,c=1;

printf("%dn",k

}

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

48、以下条件表达式中能完全等价于条

件表达式if(x)中的x的是____.

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

49、若运行下面程序时,给变量a输入15,

则输出结果是______.

#include

voidmain()

{inta,b;

scanf("%d",&a);

b=a>15?a+10:a-10;

printf("%dn",b);

}

A)5B)25 C)15D)10

50、执行下面程序的输出结果是

________.

#include

voidmain()

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

if(a=a+b)printf("****n");

elseprintf("####n");

}

A)有语法错误不能编译

B)能通过编译,但不能通过连接

C)输出****

D)输出####

51、为了避免嵌套的if-else语句的二义

性,C语言规定else总是与______组成

配对关系.

A)缩排位置相同的if

B)在其之前未配对的if

C)在其之前尚未配对的最近的if

D)同一行上的if

52、以下程序段__________.

x=-1;

do

{

x=x*x;

}while(!x);

A)是死循环B)循环执行两次

C)循环执行一次D)有语法错误

53、对下面程序段描述正确的是_______.

精心整理

intx=0,s=0;

while(!x!=0)s+=++x;

printf("%d",s);

A)运行程序段后输出0

B)运行程序段后输出1

C)程序段中的控制表达式是非法的

D)程序段循环无数次

54、下面程序段的输出结果是_______.

x=3;

do{y=x--;

if(!y){printf("*");continue;}

printf("#");

}while(x=2);

A)##B)##*C)死循环D)输出错误信息

55、下面程序的运行结果是_______.

#include

voidmain()

{inta=1,b=10;

do

{b-=a;a++;

}while(b--<0);

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

}

A)3,11B)2,8 C)1,-1D)4,9

56、下面程序段的运行结果是

__________.

intn=0;

while(n++<=2)

printf("%d",n);

A)012B)123 C)234D)错误信息

57、下面程序段的运行结果是________.

intx=0,y=0;

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

printf("%d,%d",y,x);

A)20,7B)6,12 C)20,8D)8,20

58、下面程序的运行结果是________.

#include

voidmain()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

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

59、下面程序段的运行结果是________.

for(x=10;x>3;x--)

精心整理

{if(x%3)x--;

--x;--x;

printf("%d",x);

}

A)63B)74 C)62D)73

60、下面程序的运行结果是________.

#include

voidmain()

{inta,b;

a=-1;

b=0;

do{

++a;

++a;

b+=a;

}while(a<9);

printf("%dn",b);

}

A)34B)24 C)26D)25

61、下面程序段的运行结果是

___________.

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

printf("%d",i);

i++;

A)12345B)1234 C)15D)无限循环

62、下面程序的输出结果是__________.

#include

voidmain()

{intn=4;

while(n--)printf("%d",n--);

}

A)20B)31 C)321D)210

63、以下程序运行后的输出结果是

________.

#include

voidmain()

{inti=10,j=0;

do

{j=j+1;i--;

}while(i>2);

printf("%dn",j);

}

A)50B)52 C)51D)8

64、有如下程序

#include

voidmain()

{intx=23;

do

精心整理

{printf("%d",x--);

}while(!x);

}

该程序的执行结果是_______

A)321B)23

C)不输出任何内容D)陷入死循环

65、以下程序段的执行结果是_______.

inti,j,m=0;

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

for(j=3;j<=19;j+=4)

m++;

printf("%dn",m);

A)12B)15 C)20D)25

66、下面程序的输出结果是___________.

#include

voidmain()

{inti;

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

{if(i%2!=0){printf("#");continue;}

printf("*");

}

printf("n");

}

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

67、下面程序的输出结果是__________.

#include

voidmain()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d%d",x--,y);

}

A)10192B)9876

C)10990D)101091

68、执行以下程序后,输出的结果是

__________.

#include

voidmain()

{inty=10;

do{y--;}

while(--y);

printf("%dn",y--);

}

A)-1B)1 C)8 D)0

69、有如下程序

#include

voidmain()

{intn=9;

while(n>6){n--;printf("%d",n);}

精心整理

}

该程序段的输出结果是__________.

A)987B)876 C)8765D)9876

70、有如下程序

#include

voidmain()

{inti,sum=0;

for(i=1;i<=3;sum++)sum+=i;

printf("%dn",sum);

}

该程序的执行结果是___________.

A)6B)3 C)死循环D)0

71、以下循环体的执行次数是_______

#include

voidmain()

{inti,j;

for(i=0,j=1;i<=j+1;i+=2,j--)

printf("%dn",i);

}

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

72、在执行以下程序时,如果从键盘上

输入:ABCdef<回车>,则输出为________.

#include

voidmain()

{charch;

while((ch=getchar())!='n')

{if(ch>='A'&&ch<='Z')ch=ch+32;

elseif(ch>='a'&&ch<'z')ch=ch-32;

printf("%c",ch);

}

printf("n");

}

A)ABCdefB)abcDEFC)abcD)DEF

73、下面程序的输出结果是__________.

main()

{

inti,k=0,a=0,b=0;

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

{

k++;

if(k%2==0){a=a+k;continue;}

b=b+k;

a=a+k;

}

printf("k=%da=%db=%dn",k,a,b);

}

A)k=5 a=10b=4B)k=3 a=6b=4

C)k=4 a=10b=3D)k=4 a=10b=4

精心整理

74、执行下面程序段后,k的值是

_________.

inti,j,k;

for(i=0,j=10;i

k=i+j;

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

75、以下程序的功能是:从键盘上输入若

干个学生的成绩,统计并输出最高成绩和

最低成绩,当输入负数时结束输入。请填

空。________

#include

voidmain()

{floatx,amax,amin;

scanf("%f",&x);

amax=x;

amin=x;

while(________)

{if(x>amax)amax=x;

if(______)amin=x;

scanf("%f",&x);

}

printf("namax=%fnamin=%fn",ama

x,amin);

}

A)x<=0B)x>0 C)x>0D)x>=0

x>aminx<=aminx>aminx

76、阅读以下程序,程序运行后的输出

结果是______.

#include

voidmain()

{intx;

for(x=5;x>0;x--)

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

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

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

77、以下程序段的输出结果是_______.

intk,n,m;

n=10;m=1;k=1;

while(k<=n){m*=2;k+=4;}

printf("%dn",m);

A)4B)16 C)8D)32

78、语句while(!e);中的条件!e等价于

________.

A)e==0B)e!=1 C)e!=0D)~e

79、以下叙述正确的是_________.

A)continue语句的作用是结束整个循环

的执行

B)只能在循环体内和switch语句体内使

精心整理

用break语句

C)在循环体内使用break语句或continue

语句的作用相同

D)从多层循环嵌套中退出时,只能使用

goto语句

80、在下列选项中,没有构成死循环的

程序段是____.

A)inti=100;B)for(;;);

while(1)

{i=i%100+1;

if(i>100)break;

}

C)intk=1000;D)ints=36;

do{++k;}while(k>=1000);while(s)--s;

81、下面程序的输出结果是________.

#include

voidmain()

{inti;

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

{if(i%2)printf("*");

elsecontinue;

printf("#");

}

printf("$n");

}

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

82、下面程序段中,循环体的执行次数是

_________.

inta=10,b=0;

do{b+=2;a-=2+b;}while(a>=0);

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

83、若i为整型变量,则以下循环语句的

循环次数是__.

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

printf("%d",i--);

A)无限次B)0次C)1次D)2次

84、对于for(表达式1;;表达式3)可理解

为_________.

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

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

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

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

85、合法的数组定义是________.

A)inta[6]={"string"};B)inta[5]={0,1,2,3,4,5};

C)chara={"string"};D)chara[]={0,1,2,3,4,5};

86、给出以下定义:

charx[]="abcdefg";

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

精心整理

则正确的叙述为________.

A)数组x和数组y等价

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

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

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

87、定义如下变量和数组:

inti;

intx[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,

13,14,15,16};

则下面语句的输出结果是_______.

for(i=0;i<4;i++)printf("%3d",x[i][3-i]);

A)15913B)161116

C)471013D)481216

88、下面程序输出的结果是________.

#include

voidmain()

{inti,j,x=0;

staticinta[6]={1,2,3,4,5,6};

for(i=0,j=1;i<5;++i,j++)x+=a[i]*a[j];

printf("%dn",x);

}

A)数组a中首尾的对应元素的乘积

B)数组a中首尾的对应元素的乘积之和

C)数组a中相邻各元素的乘积

D)数组a中相邻各元素的乘积之和

89、若有以下说明:

chars1[]={"tree"},s2[]={"flower"};,

则以下对数组元素或数组的输出语句

中,正确的是_____.

A)printf("%s%s",s1[5],s2[7]);

B)printf("%c%c",s1,s2);

C)puts(s1);puts(s2);D)puts(s1,s2);

90、运行下面程序段的输出结果是

_______.

chars1[10]={'S','e','t','0','u','p','0'};

printf("%s",s1);

A)SetB)SetupC)SetupD)'S''e''t'

91、以下程序段的输出结果是________.

chars[]="anapple";

printf("%dn",strlen(s));

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

92、若有说明:charc[10]={'E','a','s','t','0'};,

则下述说法中正确的是__________.

A)c[7]不可引用B)c[6]可引用,但值不确

C)c[4]不可引用D)c[4]可引用,其值为空

字符

93、若有说明charc[7]={'s','t','r','i','n','g'};

则对元素的非法引用是________.

A)c[0]B)c[9-6]C)c[4*2]D)c[2*3]

94、如有说明:chars1[5],s2[7];,要给数组

s1和s2整体赋值,下列语句中正确的是

________.

A)s1=getchar();s2=getchar();

B)scanf("%s%s",s1,s2);

C)scanf("%c%c",s1,s2);

D)gets(s1,s2);

95、以下程序输出的结果是_________.

#include

voidmain()

{charstr[]="1a2b3c";inti;

for(i=0;str[i]!='0';i++)

if(str[i]>='0'&&str[i]<='9')printf("%c",s

tr[i]);

printf("n");

}

1a2b3cC)abcD)123

96、以下程序输出的结果是________.

#include

voidmain()

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

longs=0;

精心整理

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

printf("s=%ldn",s);

}

A)s=12345B)s=54321

C)s=54321D)以上都不对

97、在定义inta[5][6];后,数组a中的第

10个元素是.________(设a[0][0]为第一

个元素)

A)a[2][5]B)a[2][4]C)a[1][3]D)a[1][5]

98、当接受用户输入的含有空格的字符

串时,应使用________函数.

A)gets()B)getchar()C)scanf()D)printf()

99、以下一维数组a的正确定义是

________.

A)inta(10);B)intn=10,a[n];

C)intn;D)#defineSIZE10

scanf("%d",&n);inta[SIZE];

inta[n];

100、以下对二维数组a进行正确初始化

的是_______.

A)inta[2][3]={{1,2},{3,4},{5,6}};

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

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

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

答题卡

班级______姓名__________得分_________

1

11

21

31

41

51

61

71

81

91

92

82

93

72

83

94

62

73

84

95

52

63

74

85

96

42

53

64

75

86

97

32

43

54

65

76

87

98

22

33

44

55

66

77

88

99

12

23

34

45

56

67

78

89

100

2

13

24

35

46

57

68

79

90

3

14

25

36

47

58

69

80

4

15

26

37

48

59

70

5

16

27

38

49

60

6

17

28

39

50

7

18

29

40

8

19

30

9

20

10

参考答案:

1~5DDADD6~10BBADA

11-15DCDDD15-20ABBAD

21-25ADAAA26-30AAACA

31-35BCBDB36-40BABAC

41-45DDBAA46-50CDBAC

51-55CCBCB56-60BCBBD

精心整理

61-65DBDBC66-70ADDBC

71-75CBDDD76-80BCABD

81-85ACBBD86-90CCDCA

91-95BDCBD96-100CCADB

精心整理


本文标签: 程序 输出 结果 数组 变量