C语言程序设计试题第2套山东建筑大学文档格式.doc
《C语言程序设计试题第2套山东建筑大学文档格式.doc》由会员分享,可在线阅读,更多相关《C语言程序设计试题第2套山东建筑大学文档格式.doc(5页珍藏版)》请在冰豆网上搜索。
和"
}"
只能作为函数体的定界符
C、构成C程序的基本单位是函数,所有函数名都可以由用户命名
D、分号是C语句之间的分隔符,不是语句的一部分
7.若w、x、y、z、k均为int类型变量,则执行下面语句后的k的值是_______。
w=1;
x=2;
y=3;
z=4;
k=(w<
x)?
w:
x;
k=(k<
y)?
k:
y;
z)?
z;
A、1 B、2 C、3 D、4
8.以下程序段,说法正确的是_______。
x=-1;
do
{
x=x*x;
}
while(!
x);
A、是死循环 B、循环执行二次
C、循环执行一次 D、有语法错误
9.用语句floatx[3][100];
定义数组x后,则下标最大的一个数组元素是
A、x[3][100]B、x[2][99]C、x[2][100]D、x[3][99]
10.若i、j已定义为int型,则以下程序段中,循环体的总的执行次数为_______。
for(i=5;
i>
0;
i--)
for(j=0;
j<
4;
j++)
{n=n+1;
}
A、20 B、24 C、25 D、30
11.以下程序编译、运行的结果是
A、5,5B、5.0,5.0C、5.05.0D、55
#defineMIN2
#defineMAX7
main()
{printf("
%d,%d\n"
MIN+3,MAX-MIN);
12.下列符号中可以作为函数名的是_______。
A、x—aB、sysfC、5acD、$bc
13.以下正确的函数形式是_______。
A、doublefun1(intx,inty) B、fun1(intx,y)
{z=x+y;
returnz;
} {intz;
returnz;
}
C、fun1(x,y)
{intx,y;
doublez;
z=x+y;
returnz;
}
D、doublefun1(intx,inty)
{doublez;
14.以下程序的输出结果是
A、20B、30C、21D、31
{inta[5]={10,20,30,40,50},*p;
p=&
a[1];
printf("
%d"
*p++);
}
15.修改高级语言源程序的是_______。
A、调试程序B、连接程序C、编译程序D、编辑程序
二.程序填空题(20分,每空2分)
1.实现以下数学关系
-1(x<
0)
y=0(x=0)
1(x>
0)
的程序如下,请填空。
{floatx;
inty;
scanf("
%f"
&
x);
if(①)y=-1;
if(x==0)y=0;
if(②)y=1;
printf("
%d\n"
y);
2.以下函数用以求x的y次方,y为正整数。
请填空。
doublefun(doublex,doubley)
{inti;
doublep=1;
for(i=1;
i③;
i++)
p=④;
return(p);
3.求数组所有元素的积,请填空。
main()
{ints,i,a[4]={1,2,3,4};
s=⑤;
for(i=0;
i<
i++)
s=⑥;
printf("
s);
4.以下函数用于找出一个2×
4矩阵中的最大元素值,请填空。
max_value(intarr[][4])
{inti,j,max;
max=arr[0][0];
for(i=0;
i<
2;
i++)
for(j=0;
j<
⑦;
j++)
if(arr[i][j]>
max)
max=⑧;
return(max);
}
5.将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段,请填空。
含有switch语句的程序段:
ints,t,m;
t=(int)(s/10);
switch(t)
{case10:
m=5;
break;
case9:
m=4;
case8:
m=3;
case7:
m=2;
case6:
m=1;
default:
m=0;
}
含有非嵌套if语句的程序段:
ints,m;
if((s<
110)&
&
(s>
=100))m=5;
100)&
(s>
=90))m=4;
90)&
=80))m=3;
80)&
=70))⑨;
70)&
=60))⑩;
60)||(s>
=110))m=0;
三.程序运行结果题(20分,每题4分)
阅读下列各程序,将程序编译、运行输出的结果写在题目右边。
1.写出程序运行的结果:
main()
{
floata=2.5,b=3.5;
intx=3,y=2,p;
p=(x+y)%2+(int)a/(int)b;
p=%d\n"
p);
2.写出程序运行的结果:
inti,j;
i=2;
j=4;
i,j);
%d,%d\n"
i++,j--);
}
3.写出程序运行的结果:
main()
{intnum=0;
while(num<
=2)
{num++;
printf(“%d\n”,num);
4.写出程序运行的结果:
{inti,j,a[2][3]={1,2,3,4,5,6};
for(j=2;
j>
=0;
j--)
printf("
a[i][j]);
5.写出程序运行的结果:
voidsub(intx,inty,int*z)
{*z=y-x;
{inta,b,c;
sub(10,5,&
a);
sub(7,a,&
b);
sun(a,b,&
c);
printf("
%d,%d,%d\n"
a,b,c);
四、程序设计题(30分,每题10分)
认真阅读题目,按要求编写完整的C语言程序。
1.输入圆的半径r,求圆周长L,圆面积s。
要求用scanf输入数据,再计算,然后输出计算结果。
圆周率PI取3.14。
2.给出一个大于0的百分制整数成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”。
大于或等于90分为“A”,80~89分为“B”,70~79分为“C”,60~69分为“D”,小于60分为“E”。
3.编写一个循环结构的程序,求数列前20项之和:
———————————————————————————
本套题的参考答案:
一.单项选择题(30分,每题2分)
1A6A11A
2B7A12B
3B8C13D
4C9B14A
5D10A15D
二.程序填空题(20分,每空2分)
①x<
0②x>
0③<
=y④p*x⑤1
⑥s*a[i]⑦4⑧arr[i][j]⑨m=2⑩m=1
三.程序阅读题(20分,每题4分)
1p=122,43143216545-5,-12,-7
2,42
3
四.1.本题10分。
{floatPI,r,L,s;
Pleaseenterr:
\n"
);
scanf("
r,);
PI=3.14;
L=2*PI*r;
s=PI*r*r;
L=%f\n"
L);
s=%f\n"
}
2.本题10分。
main()
{intp;
scanf("
p);
switch(p/10)
{case10:
case9:
A\n″);
break;
case8:
B\n″);
case7:
C\n″);
case6:
D\n″);
default:
printf("
E\n″);
}
3.本题10