C语言试题卷与答案解析Word文件下载.docx
《C语言试题卷与答案解析Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言试题卷与答案解析Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
x,&
y);
printf(“%d\n”,x+y);
}
A.17B.46C.15D.9
8、下述程序的输出结果是()
#include<
stdio.h>
voidmain()
{intx=-1,y=4;
intk;
k=++x<
=0&
!
(y--<
=0);
printf("
%d,%d,%d"
k,x,y);
}
A.0,0,3B.0,1,2,C.1,0,3,D.1,1,2
9、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()
main()
{intx;
scanf(“%d“,&
x);
if(x++>
5)printf(“%d”,x);
elseprintf(“%d\n”,x--);
A.7和5B.6和3C.7和4D.6和4
11、若变量c为char类型,能正确判断出c为小写字母的表达式是()
A.'
a'
<
=c<
='
z'
B.(c>
)||(c<
)
C.('
=c)and('
>
=c)D.(c>
)&
(c<
)
12、已知intx=10,y=20,z=30;
以下语句执行后x,y,z的值是。
if(x>
y)z=x;
x=y;
y=z;
A.x=10,y=20,z=30B.x=20,y=30,z=30
C.x=20,y=30,z=10D.x=20,y=30,z=20
13、以下程序的输出结果为
main()
{inti,f1,f2;
f1=f2=1;
for(i=0;
i<
4;
i++)
{printf(“%d%d”,f1,f2);
f1+=f2;
f2+=f1;
}}
A.12345678B.1123581321
C.1135791113D.13579111315
14、以下程序段()。
x=-1;
do
{x=x*x;
while(!
x);
A.是死循环B.循环执行二次
C.循环执行一次D.有语法错误
15、执行语句for(i=1;
i++<
);
后变量i的值是()。
A.3B.4C.5D.不定
16、在定义inta[10];
之后,对a的引用正确的是()。
A.a[10]B.a[6.3]C.a(6)D.a[10-10]
17、在定义inta[5][6];
后,第10个元素是()。
A.a[2][5]B.A[2][4]C.a[1][3]D.a[1][5]
18、定义如下变量的数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下列语句的输出结果是()
for(i=0;
3;
i++)printf(“%d”,x[i][2-i]);
A.159B.147C.357D.369
19、在C语言中,若对函数类型未另显示说明,则函数的隐含类型是()类型。
A.voidB.doubleC.intD.char
20、设int*p,i;
以下正确的语句是()。
A.*p=10;
B.i=p;
C.i=*p;
D.p=2*p+1;
二、填空题(每空1分,共10分)
1、结构化设计中的三种基本结构是_________、__________、____。
2、C语言源程序文件的后缀是___________,经过编译后生成文件的后缀是___________,经过链接后生成文件的后缀是____________。
3、定义intx,y;
执行y=(x=1,++x,x+2);
语句后,y的值是___________。
4、若执行以下程序段:
inta=1,b=2,m=2,n=2;
(m=a>
b)&
++n;
则n的值是______________。
5、下述语句执行后,
intk=1;
while(k++<
10);
变量k的值是____________。
6、定义如下变量的数组:
则上列语句的输出结果是____________。
三、补充完整程序(每题5分,共20分)
1、已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下,请填空:
intyear,leap;
scanf(“%d”,&
year);
if(
)
leap=1;
elseleap=0;
)printf(“是润年”);
elseprintf(“不是润年”);
2、用辗转相减法求两个正整数m和n的最大公约数。
{intm,n;
________
_______;
while(m-n!
=0)
if(m>
n)____
_____;
else_____
printf("
gcd(m,n)=%d\n"
m);
3、计算1+1/2+1/4+…+1/50的值,并显示出来。
{inti=2;
floatsum=1.0;
while(i<
=
{sum+=1/
;
i+=2;
printf(“sum=%f\n”,sum);
4、利用一维数组求显示fibonacci数列的前20项,每行显示5个数,每个数宽度5位,即:
0,1,1,2,3,5,8,13……。
{inti;
intx[20]=________
__________;
for(i=2;
20;
______
_______;
{if(i%5==0)printf(“\n”);
_______
_________;
printf(“\n”);
四、编程题(7+8+7+8,共30分)
1、有1、2、3、4个数字,新博彩通能组成多少个互不相同且无重复数字的三位数?
都是多少?
2、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求1000以内满足条件的数。
3、输出打印九九乘法表。
4、一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
1、C2、C3、B4、C5、D6、B7、A8、C9、C10、A11、D12、B
13、B14、C15、C16、D17、C18、C19、C20、B
1、顺序结构、选择结构、循环结构2、.c,.obj,.exe
3、44、25、116、357
1、
year%4==0&
year%100!
=0||year%400==0
leap
2、
scanf(“%d%d”,&
m,&
n)
m=m-n
n=n-m
3、
50
i
4、
{0,1}
x[i]=c[i-1]+x[i-2]
printf(“%5d”,x[i])
1、main()
{
inti,j,k;
\n"
);
for(i=1;
5;
i++) /*以下为三重循环*/
for(j=1;
j<
j++)
for(k=1;
k<
k++)
{
if(i!
=k&
i!
=j&
j!
=k) /*确保i、j、k三位互不相同*/
printf("
%d,%d,%d\n"
i,j,k);
}
2、#include"
math.h"
longinti,x,y,z;
for(i=1;
100000;
{x=sqrt(i+100);
/*x为加上100后开方后的结果*/
y=sqrt(i+268);
/*y为再加上168后开方后的结果*/
if(x*x==i+100&
y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
\n%ld\n"
i);
}
3、#include"
stdio.h"
inti,j,result;
printf("
for(i=1;
10;
{for(j=1;
j++)
{result=i*j;
printf("
%d*%d=%-3d"
i,j,result);
/*-3d表示左对齐,占3位*/
}
printf("
/*每一行后换行*/
}
4、main()
longge,shi,qian,wan,x;
scanf("
%ld"
&
wan=x/10000;
qian=x%10000/1000;
shi=x%100/10;
ge=x%10;
if(ge==wan&
shi==qian)/*个位等于万位并且十位等于千位*/
thisnumberisahuiwen\n"
else
thisnumberisnotahuiwen\n"