期中试卷2 ( 1 )
北京农业学院-初三入团申请书
所属语言:C语言
试卷方案:2012c语言期中测试
试卷总分:98分
共有题型:4种
一、单项选择 共24题 (共计48分)
第1题 (2.0分)
为了避免在嵌套的条件语句 if-else
中产生二义性,C语言规定:
else子句总是与()配对。
A:缩排位置相同的if
B:其之前最近的if
C:其之后最近的if
D:同一行上的if
答案:B
第2题 (2.0分)
以下运算符中,优先级最高的运算符是()。
A:?:
B:++
C:&&
D:,
答案:B
第3题
(2.0分)
已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)
||year%400==0的值为“真”的数据是()。
A:1990
B:1992
C:1996
D:2000
答案:A
第4题 (2.0分)
用下列语句定义a,b,c,然后执行b=a;c='b'+b;则b,c的值是()。
long a=0xffffff;
int b; char c;
A:0ffffff 和0x61
B:-1和98
C:-1和97
D:指向同一地址
答案:C
第5题
(2.0分)
下列字符序列中,可用作C标识符的一组字符序列是()。
A:S.b,sum,average,_above
B:class,day,lotus_1,2day
C:#md,&12x,month,student_n!
D:D56,r_1_2,name,_st_1
答案:D
第6题 (2.0分)
以下数据中,不正确的数值或字符常量是()。
A:8.9e1.2
B:10
C:0xff00
D:82.5
答案:A
第7题 (2.0分)
下列变量说明语句中,正确的是()。
A:char:a b c;
B:char
a;b;c;
C:int x;z;
D:int x,z;
答案:D
第8题 (2.0分)
C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符()。
A:必须为字母
B:必须为下划线
C:必须为字母或下划线
D:可以是字母,数字和下划线中任一字符
答案:C
第9题 (2.0分)
下列运算符中,不属于关系运算符的是()。
A:<
B:>
C:>=
D:!
答案:D
第10题 (2.0分)
若int类型数据占两个字节,则下列语句的输出为()。
int k=-1;
printf(
A:-1,-1
B:-1,32767
C:-1,32768
D:-1,65535
答案:D
第11题
(2.0分)
C语言源程序的基本单位是()。
A:过程
B:函数
C:子程序
D:标识符
答案:B
第12题 (2.0分)
static char
str[10]=数组元素个数为()。
A:5
B:6
C:9
D:10
答案:D
第13题
(2.0分)
设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。
A:552
B:144
C:264
D:-264
答案:D
第14题 (2.0分)
以下数据中,不正确的数值或字符常量是()。
A:c
B:66
C:0xaa
D:50
答案:A
第15题 (2.0分)
以下程序的输出结果是()。
main()
{float x=3.6;
int i;
i=(int)x;
printf(
}
A:x=3.600000,i=4
B:x=3,i=3
C:x=3.600000,i=3
D:x=3
i=3.600000
答案:C
第16题 (2.0分)
下列数据中,为字符串常量的是()。
A:A
B:
C:How do
you do.
D:$$abc
答案:B
第17题 (2.0分)
在C语言中,为了结束由while语句构成的循环,while后一对圆括号
中表达式的值应该为()。
A:0
B:1
C:True
D:非0
答案:A
第18题 (2.0分)
假定所有变量均已正确定义,下列程序段运行后x的值是()。
k1=1;
k2=2;
k3=3;
x=15;
if(!k1) x--;
else if(k2) x=4;
else x=3;
A:14
B:4
C:15
D:3
答案:B
第19题 (2.0分)
执行下列语句后的输出为()。
int j=-1;
if(j<=1) printf(
else
printf(
A:****
B:%%%%
C:%%%%c
D:有错,执行不正确
答案:A
第20题
(2.0分)
C语言中 while 和 do-while
循环的主要区别是()。
A:do-while 的循环体至少无条件执行一次
B:while的循环控制条件比 do-while的循环控制条件更严格
C:do-
while 允许从外部转到循环体内
D:do-while 的循环体不能是复合语句
答案:A
第21题 (2.0分)
设j和k都是int类型,则for循环语句
for(j=0,k=0;j<=9&&k!=876;j++) scanf(()。
A:最多执行10次
B:最多执行9次
C:是无限循环
D:循环体一次也不执行
答案:A
第22题
(2.0分)
下列四个选项中,均是C语言关键字的选项是()。
A:auto
enum include
B:switch typedef continue
C:signed union scanf
D:if struct
type
答案:B
第23题 (2.0分)
设j和k都是int类型,则下面for循环语句说法正确的是()。
for(j=0,k=-1;k=1;j++,k++)
printf(
A:循环结束的条件不合法
B:是无限循环
C:循环体一次也不执行
D:循环体只执行一次
答案:B
第24题 (2.0分)
以下程序的输出结果是()。
main()
{int i,j,k,a=3,b=2;
i=(--a==b++)?--a:++b;
j=a++;k=b;
printf(
}
A:i=2,j=1,k=3
B:i=1,j=1,k=2
C:i=4,j=2,k=4
D:i=1,j=1,k=3
答案:D
二、程序填空 共2题 (共计20分)
第1题 (10.0分)
*--
--------------------------------------------------
---
【程序填空】
-------------------------------
--------------------------
题目:1982年我国第三次人口普查,结果全国人口为10.3亿,假
如人口增长率为5%。编写一个程序求在公元多少年总人口
翻了一番。
------------------------------------------------
-------*
#include
void main()
{
double p1=10.3,p2,r=0.05;
int
n=1;
***********SPACE***********
p2=p1*【?】;
***********SPACE***********
while(p2<=【?】)
{
n++;
***********SPACE***********
p2=p2*【?】;
}
***********SPACE***********
n=【?】;
printf(年人口总数翻了一番,即为%g亿人n
}
答案:
=======(答案1)=======
(1+r)
=========或=========
(r+1)
=======(答案2)=======
2*p1
=========或=========
p1*2
=========或=========
20.6
=======(答案3)=======
(1+r)
=========或=========
(r+1)
=======(答案4)=======
n+1982
=========或=========
1982+n
第2题 (10.0分)
*---------------------------
----------------------------
【程序填空】
------
--------------------------------------------------
-
题目:以下程序的功能是产生并输出杨辉三角的前七行。
1
1 1
1 2 1
1 3 3
1
1 4 6 4 1
1 5 10
10 5 1
1 6 15 20 15 6
1
---------------------------------------
----------------*
#include
main ( )
{
int a[7][7];
int
i,j,k;
for (i=0;i<7;i++)
{
a[i][0]=1;
***********SPACE***********
【?】;
}
for (i=2;i<7;i++)
***********SPACE***********
for
(j=1;j<【?】;j++)
***********SPACE***********
a[i][j]=
【?】;
for (i=0;i<7;i++)
{
***********SPACE***********
for (j=0;
【?】;j++)
printf(
printf(
}
}
答案:
=======(答案1)=======
a[i][i]=1
=========或=========
*(*(a+i)+i)=1
=========或=========
*(a[i]+i)=1
=======(答案2)=======
i
=======(答案3)=======
a[i-1][j]+a[i-1][j-1]
=========或=========
a[i-1][j-1]+a[i-1][j]
=========或=========
*(*(a+i-1)+j)+*(*(a+i-1)+j-1)
=======(答案4)=======
j<=i
=========或=========
i>=j
=========或=========
j=========或=========
i+1>j
=========或=========
j-1=========或=========
i>j-1
三、程序改错 共1题 (共计10分)
第1题 (10.0分)
*--
--------------------------------------------------
--
【程序改错】
------------------------
--------------------------------
功能:下面程序的功能是:从键盘输入十个学生的成绩,统计最
高分,最低分和平均分。max代表最高分,min代表最低分,
avg代表平均分。
----------------------------------------------
----------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
---
--------------------------------------------------
-*
main( )
{
int i;
***********FOUND***********
float
a[8],min,max,avg;
printf(
for(i=0;i<=9;i++)
{
***********FOUND***********
scanf(
}
***********FOUND***********
max=min=avg=a[1];
for(i=1;i<=9;i++)
{
***********FOUND***********
if(min
**********Program**********
********** End **********
}
main()
{ void yzj()
int k;
k=fun(1234);
printf(
yzj();
}
void yzj()
{
FILE *IN,*OUT;
int iIN,iOUT,i;
IN=fopen(
if(IN==NULL)
{
printf(
}
OUT=fopen(
if(OUT==NULL)
{
printf(
}
for(i=0;i<10;i++)
{
fscanf(IN,
iOUT=fun(iIN);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int
d,k,s=0;
while (n>0)
{d=n%10;
s+=d*d*d;
n=10;
}
return s;
----------------------
第2题
(10.0分)
*-----------------------------------
-------------
【程序设计】
---------------------
-----------------------------
功能:编写函数fun其功能是:根据整型形参m,计算如下
公式的值:y=12!+14!+...+1m!(m是偶数)
-----------------
---------------------------------
注意:部分源程序给出如下。请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*
#include
double fun(int m)
{
**********Program**********
********** End
**********
}
main()
{ void
yzj();
int n;
printf(
scanf(
printf(
yzj();
}
void yzj()
{
FILE *IN,*OUT;
int t;
double o;
int c;
IN=fopen(
if(IN==NULL)
{
printf(
}
OUT=fopen(
if(OUT==NULL)
{
printf(
}
for(c=1;c<=5;c++)
{
fscanf(IN,
o=fun(t);
fprintf(OUT,
}
fclose(IN);
fclose(OUT);
}
答案:double y=0.0;
int i,j;
double s=1;
for (i=2;i<=m;i+=2)
{
for(j=i-1;j<=i;j++)
s=s*j;
y=y+1.0s;
}
return y;
婚宴贺词-高考户籍限制