上海工程技术大学021101C期中试卷答案09-10(一)Word格式文档下载.doc
《上海工程技术大学021101C期中试卷答案09-10(一)Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《上海工程技术大学021101C期中试卷答案09-10(一)Word格式文档下载.doc(5页珍藏版)》请在冰豆网上搜索。
;
D)ch=97;
7.下列运算优先级顺序描述正确的是(C)
A)关系运算高于算术运算B)赋值运算高于关系运算
C)逻辑非的运算优先级别最高D)赋值运算高于逻辑运算
8.循环体内的continue语句的作用是(A)
A)结束本次循环进行下次循环B)继续执行循环体中后面的语句
C)跳出本层循环D)跳出所有的循环
9.设x为整型变量,x=10,则执行语句x+=x-=x-x;
后,x的值是(B)
A)10 B)20C)30D)40
10.下列能正确判断字符变量ch是否为数字字符的C语言表达式是(C)
A)’0’<
=ch>
=’9’B)’0’<
ch>
’9’C)ch>
=’0’&
&
ch<
=’9’ D)ch>
=’9’
11.设数组a是10个元素的一维整型数组,n=10,正确的说明语句是(C)
A)chara[10];
B)inta[]={1,2};
C)inta[10];
D)inta[n];
12.设整型变量c=8;
语句printf(“%d,%d”,c++,++c)的执行结果是(B)
A)8,10B)9,9C)8,9D)9,10
13.设整型变量x=1,y=2,z=3;
表达式x==(y>
=z)的值是(B)
A)1B)0C)2D)3
14.设数组a是10个元素的一维整型数组,下列错误的语句是(A)
A)a[10]=9;
B)inta[10]={1,2};
C)printf(“%d”,a[0]);
D)inta[10];
15.以下能对数组a进行正确初始化的语句是(C)
A)inta[2][3]={{1,2},{},{5,6}};
B)inta[][]={{1,2},{3,4},{5,6}};
C)inta[][2]={{1,2},{3,4},{5,6}};
D)inta[3][1]={{1,2},{3,4},{5,6}};
二、填充题(本题共10小题,每小题2分,共20分)
1.C程序的基本组成单位是函数。
2.C程序中用到的变量在使用前需要说明/定义,C语句必须以分号结束。
3.设inta=0,b=4,c=5;
则表达式!
(a||b+c&
b–c)的值是0。
4.设a=1,b=2,c=3,d=4,则表达式a<
b?
a:
c<
d?
c:
d的结果为1。
5.设x、y、z和k都是int型变量,则执行表达式x=(y=4,x=16,k=32)后,x的值为32。
6.假定x和y为int型,执行x=5,y=2,y=x/y后,y的值是2。
7.写出判断变量y是字母的C语言表达式:
(y>
=’a’&
y<
=’z’)||(y>
=’A’&
=’Z’)。
8.以下程序运行后的输出结果是(4)
#include<
stdio.h>
voidmain()
{intx=1,y=2,z=3;
if((x<
y)&
(y<
z))z+=x;
elsez+=y;
printf(“%d”,z);
}
9.下列程序的输出结果是12
voidmain()
printf(“%d”,(z+=x+y,y=z,x=z+y));
10.下列程序的输出结果是BC
{intx,y;
x=(int)(87/10);
switch(x)
{case9:
printf(“%c”,’A’);
case8:
printf(“%c”,’B’);
case7:
printf(“%c”,’C’);
break;
default:
printf(“%c”,’F’);
三、程序阅读题(本题共6小题,每小题5分,共30分)
1.执行以下程序
{inta[10],i,k=0;
for(i=0;
i<
10;
i++)a[i]=i;
for(i=1;
4;
i++)k+=a[i];
printf(“k=%d”,k);
运行后的输出结果是:
k=6
2.执行以下程序
voidmain()
{ inta,b,d=25;
a=d%10;
b=d/10;
printf(“%d,%d\n”,a,b);
}
5,2
3.执行以下程序
{ inti,a[5]={0,0,0,0,0};
for(i=1;
=4;
i++)
{a[i]=a[i-1]*2+1;
printf(“%d,”,a[i]);
}
1,3,7,15
4.执行以下程序后,
main()
{chari=1,j=2,k=3;
if(i++==1&
(++j==3||k++==3))
printf(“%d,%d,%d\n”,i,j,k);
elseprintf(“novalue”);
}
2,3,3
5.在执行以下程序后,
{intn;
floatx=2.7181;
n=100*x;
x=(int)(x*100+0.5)/100.0;
printf(“n=%d,x=%f\n”,n,x);
}
n=271,x=2.720000
6.执行以下程序,
{inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0,j=0,s=0;
while(i++<
4)
{if(i==2||i==4)continue;
j=0;
do{s+=a[i][j];
j++;
}while(j<
4);
}
printf(“%d\n”,s);
92
四、编程题(本题共3小题,每小题分别为6、6、8分,共20分)
1.计算sum=1/2+2/3+3/5+......前20项的值,并输出。
#include"
stdio.h"
voidmain()
{inti;
floatx=1,y=2,sum=0,t;
for(i=1;
=20;
{sum=sum+x/y;
t=y;
y=x+y;
x=t;
}
printf("
sum=%f"
sum);
}
2.有一个长度为20的整型数组,各个数组元素的值从键盘上输入。
从键盘上输入另外一个整数,查找它是否与某个数组元素的值相等,若相等则输出对应的下标,否则输出“cannotfind!
”。
{inta[20],i,m,n=-1;
printf("
input20numbers:
\n"
);
for(i=0;
20;
scanf("
%d"
&
a[i]);
printf("
inputanothernumbers:
scanf("
m);
for(i=0;
if(a[i]==m)n=m;
if(n>
-1)printf("
%d\n"
n);
elseprintf("
cannotfind!
"
}
3.求100到200间的所有合数并输出,每行输出5个数,每个数占5个字符宽度(合数除了能被2和自身所整除外,还能被其它整型所整除)。
{inti,j,k=1;
for(i=100;
201;
for(j=2;
j<
i;
j++)
if(i%j==0)
{printf("
%5d"
,i);
if(k%5==0)printf("
k++;
elsecontinue;
}
考试试卷第5页共5页