福建省二级C语言模拟题3真题无答案Word文档格式.docx
《福建省二级C语言模拟题3真题无答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《福建省二级C语言模拟题3真题无答案Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
B.if(a>b||b>c)k=1;
C.if(a<=b)k=0;
elseif(b<=c)k=1;
D.if(a>b)k=1;
elseif(b>c)k=1;
5.以下程序运行后的输出结果是______。
inta=15,b=22,m=1;
switch(a%3)
case0:
switch(b%5)
default:
m--;
case2:
m++;
break;
case3:
case1:
%d\n"
m);
A.0B.1
C.2D.3
6.以下描述中正确的是______。
A.do-while语句构成的循环,当while后的表达式的值为零时结束循环
B.do-while语句构成的循环,当while后的表达式的值为非零时结束循环
C.do-while语句构成的循环只能用break语句退出
D.do-while语句构成的循环可以用continue语句退出
7.以下程序执行后,输出结果为______。
intx,y;
for(x=1,y=1;
y<50;
y++)
if(x>=10)break;
if(x%2==1)
{x+=5;
continue;
}
X-=3;
x=%d"
x);
A.10B.11
C.12D.13
8.下列程序段的执行次数为______。
inta=1;
while
(1)
{a++;
++a;
if(a<4)break;
A.1B.2
C.死循环D.错误
9.下面程序的运行结果是______。
intx=0,y=0;
while(x<15)
y++;
x+=++y;
%d,%d"
y,x);
A.20,7B.6,12
C.20,8D.8,20
10.对于下面程序段,描述中正确的是______。
inti=100;
while(i=0)
i=i-1;
A.while循环执行100次B.循环体语句一次也不执行
C.while循环执行99次D.循环体语句执行一次
11.下面程序的运行结果是______。
{
inta=3,b=2,c=1;
while(a>b>c)
a=a+b;
b=a-b;
a=a-b;
c=a+b;
%d,%d,%d"
a,b,c);
A.2,3,5B.3,2,5
C.2,3,1D.3,2,1
12.对于下面程序段,描述中正确的是______。
x=2;
do
x*=x;
while(!
=0);
A.是死循环B.循环执行2次
C.循环执行1次D.有语法错误
13.若有定义:
intk;
,下面不会出现死循环的程序段是______。
A.k=0=while(k%2==k++%2)k++;
B.k=0;
while
(1){k=k%100+1;
if(k>100)break;
C.k=0;
do{++k;
}while(k>0);
D.for(;
;
);
14.从键盘输入2473↙,下面程序的运行结果是______。
intc;
while((c=getchar())!
="
\n"
)
switch(c-"
2"
putchar(c+4);
putchar(c+3);
putchar(c+2);
A.668977B.668966
C.66778777D.6688766
15.下面程序的运行结果是______。
inta,b;
for(a=1,b=1;
a<=100;
a++)
if(b>=20)break;
if(b%3==1)
b+=3;
b-=5;
a);
A.7B.8
C.9D.10
16.C语言中数组元素引用时,其下标允许是______。
A.关系表达式B.整型表达式
C.任何类型的表达式D.整型常量或整型表达式
17.以下对一维整型数组k正确定义的是______。
A.k[20];
B.intn=20,k[n];
C.#defineN20intk[N];
D.intn;
scanf("
%d:
n);
intk[n];
18.在C语言中,二维数组元素在内存中的存放顺序是______。
A.按行存放B.按列存放
C.由用户自己定义D.由编译器决定
19.以下一组对数组a初始化的语句中,给a数组所有元素赋初值0的正确语句是______。
A.inta[9]=9*0;
B.inta[9]={0};
C.inta[9]={};
D.inta[9]=0;
20.以下能对二维数组m进行正确初始化的语句是______。
A.intm[2][]={{1,2},{2,0,3}};
B.intm[2][4]={{1,2},{3,4},{2,5}};
C.intm[][3]={{1,2,3},{4,5}};
D.intm[][3]={{1},{},{2,5,3}};
21.若有说明:
inta[10];
,则对a数组元素引用不正确的是______。
A.a[4+5]B.a[10]
C.a[10-10]D.a[5]
22.若有说明:
intk[3][4];
,则对k数组元素的正确引用是______。
A.a[2][0]B.a[1,3]
C.a[2][4]D.a
(2)
(1)
23.执行inta[][3]={1,2,3,4,5,6,7};
语句后,a[1][0]的值是______。
A.1B.3
C.5D.4
24.以下关于数组的描述正确的是______。
A.数组的大小是固定的,但可以有不同数据类型的数组元素
B.数组的大小是可变的,但所有数组元素的数据类型必须相同
C.数组的大小是固定的,所有数组元素的数据类型必须相同
D.数组的大小是可变的,可以有不同数据类型的数组元素
25.以下对二维数组a正确定义的语句是______。
A.inta[3][];
B.floata(3,4);
C.floata[3][4];
D.inta[3,4];
26.若有说明:
intk[][4]={1,2,3,4,5,6,7,8,9,10,11};
,则k数组的第一维长度是______。
A.3B.2
C.1D.无确定值
27.以下程序段的运行结果是______。
inti,a[10];
for(i=0;
i<10;
i++)
a[i]=i;
i++,i++)
a[i]+=2;
a[i]);
A.0123456789B.XX
C.XXD.XX1
28.以下程序的运行结果是______。
intk[9]={19,16,17,15,13,11,10,9},i=1,s=0;
while(i<9&
k[i]%3)
s=s+k[i++];
s);
A.33B.52
C.101D.110
29.以下程序的运行结果是______。
intm[][3]={1,3,2,4,5,7,6,8,9,10,11};
inti,k=2;
i<3;
print{("
m[k][i]);
A.457B.279
C.91011D.689
30.设有如下程序段:
inta[3][4]={1,0,2,1,0,2,1,0,1,1,0,1},i,j,sum=0;
i<=2;
i++9)
for(j=0;
j<=i;
j++)
sum+=a[i][j];
则执行该程序段后,sum的值是______。
A.0B.4
C.5D.3
二、填空题
1.以下程序运行时输入12↙,输出结果是______。
charch1,ch2;
intn1,n2;
ch1=getehar();
ch2=getchar();
n1=ch1-"
0"
n2=n1*10+(ch2-"
n2);
2.以下程序运行后的输出结果是______。
intx=3,y=0,z=0;
if(x=y+z)printf("
****"
elseprintf("
####"
3.以下程序运行时输入10,20↙,输出结果是______。
intx,y,t=0;
scanf("
x,&
y);
if(x>y)
t=x;
x=y;
y=t;
%d,%d\n"
x,y);
4.以下程序运行时输入9↙,输出结果是______。
intn;
if(n++<10)printf("
n);
n--);
intn=0,m=-10,x=2;
if(!
n)x-=1;
if(-m)x-=2;
if(x)x-=3;
6.下面程序的功能是输入等比数列的首项(a)、公比(d)和项数(n),计算等比数列的和并输出,请把程序补充完整。
inta,d,n,i;
intx,sum=0;
%d%d%d"
a,&
d,&
x=______;
for(i=1;
i<2=n;
sum+=x;
______;
a=%d,d=%d,n=%d,sum=%d"
a,d,n,sum);
7.下面程序的功能是输出如图所示的矩阵。
请把程序补充完整。
inti,j;
i<6;
for(j=1;
j<6;
if(______)printf("
%3d"
0);
______);
8.下面程序的功能是计算多项式的近似值,要求至少计算到1/n不大于10-6为止,请把程序补充完整。
inti;
floatx,sum=0.0;
i++)
if(x<=1e-6)______
\n%f"
sum);
9.如果用0至9之间不同的三个数构成一个三位数,且各位数字之和是5,下面程序将输出这些数,并统计出共有多少种方法,请把程序补充完整。
inti,j,k,count=0;
i<=9;
j<=9;
if(______)continue;
for(k=0;
k<=9;
k++)
if(______)
%4d"
i*100+j*10+k);
count++;
n%d"
count);
10.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
intday,x1,x2;
day=0;
x1=1020;
while(______)
x2=______;
x1=x2;
day++;
day=%d\n"
day);
11.下面程序的功能是求零件总数:
有一堆零件,如果分成4个零件一组的若干组,则多2个;
若分成7个零件一组,则多3个;
若分成9个零件一组,则多5个,这堆零件最少有几件?
inti=1,s=1;
if((i-2)%4==0)
((i-3)%7))
i);
______
i++;
while(s);
12.下面程序的功能是求1至1000之间满足“用2除余1,用3除余2,用5除余3”的数,且每行打印11个数,请把程序补充完整。
inti=1,j=0;
%5d"
j=j+1;
if(______)printf("
i=i+1;
}while(i<1000);
13.父亲说:
今年哥哥年龄的平方加上弟弟的年龄,等于1119;
弟弟年龄的平方加上哥哥的年龄,等于933;
他们现在的年龄都不超过35岁。
下面程序的功能是计算哥哥和弟弟的年龄,请把程序补充完整。
i<=35;
j=______;
Theoldbrother"
sageis:
%d\n"
Theyoungbrother"
j);
14.以下是一个投标公司中标评分统计程序,数组r存有9个评委的打分,统计时,去掉其中的1个最高分与1个最低分,其他7个分数的平均分即是最后得分,请把程序补充完整。
floatr[9]={8.9,7.6,9.1,8.5,8.6,8.3,9.0,8.4,8.7};
floatsum,ave,max,min;
i<9;
sum+=______;
max=min=r[0];
max=r[i];
if(min>r[i])
min=r[i];
ave=______;
Average=%.2f\n"
ave);
15.下面程序的功能是给一维数组a输入任意5个小于10的正整数,并输出经过5次逐位右移一位形成的方阵,请把程序补充完整。
假设输入为:
56843,则输出的结果为:
35684
43568
84356
68435
56843
inta[5],i,j,k,n;
i<5;
a[i]);
for(n=1;
n<=5;
n++)
k=a[4];
for(______;
j>=0;
j--)
a[j+1]=a[j];
16.下面程序的功能是从键盘输入任意20个整数存放在a数组中,统计其中能被3或7整除的个数,并依次将这些数存入b数组中,请把程序补充完整。
inta[20],b[20],i,j=0,n=0;
i<20;
if(______||a[i]%7==0)
______=a[i];
n++;
Arraybis:
b[j]);
n=%d\n"
17.下面程序用直接交换排序法实现对键盘输入的任意25个数按从大到小顺序排列,请把程序补充完整。
intm[25];
inti,j,temp;
Enterarraym:
i<25;
m[i]);
i<24;
j<25;
if(m[i]<m[j])
temp=m[i];
m[i]=m[j];
Nowarraymis:
m[i]);
18.下面程序用以计算数组X中所存放的由键盘输入的n个采样值的方差,请把程序补充完整。
方差公式如下:
floatx[30],s,xa=0.0;
Entersample:
i<30;
%f"
x[i]);
xa+=______;
s=______;
s+=______;
Arrayxis:
x[i]);
s=%f\n"
19.下面程序用以求矩阵a和b的差,结果存入矩阵c并按矩阵形式输出。
请填空完善程序。
inta[3][4]={2,3,1,1,5,6,7,9,11,15,18,36};
intb[