华农C语言程序设计实验指导书参考答Word格式文档下载.docx
《华农C语言程序设计实验指导书参考答Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《华农C语言程序设计实验指导书参考答Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
%d"
a+b);
[题目1014:
求圆面积]
{floatarea,r;
%f"
&
r);
area=3.14159*r*r;
%0.2f"
area);
3
[题目1015:
计算摄氏温度值]
#include<
stdio.h>
{floatf,c;
f);
c=5.0/9*(f-32);
%.2f"
c);
math.h"
{floata,b;
%f,%f"
if(fabs(a*a+b*b-1)<
1e-3)
Y\n"
);
elseprintf("
N\n"
[题目1017:
求数的位数]
{intn,place;
%ld"
n);
if(n>
99999999)place=9;
elseif(n>
9999999)place=8;
999999)place=7;
99999)place=6;
9999)place=5;
999)place=4;
99)place=3;
9)place=2;
elseplace=1;
%ld\n"
place);
[题目1018:
数的排序]
3,6,9
{inta,b,c,t;
%d,%d,%d"
b,&
c);
if(a>
b){t=a;
a=b;
b=t;
c){t=a;
a=c;
c=t;
if(b>
c){t=b;
b=c;
a,b,c);
#include<
{chara,b,c,d,e;
%c%c%c%c%c"
c,&
d,&
e);
if(a<
='
Z'
&
a>
A'
)a=a+32;
if(b<
b>
)b=b+32;
if(c<
c>
)c=c+32;
if(d<
d>
)d=d+32;
if(e<
e>
)e=e+32;
a,b,c,d,e);
{inta,b,c,d,e;
%d%d%d%d%d"
if(a%27==0)printf("
YES\n"
NO\n"
if(b%27==0)printf("
if(c%27==0)printf("
if(d%27==0)printf("
if(e%27==0)printf("
{intn;
if(n<
0)printf("
negative\n"
positive\n"
if(n%2==0)printf("
even\n"
odd\n"
[题目1023:
简单计算器]
intmain()
{floata,b,c;
charop;
%f%c%f"
op,&
switch(op)
{case'
+'
:
c=a+b;
break;
case'
-'
c=a-b;
*'
c=a*b;
/'
c=a/b;
default:
error"
result=%.2f"
9
[题目1024:
计算阶乘]
输入正整数n,计算n!
,结果用长整型数表示(注n!
=1*2*3*...*n)
{longi,n=1,a;
a);
for(i=1;
i<
=a;
i++)n=n*i;
n);
[题目1025:
计算数列和]
{longn,sum=0,i,t=1;
=n;
i++)
{sum=sum+t;
t=t+2;
sum);
或
{longn,sum;
sum=n*n;
注:
评判系统不对程序实现细节进行分析,只对运行结果进行评测。
[题目1026:
累加一行字符中的数字]
{charc;
ints=0,a;
while((c=getchar())!
\n'
)
{if(c>
0'
c<
9'
{a=c-48;
s=s+a;
s);
11
[题目1029:
求最大公约数]
{longr,m,n,temp;
%ld,%ld"
m,&
while(m!
=0)
{r=n%m;
n=m;
m=r;
{longm,n,t,i,s;
t=m>
n?
n:
m;
for(i=t-1;
i>
=1;
i--)
{if(m%i==0&
n%i==0)
{s=i;
break;
}
[题目1030:
字符变换]
c=c+32;
putchar(c);
[题目1037:
{inti,t,n;
floata=2,b=1,s=0;
{s=s+a/b;
t=a;
a=a+b;
%.4f\n"
[题目1044:
输出最小值]
{inti,t,min;
min);
10;
{
t);
if(t<
min)min=t;
%d\n"
min);
*[题目1031:
统计单词个数]
{inti,num=0,word=0;
charc;
for(i=0;
(c=getchar())!
if(c=='
'
)word=0;
elseif(word==0)
{word=1;
num++;
num);
*[题目1042:
百万富翁]
math.h>
{intn,m,i;
scanf("
m);
for(i=1;
=38;
if(0.01*(pow(2,i-1)-1)-i*m>
=0)break;
i-1);
15
(1)进一步熟悉掌握用while语句、do-while语句和for语句实现循环的方法。
[题目1028:
求素数]
。
#include<
{intm,k,i;
for(m=2;
m<
=200;
m++)
{k=sqrt(m);
for(i=2;
=k;
if(m%i==0)break;
if(i>
k)printf("
m);
[题目1035:
打印菱形]
{intn,i,j,k;
=2*n+1;
{k=abs(n+1-i);
for(j=1;
j<
j++)printf("
"
=2*n+1-2*k;
*"
\n"
[题目1038:
打印图案]
{intn,i,j,k,h;
for(i=-n+1;
=n-1;
{for(j=0;
abs(i);
j++)
for(k=1;
k<
=n-abs(i);
k++)printf("
k);
for(h=n-abs(i)-1;
h>
h--)printf("
h);
17
{inta[10];
inti;
i++)scanf("
a[i]);
for(i=9;
=0;
i--)printf("
a[i]);
[题目1040:
统计不同数字个数]
#include"
{inta[20];
inti,t,p=0;
20;
{scanf("
for(t=0;
t<
i;
t++)
if(a[t]==a[i])break;
if(t==i)
p++;
p);
[题目1062:
打印矩阵]
{inta[3][4],b[4][3],i,j;
3;
for(j=0;
4;
a[i][j]);
b[j][i]=a[i][j];
%d"
b[i][j]);
*[题目1047:
冒泡排序]
inti,j,t;
9;
9-i;
if(a[j]>
a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
*[题目1046:
计算高精度加法]
string.h"
{inta[100]={0},b[100]={0},c[100]={0};
chars[101];
inti=0,n1=0,n2=0,max=0,e=0;
gets(s);
n1=strlen(s);
for(i=n1-1;
i--)a[n1-1-i]=s[i]-'
n2=strlen(s);
for(i=n2-1;
i--)b[n2-1-i]=s[i]-'
if(n1>
n2)max=n1;
elsemax=n2;
=max;
{c[i]=(a[i]+b[i]+e)%10;
e=(a[i]+b[i]+e)/10;
if(c[max]>
0)printf("
c[max]);
for(i=max-1;
c[i]);
*[题目:
找矩阵中的鞍点]
{inti,j,k,a[3][4],max,maxj,flag;
{max=a[i][0];
maxj=0;
if(a[i][j]>
max)
{max=a[i][j];
maxj=j;
flag=1;
for(k=0;
k++)
if(max>
a[k][maxj])
{flag=0;
if(flag)
{printf("
max);
if(!
flag)
NO"
22
[题目1121:
定义存贮字符串的字符数组]
在下面程序中填充定义字符数组的语句,使程序完整。
{chars[80];
/*定义字符数组s*/
strcpy(s,"
abcdefghijklmn"
%s"
s);
[题目1123:
字符串的输入与输出]
下面程序实现从键盘读入字符串,然后输出到屏幕,请填充必要的语句。
chars[50];
What'
syourname?
"
/*由键盘读入字符串*/
Yournameis"
);
/*打印字符串*/
[题目1122:
字符串的合并]
从键盘输入3个字符串(每个字符串以回车符做为结束标志),将3个字符串以输入先后顺序合并到
字符串s中,请填空使用程序完整。
chars[100]="
chara[30];
gets(a);
strcat(s,a);
23
/*可以写多行代码*/
[自测数据]
[键盘输入]
123
abc
456
[正确输出]
123abc456
[题目1050:
寻找字符串]
[提示]方法1:
建立双重循环,外层循环变量指示第一个串的查找起始位置,内层循环从起始位置开始判
断第二个字符中是否出现在此处;
方法2:
使用字符串函数strstr()。
{inti,j;
chara[80],b[80];
gets(b);
a[i]!
\0'
b[j]!
if(a[i+j]!
=b[j])break;
if(b[j]=='
)break;
if(a[i]!
)printf("
i+1);
NotFound"
24
[题目1059:
函数定义]
下面是使用辗转相除法,求最大公约数的程序,请补充完整程序中函数的定义与调用。
intf(intm,intn)
intr;
while((r=m%n)!
m=n;
n=r;
returnn;
inta,b,n;
%d%d"
a,&
f(a,b));
[题目1083:
编写函数计算阶乘]
下面程序实现由键盘读入整数n,计算并输出n!
,请补充完整计算阶乘的函数。
longfanc(inta)
{longi,n=1;
25
fanc(n));
[题目1124:
函数中的变量]
写出下面程序的运行结果:
intf1(intx)
{staticintz=3,y=0;
y++;
z++;
return(x+y+z);
{inta=1,k;
%4d"
f1(a));
程序运行结果为:
6810
*[题目1084:
编写递归调用函数,实现十进制数转二进制数]
下面程序,实现由键盘输入一个正整数(不大于100000000),输出其对应的二进制数(原码表示)。
请填空:
voidfun(inti)
{if(i>
1)
fun(i/2);
i%2);
fun(n);
26
[题目1091:
交换两数,由大到小输出]
下面程序,交换两数,使两数由大到小输出,请填空
voidswap(int*p1,int*p2)
{inttemp;
temp=*p1;
*p1=*p2;
*p2=temp;
{inta,b;
int*pa,*pb;
pa=&
a;
pb=&
b;
b)swap(pa,pb);
%d%d\n"
a,b);
[题目1065:
数组中的指针]
{printf("
19\n"
2016\n"
2000\n"
2004\n"
2036\n"
2020\n"
21"
[题目1092:
函数实现求字符串长度]
下面程序以指针方式传递参数,由函数实现求字符串长度,请填空完成
intf(char*p)
{returnstrlen(p);
i=f(s);
i);
[题目1125:
定义结构体类型]
/
structstudent
{charname[20];
charsex;
intnum;
floatscore;
28
structstudentstu;
stu.name);
%*c%c"
stu.sex);
stu.num);
stu.score);
%s\n"
prin