C语言期中考试试题A标准答案 |
|
|
西安科技大学2008—2009学年第2学期期末(中)考试试题(卷)
院系:班级:姓名:学号: 装订线装订线以内不准作任何标记装订线 科目 C语言期中考试试题 考试性质 考查 命题 审批 7..设有程序段
intk=3;
while(k)k=k-1;
则下面描述中正确的是C.
A.循环体语句一次也不执行B.循环是无限循环
C.while循环执行3次.D.循环体语句执行一次
8.根据定义和数据的输入方式,输入语句的正确形式为D
A.scanf(“%f,%f”,&f1,&f2)B.scanf(“%3.2f%2.1f”,&f1&f2);
C.scanf(“%3.2f%2.1f”,&f1,&f2);D.scanf(“%f%f”,&f1,&f2);
9..以下叙述不正确的是C.
A.一个C源程序必须包含一个main函数B..一个C源程序可有一个或多个函数组成.
C.在C程序中,注释说明只能位于一条语句的后面.D.C程序的基本组成单位是语句.
10.下面不正确的字符串常量是D
A.”while”B.”12’12”
C.”0”D.’file’
二.填空(每空2分,共20分)
1.有intx=2,y=3;且y+=(x++),则x=3,y=5.
2.执行下面程序段后,k的值是36.
k=1;n=263;
do{k=n%10;n=n/10;}while(n);
3.C语言中函数头给出函数的特征描述,包括函数的属性、类型、名字、参数及参数类型.
4.有intx,y,z;且x=3.2,y=4.2,z=2,则表达式z=(x+y)/z的值为3.
试卷类型 A 考试地点 学生班级 车辆0701-02 成绩 一.选择题(每题2分,共20分)
1下面不是C语言关键字的是C
A.volatileB.unsigned
C.DoD.void
2.下面不是C语言合法标识符的是B
A.fine5B.&i
C._scoreD.flag
3.C语言规定,简单变量做实参时,它和对应形参之间的数据传达方式是A.
A.单向值传递B.地址传递.
C.由实参传给形参再有形参传回给实参.D.由用户指定传递方式.
4若用数组名作为函数调用的实参传递给形参的是D.
A.数组元素的个数.B.数组第一个元素的值.
C.数组中全部元素的值.D.数组的首地址.
5.下面正确的定义语句是D
A.inta[1][4]={1,2,3,4,5};B.doubley[][3]=0;
C.longb[2][3]={{1},{1,2},{1,2,3}};D.floatx[][3]={{1},{2},{3}};
6.C语言规定,函数返回值的类型是由A.
A.在定义该函数时所指定的函数类型所决定.
B.调用该函数时的主调函数类型所定决.
C.调用该函数是系统时决定.
D.return语句中的表达式类型所决定.
西安科技大学20—20学年第学期期末(中)考试试题(卷)
院系:班级:姓名:学号: 装订线装订线以内不准作任何标记装订线 科目 C语言期中考试试题 试卷类型 A 考试班级 车辆0701-02 三.写出下面程序的运行结果.(每题5分,共20分)
1.程序main()
{inta=3,b=5,c=2,d=1,x;
if(a x=c+d;
else
x=c-d;
printf("%d",x);
}
运行结果是3
2.下面程序的运行结果是x=11.
#include"stdio.h"
intx=10;
intf(inty)
{staticintx=0;x+=y;}
main()
{intx=6;
{intx=5;
f(x);
}
x=f(x);
printf("x=%d",x);
}
5.在执行语句for(i=0;i<3;i=i+2)printf(“%d”,i)时,表达式1执行了1次,表达式2执行了3次.
6.下面程序段中循环体的执行次数是3次.
a=10;b=0;
do{b=b+2;a-=2+b;}while(a>=0);
7以下程序的运行结果是m=3,n=5
#include"stdio.h"
main()
{inti=0,j=0,m=1,n=3;
switch(i++)
{case0:m++;
case1:n++;
case2:
case3:m++;n++;break;
case4:m++;n++;
}printf("m=%d,n=%d",m,n);}
8.以下程序的运行结果是6
main()
{intm=5;
if(m++>5)
printf(“%d”,m);
else
printf(“%d”,m--);}
西安科技大学20—20学年第学期期末(中)考试试题(卷)
院系:班级:姓名:学号: 装订线装订线以内不准作任何标记装订线 科目 C语言期中考试试题 试卷类型 A 考试班级 车辆0701-02 四.根据题目的要求,补全下面的程序。(每空4分,共20分)
1.以下程序的功能是求10个数中的正整数之和,请补全程序。
#include"stdio.h"
main()
{ints=0,i,j;
for(i=0;i<=10;i++)
{scanf(“%d”,&j);
if(j<=0)
(1);
s+=j;}
printf(“和=%4d”,s);
}
解答:(1)continue
2.下面程序的功能是:可以通过指针输出数组a中任一行、任一列元素的值。请补全程序。
#include"stdio.h"
main()
{inta[3][5]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30};
inti,j;
int(p)[(2];
p=a;
printf(“Enteri,j;(0<=i<=2),(0<=j<=4):”);
scanf(“%d,%d”,&i,&j);
3.下面程序的运行结果是a=16,y=36.
#include“stdio.h”
main()
{
inta,y;
a=2;
y=0;
do
{a+=2;
y+=a;
if(y>30)
break;
}
while(a=14);
printf(“a=%d,y=%d\n”,a,y);
}.
4.下面程序的运行结果是x=30,y=+30.00.
main()
{intx;
floaty=353;
x=y/100;
y=x=10;
printf(“x=%d,y=%+7.2f”,x,y);
}
西安科技大学20—20学年第学期期末(中)考试试题(卷)
院系:班级:姓名:学号: 装订线装订线以内不准作任何标记装订线 科目 C语言期中考试试题 试卷类型 A 考试班级 车辆0701-02 解:#include“stdio.h”
main()
{inta[10]={1,3,2,5,6,7,4,9,10,8};
inti,flag,t;
do
{flag=0;
for(i=0;i<8;i++)
if(a[i] {t=a[i];a[i]=a[i+1];a[i+1]=t;flag=1;}
}
while(flag)
for(i=0;i<10;i++)
printf(“排序后的数组:\t”,a[i]);
}
2.编程判断输入的一个正整数是否既是5的又是7的倍数,若是则输出YES,否则输出NO.
解:#include“stdio.h”
main()
{intx;
printf(“请输入一个正整数:”);
scanf(“%d”,&x);
if(x%5==0&&x%7==0)
printf(“YES”);
elseprintf(“NO”);
}
printf(“a[%d][%d]=%d\n”,i,j,((3)));
}
接答:(2)5(3)(p+i)+j
3.以下程序的功能是用枚举法求百鸡问题,公鸡五元一只,母鸡三元一只,小鸡一元两只;一百元要买一百只鸡,且需包含公鸡、母鸡和小鸡。问有几种方案可以实现。请填空(要求以较高的效率和合理的数值填空)。
#include"stdio.h"
main()
{intn,i,j,k;
n=0;
for(i=1;i<=19;i++)
for(j=1;j<=(100-5i)/3;j++)
{k=100-i-j;
if(k%2==0&&5i+3j+k/2==100)
{n++;
printf("n=%d,cock=%d,hen=%d,chick=%d\n",n,i,j,k);
printf("jine=%d\n",5i+3j+k/2);
}
}
}
解答:(4)n,i,j,k(5)5i+3j
五.编程题:(每小题10分,共20分)
1.用冒泡排序法将数组a[10]={1,3,2,5,6,7,4,9,10,8}中的数据进行从大到小进行排列,并输出排好的数组a[10].
第1页共5页
|
|
|
|
|
|
|
|