答案:
Y
第3题(1.0分)题号:
935
在C程序中,%是只能用于整数运算的运算符
答案:
Y
第4题(1.0分)题号:
948
用scanf函数向已定义的变量中输入数据时,在变量名前面必须加&.
答案:
Y
第5题(1.0分)题号:
944
C语言中,赋值表达式加上分号就构成了赋值语句.
答案:
Y
第6题(1.0分)题号:
719
C语言本身不提供输入输出语句,输入和输出操作是由函数来
实现的.
答案:
Y
第7题(1.0分)题号:
949
关系运算符的优先级高于算术运算符并且低于赋值运算符.
答案:
N
第8题(1.0分)题号:
959
在switch-case语句中,不是每个case后都要使用break语句.
答案:
Y
第9题(1.0分)题号:
869
若有inti=10,j=0;则执行完语句
if(j=0)i++;elsei--;i的值为11.
答案:
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分)题号:
710
函数strlen("ASDFG\n")的值是7.
答案:
N
第14题(1.0分)题号:
736
inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列
的元素赋初值,其余元素值为0.
答案:
Y
第15题(1.0分)题号:
737
charc[]="VeryGood";是一个合法的为字符串数组赋值的语句.
答案:
Y
三、单项选择共20题(共计40分)
第1题(2.0分)题号:
2017
C语言中,double类型数据占().
A:
1个字节
B:
2个字节
C:
4个字节
D:
8个字节
答案:
D
第2题(2.0分)题号:
2029
以下不符合C语言语法的赋值语句是().
A:
a=1,b=2
B:
++j;
C:
a=b=5;
D:
y=(a=3,6*5);
答案:
A
第3题(2.0分)题号:
1997
以下标识符中,不能作为合法的C用户定义标识符的是().
A:
a3_b3
B:
void
C:
_123
D:
IF
答案:
B
第4题(2.0分)题号:
2189
从键盘上输入某字符串时,不可使用的函数是().
A:
getchar()
B:
gets()
C:
scanf()
D:
fread()
答案:
A
第5题(2.0分)题号:
2038
以下程序段的执行结果是().
doublex;x=218.82631;printf("%-6.2f\n",x);
A:
输出格式描述符的域宽不够,不能输出
B:
输出为21.38e+01
C:
输出为218.83
D:
输出为218.82631
答案:
C
第6题(2.0分)题号:
2128
下列程序段的输出结果为().
floatx=213.82631;
printf("%3d",(int)x);
A:
213.82
B:
213.83
C:
213
D:
3.8
答案:
C
第7题(2.0分)题号:
2262
判断char型变量cl是否为小写字母的正确表达式是().
A:
a'<=cl<='z'
B:
(cl>=a)&&(cl<=z)
C:
('a'>=cl)||('z'<=cl)
D:
(cl>='a')&&(cl<='z')
答案:
D
第8题(2.0分)题号:
2261
若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达
式的值为"假",则以下不能满足要求的表达式是().
A:
A%2==1
B:
!
(A%2==0)
C:
!
(A%2)
D:
A%2
答案:
C
第9题(2.0分)题号:
2027
下列运算符中,不属于关系运算符的是().
A:
<
B:
>
C:
>=
D:
!
答案:
D
第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分)题号:
2057
经过以下语句定义后,表达式z+=x>y?
++x:
++y的值为().
intx=1,y=2,z=3;
A:
2
B:
3
C:
6
D:
5
答案:
C
第12题(2.0分)题号:
2061
在以下给出的表达式中,与do--while(E)语句中的(E)不等价的
表达式是().
A:
(!
E==0)
B:
(E>0||E<0)
C:
(E==0)
D:
(E!
=0)
答案:
C
第13题(2.0分)题号:
2247
语句while(!
E);中的表达式!
E等价于().
A:
E==0
B:
E!
=1
C:
E!
=0
D:
E==1
答案:
A
第14题(2.0分)题号:
2252
执行语句for(i=1;i++<4;);后变量i的值是().
A:
3
B:
4
C:
5
D:
不定
答案:
C
第15题(2.0分)题号:
2249
若i为整型变量,则以下循环执行次数是().
for(i=2;i==0;)printf("%d",i--);
A:
无限次
B:
0次
C:
1次
D:
2次
答案:
B
第16题(2.0分)题号:
2123
设j和k都是int类型,则for循环语句().
for(j=0,k=0;j<=9&&k!
=876;j++)scanf("%d",&k);
A:
最多执行10次
B:
最多执行9次
C:
是无限循环
D:
循环体一次也不执行
答案:
A
第17题(2.0分)题号:
2073
下列定义数组的语句中不正确的是().
A:
staticinta[2][3]={1,2,3,4,5,6};
B:
staticinta[2][3]={{1},{4,5}};
C:
staticinta[][3]={{1},{4}};
D:
staticinta[][]={{1,2,3},{4,5,6}};
答案:
D
第18题(2.0分)题号:
2149
chara[10];不能将字符串"abc"存储在数组中的是().
A:
strcpy(a,"abc");
B:
a[0]=0;strcat(a,"abc");
C:
a="abc";
D:
inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;
答案:
C
第19题(2.0分)题号:
2271
若二维数组a有m列,则在a[i][j]前的元素个数为().
A:
j*m+i
B:
i*m+j
C:
i*m+j-1
D:
i*m+j+1
答案:
B
第20题(2.0分)题号:
2072
下列定义数组的语句中正确的是().
A:
#definesize10charstr1[size],str2[size+2];
B:
charstr[];
C:
intnum['10'];
D:
intn=5;inta[n][n+2];
答案:
A
四、程序填空共4题(共计24分)
第1题(6.0分)题号:
11
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能是求100-999之间的水仙花数(水仙花数
是指一个三位数的各位数字的立方和是这个数本身,
如:
153=1^3+5^3+3^3)。
-------------------------------------------------------*/
intfun(intn)
{inti,j,k,m;
m=n;
/***********SPACE***********/
【?
】
for(i=1;i<4;i++)
{
/***********SPACE***********/
【?
】
m=(m-j)/10;
k=k+j*j*j;
}
/***********SPACE***********/
if(k==n)【?
】
elsereturn(0);}
main()
{
inti;
for(i=100;i<1000;i++)
/***********SPACE***********/
if(【?
】==1)printf("%disok!
\n",i);
}
答案:
=======(答案1)=======
k=0;
=======(答案2)=======
j=m%10;
=========或=========
j=m-m/10*10
=========或=========
j=m-10*(m/10)
=======(答案3)=======
return
(1);
=======(答案4)=======
fun(i)
第2题(6.0分)题号:
401
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
输入某年某月某日,判断这一天是这一年的第几天?
-------------------------------------------------------*/
main()
{intday,month,year,sum,leap;
printf("\npleaseinputyear,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)
{case1:
sum=0;break;
case2:
sum=31;break;
case3:
sum=59;break;
/***********SPACE***********/
case4:
【?
】;break;
case5:
sum=120;break;
case6:
sum=151;break;
case7:
sum=181;break;
case8:
sum=212;break;
case9:
sum=243;break;
case10:
sum=273;break;
case11:
sum=304;break;
case12:
sum=334;break;
default:
printf("dataerror");break;
}
/***********SPACE***********/
【?
】;
/***********SPACE***********/
if(year%400==0||(【?
】)
leap=1;
else
leap=0;
/***********SPACE***********/s
if(【?
】)
sum++;
printf("Itisthe%dthday.",sum);
}
答案:
=======(答案1)=======
sum=90
=======(答案2)=======
sum=sum+day
=========或=========
sum=sum+day
=======(答案3)=======
year%4==0&&year%100!
=0)
=========或=========
year%4==0&&year%100!
=0
=======(答案4)=======
leap==1&&month>2
=========或=========
leap==1&&month>2
=========或=========
leap==1&&2
第3题(6.0分)题号:
32
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能:
计算并输出500以内最大的10个能被
13或17整除的自然数之和。
-------------------------------------------------------*/
#include
#include
/***********SPACE***********/
intfun(【?
】)
{
intm=0,mc=0,j,n;
/***********SPACE***********/
while(k>=2&&【?
】)
{
/***********SPACE***********/
if(k%13==0||【?
】)
{m=m+k;mc++;}
k--;
}
/***********SPACE***********/
【?
】;
}
main()
{
clrscr();
printf("%d\n",fun(500));
}
答案:
=======(答案1)=======
intk
=======(答案2)=======
mc<10
=========或=========
10>mc
=========或=========
mc<=9
=========或=========
9>=mc
=======(答案3)=======
k%17==0
=========或=========
!
(k%17)
=========或=========
k/17*17==k
=======(答案4)=======
returnm
=========或=========
return(m)
第4题(6.0分)题号:
13
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
以下程序的功能是产生并输出杨辉三角的前七行。
1
11
121
1331
14641
15101051
1615201561
-------------------------------------------------------*/
main()
{
inta[7][7];
inti,j,k;
for(i=0;i<7;i++)
/***********SPACE***********/
{a[i][0]=1;【?
】;}
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("%6d",a[i][j]);
printf("\n");
}
}
答案:
=======(答案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]
=======(答案4)=======
j<=i
=========或=========
i>=j
=========或=========
j
=========或=========
i+1>j
=========或=========
j-1
=========或=========
i>j-1
五、程序设计共1题(共计6分)
第1题(6.0分)题号:
175
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:
编写函数fun求1!
+2!
+3!
+……+n!
的和,在
main函数中由键盘输入n值,并输出运算
结果。
请编写fun函数。
例如:
若n值为20,则结果为268040729
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*/
#include
floatfun(intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
inti,n;
longintresult;
scanf("%d",&n);
result=fun(n);
printf("%ld\n",result);
getch();
yzj();
}
yzj()
{
FILE*IN,*OUT;
inti;
intiIN;
longintiOUT;
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");
}
for(i=0;i<5;i++)
{fscanf(IN,"%d",&iIN);
iOUT=fu