C语言程序设计.docx
《C语言程序设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计.docx(31页珍藏版)》请在冰豆网上搜索。
C语言程序设计
C语言程序设计
要求:
一、独立完成,下面已将三组题目列出,请按照学院平台指定的做题组数作
..
答,
每人只答一组题目,多答无效,满分100分;
............
平台查看做题组数操作:
学生登录学院平台→系统登录→学生登录→课
程考试→离线考核→离线考核课程查看→做题组数,显示的数字为此次离线
考核所应做哪一组题的标识;
例如:
“做题组数”标为1,代表学生应作答“第一组”试题;
二、答题步骤:
1.使用A4纸打印学院指定答题纸(答题纸请详见附件);
2.在答题纸上使用黑色水笔按题目要求手写作答;答题纸上全部信息要求手
......
写,包括学号、姓名等基本信息和答题内容,请写明题型、题号;
三、提交方式:
请将作答完成后的整页答题纸以图片形式依次粘贴在一个Word
...........
文档中上传(只粘贴部分内容的图片不给分),图片请保持正向、清晰;
...
1.上传文件命名为“中心-学号-姓名-科目.doc”
2.文件容量大小:
不得超过20MB。
提示:
未按要求作答题目的作业及雷同作业,成绩以0分记!
.......................
题目如下:
第一组:
一、编程题(每题
20分,共40分)
1、编写程序。
定义数组存放任意输入的10个实数,求出其中的最大值以及第一个最
大值的下标并输出。
max=a[0];p=0;
for(i=1;i
{
if(a[i]>max)
{
max=a[i];
p=i;
}
}
2、编写程序。
要求编写一个求最大供公约数的子函数,调用该子函数对输入的a、
b求它们的最大公约数并输出。
二、程序填空。
在程序中的序号处填上正确的内容。
(每空
4分,共48分)
1、程序用于输出如下图形。
1
2
3
4
5
6
7
8
9
1
4
2
9
3
6
16
4
8
12
25
5
10
15
20
36
6
12
18
24
30
49
7
14
21
28
35
42
64
8
16
24
32
40
48
56
81
9
18
27
36
45
54
63
72
#include
voidmain()
{inti,j;
for(i=1;i<10;i++)
printf(“%4d”,_____①_____);
for(i=1;i<10;i++)
{for(j=1;_____②_____;j++)
printf(“%4d”,_____③_____);
_____④_____;}
}
2、输入50个实数,统计其中正数、负数和零的个数。
#include
voidfun(int*zs,int*fs,int*l,_____①_____)
{inti;for(i=0;i<50;i++)
{if(aa[i]>0)(*zs)++;if(aa[i]<0)(*fs)++;
if(aa[i]==0)
(*l)++;}
}
voidmain()
{floatnum[50];inti,czs,cfs,cl;czs=cfs=cl=0;
printf("\nPleaseenter50floatnumbers:
\n");
for(i=0;i<50;i++)
scanf(“%f”,②_____);
fun(_____③_____,_____④_____);
printf("\n正数:
%d,负数:
%d,零:
%d\n",czs,cfs,cl);
}
解:
①float*aa
②num+i或&num[i]
③&czs,&cfs
④&cl,num
3、输入正整数m和n,求出[m,n]区间的所有素数。
#include
_____①_____
voidmain()
{intm,n,i,j,k;scanf("%d%d",&m,&n);for(i=m;i{k=sqrt(i);
for(j=2;_____②_____;j++)
if(_____③_____)break;
if(_____④_____)
printf("%d",i);
}
printf("\n");
}
#include
#include
voidmain()
{intm,n,i,j,k;
scanf("%d%d",&m,&n);
for(i=m;i
{k=sqrt(i);for(j=2;j<=k;j++)if(i%j==0)break;if(j>k)
printf("%d",i);
}
printf("\n");
}
三、写出程序的执行结果(每题
4分,共
12分)
1、
#include
voidmain()
{chars1[]="abcde",s2[10];
inti=0;
while(s1[i]!
=’\0’)
{s2[i]=s1[i]+3;i++;}
s2[i]='\0';
printf("%s",s2);
}
2、
#include
voidmain()
{charch1='A',ch2='B';switch(ch1)
{case'A':
switch(ch2)
{case'B':
printf("Good!
");break;case'A':
printf("Better!
");break;
}
case'B':
printf("Best!
\n");break;
}
}
3、
#include
intage(intn)
{intc;if(n==1)
c=10;
else
c=age(n-1)+2;
return(c);
}
voidmain()
{printf("%d",age(5));
}
第二组:
一、编程题(每题
20分,共
40分)
1、编写程序。
从键盘任意输入
10个数,将这
10个数按照由小到大的次序排序,输出
排序后的结果。
(排序方法任意)
2、编写程序。
利用子函数
fun
求
a数组中
n个元素的平均值,再通过
main()调用
fun
函数
输出s数组中10个元素的平均值。
二、程序填空。
在程序中的序号处填上正确的内容。
(每空
4分,共48分)
1、程序用于输出以下图形。
1
2
3
4
5
6
7
8
9
2
4
6
8
10
12
14
16
3
6
9
12
15
18
21
4
8
12
16
20
24
5
10
15
20
25
6
12
18
24
7
14
21
816
9
#include
voidmain()
{inti,j;
for(i=1;i<10;i++)
{_____①_____;
while(++j<=_____②_____)
printf(“%4d”,③_____);
_____④_____;
}
}
2、程序用于求55方阵的主对角线元素的乘积,
#include
voidmain()
{inta[5][5],i,j,ss;for(i=0;i<5;i++)
for(j=0;j<5;j++)
_____①___;ss=_____②_____;
for(i=0;i<5;i++)
ss=_____③_____;
printf(“%dn”,_____④_____);
}
3、输入一个三位正整数,分离出它的个位、十位和百位数并输出。
#include
voidmain()
{intx,hundreds,tens,units;scanf("%d",_____①_____);
hundreds=_____②_____;
tens=_____③_____;
units=_____④_____;
printf("units=%d,tens=%d,hundreds=%d\n",units,tens,hundreds);
}
三、写出程序的执行结果(每题
4分,共12分)
1、
#include
voidmain()
{inti,j;for(i=1;i<=5;i++)
{for(j=1;j<=9-i;j++)printf("");
for(j=1;j<=i;j++)
printf("%c",’A1);-’+i
printf("\n");
}
}
2、
#include
intx=100;
voidf1()
{inta=100;
a+=100;x+=100;
printf(“%4d%4d”,a,x);
}
voidf2()
{staticintb=100;b+=100;x+=100;
printf(“%4d%4d”,b,x);
}
voidmain()
{f1();f1();f2();f2();}
3、
#include
voidmain()
{intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;
printf("%d,%d,%d,%d",m,n,*p,*q);
}
第三组:
一、编程题(每题
20分,共
40分)
1、编写程序。
定义
N个大小的整型数组,任意输入
10个整数,找出其中的最大值和
最小值并输出。
2、编写程序。
自定义函数求
y!
,调用该函数求
s=m!
+n!
+k!
并输出(
m、n、k的值从
键盘输入)。
二、程序填空。
在程序中的序号处填上正确的内容。
(每空
4分,共
48分)
1、求数列
0,1,1,2,3,5,8,13,21,34,⋯⋯的前
40
个数。
其中第一、二两个数为
0、1,以后
每个数是前两个数之和。
#include
voidmain()
{int_____①_____,i;
printf(“%d%d”,_____②_____);for(_____③_____;i<=21;i++)
{f1=f1+f2;
f2=_____④_____;
printf(“%d%d”,f1,f2);
if((i+1)%2==0)printf(“\n”);
}
}
2、在D盘建一个名为”file1.dat”的文件,从键盘输入若干字符(以回车作为结束)存入该文件,。
#include
#defineNull0
voidmain()
{_____①_____;charc;
if((fp=fopen(“d:
\file.dat”,_____②_____))==Null){printf(“Can’topenfile!
\n”);exit(0);}
do{
c=getcher();
_____③_____;
}while(c!
=’\n’)
_____④_____;
}
3、输出如下所示的菱形。
*
***
*****
***
*
#include
voidmain()
{inti,j,k;
for(i=1;i<=3;i++)
{for(j=1;j<=3-i;j++)
printf("");
for(k=1;k<=_____①_____;k++)
printf("*");
printf("\n");
}
for(i=1;_____②_____;i++)
{for(j=1;_____③_____;j++)
printf("");
for(k=1;k<=6-2*i-1;k++)
_____④_____;
printf("\n");
}
}
三、写出程序的执行结果(每题
4分,共12分)
1、
#include
voidmain()
{inti,j,N,a[5][5]={{1,2,3,4,5},{2,3,4,5},{3,4,5},{4,5},{5}};N=5;
for(i=0;iprintf("%d%s",a[i][j],"");
printf("\n");
}
2、
#include
intfun(intx)
{intp;
if(x==0||x==1)p=1;
elsep=x*fun(x-2);
returnp;
}
voidmain()
{printf("%d\n",fun(6));
}
3、
#include
voidmain()
{inta=1,b=0;switch(a)
{case1:
switch(b)
{case0:
printf(“**0**”);break;
case1:
printf(“**1**”);break;
}
case2:
printf(“**2**”);break;
}
}