电大考试C语言程序设计题库题库及答案.docx
- 文档编号:5098525
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:29
- 大小:29.76KB
电大考试C语言程序设计题库题库及答案.docx
《电大考试C语言程序设计题库题库及答案.docx》由会员分享,可在线阅读,更多相关《电大考试C语言程序设计题库题库及答案.docx(29页珍藏版)》请在冰豆网上搜索。
电大考试C语言程序设计题库题库及答案
特别说明:
题号后带有*的,该题有明显错误或疏漏,详细说明见《形考册勘误》
C语言程序设计作业1
(知识点覆盖范围:
第1章至第3章)
一、选择题
1.A2.D3.B4.D5.B6.A7.C8.A9.B10.C
11.C12.A13.B14.D15*.B16*.D17.A
二、填空题
1.;2.}3*.//4*.*/
5.#include6.用户7*.函数头8.printf
9*.void10.43-18=2511.warning12.error
13.0x19(或0X19)14.\n15.D16.72
17.418.119.420.4
21.int22.double23.const24.初始化
25.626.727.6.2528.4
29*.++x30.y=y+131.x32.x+y<=5
33.a<=b&&b!
=534.假35.真36.10
37.DataType38.整型常量表达式39.switch40.不停止
41.1042.break43.return44*.main
三、写出下列每个程序运行后的输出结果
1.*程序代码:
#include
voidmain(){
intx=5;
switch(2*x-3){
case4:
printf("%d",x);
case7:
printf("%d",2*x+1);
case10:
printf("%d",3*x-1);break;
default:
printf("%s","default\n");
}
printf("%s\n","switchend.");
}
运行结果:
1114switchend.
2.程序代码:
#include
voidmain(){
inti,s=0;
for(i=1;i<=6;i++)
s+=i*i;
printf("s=%d\n",s);
}
运行结果:
s=91
3.程序代码:
#include
voidmain(){
inti,s1=0,s2=0;
for(i=0;i<10;i++)
if(i%2)s1+=i;
elses2+=i;
printf("%d%d\n",s1,s2);
}
运行结果:
2520
4.程序代码:
#include
voidmain(){
intn=10,y=1;
while(n--){y++;y++;}
printf("y=%d\n",y);
}
运行结果:
y=21
5.程序代码:
#include
voidmain(){
intf,f1,f2,i;
f1=f2=1;
printf("%d%d",f1,f2);
for(i=3;i<=10;i++){
f=f1+f2;
printf("%d",f);
if(i%5==0)printf("\n");
f1=f2;
f2=f;
}
printf("\n");
}
运行结果:
11235
813213455
6.*程序代码:
#include
#include
voidmain(){
inti,n;
for(n=2;n<=20;n++){
inttemp=(int)sqrt(n);//sqrt(n)求出n的平方根。
然后取整
for(i=2;i<=temp;i++)
if(n%i==0)break;
if(i>temp)printf("%d",n);
}
printf("\n");
}
运行结果:
235711131719
7.程序代码:
#include
constintM=20;
voidmain(){
inti,c2,c3,c5;
c2=c3=c5=0;
for(i=1;i<=M;i++){
if(i%2==0)c2++;
if(i%3==0)c3++;
if(i%5==0)c5++;
}
printf("%d%d%d\n",c2,c3,c5);
}
运行结果:
1064
8.程序代码:
#include
constintM=20;
voidmain(){
inti,s;
for(i=1,s=0;i<15;i++){
if(i%2==0||i%3==0)continue;
printf("%d",i);
s+=i;
}
printf("%d\n",s);
}
运行结果:
157111337
特别说明:
题号后带有*的,该题有明显错误或疏漏,详细说明见《形考册勘误》
C语言程序设计作业2
(知识点覆盖范围:
第4章至第6章)
一、选择题
1.C2.C3.C4.A5.C
二、填空题
1.82.323.604.M*N
5.0~M-16.0~N-17.BB8.1
9.010.111.1112.n+1
13.比较14.复制15.1016.19
三、写出下列每个程序运行后的输出结果
1.(练习题4.2第1小题)程序代码:
#include
voidmain(){
inta[10]={12,39,26,41,55,63,72,40,83,95};
inti,i1=0,i2=0;
for(i=0;i<10;i++)
if(a[i]%2==1)i1++;elsei2++;
printf("%d%d\n",i1,i2);
}
运行结果:
64
2.*程序代码:
#include
#include
voidmain(){
inti;
char*a[5]={"student","worker","cadre","soldier","peasant"};
char*p1,*p2;
p1=p2=a[0];
for(i=0;i<5;i++){
if(strcmp(a[i],p1)>0)p1=a[i];
if(strcmp(a[i],p2)<0)p2=a[i];
}
printf("%s%s\n",p1,p2);
}
运行结果:
workercadre
3.*程序代码:
#include
inta[10]={4,5,6,15,20,13,12,7,8,9};
voidmain(){
inti,s0,s1,s2;
s0=s1=s2=0;
for(i=0;i<10;i++){
switch(a[i]%3){
case0:
s0+=a[i];break;
case1:
s1+=a[i];break;
case2:
s2+=a[i];break;
}
}
printf("%d%d%d\n",s0,s1,s2);
}
运行结果:
422433
4.程序代码:
#include
voidmain(){
chara[]="abcdbfbgacd";
inti1=0,i2=0,i=0;
while(a[i]){
if(a[i]=='a')i1++;
elseif(a[i]=='b')i2++;
i++;
}
printf("%d%d%d\n",i1,i2,i);
}
运行结果:
2311
5.(在二维数组中找最大元素及其下标)程序代码:
#include
voidmain(){
inta[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}};
intm=a[0][0];
intii=0,jj=0;
inti,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(a[i][j]>m){m=a[i][j];ii=i;jj=j;}
printf("%d%d%d\n",ii,jj,a[ii][jj]);
}
运行结果:
2112
6.(又是斐波纳契数列!
)程序代码:
#include
voidmain(){
inta,b;
for(a=1,b=2;b<50;){
printf("%d%d",a,b);
a=a+b;
b=a+b;
}
printf("\n");
}
运行结果:
12358132134
四、写出下列每个函数的功能
1.程序代码:
#include
intSA(inta,intb){
if(a>b)return1;
elseif(a==b)return0;
elsereturn-1;
}
函数功能:
比较两个整数a和b的大小。
如果a大于b则结果为1,a与b相等则结果为0,a小于b则结果为-1
2.程序代码:
intSC(inta,intb,intc){
if(a>=b&&a>=c)returna;
if(b>=a&&b>=c)returnb;
returnc;
}
函数功能:
返回a、b、c三个整数的最大值
3.(注意s初值为1,等于x0/(0+1))程序代码:
doubleSF(doublex,intn){//n为大于等于0的整数
doublep=1,s=1;
inti;
for(i=1;i<=n;i++){
p*=x;
s+=p/(i+1);
}
returns;
}
函数功能:
计算
4.*程序代码:
#include
intSG(intx){//x为大于等于2的整数
inta=(int)sqrt(x);//sqrt(x)取x的平方根
inti=2;
while(i<=a){
if(x%i==0)break;
i++;
}
if(i<=a)return0;elsereturn1;
}
函数功能:
判断整数x是否为素数,是则返回1,不是返回0
5.程序代码:
voidtrans(intx)
{
chara[10];
inti=0,rem;
do{
rem=x%16;
x=x/16;
if(rem<10)a[i]=48+rem;//'0'字符的ASCII码为48
elsea[i]=55+rem;//'A'字符的ASCII码为65
i++;
}while(x!
=0);
while(i>0)printf("%c",a[--i]);
printf("\n");
}
函数功能:
以十六进制形式输出整数x
五、根据下列每个题目要求编写程序
1.
voidfun4(char*a,intb[]){
inti;
for(i=0;i<10;b[i++]=0);
while(*a){
if(*a>='0'&&*a<='9')
b[*a-'0']++;
a++;
}
}
2.
doubleMean(doublea[M][N],intm,intn){
doublev=0;
inti,j;
for(i=0;i for(j=0;j returnv/m/n; } 3. intFF(inta[],intn) {return(n<=0)? 1: a[n-1]*FF(a,n-1);} 4*.(题目居然没有给出不等式! 可能是1+1/2+1/3+...+1/n≥5) #include voidmain() { inti=0; doubles=0; while(s<5)s+=1.0/++i; printf("n=%d\n",i); } 5*.(不等式应当是22+42+...+n2<1000) #include voidmain() { inti=0;//用i作为依次取值偶数的变量 ints=0;//用s作为累加变量 do{ i+=2; s+=i*i; }while(s<1000); printf("n=%d\n",i-2); } 6*.(应当是计算12+22+...+n2) #include voidmain() { intn,i,sum; printf("请输入正整数n: "); scanf("%d",&n); if(n<=0){ printf("应输入正整数! \n"); return; } for(i=1,sum=0;i<=n;sum+=i*i,i++); printf("平方和为: %d\n",sum); } 特别说明: 题号后带有*的,该题有明显错误或疏漏,详细说明见《形考册勘误》 C语言程序设计作业3 (知识点覆盖范围: 第6章) 一、选择题 1*.C2*.C3.B4.B5.C6.B7.C8.B9.B10.C 11.B12.D13.D14.D15*.A16.D 二、填空题 1.函数体2.03.static4.递归 5.头6.函数体7.258.46 9.4610.4*i11.(char*)p12.int** 13.&p14.*p15.0 三、写出下列每个程序运行后的输出结果 1.程序代码: #include voidSB(charch){ switch(ch){ case'A': case'a': printf("WW");break; case'B': case'b': printf("GG");break; case'C': case'c': printf("PP");break; default: printf("BB");break; } } voidmain(){ chara1='b',a2='C',a3='f'; SB(a1);SB(a2);SB(a3);SB('A'); printf("\n"); } 运行结果: GGPPBBWW 2.程序代码: #include #include doubleSD(inta,intb,charop){ doublex; switch(op){ case'+': x=a+b;break; case'-': x=a-b;break; case'*': x=a*b;break; case'/': if(b)x=(double)a/b;elseexit (1);break; default: {printf("运算符错! \n");exit (1);} } returnx; } voidmain(){ intx=20,y=8; printf("%3.2lf",SD(x,y,'-')); printf("%3.2lf",SD(x,y,'*')); printf("%3.2lf\n",SD(x+y,y,'/')); } 运行结果: 12.00160.003.50 3.程序代码: #include voidWF(intx,inty){ x=x+y; y=x+y; printf("subs: x,y=%d,%d\n",x,y); } voidmain(){ intx=18,y=23; printf("main: x,y=%d,%d\n",x,y); WF(x,y); x=2*x; printf("main: x,y=%d,%d\n",x,y); } 运行结果: main: x,y=18,23 subs: x,y=41,64 main: x,y=36,23 4.(将字符串逆序。 注意for循环只到一半长度就前后交换完了。 如果循环整个长度则会前后交换两次,最终顺序不变)程序代码: #include #include voidfun(charss[]); voidmain(){ chars[15]="567891234"; fun(s); printf("%s\n",s); } voidfun(charss[]){ inti,n=strlen(ss); for(i=0;i charc=ss[i]; ss[i]=ss[n-1-i]; ss[n-1-i]=c; } } 运行结果: 432198765 5.(插入排序法降序排序。 模拟玩扑克时起牌的过程进行排序: 手上拿的牌(a[0]~a[i-1])已经排好序,拿起一张牌a[i],从a[i-1]开始一张张地找,如果比a[i]小则把这张牌a[j]向右挪,直到当前的牌a[j]不比a[i]小了,则将a[i]放到a[j]的右边。 注意在开始找之前要先把a[i]保存起来,因为把a[i-1]向右挪的时候就会执行a[i]=a[i-1],从而改变a[i]的值。 插入排序法升序排序见练习题6.3第2小题。 )程序代码: #include voidInsertSort(inta[],intn) { inti,j,x; for(i=1;i x=a[i]; for(j=i-1;j>=0;j--)//为x顺序向前寻找合适的插入位置 if(x>a[j])a[j+1]=a[j]; elsebreak; a[j+1]=x; } } voidmain(){ inti; inta[6]={20,15,32,47,36,28}; InsertSort(a,6); for(i=0;i<6;i++)printf("%d",a[i]); printf("\n"); } 运行结果: 473632282015 6.程序代码: #include voidmain(){ inta[8]={3,5,7,9,11,13,15,17}; inti,*p=a; for(i=0;i<8;i++){ printf("%5d",*p++); if((i+1)%4==0)printf("\n"); } } 运行结果: 3579 11131517 7.程序代码: #include intLA(int*a,intn){ inti,s=0; for(i=0;i s+=a[i]; returns; } voidmain(){ inta[]={5,10,15,20,25,30}; intb=LA(a,4); intc=LA(a+2,3); printf("%d%d\n",b,c); } 运行结果: 5060 8.程序代码: #include intLB(int*a,intn){ inti,s=1; for(i=0;i returns; } voidmain(){ inta[]={1,2,3,4,2,4,5,2}; intb=LB(a,4)+LB(&a[3],4); printf("b=%d\n",b); } 运行结果: b=184 四、写出下列每个函数的功能 1.*程序代码: intWB(inta[],intn,intx){ inti; for(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电大 考试 语言程序设计 题库 答案