C语言试题Word格式文档下载.docx
- 文档编号:16800562
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:19
- 大小:32.16KB
C语言试题Word格式文档下载.docx
《C语言试题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言试题Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
inti,j;
for(i=0;
3;
i++)
for(j=0;
j<
4;
j++)
b[j][i]=a[i][j];
for(i=0;
{for(j=0;
printf(“%5d”,b[i][j]);
printf(“\n”);
}
159
2610
3711
4812
2.main()
{inta[21],i,j,n=0;
for(i=2;
20;
a[i]=i;
for(i=2;
{if(a[i]==0)continue;
for(j=i+1;
=20;
j++)
if(a[j]%a[i]==0)a[j]=0;
if(a[i]!
=0){printf(“%4d”,a[i]);
n=n+1;
if(n%4==0)printf(“\n”);
}235711131719
3.floatfac(intn)
{floatf;
if(n<
0){printf(“n<
0,dataerror!
”);
f=-1;
elseif(n==0||n==1)f=1;
elsef=fac(n-1)*n;
return(f);
{intn;
floaty;
printf(“inputaintegernumber:
scanf(“%d”,&
n);
y=fac(n);
printf(“%d!
=%5.0f”,n,y);
}假如在运行程序时输入5,写出程序的运行情况及最终结果:
。
inputaintegernumber:
5
5!
=120
4.main()
{inti=10,j=0;
do
{j=j+i;
i--;
while(i>
2);
printf("
%d\n"
j);
}47
5.#include<
stdio.h>
main()
{int﹡p;
p=&
i;
﹡p=2;
p++;
﹡p=5;
printf(〞%d,〞,﹡p);
p﹣﹣;
printf(〞%d\n〞,﹡p);
}5,2
6.#include<
voidf(intc)
{inta=0;
staticintb=0;
a++;
b++;
printf("
%d:
a=%d,b=%d\n"
c,a,b);
voidmain(void)
{inti;
for(i=1;
=3;
i++)f(i);
}1:
a=1,b=1
五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)
1.已知三角形的三边长,试编程求三角形的面积.
要求:
三边长从键盘输入,要考虑数据输入是否正确,能否构成三角形等情况.假设三
边分别为:
a,b,c,s=1/2(a+b+c),area=s(s-a)(s-b)(s-c)
1.#include<
math.h>
#include<
stido.h>
{floata,b,c,s,s1;
printf(“Pleaseenter3reals:
\n”);
scanf(“%f%f%f”,&
if((a+b)>
c&
&
(a+c)>
b&
(b+c)>
a)
{s=(a+b+c)*0.5;
s1=s*(s-a)*(s-b)*(s-c);
s=sqrt(s1);
printf(“\nAreaofthetriangleis%f\n”,s);
else
printf(“Itisnottriangle!
2.有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,……
试编程求数列前20项的和.
{intm1,n1,n,k,temp;
floats=0;
printf(“PleaseInputn:
scanf(“%d”,&
m1=1;
n1=2;
for(k=0;
k<
n;
k++)
{s+=(float)n1/m1;
temp=m1;
m1=n1;
n1=temp+n1;
printf(“\ns=%f”,s);
3.输入10个学生的成绩,分别用函数实现:
(1)求平均成绩;
(2)按分数高低进行排序并输出。
{floataverage(floatb[]);
voidsort(floatb[]);
floata[10],j,aver;
for(j=0;
scanf(“%f”,&
a[j]);
aver=average(a);
printf(“aver=%f\n”,aver);
sort(a);
for(j=0;
printf(“%.2f”,a[j]);
floataverage(floatb[])
{intj;
floatsum=0,aver;
sum=sum+b[i];
aver=sum/10.0;
return(aver);
voidsort(floatb[])
{inti,j,max,k;
for(i=0;
i++)
{max=b[i];
k=i;
for(j=i+1;
if(max<
b[j]){max=b[j];
k=j;
b[k]=b[i];
b[i]=max;
模三、程序填空题(本大题12分,每小题2分)
1.输入一个字符,如果是大写字母,则把其变成小写字母;
如果是小写字母,则变成大写字母;
其它字符不变。
请填空:
main()
{charch;
scanf(“%c”,&
ch);
if(
(1)ch>
=’A’&
c<
=’Z’)ch=ch+32;
elseif(ch>
’a’&
ch<
‘z’)(
(2)ch=ch-32);
printf(”%c\n”,ch);
2.以下程序是求矩阵a,b的和,结果存入矩阵c中并按矩阵形式输出。
{inta[3][4]={{7,5,-2,3},{1,0,-3,4},{6,8,0,2}};
intb[3][4]={{5,-1,7,6},{-2,0,1,4},{2,0,8,6}};
inti,j,c[3][4];
i++)
for(j=0;
j++)
c[i][j]=___(3)a[i][j]+b[i][j]____;
printf(“%3d”,c[i][j]);
____(4)printf(“\n”)___;
3.以下程序使用递归法求n!
请填空:
floatfac(intn)
{floatf;
if(n<
0){printf(“n<
0”dataerror);
f=-1;
elseif(n==0||n==1)f=1;
elsef=(5)n*fac(n-1);
return(f);
{intn;
floaty;
printf(“inputaintegernumber”);
y=(6)ac(n);
=%15.0f”,n,y);
{floata=3.14,b=3.14159;
printf(“%f,%5.3f\n”,a,b);
}3.140000,3.141
{chara[5][5],i,j;
5;
i++)
if(i==0||i+j==4)
a[i][j]='
*'
;
elsea[i][j]='
'
{for(j=0;
%c"
a[i][j]);
\n"
);
}}
*****
*
*
3.main()
{intx,i;
for(i=1,x=1;
=50;
{if(x>
=10)break;
if(x%2==1){x+=5;
continue;
x-=3;
printf(“%d\n”,i);
}8
4.func(intx,inty)
{intz;
z=a+b;
return(z);
{inta=6,b=7,c=8,r;
r=func((a--,b++,a+b),c--)
printf(“%d”,r);
}21
5.#include<
STDIO.H>
voidincrement(void);
{
increment();
voidincrement(void)
staticintx=8;
x++;
x=%d\n"
x);
}x=9
x=10
{staticchara[]="
ABCDEFGH"
b[]="
abCDefGh"
char*p1,*p2;
intk;
p1=a;
p2=b;
for(k=0;
=7;
if(*(p1+k)==*(p2+k))printf("
*(p1+k));
}CDG
五.编程题(共30分)
1.有一函数,其函数关系如下,试编程求对应于每一自变量的函数值。
x2(x<
0)
y=-0.5x+10(0
x<
10)
x-
(x
10)
1.#include<
main()
{floatx,y;
x);
if(x<
0)y=x*x;
elseif(x>
=0&
10)y=-0.5*x+10;
elsey=x-sqrt(x);
printf(“y=%f”,y);
2.若有如下公式:
+
+。
。
+
试根据上述公式编程计算
的近似值(精确到10-6)。
main()
{floata=1,b,pi,t=1;
while(t>
=1e-6)
{pi=pi+t;
a++;
b=a*a;
t=1/b;
pi=pi*6;
printf(“pi=%f”,pi);
3.编一程序,首先将一个包含10个数的数组按照升序排列,然后将从一指定位
置m开始的n个数按照逆序重新排列,并将新生成的相互组输出。
要求使用指
针控制方法实现上述功能。
3.#include<
{intdata[10],m,n,j,*p1,*p2,temp;
printf(“\nInput10integer\n”);
data[j]);
printf(“Inputmandn:
scanf(“%d%d”,&
m,&
if(m<
1||m>
10||n<
1||n>
10||(m+n)>
11)
{printf(“InputError!
exit(0);
sort(data,10);
printf(“Resultofsortis:
printf(“%d”,data[j]);
p1=data+m-1;
p2=data+m+n-2;
for(;
p1<
data+m-1+n/2;
p1++,p2--)
{temp=*p1;
*p1=*p2;
*p2=temp;
printf(“FinalResultis:
sort(int*p,intn)
{inti,j,temp;
n-1;
if(*(p+i)>
*(p+j))
{temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
模四:
三、程序填空题(本大题12分,每小题2分)
1.下面程序的功能是利用函数调用求两整数的最大公约数和最小公倍数,请填空。
{inta,b,c,d;
scanf(“%d,%d”,&
a,&
b);
c=gongyue(a,b);
(1)d=a*b/c;
printf(“gongyue=%d,gongbei=%d\n”,c,d);
gongyue(intnum1,intnum2)
{inttemp,x,y;
if(__
(2)num1<
num2__)
{temp=num1;
num1=num2;
num2=temp;
x=num1;
y=num2;
while(__(3)x%y_____)
{temp=x%y;
x=y;
y=temp;
return(y);
2.下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。
请填空。
{inta[10],b[10],I;
for(I=0;
I<
I++)
a[I]);
for(I=1;
(4)i<
10;
b[I]=(5)a[i]-a[i-1];
I++)
{printf(“%3d”,b[I]);
if((6)i%3==0)
for(i=1;
=5;
switch(i%5)
{case0:
printf(“*”);
break;
case1:
printf(“#”);
default:
case2:
printf(“&
}#&
2.main()
if(i==0||i==j)
}
}*****
3.main()
{inti=5;
printf(“%d\n”,sub(i));
sub(intn)
{inta;
if(n==1)a=1;
elsea=n+sub(n-1);
return(a);
}15
4.intf(intx,inty)
{return((y-x)*x);
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
d);
}9
5.main()
{inta=2,b=3,c;
c=a;
if(a>
b)c=1;
elseif(a==b)c=0;
elsec=-1;
printf(“%d\n”,c);
}-1
6.#include<
{inta[]={1,2,3,4,5,6},﹡p;
for(p=&
a[5];
p>
=a;
p﹣﹣)
printf(〞%d〞,﹡p);
printf(〞\n〞);
}654321
五、编程题(共27分)
1.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。
设:
90分以上为‘A’;
80~89分为‘B’;
70~79分为‘C’;
60~69分为‘D’;
60分以下为‘E’。
{floatscore;
scanf(“%f”,&
score);
if(score>
=90)printf(“A”);
elseif(score>
=80)printf(“B”);
=70)printf(“C”);
=60)printf(“D”);
elseprintf(“E”);
2.有一个5*5二维数组,试编程求周边元素及对角线元素之和,并输出该数组中值最小的元素。
{inta[5][5],i,j,sum=0,min;
a[i][j]);
min=a[0][0];
{if(i==0||i==4)sum=sum+a[i][j];
elseif(j==0||j==4)sum=sum+a[i][j];
elseif(i==j)sum=sum+a[i][j];
elseif(i+j==4)sum=sum+a[i][j];
if(min>
a[i][j])min=a[i][j];
printf(“sum=%d,min=%d”,sum,min);
3.编写一个程序,用12个月份的英文名称初始化一个字符指针数组,当键盘输入整数为1到12时,显示相应的月份名,键入其它整数时显示错误信息。
#include<
{char*months[]={“January”,”February”,”March”,”April”,”May”,”June”,”July”,
“August”,”September”,”October”,”November”,”December”};
intn;
printf(“月份:
=12&
n>
=1)
printf(“%d月的英文名称是%s\n”,n,*(months+n-1));
printf(“输入的月份无效!
模一1.输入3个实数a,b,c要求按从大到小的顺序输出三数.
(1);
if(
(2))
{(3)b=c;
{(4)(5)}121
a[i][j]=(6);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)