答案:
=======(答案1)=======
0
第8题(1.0分)题号:
95
已知a=13,b=6,a&&b的十进制数值为【1】.
答案:
=======(答案1)=======
1
第9题(1.0分)题号:
303
为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的【1】语句配对.
答案:
=======(答案1)=======
if
第10题(1.0分)题号:
533
设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】.
for(x=0,y=0;y!
=123&&x<3;x++)
scanf("%d",&y);
答案:
=======(答案1)=======
3
第11题(1.0分)题号:
398
程序段intk=10;while(k=0)k=k-1循环体语句执行【1】次.
答案:
=======(答案1)=======
0
第12题(1.0分)题号:
311
若所用变量均已正确定义,则执行下面程序段后的值是【1】.
for(i=0;i<2;i++)printf("YES");printf("\n");
答案:
=======(答案1)=======
YESYES
第13题(1.0分)题号:
334
若有以下数组a,数组元素:
a[0]~a[9],其值为
941282107513
该数组中下标最大的元素的值是【1】.
答案:
=======(答案1)=======
3
第14题(1.0分)题号:
382
若有定义:
chars[]="china";
则TurboC系统为数组s开辟【1】个字节的内存单元.
答案:
=======(答案1)=======
6
第15题(1.0分)题号:
328
C语言中,数组元素的下标下限为【1】.
答案:
=======(答案1)=======
0
二、判断共15题(共计15分)
第1题(1.0分)题号:
928
C程序中的关键字必须小写.
答案:
Y
第2题(1.0分)题号:
933
在C语言中,变量必需先定义后使用
答案:
Y
第3题(1.0分)题号:
878
若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28.
答案:
N
第4题(1.0分)题号:
194
若有定义和语句:
inta;charc;floatf;scanf("%d,%c,%f",&a,&c,&f);
若通过键盘输入:
10,A,12.5,则a=10,c='A',f=12.5.
答案:
Y
第5题(1.0分)题号:
948
用scanf函数向已定义的变量中输入数据时,在变量名前面必须加&.
答案:
Y
第6题(1.0分)题号:
947
printf函数中,%c和%s都可以输出字符串.
答案:
N
第7题(1.0分)题号:
956
在switch-case语句中,必须使用default语句.
答案:
N
第8题(1.0分)题号:
959
在switch-case语句中,不是每个case后都要使用break语句.
答案:
Y
第9题(1.0分)题号:
949
关系运算符的优先级高于算术运算符并且低于赋值运算符.
答案:
N
第10题(1.0分)题号:
953
C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.
答案:
N
第11题(1.0分)题号:
952
do-while循环是先判断循环条件表达式,后执行循环体;while循环是先执行循环体,后判断循环条件表达式.
答案:
N
第12题(1.0分)题号:
742
若有说明intc;则while(c=getchar());是正确的C语句.
答案:
Y
第13题(1.0分)题号:
931
C语言编译系统为所定义的数组变量在内存中是分配一片连续的存储单元
答案:
Y
第14题(1.0分)题号:
909
数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数.
答案:
N
第15题(1.0分)题号:
941
在定义二维数组时,可以将该数组的两个维数全部省略
答案:
N
三、单项选择共20题(共计40分)
第1题(2.0分)题号:
2236
下面四个选项中,均是不合法的浮点数的选项是().
A:
160.0.12e3
B:
1232e4.2.e5
C:
-.18123e40.0
D:
-e3.2341e3
答案:
B
第2题(2.0分)题号:
2241
已定义ch为字符型变量,以下赋值语句中错误的是().
A:
ch='\';
B:
ch=62+3;
C:
ch=NULL;
D:
ch='\xaa';
答案:
A
第3题(2.0分)题号:
2223
若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是().
A:
1
B:
2
C:
2.0
D:
2.5
答案:
C
第4题(2.0分)题号:
2043
已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为().
chara='a';a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A:
b,c
B:
a--运算不合法,故有语法错
C:
98,c
D:
格式描述和输出项不匹配,输出无定值
答案:
C
第5题(2.0分)题号:
2189
从键盘上输入某字符串时,不可使用的函数是().
A:
getchar()
B:
gets()
C:
scanf()
D:
fread()
答案:
A
第6题(2.0分)题号:
2049
以下程序的输出结果为().
main()
{inti=010,j=10;
printf("%d,%d\n",++i,j--);
}
A:
11,10
B:
9,10
C:
010,9
D:
10,9
答案:
B
第7题(2.0分)题号:
2027
下列运算符中,不属于关系运算符的是().
A:
<
B:
>
C:
>=
D:
!
答案:
D
第8题(2.0分)题号:
2002
在C语言中,能代表逻辑值"真"的是().
A:
True
B:
大于0的数
C:
非0整数
D:
非0的数
答案:
D
第9题(2.0分)题号:
2261
若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达
式的值为"假",则以下不能满足要求的表达式是().
A:
A%2==1
B:
!
(A%2==0)
C:
!
(A%2)
D:
A%2
答案:
C
第10题(2.0分)题号:
2047
a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是().
A:
a*b/a*b==1
B:
a/b*b/a==1
C:
a/b*b+a%b==a
D:
a/b*b==a
答案:
C
第11题(2.0分)题号:
2011
以下运算符中,优先级最高的运算符是().
A:
*=
B:
>=
C:
(类型)
D:
+
答案:
C
第12题(2.0分)题号:
2251
以下不是无限循环的语句为().
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;
答案:
A
第13题(2.0分)题号:
2061
在以下给出的表达式中,与do--while(E)语句中的(E)不等价的
表达式是().
A:
(!
E==0)
B:
(E>0||E<0)
C:
(E==0)
D:
(E!
=0)
答案:
C
第14题(2.0分)题号:
2069
设j和k都是int类型,则for循环语句
for(j=0,k=0;j<=9&&k!
=876;j++)scanf("%d",&k);().
A:
最多执行10次
B:
最多执行9次
C:
是无限循环
D:
循环体一次也不执行
答案:
A
第15题(2.0分)题号:
2258
以下描述中正确的是().
A:
由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B:
do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C:
在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作
D:
do-while循环中,根据情况可以省略while
答案:
C
第16题(2.0分)题号:
2254
对for(表达式1;;表达式3)可理解为().
A:
for(表达式1;0;表达式3)
B:
for(表达式1;1;表达式3)
C:
for(表达式1;表达式1;表达式3)
D:
for(表达式1;表达式3;表达式3)
答案:
B
第17题(2.0分)题号:
2280
若有说明inta[3][4];则对a数组元素的正确引用是().
A:
a[2][4]
B:
a[1,3]
C:
a[1+1][0]
D:
a
(2)
(1)
答案:
C
第18题(2.0分)题号:
2268
对以下说明语句inta[10]={6,7,8,9,10};的正确理解是().
A:
将5个初值依次赋给a[1]至a[5]
B:
将5个初值依次赋给a[0]至a[4]
C:
将5个初值依次赋给a[6]至a[10]
D:
因为数组长度与初值的个数不相同,所以此语句不正确
答案:
B
第19题(2.0分)题号:
2292
以下不能正确进行字符串赋初值的语句是().
A:
charstr[5]="good!
";
B:
charstr[]="good!
";
C:
char*str="good!
";
D:
charstr[5]={'g','o','o','d'};
答案:
A
第20题(2.0分)题号:
2256
printf函数中用到格式符%5s,其中数字5表示输出的字符串占用
5列,如果字符串长度大于5,则输出按方式().
A:
从左起输出该字符串,右补空格
B:
按原字符长从左向右全部输出
C:
右对齐输出该字串,左补空格
D:
输出错误信息
答案:
B
四、程序填空共4题(共计24分)
第1题(6.0分)题号:
427
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
百鸡问题:
100元买100只鸡,公鸡一只5元钱,母鸡一只3
元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡
各多少只?
-------------------------------------------------------*/
#include
main()
{intcocks,hens,chicks;
cocks=0;
while(cocks<=19)
/***********SPACE***********/
{【?
】=0;
/***********SPACE***********/
while(hens<=【?
】)
{chicks=100.0-cocks-hens;
if(5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf("%d,%d,%d\n",cocks,hens,chicks);
/***********SPACE***********/
【?
】;
}
/***********SPACE***********/
【?
】;
};
}
答案:
=======(答案1)=======
hens
=======(答案2)=======
33
=======(答案3)=======
hens++
=========或=========
++hens
=========或=========
hens=hens+1
=======(答案4)=======
cocks++
=========或=========
++cocks
=========或=========
cocks=cocks+1
=========或=========
cocks=cocks+1
第2题(6.0分)题号:
459
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为
1~100分。
选手最后得分为:
去掉一个最高分和一个最低分
后其余8个分数的平均值。
请编写一个程序实现。
-------------------------------------------------------*/
#include
voidmain()
{
intscore,i,max,min,sum;
max=-32768;
min=32767;
sum=0;
for(i=1;i<=10;i++)
{
printf("Inputnumber%d=",i);
/***********SPACE***********/
scanf("%d",【?
】);
sum+=score;
/***********SPACE***********/
if(【?
】)max=score;
/***********SPACE***********/
if(【?
】)min=score;
}
printf("Canceledmaxscore:
%d\nCanceledminscore:
%d\n",max,min);
/***********SPACE***********/
printf("Averagescore:
%d\n",【?
】);
}
答案:
=======(答案1)=======
&score
=======(答案2)=======
score>max
=========或=========
max=======(答案3)=======
score=========或=========
min>score
=======(答案4)=======
(sum-max-min)/8
=========或=========
(sum-max-min)/8
第3题(6.0分)题号:
31
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能是用冒泡法对数组a进行由小到大的
排序。
-------------------------------------------------------*/
voidfun(inta[],intn)
{
inti,j,t;
/***********SPACE***********/
for(j=0;【?
】;j++)
/***********SPACE***********/
for(i=0;【?
】;i++)
/***********SPACE***********/
if(【?
】)
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
}
main()
{
inti,a[10]={3,7,5,1,2,8,6,4,10,9};
/***********SPACE***********/
【?
】;
for(i=0;i<10;i++)
printf("%3d",a[i]);
}
答案:
=======(答案1)=======
j<=n-1
=========或=========
n-1>=j
=========或=========
j<=-1+n
=========或=========
-1+n>=j
=========或=========
j=========或=========
n>j
=========或=========
j=======(答案2)=======
i=========或=========
n-j-1>i
=========或=========
i=========或=========
n-1-j>i
=========或=========
i<=n-j-2
=========或=========
i<=n-2-j
=======(答案3)=======
a[i]>a[i+1]
=========或=========
a[i+1]=======(答案4)=======
fun(a,10)
第4题(6.0分)题号:
477
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
编写程序,输出1000以内的所有完数及其因子。
所谓完数是指一个
整数的值等于它的因子之和。
例如6的因子是1、2、3,而6=1+2+3,故6是一个完数。
-------------------------------------------------------*/
#include
main()
{inti,j,m,s,k,a[100];
for(i=1;i<=1000;i++)
{m=i;s=0;k=0;
for(j=1;j/***********SPACE***********/
if(【?
】)
{s=s+j;
/***********SPACE***********/
【?
】=j;
}
if(s!
=0&&s==m)
/***********SPACE***********/
{for(j=0;【?
】;j++)
printf("%4d",a[j]);
printf("=%4d\n",i);
}
}
}
答案:
=======(答案1)=======
m%j==0
=======(答案2)=======
a[k++]
=======(答案3)=======
j=========或=========
k>j
五、程序设计共1题(共计6分)
第1题(6.0分)题号:
334
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:
编写函数fun,函数的功能是:
计算并输出
给定整数的所有因子之积(包括自身)。
规
定这个整数的值不大于50。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*/
#include"stdio.h"
#include"conio.h"
longintfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{intm;
printf("Enterm:
");
scanf("%d",&m);
printf("\nTheresultis%ld\n",fun(m));
yzj();
getch();
}
yzj()
{
FILE*IN,*OUT;
ints;
intt;
longinto;
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("WriteFileError");
}for(s=1;s<=5;s++)
{fscanf(IN,"%d",&t);
o=fun(t);
fprintf(OUT,"%ld\n"