C语言程序设计试题第2套山东建筑大学.doc
《C语言程序设计试题第2套山东建筑大学.doc》由会员分享,可在线阅读,更多相关《C语言程序设计试题第2套山东建筑大学.doc(5页珍藏版)》请在冰点文库上搜索。
C语言程序设计试题(第2套)
一、单项选择题(45分,每题3分)
1.构成一个C程序的是_______。
A、一个主函数和若干个非主函数
B、若干个主函数和若干个非主函数
C、一个主函数和最多一个非主函数
D、若干个主函数和最多一个非主函数
2.以下选项中合法的字符常量是_______。
A、"B"B、'B'C、68D、'\B'
3.在C语言中,不合法的实数是_______。
A、1.23B、e-5C、3.245E3D、-.187
4.已知a是int型变量,下面不正确的赋值语句是_______。
A、a=65; B、a=1.2; C、a="a"; D、a='A'+32;
5.广义地说,为解决一个问题而采取的方法和步骤,称为_______。
A、迭代 B、增量 C、递归 D、算法
6.以下叙述中正确的是_______。
A、C程序中注释部分可以出现在程序中任意合适的地方
B、花括号"{"和"}"只能作为函数体的定界符
C、构成C程序的基本单位是函数,所有函数名都可以由用户命名
D、分号是C语句之间的分隔符,不是语句的一部分
7.若w、x、y、z、k均为int类型变量,则执行下面语句后的k的值是_______。
w=1;x=2;y=3;z=4;
k=(ww:
x;
k=(kk:
y;
k=(kk:
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;
z=x+y;returnz;}
14.以下程序的输出结果是
A、20B、30C、21D、31
main()
{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)
的程序如下,请填空。
main()
{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<4;i++)
s=⑥;
printf("%d\n",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;break;
case8:
m=3;break;
case7:
m=2;break;
case6:
m=1;break;
default:
m=0;
}
含有非嵌套if语句的程序段:
ints,m;
if((s<110)&&(s>=100))m=5;
if((s<100)&&(s>=90))m=4;
if((s<90)&&(s>=80))m=3;
if((s<80)&&(s>=70))⑨;
if((s<70)&&(s>=60))⑩;
if((s<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;
printf("p=%d\n",p);
}
2.写出程序运行的结果:
main()
{
inti,j;
i=2;
j=4;
printf("%d,%d\n",i,j);
printf("%d,%d\n",i++,j--);
}
3.写出程序运行的结果:
main()
{intnum=0;
while(num<=2)
{num++;
printf(“%d\n”,num);
}
}
4.写出程序运行的结果:
main()
{inti,j,a[2][3]={1,2,3,4,5,6};
for(i=0;i<2;i++)
for(j=2;j>=0;j--)
printf("%d",a[i][j]);
}
5.写出程序运行的结果:
voidsub(intx,inty,int*z)
{*z=y-x;}
main()
{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分。
main()
{floatPI,r,L,s;
printf("Pleaseenterr:
\n");
scanf("%f",&r,);
PI=3.14;
L=2*PI*r;
s=PI*r*r;
printf("L=%f\n",L);
printf("s=%f\n",s);
}
2.本题10分。
main()
{intp;
scanf("%d",&p);
switch(p/10)
{case10:
case9:
printf("A\n″);break;
case8:
printf("B\n″);break;
case7:
printf("C\n″);break;
case6:
printf("D\n″);break;
default:
printf("E\n″);break;
}
}
3.本题10分。
main()
{inti,t=1;
floatt=1.0,s=0.0,sum;
for(i=1;i<=20;i++)
{t=(i+1)*1.0/i;
s=s+t;}
printf("sum=%f\n",s);
}
4