一、单选题:
1、以下说法中正确的是( c)
A.C语言程序总是从第一个的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
2、C语言可执行程序的开始执行点是( c)
A.程序中的一条可执行语句
B.程序中第一个函数
C.程序中的main函数
D.包含文件中的第一个函数
3、C程序是( B)
A.顺序执行
B.从Main函数开始
C.从函数体开始
D.任意语句
4、C语言程序的基本单位是_____B__.
A.语句
B.函数
C.程序行
D.字符
5、C语言程序由( C)组成
A.子程序
B.过程
C.函数
D.主程序段程序
6、一个C程序的执行是从( A)
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
7、以下叙述正确的是( C)
A.在C程序中,main函数必须位于程序的最前面
B.C程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
8、以下叙述不正确的是 D
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
9、C语言规定,在一个源程序中,main函数的位置(C)
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
10、一个C语言程序是由 B
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
二、填空题:
1、函数体用____{___开始,用____}__结束。
2、C源程序的基本单位是____函数__________
3、一个C源程序中至少应包括一个____MAIN函数_________
4、在一个C源程序中,注释部分两侧的分界符分别为___/*_____和_____*/___
三、程序设计题:(这两个程序设计题上课讲过我就不做了,自己写吧)
1、编写一个C程序,输出以下信息:
*********************
Very good!
*********************
2、编写一个程序,输入a,b,c三个值,输出其中最大者。
第2 章 程序设计的灵魂——算法
一、单选题:
1、将三个数排序需要比较__B____次。
A.2 B.3 C.4
D.不确定
2、算法的表示方法有___A_____。
A.自然语言,传统流程图,N-S流程图,伪代码
,计算机语言
B.高级语言,汇编语言,机器语言
C.C语言,QBASIC语言,InterDev
D.图形图像法,描述法,编程法
二、问答题:
1、什么是结构化的算法?为什么要提倡结构化的算法?
2、算法有哪些特性?
3、什么叫算法?为什么要提倡结构化算法?
第3 章 数据类型、运算符和表达式
一、单选题:
1、设 int b=2;表达式b/(b*2)的值是____A____.
A.0
B.0.5
C.0.500000
D.0.000000
2、设有如下定义:
int a=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:(m= a d)后,m的值为__A___。
A.1 B.2 C.3 D.0
3、设有a=b=c=2,求表达式a+++b+++c++的结果是___A____。
A.6 B.9 C.8
D.表达式出错
4、表示关系X
A.(X
B.(X
D.(X
5、选出运行结果为4的表达式( C);
A.int i=0,j=1;(i=3,(++j > +1))
B.int i=0,j=1;(j==1)?(i=1):(i=3)
C.int i=1,j=1;i+=j+=2;
D.int i=1,j=0;j=i=((i=3)*2);
6、表达式(a=3*5,a*5),a+5的值是多少(B )
A.20
B.80
C.不能确定
D.15
7、设有整型变量a,b,c,它们的初值是1运行表达式:
++a||++b&++c后,a,b,c的值分别是:___A_____。 (这个最好电脑上通过一下)
A.2,1,1
B.2,2,1
C.1,2,1
D.1,1,2
8、下面的表达式中__A__满足:当x为偶数时值为“真”,为奇数时值为“假”
A.x%2==0
B.!x%2!=0
C.2*x/2-x==0
D.!(x%2)
9、C语言的对语句中用作判断的表达式一般为__E__
A.关系表达式
B.逻辑表达式
C.算术表达式
D.逻辑表达式和关系表达式
E.关系或逻辑表达式
10、若已定义x和y为double型,则表达式:x=1,y=x+3/2的值是(D ) A.1 B.2
C.2.0
D.2.5
11、若有以下定义:
char a; int b;
float c;double d;
则表达式a*b+d-c值的类型为__D____.
A.float
B.int
C.char
D.double
12、以下定义和语句:
char cl=\'b\',c2=\'e\';
printf(″%d,%c\\n″,c2-c1,c2-\'a\'+\'A\');
则输出结果是:___B____.
A.2,M
B.3,E
C.2,E
D.输出项与对应的格式控制不一致,输出结果不确定
13、语句:printf(\"%d \\n\",12&&12);的输出结果是___B_____.
A.12 B.1
C.24
D.0
14、设A=3,B=4,执行
printf(\"%d,%d\",(A,B),(B,A));的输出是___B___.
A.3,4
B.4,3
C.3,3
D.4,4
15、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
printf(\"%d\",(x,y));
上面程序片段的输出结果是 A
A.200
B.100
C.200 100
D.输出格式符不够,输出不确定的值
16、表达式:10!=9的
值是__D_
A.true
B.非零值
C.0
D.1
17、请读程序:
main()
{ int A;
float B, C;
scanf(\"%2d%3f%4f\",&A,&B,&C);
printf(\"\\nA=%d,B=%f,C=%f\\n\",A,B,C); }
若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是 B
A.A=98, B=765, C=4321
B.A=10, B=765.000000, C=4321.000000
C.A=98, B=765.0, C=4321.0
D.以上答案都不正确
18、执行程序段char str[20]={\'a\',\'b\',\'c\',\'\\o\'};
int len=strlen(str);
变量len的值为( C)
A.20 B.4 C.3
D.3或4或20
19、若x,i,j和k都是int型变量,则计算下面表达式后,x的值为 C
x=(i=4,j=16.k=32) A.4
B.16
C.32
D.52
20、下列四组选项中,均不是C语言关键字的选项是 A
A.define IF type
B.getc char printf
C.include scanf case
D.while go pow
21、下列四个选项中,均是C语言关键字的选项是 B
A.auto enum include
B.switch typedef continue
C.signed union scanf
D.if struct type
22、C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符 C
A.必须为字母
B.必须为下划线
C.必须为字母或下划线
D.可以是字母,数字和下划线中任一字符
23、下面四个选项中,均是不合法的浮点数的选项是 B
A.160.0.12 e3
B.123 2e4.2 .e5
C.-.18 123e4 0.0
D.-e3 .234 1e3
24、已知各变量的类型说明如下: A
int k,a,b;
unsigned long w=5;
double x=1.42;
则以下不符合C语言语法的表达式是
A.x%(-3)
B.w+=-2
C.k=(a=2,b=3,a+b)
D.a+=a-=(b=4)*(a=3)
25、以下不正确的叙述是 D
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
26、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是 A
A.2.500000
B.2.750000
C.3.500000
D.0.000000
27、设变量a是整型,f是实型,i是双精度型,则表达式10+\'a\'+i*f值的数据类型为 C
A.int
B.float
C.double
D.不确定
28、以下关于运算符优先顺序的描述中正确的是 C
A.关系运算符
B.逻辑运算符
C.赋值运算符
D.算术运算符
29、若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是 B
A.(exp==0)
B.(exp!=0) C.(exp==1)
D.(exp!=1)
30、设 i
nt x=1, y=1; 表达式(!x||y--)的值是 B A.0 B.1 C.2
D.-1
二、填空题:
1、字符串“This is a string\"的存储形式为___顺序存储_______。
2、写出下问表达式运算后a的值设原来a=12
1) a+=a 24
2) a-=a 0
3) a/=a+a 0
4) a+=a-=a*=a 0
3、求下面算术表达式的值
1) x+a%3*(int)(x+y)%2/4 2.5
设x=2.5,a=7,y=4.7
2) (float)(a+b)/2+(int)x%(int)y 3.5
设a=2,b=3,x=3.5,y=2.5
4、写出该程序运行的结果。
#include
void main()
{ int i, j, k=10;
i=(j=k)>0;
j=i==j;
printf(``%2d,%2d\\n``,i,j); 1 0
k=!i==++j;
printf(\"%2d, %2d, %2d\\n\", i, j, k);} 1 1 0
5、main( )
{char st=\'A\';
int i=10; st=st+i;i=st%i;
printf(\"%C,%d\\n\",st,i);}
已知字母A的ASCII码为65
结果:__K,5__
6、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_____9_______
7、C语言中的标识符只能由三种字符组成,它们是___字母____,____数字__和___下画线_______
8、已知字母a的ASCII码为十进制数97,且设ch为字符型变量,
则表达式ch=\'a\'+\'8\'-\'3\'的值为___f_______
9、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式 pow(y,fabs(x))的值为____8.0_____
10、若有定义:int e=1,f=4,g=2;
float m=10.5,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是___13.7_________
第4 章 顺序程序设计
一、单选题:
1、输入一个华氏温度,要求输出摄氏温度。计算公式为: c=5/9(F-32),以下程序正确的是(B)
A.main() { float c,F; scanf(\"%f,%f\",&c,&F); c=5/9*(F-32); printf(\"摄氏温度是:%f\\n\",c); }
B.main() { float c,F; scanf(\"%f,%f\",&c,&F); c=5*(F-32)/9; printf(\"摄氏温度是:%f\\n\",c); }
C.main() { float c,F; scanf(\"%f,%f\",&c,&F); c=5%9*(F-32); printf(\"摄氏温度是:%f\\n\",c); }
D.main() { float c,F; scanf(\"%f,%f\",&c,&F); c=5.0/9.0(F-32); printf(\"摄氏温度是:%f\\n\",c); }
2、以下程序的输出结果是 C
main( )
{
int a=12,b=12;
printf(\"%d %d\\n\",--a,++b); }
A.10 10
B.12 12
C.11 13
D.11 10
3、有如下程序
main0
{
int y=3,x=3,z=1;
printf(\"%d %d\\n\",(++x,y++),z+2); }
运行该程序的输出结果是 D
A.3 4
B.4 2
C.4 3
D.3 3
4、能正确表示逻辑关系:\"a ≥ =10或a ≤ 0\"的C语言表达式是 D
A.a > =10 or a
B.a > =0||a
C.a > =10 &&a
D.a =10
5、下列程序的输出结果是 C
main() {
double d=3.2;
int x,y;
x=1.2; y=(x+3.8)/5.0;
printf(\"%d \\n\", d*y);
} A.3
B.3.2 C.0
D.3.07
二、填空题:
1、从键盘输入一个大写字母,要求改用小写字母输出,程序如下办 #inc
lude
main( )
{ char c1,c2;
(1)___scanf(“%c”,&c1);______;
printf (\"%c,%d\\n\",c1,c1 );
(2)___c2=c1+32;__________;
printf(\"%c,%d\\n\",c2,c2);}
2、以下程序不用第三个变量,实现将两个数进行对调操作:
#include
main()
{ int a , b ;
scanf (\"%d%d\" , &a , &b);
printf(\"a=%d b=%d\\n\" , a , b );
a=(_a+b_________); b=(_a-b_______); a=(____a-b_____);
printf(\"a=%d b=%d\\n\",a,b);}
3、写出该程序运行的结果。 K,5
main( )
char st=\'A\';
int i=10;
st=st+i;
i=st%i;
printf(\"%c,%d\\n\",st,i);}
(已知字母A的ASCII码为65)
四、程序设计题:
1、用scanf函数输入一个年份year,然后用一个赋值语句计算这一年中2月份的天数datesum,最后用格式输出函数printf输出datesum值。
具体要求如下:(1)所有变量为整型
(2)输入前要有提示 (3)输出结果时要有必要的文字说明
#include
void main( )
{ int year,datesum;
clrscr();
Printf(“请任意输入一个年份值:”);
Scanf(“%d”,&year);
Datesum=((year%400= =0)||((year%4= =0)&&(year%100!=0)))?29:28;
Printf(“\\n%d二月份的天数为:%d”,year,datesum); }
2、由键盘输入一个小于256的十进制整数,然后将该数转换成八位的二进制形式输出。
具体要求如下:
(1)输入前要有提示
(2)若转换成的二进制数不够八位,则在前面添“0”补足八位。例如:十进制数79转换成的二进制数为1001111,但应输出01001111
(3)分别输入十进制数54,96,175,233,255来运行这个程序。
#include
#include
void main( )
{ int number,b,i,n=0;
long result=0,p;
clrscr(); printf(“请输入一个大于0小于256的整数”);
scanf(“%d”,&number); p=1;
Printf(“\\n%d=”,number); do
{ b=number%2;
result=result+p*b;
p=p*10; n++;
number=number/2; }
While(number!=0)
For(i=8;i>n;i--)
Printf(“0”);
Printf(“%ld B”,result); }
第5 章 选择结构程序设计
一、单选题:
1、以下程序的输出结果是 C
main()
{ int a= -1,b=1;
if((++a
printf(\"%d %d\\n\",a,b);
else
printf(\"%d %d\\n\",b,a);
}
A.-1 1
B.0 1
C.1 0
D.0 0
2、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是___A_
main() {
int x;
scanf(\"%d\",&x);
if (x++> 5)printf(\"%d\",x)
else printf(\"%d\\n\",x--); }
A.7和5
B.6和3
C.7和4
D.6和4
3、若执行下面的程序从键盘输入3和4,则输出是____B___
main()
{ int a,b,s;
scanf(\"%d%d\",&a,&b);
s=a;
if (a
s=s*s;
printf(\"%d\\n\",s); }
A.14
B.16
C.18
D.20
4、下面的程序是__D____
main() { in
t x=3,y=0,z=0;
if (x==y+z) printf(\"****\");
else printf(\"####\"); }
A.有语法错误不能过通过编译
B.输出****
C.可能通过编译,但是不能通过连接,因而不能运行
D.输出####
5、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系
的表达式为____D____。
A.a 0
B.!a
C.a=0
D.a!=0
6、在C语言中的if语句中,用作判断的表达式为(D)
A.关系表达式
B.逻辑表达式
C.算数表达式
D.任意表达式
7、以下程序输出结果是 B
main ( )
{ int m=5;
if (m++ > 5) printf (\"%d\\n\",m);
else printf (\"%d\\n\",m--); } A.7 B.6 C.5
D.4
8、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 A
main( )
{ int x;
scanf(\"%d\",&x);
if(x + + 〉 5)printf(\"%d\",x);
else printf(\"%d\\n\",x - -); }
A.7和5
B.6和3
C.7和4
D.6和4
9、为避免嵌套的条件分支语句if„else的二义性,C语言规定,C程序中的
else总是与__A__组成配对关系。
A.其上面距它最近的,并且没有其他else与其配对的if相配对
B.在同一行上的if
C.缩排位置相同的if
D.在其之前未配对的if
10、若变量都已经说明,则以下程序段输出为( B)
a=10;b=50;c=30;
if (a > b) a=b; b=c;c=a;
printf(\"a=%db=%dc=%d\\n\",a,b,c);
A.a=10 b=50 c=10
B.a=10 b=30 c=10
C.a=50 b=30 c=10
D.a=50 b=30 c=50
11、在执行以下程序时,为了使输出结果为t=4,
则给a和b输入的值应满足的条件是 D
main( )
{ int s,t,a,b;
scanf(\"%d,%d\",&a,&b);
s=1;
t=1;
if(a
if(a > b)t=s+1;
else if(a= =b)t=5;
else t=2*s;
printf(\"t=%d\\n\",t); }
A.0 > a > b
B.a=0
C.a=b
D.a
12、若变量都已经说明,则以下程序段输出为( B)
a=10;b=50;c=30;
if (a > b) a=b; b=c;c=a;
printf(\"a=%db=%dc=%d\\n\",a,b,c);
A.a=10 b=50 c=10
B.a=10 b=30 c=10
C.a=50 b=30 c=10
D.a=50 b=30 c=50
13、执行下面语句后的输出为( D)
int i= -1;
if (i
else printf(\"%%%%\\n\")
A.****
B.%%%%
C.%%%%C
D.有语法错,不能执行
14、下列语句正确的是(B )
A.if(a > b > c) temp=a
B.if((a=b) > 0) temp=a
C.int a=b=c=4
D.int a;scanf(%d,a)
15、若有定义: float w; int a, b; 则合法的switch语句是(c ) A.switch(w) { case1.0: printf(\"*\\n\"); case2.0: printf(\"**\\n\"); }
B.switch(a); { case 1 printf(\"*\\n\"); case 2 printf(\"*\\n\"); }
C.switch(b) { case 1: printf(\"*\\n\"); case 2: printf(\"*\\n\"); } D.switch(a+b); { case 1: printf(\"*\\n\"); default: printf(\"\\n\"); case 2 }
16、判断两个字符串S1 和 S2 相等的正确语句是__D__
A.if (S1=S2)
B.if (S1==S2)
C.if
(strcpy(S1,S2))
D.if (strcmp(S1,S2)==0)
17、以下不正确的if语句形式是 D是不是没写完啊
A.if(x>y&&x!=y)t=x++;
B.if(x==y) x+=y;
C.if(x!=y) scanf(\"%d\",&x) else scanf(\"%d\",&y);
D.if(x
18、已知 int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B
if(x>y)
z=x;x=y;y=z;
A.x=10,y=20,z=30
B.x=20,y=30,z=30
C.x=20,y=30,z=10
D.x=20,y=30,z=20
19、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是 B
if(a
if(c
else
if(a
if(b
else x=3;
else x=6;
else x=7; A.1 B.2 C.3
D.6
20、若运行以下程序时,从键盘输入 ADescriptor ( 表示回车),则下面程序的运行结果是 D
#include
main()
{char c;
int v0=0,v1=0,v2=0; do{ switch(c=getchar())
{case \'a\':case \'A\':
case \'e\':case \'E\':
case \'i\':case \'I\':
case \'o\':case \'O\':
case \'u\':case \'U\':v1+=1;
default:v0+=1;v2+=1; }
}while(c!=\'\\n\');
printf(\"v0=%d,v1=%d,v2=%d\\n\",v0,v1,v2); }
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=12,v1=4,v2=12
21、阅读以下程序:
main()
{ int x;
scanf(\"%d\",&x);
if(x--
else printf(\"%d\"\'x++); } 程序运行后,如果从键盘上输人5,则输出结果是 B A.3 B.4 C.5
D.6
22、若执行以下程序时从键盘上输入9,则输出结果是 B
main()
{ int n;
scanf(\"%d\",&n);
if(n++
else printf(\"%d\\n\",n--); }
A.11
B.10 C.9
D.8
23、若a、b、c
1、c
2、x、y、均是整型变量,正确的switch语句是 B
A.switch(a+b); {case 1:y=a+b;break; case 0:y=a-b;break; case 3:y=b-a,break; }
B.switch(a*a+b*b) {case 3: case 1:y=a+b;break; }
C.switch a {case c1:y=a-b;break; case c2:y=a*d;break; default:x=a+b; }
D.switch(a-b) {default:y=a*b;break; case 4:x=a+b;break; case 10:y=a-b;break; }
24、有如下程序
main()
{ int a=2,b=-1,c=2;
if(a
if(b
else c++ ;
printf(\"%d\\n\",c);
}
该程序的输出结果是 C A.0 B.1 C.2
D.3
25、若有定义: float w; int a, b; 则合法的switch语句是 D A.switch(w) {case1.0: printf(\"*\\n\"); case2.0: printf(\"**\\n\"); }
B.switch(a); { case 1 printf(\"*\\n\"); case 2 printf(\"**\\n\"); }
C.switch(b) { case a: printf(\"*\\n\"); default: printf(\"\\n\"); case b: printf(\"**\\n\"); }
D.switch(a+b) { case 1: printf(\"*\\n\"); case 2: printf(\"**\\n\"); default: printf(\"\\n\"); }
二、填空题:
1、#include
main( )
{int i=0,j=0,a=6;
if ((++i > 0) || (j++ > 0)) a++;
printf(\"i=%d,j=%d,a=%d\\n\",i,j,a);}
结果:_i=1,j=0,a=7____
2、若从键盘输入58,则以下程序输出的结果是 _585858_______ 。
main()
{ int a;
scanf(\"%d\",&a);
if(a>50) printf(\"%d\",a);
if(a>40) printf(\"%d\",a);
if(a>30) printf(\"%d\",a); }
3、下列程序段的输出结果是 _pawarm___________ 。
int n=\'c\';
switch(n++)
{ default: printf(\"error\");break;
case \'a\':case \'A\':case \'B\':printf(\"good\");break;
\'b\':case
case \'c\':case \'C\':printf(\"pa\");
case \'d\':case \'D\':printf(\"warm\");
}
三、程序设计题:
1、编写程序,从键盘输入年号和月号,计算这一年的这一月共有几天.
#include
Void main( )
{ int year,m,sumdate;
Clrscr( );
Printf(“请输入年号和月号:”);
Scanf(“%d%d”,&year,&m);
if (m==1||m==3||m==5||m==7||m==8||m=10||m==12) sumdate=31;
else if(m==4||m==6||m==9||m==11) sumdate=30;
else if((m==2)&&((year%400==0)||((year%4==0)&&(year%100!=0))) sumdate=29
else sumdate=28;
printf(“\\n%d.%d的天数为:%d”,year,m,sumdate); }
2、编写程序,从键盘输入x的值,计算并打印下列分段函数的值。(这个题目太容易,自己写吧)
y=0(x
y=2(70
y=3(80
y=4(x>=90)
3、编写程序,输入三个整数x,y,z,请把这三个数由小到大输出。(这个上课讲过)
[程序分析]
我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
4、编写程序,输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
#include
Void main()
{ long date;
int a,b,c,d;
clrscr();
printf(“请任意输入一个五位的整数:”)
a=date/10000;
b=(date/1000)%10;
c=(date%100)/10;
d=date%10;
if(a==d&&b==c)
printf(“\\n%d是一个回文数”,date); else
printf(“\\n%d不是一个回文数”,date); }
5、编写程序,将一个不大于256的十进制正整数转化为8位的二进制数,若不足8位,则在前面补0,例如十进制数2转化位8位二进制数后是00000010,37转化后是00100101。
试求出十进制数
5、
23、189转化位8位二进制分别是多少?(要求必须使用循环语句实现)
(这个题目上一章做过了)
第6章 循环结构程序设计
一、单选题:
1、以下程序运行后,输出结果是
main ()
{ int y=18,i=0,j,a[8]; do
{ a[i]=y%2;i++;
y=y/2;
} while(y > =1);
for(j=i;j > 0;j--)printf(\"%d\\n\",a[j]);
printf(\"\\n\"); }
A.1000
B.11010
C.01001
D.10100
2、以下程序的输出结果是
main( )
{ int x=10,y=10,i;
for(i=0;x > 8;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 1
3、以下程序的输出结果是
main( ) {
int n=4;
while(n--)printf(\"%d \",--n);
}
A.2 0
B.3 1
C.3 2 1
D.2 1 0
4、假定a和b为int型变量,则执行以下语句后b的值为
a=1; b=10; do
{ b=b-a; a++; }
while (b-- > 0);
A.-3
B.-2
C.-1
D.-4
5、下面程序的输出是____
main()
{int x=3,y=6,a=0;
while (x++!=(y-=1)) {
a+=1;
if (y
printf(\"x=%d,y=%d,a=%d\\n\",x,y,a); }
A.x=4,y=4,a=1
B.x=5,y=5,a=1
C.x=5,y=4,a=3
D.x=5,y=4,a=1
6、定义如下变量:
int n=10
则下列循环的输出结果是______
while (n > 7) {
n--;
printf(\"%d\\n\",n); }
A.10 9 8
B.9 8 7
C.10 9 8 7
D.9 8 7 6
7、以下程序段的输出结果是_____
int x=3; do
{ printf(\"%3d\",x-=2);}
while (!(--x)); A.1
B.3 0 C.1 -2
D.死循环
8、以下程序的输出结果是
main()
{ int i,k,a[10],p[3];
k=5;
for (i=0;i
for (i=0;i
for (i=0;i
printf(\"%d\\n\",k); }
A.20
B.21
C.22
D.23
9、有以下程序
main()
{ int x,i;
for(i=1;i
{ x=i;
if(x%2==0)
if(x%3==0) if(x%7==0)
printf(\"%d\",i); } }
输出结果是
A.28
B.27
C.42
D.41
10、下面程序的输出是
main() {
int y=9;
for(;y > 0;y--) {
if(y%3==0)
{printf(\"%d\",--y);continue;} } }
A.741
B.852
C.963
D.875421
11、若X是int型变量,且有下面的程序片段:
for (X=3;X
printf((X%2)?(\"**%d\"):(\"##%d\\n\"),X);
上面程序片段的输出结果是
A.**3
B.##3
C.##3
D.**3##4 **5
12、执行下面的程序后,a的值为
main()
{ int a,b;
for (a=1,b=1;a
{ if(b > = 20) break;
if(b%3==1) {
b-=2;
continue; }
b+=5; } }
A.11
B.15
C.12
D.13
13、有以下程序
main()
{ int x,i;
for(i=1;i
{ x=i;
if(x%2==0)
if(x%3==0)
if(x%7==0)
printf(\"%d\",i); } }
输出结果是
A.28
B.27
C.42
D.41
14、以下程序的输出结果是
main( )
{ int i;
for(i=\'A\';i
printf(\" \\n\");
}
A.编译不通过,无输出
B.aceg
C.acegi
D.abcdefghi
15、执行以下程序后,输出的结果是
main( )
{ int y=10;
do{y--;} while(--y);
printf(\"%d\\n\",y--); }
A.-1 B.1 C.8
D.0
16、如果输入为:ABCdef 执行下面一段程序后,则输出为:
main( )
{char ch;
while((ch=getchar( ))!=\'\\n\')
{ if(ch > = \'A\' && ch
else if(ch > = \'a\' && ch
printf(\"%c\",ch); }
printf(\"\\n\"); }
A.ABCdef
B.abcDEF
C.abc
D.DEF
17、请读程序:
#include
main()
{ int num=0;
while(num
{ num++; printf(\"%d\\n\",num);} }
上面程序的输出结果是
A.1 2 3 4
B.1 2
C.1 2 3
D.1
18、设有程序段:
t=0;
while(printf(\"*\"))
{t++;
if(t
下面描述正确的是
A.其中循环控制表达式与0等价
B.其中循环控制表达式与\'0\'等价
C.其中循环控制表达式是不合法的
D.以上说法都不对
19、以下程序段______
x=-1; do
{x=x*x;}
while(!x);
A.是死循环
B.循环执行二次
C.循环执行一次
D.有语法错误
20、下面程序的运行结果是
#include
main()
{int y=10;
do{y--;}while(--y);
printf(\"%d\\n\",y--); }
A.-1 B.1 C.8
D.0
21、对 for(表达式1; ;表达式3) 可理解为
A.for(表达式1;0;表达式3)
B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.for(表达式1;表达式3;表达式3)
22、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。
#include
main()
{int i;
for(i=100;i
if((i-2)%4==0)
if(!((i-3)%7))
if( ______ )
printf(\"%d\",i); }
A.i%9=5
B.i%9!=5
C.(i-5)%9!=0
D.i%9==5
23、t为int类型,进人下面的循环之前,t的值为0
while( t=l )
{ „„}
则以下叙述中正确的是
A.循环控制表达式的值为0
B.循环控制表达式的值为1
C.循环控制表达式不合法
D.以上说法都不对
24、以下程序执行后sum的值是
main()
{ int i , sum;
for(i=1;i
printf(\"%d\\n\",sum);
}
A.15
B.14
C.不确定
D.0
25、以下程序的输出结果是
main()
{ int i, k, a[10], p[3];
k=5;
for (i=0;i
for (i=0;i
for (i=0;i
printf(\"%d\\n\",k); }
A.20
B.21
C.22
D.23
26、有如下程序
main()
{ int i,sum;
for(i=1;i
printf(\"%d\\n\",sum); }
该程序的执行结果是
A.6 B.3
C.死循环
D.0
27、有如下程序
main()
{ int n[5]={0,0,0},i,k=2;
for(i=0;i
printf(\"%d\\n\",n[k]);
}
该程序的输出结果是 A.不确定的值
B.2 C.1
D.0
28、有如下程序
main()
{ char ch[2][5]={\"6937\",\"8254\"},*p[2];
int i,j,s=0;
for(i=0;i
for(i=0;i
for(j=0;p[i][j] > \'\\0\';j+=2)
s=10*s+p[i][j]-\'0\';
printf(\"%d\\n\",s);
}
该程序的输出结果是
A.69825