C语言程序设计试题与答案Word文档下载推荐.docx
《C语言程序设计试题与答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计试题与答案Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
(n=c>
d)后,m,n的值是_____________。
A.1,1B.0,1C.1,0D.0,0
8.sizeof(char)的结果值是_____________。
A.4B.2C.1D.出错
9.设a为整型变量,不能正确表达数学关系:
10<
a<
15的C语言表达式是_____________。
A.10<
15
B.a==11||a==12||a==13||a==14
C.a>
10&
a<
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<
stdio.h>
voidmain()
{
intm,n,i;
printf("
请输入两个整数m和n:
\n"
);
scanf("
%d,%d"
&
m,&
n);
for(______________________;
i++)
if(_________________________)
{
printf("
%d和%d的最小公倍数为:
m,n,i);
_________________________
}
}
2.求1+1/2+1/3+……+1/100
inti;
floats;
_____________________________
for(_______________________________)
_____________________________
1+1/2+1/3+……+1/100的值为:
%.2f\n"
s);
四、程序分析题:
(每题6分,共12分)
1.
#include<
math.h>
voidf1(intx,inty,intz)
{floaty1,y2;
y1=(-y+sqrt(z))/(2.0*x);
y2=(-y-sqrt(z))/(2.0*x);
y1=%.2fy2=%.2f\n"
y1,y2);
voidf2(intx,inty)
{printf("
y1=y2=%.2f\n"
-y/(2.0*x));
voidf3()
no\n"
{inta,b,c,d;
pleaseinput:
a,b,c\n"
%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:
for(i=0;
i<
M;
for(j=0;
j<
N;
j++)
{scanf("
%d"
a[i][j]);
b[j][i]=a[i][j];
矩阵b:
{for(j=0;
%5d"
b[i][j]);
输入数据:
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;
=m*ni%m==0&
i%n==0break;
2.s=1;
i=2;
=100;
i++s=s+1.0/i;
四、程序分析题:
(每题6分,共12分)
1.程序功能:
一元二次方程求解。
程序执行结果:
y1=4,y2=2
2.程序功能:
矩阵转置。
134
567
781
928
五、算法设计与程序实现:
(每题15分,共30分)
算法:
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
算法:
{intm,count=0;
floatprice,t_price=0,money,change;
请输入购买商品的单价和数量:
\n单价数量\n"
do{
%f%d"
price,&
m);
if(price==0||m==0)break;
t_price=t_price+m*price;
count=count+m;
}while
(1);
\n\n\n********************\n"
购买商品:
%d个应付款:
count,t_price);
实付款:
"
%f"
money);
change=money-t_price;
找零:
change);
2.
x初始化,x=1;
求x的因子;
求x的因子之和sum;
若sum与x相等,则x为完数,并将x输出;
因子个数累加,count++;
x自增,x++;
若x<
=1000,则执行s2;
输出完数的总个数count;
程序:
{
intx,i,sum,count=0;
for(x=1;
x<
=1000;
x++)
{sum=0;
for(i=1;
x;
if(x%i==0)sum=sum+i;
if(sum==x)
{
count++;
printf("
%d"
x);
}
}
\n\n1000之内的完数共有%d个\n"
count);