C语言试题卷与答案解析.docx
- 文档编号:8839894
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:7
- 大小:25.70KB
C语言试题卷与答案解析.docx
《C语言试题卷与答案解析.docx》由会员分享,可在线阅读,更多相关《C语言试题卷与答案解析.docx(7页珍藏版)》请在冰豆网上搜索。
C语言试题卷与答案解析
一、选择题(每题2分,共40分)
1、C语言源程序的基本单位是()
A.程序行B.语句C.函数D.字符
2、C语言规定:
在一个源程序中,main函数的位置( )。
A.必须在最开始 B.必须在系统调用的库函数的后面
C.可以任意 D.必须在最后
3、在下列字符列中,合法的标识符是()
A.p12&.aB.stud_100C.water$12D.88sum
4、在C语言中,要求运算的数必须是整数的运算符是()
A./B.!
C.%D.==
5、设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值是()
A、3B、0C、9D、-12
6、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为()
A、1B、2C、3D、4
7、执行下列程序时输入:
1234567,程序的运行结果是()
main()
{
intx,y;
scanf(“%2d%*2c%1d”,&x,&y);
printf(“%d\n”,x+y);
}
A.17B.46C.15D.9
8、下述程序的输出结果是()
#include
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>='a')||(c<='z')
C.('a'<=c)and('z'>=c)D.(c>='a')&&(c<='z')
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++<4;);后变量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;i<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、定义如下变量的数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)printf(“%d”,x[i][2-i]);
则上列语句的输出结果是____________。
三、补充完整程序(每题5分,共20分)
1、已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下,请填空:
main()
{
intyear,leap;
scanf(“%d”,&year);
if(
)
leap=1;
elseleap=0;
if(
)printf(“是润年”);
elseprintf(“不是润年”);
}
2、用辗转相减法求两个正整数m和n的最大公约数。
main()
{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的值,并显示出来。
main()
{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……。
main()
{inti;
intx[20]=________
__________;
for(i=2;i<20;i++)
______
_______;
for(i=0;i<20;i++)
{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是回文数,个位与万位相同,十位与千位相同。
一、选择题(每题2分,共40分)
1、C2、C3、B4、C5、D6、B7、A8、C9、C10、A11、D12、B
13、B14、C15、C16、D17、C18、C19、C20、B
二、填空题(每空1分,共10分)
1、顺序结构、选择结构、循环结构2、.c,.obj,.exe
3、44、25、116、357
三、补充完整程序(每题5分,共20分)
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])
四、编程题(7+8+7+8,共30分)
1、main()
{
inti,j,k;
printf("\n");
for(i=1;i<5;i++) /*以下为三重循环*/
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if(i!
=k&&i!
=j&&j!
=k) /*确保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
2、#include"math.h"
main()
{
longinti,x,y,z;
for(i=1;i<100000;i++)
{x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
}
3、#include"stdio.h"
main()
{
inti,j,result;
printf("\n");
for(i=1;i<10;i++)
{for(j=1;j<10;j++)
{result=i*j;
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
}
printf("\n");/*每一行后换行*/
}
}
4、main()
{
longge,shi,qian,wan,x;
scanf("%ld",&x);
wan=x/10000;
qian=x%10000/1000;
shi=x%100/10;
ge=x%10;
if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/
printf("thisnumberisahuiwen\n");
else
printf("thisnumberisnotahuiwen\n");
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题 答案 解析
![提示](https://static.bdocx.com/images/bang_tan.gif)