2013年计算机等考二级C语言模拟试题七及答案
1.下面程序段的运行结果是( C )。
int n=0;
while(n++<=2);
printf(“%d”,n);
A) 2
B) 3
C) 4
D) 有语法错
2.设有程序段:
t=0;
while(printf(“*”))
{t++;
if(t<3) break;
}
下面描述正确的是( D )。
A) 其中循环控制表达式与0等价
B) 其中循环控制表达式与'0'等价
C) 其中循环控制表达式是不合法的
D) 以上说法都不对
3.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空( B )。
#include
main()
{int a,b,t;
scanf(“%d%d”,&a,&B);
while( ___________ )
{if(a>B)
{t=a;a=b;b=t;}
printf(“%d,%d\n”,a,B);
scanf("%d%d",&a,&B);
}
}
A) !a=b
B) a!=b
C) a==b
D) a=b
4.C语言中,while和do-while循环的主要区别是( A )。
A) do-while的循环体至少无条件执行一次
B) while的循环控制条件比do-while的循环控制条件更严格
C) do-while允许从外部转到循环体内
D) do-while的循环体不能是复合语句
5.对以下程序段描述正确的是( C )。
x=-1;
do
{x=x*x;}
while(!x);
A) 是死循环
B) 循环执行二次
C) 循环执行一次
D) 有语法错误
6.以下描述中正确的是( C )。
A) do-while循环中循环体内不能使用复合语句
B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D) do-while循环中,根据情况可以省略while
7.若有如下语句
int x=3;
do{ printf(“=”,x-=2);} while(!(--x));
则上面程序段( B )。
A) 输出的是1
B) 输出的是1和-2
C) 输出的是3和0
D) 是死循环
8.下面有关for循环的正确描述是( D )。
A) for循环只能用于循环次数已经确定的情况
B) for循环是先执行循环的循环体语句,后判断表达式
C) 在for循环中,不能用break语句跳出循环体
D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
9.对for(表达式1; ;表达式3)可理解为( B )。
A) for(表达式1;0;表达式3)
B) for(表达式1;1;表达式3)
C) for(表达式1;表达式1;表达式3)
D) for(表达式1;表达式3;表达式3)
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
10.若i为整型变量,则以下循环执行次数是( B )。for(i=2;i==0;) printf(“%d”,i--);
A) 无限次
B) 0次
C) 1次
D) 2次
11.以下不是无限循环的语句为( A )。
A) for(y=0,x=1;x>++y;x=i++) i=x;
B) for(;;x++=i);
C) while(1){x++;}
D) for(i=10;;i--) sum+=i;
12.下面程序段的运行结果是( C )。
for(y=1;y<10;) y=((x=3*y,x+1),x-1);
printf(“x=%d,y=%d”,x,y);
A) x=27,y=27
B) x=12,y=13
C) x=15,y=14
D) x=y=27
13.执行语句for(i=1;i++<4;) ;后变量i的值是( C )。
A) 3
B) 4
C) 5
D) 不定
14.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空( D )。
#include
main()
{int i;
for(i=100;i<200;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
15.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空( B )。
#include
main()
{ int i=0,j,k;
do{i++;k=316-13*i;}while( _k______ );
j=k/11;
printf(“316=13*%d+11*%d”,i,j);
}
A) k/11
B) k
C) k/11==0
D) k==0
16.下面程序的运行结果是( D )。
#include
main()
{int y=10;
do{y--;}while(--y);
printf(“%d\n”,y--);
}
A) -1
B) 1
C) 8
D) 0
17.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是( D )。
#include
main()
{char c;
int v0=1,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
18.下面程序的运行结果是( B )。
#include
main()
{int a=1,b=10;
do
{b-=a;a++;}
while(b--<0);
printf(“a=%d,b=%d\n”,a,B);
}
A) a=3,b=11
B) a=2,b=8
C) a=1,b=-1
D) a=4,b=9
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
19.以下程序的输出结果是( B )。main()
{ int num=0;
while(num<=2)
{ num++; printf(“%d\n”,num);}
}
A) 1
B) 1
C) 1
D) 1
2 2 2
3 3
4
20.设有程序段
int k=10;
while(k=0) k=k-1;
则下面描述中正确的是( C )。
A) while循环执行10次
B) 循环是无限循环
C) 循环体语句一次也不执行
D) 循环体语句执行一次
21.设有以下程序段
int x=0,s=0;
while(!x!=0) s+=++x;
printf("%d",s);
则( B )。
A) 运行程序段后输出0
B) 运行程序段后输出1
C) 程序段中的控制表达式是非法的
D) 程序段执行无限次
22.语句while(!E);中的表达式!E等价于( A )。
A) E==0
B) E!=1 来源:www.examda.com
C) E!=0
D) E==1
23.下面程序段的运行结果是( A )。
a=1;b=2;c=2;
while(a printf("%d, %d, %d", a, b, C);
A) 1,2,0
B) 2,1,0
C) 1,2,1
D) 2,1,1
24.下面程序段的运行结果是( D )。
x=y=0;
while(x<15) y++,x+=++y;
printf("%d, %d", y, x);
A) 20,7
B) 6,12
C) 20,8
D) 8,20
25.以下程序段的执行结果是( B )。
int a, y;
a=10; y=0;
do
{ a+=2; y+=a;
printf("a=%d y=%d\n", a, y);
if(y>20) break;
} while(a=14);
A) a=12 y=12
B) a=12 y=12
a=14 y=16 a=16 y=28
a=16 y=20
a=18 y=24
C) a=12 y=12
D) a=12 y=12
a=14 y=26
a=14 y=44
26.t为int类型,进人下面的循环之前,t的值为0,则以下叙述中正确的是( B )。
while( t=l )
{……}
A) 循环控制表达式的值为0
B) 循环控制表达式的值为1
C) 循环控制表达式不合法
D) 以上说法都不对
27.有以下程序段
int k=0;
while(k=1) k++;
while循环执行的次数是( A )。
A) 无限次
B) 有语法错,不能执行
C) 一次也不执行
D) 执行1次
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
28.以下程序执行后sum的值是( C )。main()
{ int i , sum;
for(i=1;i<6;i++) sum+=i;
printf("%d\n",sum);
}
A) 15
B) 14
C) 不确定
D) 0
29.有以下程序段
int x=3;
do
{ printf("%d",x-=2); }
while (!(--x));
其输出结果是( C )。
A) 1
B) 3 0
C) 1 -2
D) 死循环
30.若输入12、8,以下程序的输出结果是( A )。
main()
{int a,b,num1,num2,temp;
scanf(“%d,%d”,&num1,&num2);
if(num1>num2)
{temp=num1;
num1=num2;
num2=temp;
}
a=num1,b=num2;
while(b!=0)
{temp=a%b;
a=b;
b=temp;
}
printf(“%d, %d”,a,num1*num2/a);
}
A) 4,24
B) 3,24
C) 5,25
D) 4,25
31.以下程序的输出结果是( A )。
#include
#include
main()
{int s=1;
float n=1,pi=0;
double t=1;
while(fabs(t)>=2e-6)
{pi+=t;
n+=2;
s=-s;
t=s/n;
}
pi*=4;
printf(“pi=%.6f\n”,pi);
}
A) 3.141592
B) 1
C) 2e-6
D) 0
32.以下程序的输出结果是( B )。
main()
{int i,f1,f2;
f1=f2=1;
for(i=0;i<4;i++)
{printf(“%d %d ”,f1,f2);
f1+=f2;
f2+=f1;
}
}
A) 1 2 3 4 5 6 7 8
B) 1 1 2 3 5 8 13 21
C) 1 1 3 5 7 9 11 13
D) 1 3 5 7 9 11 13 15
33.下列叙述中,正确的一条是( B )。
A) 语句“goto 12;”是合法的
B) for(;;)语句相当于while(1)语句
C) if(表达式)语句中,表达式的类型只限于逻辑表达式
D) break语句可用于程序的任何地方,以终止程序的执行
34.以下程序的输出结果是( B )。
main()
{int a,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20) break;
if(b%3==1)
{b+=3;
continue;
}
b-=5;
}
printf(“%d\n”,a);
}
A) 7
B) 8
C) 9
D) 10
35.以下的for循环( C )
for(x=0,y=0;(y!=123)&&(x<4);x++) ;
A) 是无限循环
B) 循环次数不定
C) 执行4次
D) 执行3次
36.C语言中( D )
A) 不能使用do-while语句构成的循环
B) do-while语句构成的循环必须用break语句才能退出
C) do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D) do-while语句构成的循环,当while语句中的表达式值为零时结束循环
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
37.以下程序的输出结果是( A )。main()
{int i;
for(i=1;i<=5;i++)
{if(i%2)
printf(“*”);
else
continue;
printf(“#”);
}
printf(“$\n”);
}
A) *#*#*#$
B) #*#*#*$
C) *#*#$
D) #*#*$
38.有以下程序,从第一列开始输入数据2473(代表一个回车符),则程序的输出结果为( A )。
#include
main()
{int c;
while((c=getchar())!=’\n’)
{switch(c-‘2’)
{case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default:putchar(c+2);break;
}
}
printf(“\n”);
}
A) 668977
B) 668966
C) 6677877
D) 6688766
39.执行以下程序片段的结果是( B )。
int x=23;
do
{printf(“%d”, x--);}
while(!x);
A) 打印出321
B) 打印出23
C) 不打印任何内容
D) 陷入死循环
40.若x是int型变量,则执行以下程序片段的结果是( D )。
for(x=3;x<6;x++) printf((x%2)?(“**%d”) : (“##%d\n”), x);
A) **3##4**5
B) ##3**4##5
C) ##3
D) **3##4
**4##5 **5
41.有以下程序,若运行时从键盘输入3.6 2.4(代表一个回车符),则程序的输出结果为( B )。
#include
#include
main()
{float x,y,z;
scanf(“%f%f”,&x,&y);
z=x/y;
while(1)
{if(fabs(z)>1.0)
{x=y;y=z;z=x/y;}
else break;
}
printf(“%f\n”, y);
}
A) 1.500000
B) 1.600000
C) 2.000000
D) 2.400000
42.以下程序的输出结果是( D )。
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
43.以下程序的输出结果是( A )。
main()
{int n=4;
while(n--)
printf(“%d ”,--n);
}
A) 2 0
B) 3 1
C) 3 2 1
D) 2 1 0
44.以下程序的输出结果是( B )。
main()
{int i;
for(i=’A’;i<’I’;i++,i++)
printf(“%c”,i+32);
}
A) 编译通不过,无输出
B) aceg
C) acegi
D) abcdefghi
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
45.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是( A )。for(i=5;i;i--)
for(j=0;j<4;j++){}
A) 20
B) 24
C) 25
D) 30
46.若j为int型变量,则以下for循环语句的执行结果是( B )。
for(j=10;j>3;j--)
{if(j%3) j--;--j;--j;printf(“%d ”,j);}
A) 6 3
B) 7 4
C) 6 2
D) 7 3
47.以下程序的执行结果是( D )。
main()
{int i,x;
for(i=1;i<=50;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
48.以下程序的执行结果是( B )。
main()
{int i,j;
for(j=10;j<11;j++)
{ for(i=9;i if(!(j%i)) break;
if(i>=j-1) printf(“%d”,j);
}
}
A) 11
B) 10
C) 9
D) 10 11
49.在下列选项中,没有构成死循环的程序段是( C )。
A) int i=100;
B) for(;;);
while(1)
{i=i0+1;
if(i>100) break;
}
C) int k=1000;
D) int s=36;
do{++k;} while(s);--s;
while(k>=10000);
50.以下程序的输出结果是( B )。
main()
{int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<=3;j++)
{ if(j%2) continue;
x++;
}
x++;
}
printf(“x=%d\n”,x);
}
A) x=4
B) x=8
C) x=6
D) x=12
51.运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果是( C )。
main()
{int m,n;
scanf(“%d%d”,&m,&n);
while(m!=n)
{while(m>n) m-=n;
while(n>m) n-=m;
}
printf(“m=%d\n”, m);
}
A) m=3
B) m=2
C) m=1
D) m=0
52.以下程序的输出结果是( C )。
main()
{int i,j,m=0,n=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
if(j>=i) m=1;n++;
printf(“%d\n”, n);
}
A) 4
B) 2
C) 1
D) 0
53.以下程序执行后sum的值是( C )。
main()
{ int i , sum=0;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
A) 6
B) 3
C) 死循环
D) 0
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
二 填空题
1.以下程序运行后的输出结果是 52 。
main()
{ int i=10, j=0;
do
{ j=j+i; i--;}
while(i>2);
printf("%d\n",j);
}
2.设有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为 8921 。
3.若输入字母b,程序输出结果为 b,B ;若输入字符*,程序将怎样 等待状态。
#include
main()
{char c1, c2;
c1=getchar();
while(c1<97||c1>122)
c1=getchar();
c2=c1-32;
printf("%c, %c\n",c1, c2);
}
4.用以下程序计算1到100的整数的累加和。
main()
{ int i=1, sum= 0 ;
for( ;i<=100; )
{sum+=i;
i++;
}
printf("sum=%d\n", sum );
}
5.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束。请填空。
main()
{ float x, amax, amin;
scanf(“%f”,&x);
amax=x;
amin=x;
while( x>=0 )
{if(x>amax) amax=x;
if( x) amin=x;
scanf(“%f”,&x);
}
printf("amax=%f\namin=%f\n",amax, amin);
}
6.设i、j、k均为int型变量,则执行完下面的for循环后,k的值为 10 。
for(i=0, j=10;i<=j; i++, j--) k=i+j;
7.下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。
main()
{ int a, b, c, i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
b=i+1 ;
c+=b;
}
printf("偶数之和=%d\n", a);
printf("奇数之和=%d\n", c-11);
}
8.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。
main()
{ int i, j;
for(i=0; i<100 ; i++)
{j=i*10+6;
if( j%3!=0 ) continue;
printf(“%d”, j);
}
}
9.要使以下程序段输出10个整数,请填入一个整数。
for(i=0; i<= 18or19 ; printf(“%d\n”, i+=2));
10.若输入字符串:abcde<回车>,则以下while循环体将执行 0 次。
while((ch=getchar())= =‘e’) printf(“*”);
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺专题:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!