B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!
(a<=10)&&!
(a>=15)
10.要为字符型变量a赋初值,下列语句中哪一个是正确的_____________。
A.chara="3";B.chara=’3’;
C.chara=%;D.chara=*;
11.设有定义:
chars[12]="STRING";则printf("%d\n",strlen(s));的输出是_____________。
A.6B.7C.11D.12
12.合法的数组定义是()。
A.inta[3][]={0,1,2,3,4,5};
B.inta[][]={0,1,2,3,4};
C.inta[2][3]={0,1,2,3,4,5,6};
D.inta[2][3]={0,1,2,3,4,5,};
13.函数在定义时,省略函数类型说明符,则该函数值的类型为。
A.voidB.intC.floatD.double
14.若有定义:
intx,*pb;以下正确的赋值表达式是___________。
A.pb=&xB.pb=x
C.*pb=&xD.*pb=*x
15.有以下说明和定义语句(int在存中占4B)
UnionStudent
{charname[20];
intage;
floatscor[3];}st;
则sizeof(st)的值为_____________。
A.4B.12C.20D.36
得分
评卷人
二、判断题:
(每题1分,共10分)
1.C语言中,源程序的基本单位是子函数。
()
2.C是一个结构化的程序设计语言。
()
3.运算符“%”要求两个操作数都是整型。
()
4.变量名是由字母、数字、下划线构成的,长度不限。
()
5.条件运算符是一个三目运算符。
()
6.一维数组的下标在任何情况下,都不可以省略。
()
7.循环结构中,执行continue语句表示结束整个循环。
()
8.数组的下标必须是整型常量或常量表达式。
()
9.putchar()函数的作用是输出一个字符串。
()
10.函数类型省略,系统会默认为void。
()
得分
评卷人
三、程序填空:
(每空3分,共18分)
1.求m和n的最小公倍数
#include
voidmain()
{
intm,n,i;
printf("请输入两个整数m和n:
\n");
scanf("%d,%d",&m,&n);
for(______________________;i++)
if(_________________________)
{
printf("%d和%d的最小公倍数为:
%d\n",m,n,i);
_________________________
}
}
2.求1+1/2+1/3+……+1/100
#include
voidmain()
{
inti;
floats;
_____________________________
for(_______________________________)
_____________________________
printf("1+1/2+1/3+……+1/100的值为:
%.2f\n",s);
}
得分
评卷人
四、程序分析题:
(每题6分,共12分)
1.
#include
#include
voidf1(intx,inty,intz)
{floaty1,y2;
y1=(-y+sqrt(z))/(2.0*x);
y2=(-y-sqrt(z))/(2.0*x);
printf("y1=%.2fy2=%.2f\n",y1,y2);
}
voidf2(intx,inty)
{printf("y1=y2=%.2f\n",-y/(2.0*x));
}
voidf3()
{printf("no\n");
}
voidmain()
{inta,b,c,d;
printf("pleaseinput:
a,b,c\n");
scanf("%d,%d,%d",&a,&b,&c);
d=b*b-4*a*c;
if(d>0)
f1(a,b,d);
else
if(d==0)
f2(a,b);
else
f3();
}
程序功能:
程序输入:
1,-6,8
程序执行结果:
2.
#include
#defineM3
#defineN4
voidmain()
{inta[M][N],b[N][M],i,j;
printf("请输入矩阵a:
\n");
for(i=0;ifor(j=0;j{scanf("%d",&a[i][j]);
b[j][i]=a[i][j];
}
printf("矩阵b:
\n");
for(i=0;i{for(j=0;jprintf("%5d",b[i][j]);
printf("\n");
}
}
程序功能:
输入数据:
1579
3682
4718
执行结果:
得分
评卷人
五、算法设计与程序实现(每题15分,共30分)
注意:
算法要求写在试卷上。
1.设计一个简单的超市收银系统。
(输入商品购买的数量和单价,显示总付款、实付款与找零)
2.求1000以的完数,并统计个数。
参考答案
一、单项选择题:
(每题2分,共30分)
1.C2.D3.A4.C5.B
6.A7.D8.C9.A10.B
11.A12.D13.B14.A15.C
二、判断题:
(每题1分,共10分)
1.×2.√3.√4.×5.√
6.×7.×8.√9.×10.×
三、程序填空题:
(每空3分,共18分)
1.i=m;i<=m*ni%m==0&&i%n==0break;
2.s=1;i=2;i<=100;i++s=s+1.0/i;
四、程序分析题:
(每题6分,共12分)
1.程序功能:
一元二次方程求解。
程序执行结果:
y1=4,y2=2
2.程序功能:
矩阵转置。
程序执行结果:
134
567
781
928
五、算法设计与程序实现:
(每题15分,共30分)
1.
算法:
S1:
输入商品的单价price和购买数量m;
S2:
若price或m为0,则执行s6;
S3:
求价格之和。
sum=sum+price*m;
S4:
求商品数量之和。
count=count+m;
S5:
执行s1;
S6:
输出购买商品的数量count和总额t_price;
S7:
输入实付款money;
S8:
输出找零change=money-t_price
算法:
#include
voidmain()
{intm,count=0;
floatprice,t_price=0,money,change;
printf("请输入购买商品的单价和数量:
\n单价数量\n");
do{
scanf("%f%d",&price,&m);
if(price==0||m==0)break;
t_price=t_price+m*price;
count=count+m;
}while
(1);
printf("\n\n\n********************\n");
printf("购买商品:
%d个应付款:
%.2f\n",count,t_price);
printf("实付款:
");
scanf("%f",&money);
change=money-t_price;
printf("找零:
%.2f\n",change);
}
2.
算法:
S1:
x初始化,x=1;
S2:
求x的因子;
S3:
求x的因子之和sum;
S4:
若sum与x相等,则x为完数,并将x输出;
S5:
因子个数累加,count++;
S6:
x自增,x++;
S7:
若x<=1000,则执行s2;
S8:
输出完数的总个数count;
程序:
#include
voidmain()
{
intx,i,sum,count=0;
for(x=1;x<=1000;x++)
{sum=0;
for(i=1;iif(x%i==0)sum=sum+i;
if(sum==x)
{
count++;
printf("%d",x);
}
}
printf("\n\n1000之的完数共有%d个\n",count);
}