1、- 1 -C 语言基础练习 100 题(含答案)雷柳青编排1、下面程序的输出是_#includevoid main() int k=11;printf(“k=%d,k=%o,k=%xn“,k,k,k);A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是_.A) +t; B) n1=(n2=(n3=0); C) k=i=j; D) a=b+c=1;3、下面合法的 C 语言字符常量是 _.A) t B) “A“ C) 65 D) A4、字符(char)型数据在微机内存中的
2、存储形式是_.A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码5、设 int a=12,则执行完语句 a+=a-=a*a 后,a 的值是_A) 552 B) 264 C) 144 D) -2646、执行下面程序中的输出语句后,输出结果是_.#includevoid main()int a;printf(“%dn“,(a=3*5,a*4,a+5);A) 65 B) 20 C) 15 D) 107、下面程序的输出是_.#includevoid main()int x=023;printf(“%dn“,-x);A) 17 B) 18 C) 23 D) 248、下面程序的输出是_.
3、#includevoid main()char ch1,ch2;ch1=A+5-3;ch2=A+6-3;printf(“%d,%cn“,ch1,ch2);A) 67,D B) B,C C) C,D D) 不确定的值9、以下程序的输出结果是_.#includevoid main() int x=10,y=10;printf(“%d %dn“,x-,-y);A) 10 10 B) 9 9 C) 9 10 D) 10 910、若 x 和 y 都是 int 型变量,x=100,y=200,且有下面的程序片段:printf(“%d“,(x,y);上面程序片段的输出结果是_.A) 200 B) 100C)
4、 100 200 D) 输出格式符不够 ,输出不确定的值11、阅读下面的程序#includevoid main()int i,j;i=010;j=9;printf(“%d,%d“,i-j,i+j);则程序的运行结果是_.A) 1,19 B) -1,19 C) 1,17 D) -1,1712、阅读下面的程序#includevoid main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(“%d,%d,%d,%d“,i,j,m,n);程序的运行结果是_.A) 8,10,8,10 B) 9,11,8,10 C) 9,11,9,10 D) 9,10,9,11- 2 -1
5、3、若已定义 int a,则表达式 a=10,a+10,a+的值是_.A) 20 B) 10 C) 21 D) 1114、阅读下面的程序#includevoid main()int i,j;scanf(“%3d%2d“,printf(“i=%d,j=%dn“,i,j);如果从键盘上输入 1234567,则程序的运行结果是_.A) i=123,j=4567 B) i=1234,j=567 C) i=1,j=2 D) i=123,j=4515、下面程序的输出结果是_.#includevoid main() int a=-1, b=4, k;k=(+avoid main()int a=5,b=3;f
6、loat x=3.14, y=6.5;printf(“%d,%dn“,a+b!=a-b,x10 char cp;cp=getchar( );if (cp=0 if (x%3=0 printf(“y=%dn“,y);else- 3 -y=x;printf(“y=%d“,y);A) y=41 B) y=43 C) y=42 D) y=128、运行下面程序时,从键盘输入“12,34,9“,则输出结果是_.#include void main( ) int x,y,z;scanf(“%d,%d,%d“,if (xvoid main( ) char ch;ch=getchar( );switch(ch)
7、 case H:printf(“Hello!n“);case G:printf(“Good morning!n“);default:printf(“Bye_Bye!n“); A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye! Bye_Bye!30、执行下列程序段后的输出结果是_.int x=1,y=1,z=1;x+=y+=z;printf(“%dn“,x=A if (x“,则程序的输出结果是_.#include void main( ) int a,b,s;scanf(“%d,%d“,s=a;if
8、(svoid main( ) int x=0,y=1,z=0;if (x=z=y)x=3;printf(“%d,%dn“,x,z);A) 3,0 B) 0,0 C) 0,1 D) 3,135、能够完成如下函数计算的程序段是_. -1 x0A) y=1; B) if (x=0)if(x!=0) if(x0) y=1;if(x0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x=0) if (x0) y=1;if (x0) y=1; else y=0;else y=-1;36、以下程序的执行结果是_.#include void mai
9、n( ) int x=1,y=0;switch (x)- 4 -case 1:switch (y)case 0:printf(“firstn“);break;case 1:printf(“secondn“);break;case 2:printf(“thirdn“);A) first B) firstsecond thirdC) first D) secondthird37、以下程序的执行结果是_.#include void main( ) int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;
10、printf(“d=%dn“,d);A) d=20 B) d=10 C) d=15 D) 2538、下列程序执行后的输出结果是_.#include void main( ) int x,y=1,z;if (z=y)void main( ) int x=1,a=0,b=0;switch(x)case 0: b+;case 1: a+;case 2: a+;b+;printf(“a=%d,b=%dn“,a,b);该程序的输出结果是_.A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=240、下面程序的输出结果是_.#include void main( ) int
11、 a=-1,b=1,k;if (+a100) printf(“%dn“,a100);else printf(“%dn“,avoid main( )int n;scanf(“%d“,if (n+void main( ) int a,b,c=246;a=c/100%9;b=(-1)printf(“%d,%dn“,a,b);输出结果是_.A) 2,1 B) 3,2 C) 4,3 D) 2,-146、运行下面程序时,若从键盘输入数据为“123“,则输出结果是_.#include “stdio.h“void main() int num,i,j,k,place;scanf(“%d“,if (num99)
12、place=3;else if(num9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place) case 3: printf(“%d%d%dn“,k,j,i);break;case 2: printf(“%d%dn“,k,j);break;case 1: printf(“%dn“,k);A) 123 B) 1,2,3 C) 321 D) 3,2,147、执行下列程序后的输出结果是_.#include void main( ) int k=4,a=3,b=2,c=1;printf(“%dn
13、“,kvoid main( ) int a,b;scanf(“%d“,b=a15?a+10:a-10;printf(“%dn“,b) ;A) 5 B) 25 C) 15 D) 1050、执行下面程序的输出结果是_.#include void main( ) int a=5,b=0,c=0;if (a=a+b) printf(“*n“);else printf(“#n“);A) 有语法错误不能编译 B) 能通过编译,但不能通过连接C) 输出 * D) 输出 #51、为了避免嵌套的 if-else 语句的二义性,C 语言规定 else 总是与_ 组成配对关系.A) 缩排位置相同的 if B) 在其
14、之前未配对的 ifC) 在其之前尚未配对的最近的 if D) 同一行上的 if52、以下程序段_.x=-1;dox=x*x; while (!x);A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误53、对下面程序段描述正确的是_.int x=0,s=0;while (!x!=0) s+=+x;printf(“%d“,s);A) 运行程序段后输出 0B) 运行程序段后输出 1C) 程序段中的控制表达式是非法的D) 程序段循环无数次54、下面程序段的输出结果是_.- 6 -x=3;do y=x-;if (!y) printf(“*“);continue;printf(“#“); w
15、hile(x=2);A) # B) #* C) 死循环 D)输出错误信息55、下面程序的运行结果是_.#include void main( ) int a=1,b=10;do b-=a;a+; while(b- void main() int s=0,i=1;while (s3;x-) if(x%3) x-;-x; -x;printf(“%d “,x);A) 6 3 B) 7 4 C) 6 2 D) 7 360、下面程序的运行结果是_.#include void main( ) int a,b;a=-1;b=0;do +a;+a;b+=a; while(avoid main( ) int n
16、=4;while (n-) printf(“%d “,n-);A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 063、以下程序运行后的输出结果是_.#include void main() int i=10,j=0;do j=j+1; i-; while(i2);printf(“%dn“,j);A) 50 B) 52 C) 51 D) 864、有如下程序#includevoid main() int x=23;do printf(“%d“,x-); while(!x);该程序的执行结果是_- 7 -A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环65、以下程序段的执
17、行结果是_.int i,j,m=0;for(i=1;ivoid main( ) int i;for(i=1;ivoid main( ) int x=10,y=10,i;for(i=0;x8;y=+i)printf(“%d %d “,x-,y);A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 168、执行以下程序后,输出的结果是_.#includevoid main( ) int y=10;do y-;while (-y);printf(“%dn“,y-);A) -1 B) 1 C) 8 D) 069、有如下程序#include void main(
18、) int n=9;while(n6) n-;printf(“%d“,n);该程序段的输出结果是_.A) 987 B) 876 C) 8765 D) 987670、有如下程序#include void main( ) int i,sum=0;for(i=1;ivoid main( ) int i,j;for(i=0,j=1; i,则输出为_.#include void main( ) char ch;while (ch=getchar( )!=n) if (ch=A scanf(“%f“,amax=x;amin=x;while (_ ) if (xamax) amax=x;if (_) ami
19、n=x;scanf(“%f“,printf(“namax=%fnamin=%fn“,amax,amin);A) x0 C) x0 D) x=0xamin xamin xvoid main( ) int x;for(x=5;x0;x-)if (x-100) break;C) int k=1000; D) int s=36;do +k; while (k=1000); while (s) -s;81、下面程序的输出结果是_.#includevoid main( ) int i;for(i=1;i=0);A) 4 B) 5 C) 3 D) 283、若 i 为整型变量,则以下循环语句的循环次数是 _.
20、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) int a6=“string“; B) int a5=0,1,2,3,4,5;C) char a=“string“; D) char a=0,1,2,3,4,5;86、给出以下定义:char x =“abcdef
21、g“;char y =a,b,c,d,e,f,g;- 9 -则正确的叙述为 _.A) 数组 x 和数组 y 等价B) 数组 x 和数组 y 的长度相同C) 数组 x 的长度大于数组 y 的长度D) 数组 x 的长度小于数组 y 的长度87、定义如下变量和数组:int i;int x44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;则下面语句的输出结果是_.for(i=0;ivoid main( ) int i,j,x=0;static int a6=1,2,3,4,5,6;for(i=0,j=1;ivoid main( ) char str =“1a2b3c“
22、; int i;for(i=0;stri!=0;i+)if(stri=0long s=0;for(i=0;i5;i+) s=s*10+ai;printf(“s=%ldn“,s); A) s=12345 B) s=5 4 3 2 1 C) s=54321 D) 以上都不对97、在定义 int a56;后,数组 a 中的第 10 个元素是._(设 a00为第一个元素)A) a25 B) a24 C) a13 D) a1598、当接受用户输入的含有空格的字符串时,应使用_函数.A) gets( ) B) getchar( ) C) scanf( ) D) printf( )99、以下一维数组 a 的
23、正确定义是_ .A) int a(10); B) int n=10,an;C) int n; D) #define SIZE 10scanf(“%d“, int aSIZE;int an;100、以下对二维数组 a 进行正确初始化的是_.A) int a23= 1,2,3,4,5,6 ; B) int a 3=1,2,3,4,5,6 ;C) int a2 =1,2,3,4,5,6; D) int a2 = 1,2,3,4;- 10 -答题卡班级_姓名_得分_1 2 3 4 5 6 7 8 9 1011 12 13 14 15 16 17 18 19 2021 22 23 24 25 26 27 28 29 3031 32 33 34 35 36 37 38 39 4041 42 43 44 45 46 47 48 49 5051 52 53 54 55 56 57 58 59 6061 62 63 64 65 66 67 68 69 7071 72 73 74 75 76 77 78 79 8081 82 83 84 85 86 87 88 89 9091 92 93 94 95 96 97 98 99 100