实验报告C程序设计第三版谭浩强Word格式文档下载.docx
《实验报告C程序设计第三版谭浩强Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验报告C程序设计第三版谭浩强Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
①#include<
iostream.h>
voidmain()
{
inti=1900;
while(i<
=2000)
{
if(i%4==0&
&
i%100!
=0)
cout<
<
"
1900-2000闰年的年份有"
i<
endl;
i++;
Else
i++;
if(i%100==0||i%400==0)
②
#include<
stdlib.h>
math.h>
intmain()
floata,b,c,delta;
pleaseinputabc:
);
%f"
a);
b);
if(a==0&
b==0&
c==0)
000\n"
else
delta=(float)b*b-4*a*c;
if(delta<
0)
111\n"
Thetworootsare%f%f\n"
(sqrt((float)delta)-b)/(2*a),(-sqrt((float)delta)-b)/(2*a));
③
inta[10],i,max;
Pleaseinput10number:
\n"
for(i=0;
=10;
i++)
%d"
max=a[0];
10;
if(max<
a)max=a;
%d\n"
max);
(2)检查语法的正确性
①2000不是闰年1996是闰年
②x=[-b±
√(4ac-b^2)i]/2a
③输入123456789输出9
数据类型运算符与表达式
了解运算符与表达式以及数据类型
3.6写出程序运算结果
3.7将China译成密码
3.10写出运算结果
(1)输入程序
charc1='
a'
c2='
b'
c3='
c'
c4='
\101'
c5='
\116'
;
a%cb%c\tc%c\tabc\n"
c1,c2,c3);
\t\b%c%c\n"
c4,c5);
②main()
{charc1="
C"
c2="
h"
c3="
i"
n'
c1+=4;
c2+=4;
c3+=4;
c4+=4;
c5+=4;
密码是%c%c%c%c%c\n"
c1,c2,c3,c4,c5);
③#include<
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
%d,%d,%d,%d\n"
i,j,m,n);
(2)运行程序
程序的运行结果
①aabbccabc
②printf("
③9,11,9,10
顺序程序设计
编写简单的程序
4.8设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。
用scanf输入数据。
main()
floatpi,h,r,l,s,sq,vq,vz;
pi=3.1415926;
请输入圆半径r圆柱高h:
%f,%f"
r,&
h);
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=4.0/3.0*pi*r*r*r;
vz=pi*r*r*h;
圆周长为:
=%6.2f\n"
l);
圆面积为:
s);
圆球表面积为:
sq);
圆球体积为:
vz);
(2)检查正确性
(3)输入数据
6.2f
6.2f
选择结构程序设计
掌握选择结构
5.5由函数
xx<
1
Y=2x-11
x<
10
3x-11x
写一段程序,输入x,输出y值。
5.6输出90分以上为A,80~89为B,70~79为C,60~69为D,60以下为E
5.7给一个不多于5位的正整数,要求①求出它是几位数②分别输出每一位数③按逆序输出
5.5
main()
{intx,y;
输入x:
x);
if(x<
1)
{y=x;
printf("
X-%d,Y=X=%d\n"
x,y);
}
elseif(x<
10)
{y=2*x-1;
printf("
X=%d,Y=2*X-1=%d\n"
{y=3*x-11;
X=5d,Y=3*x-11=%d\n"
5.6
floats,i;
chara;
scanf("
s);
while(s>
100||s<
输入错误!
error!
i=s/10;
switch((int)i)
case10:
case9:
a='
A'
break;
case8:
B'
case7:
C'
case6:
D'
case5:
case4:
case2:
case1:
case0:
E'
%c"
a);
5.7
main()
{
longintnum;
intindiv,ten,hundred,housand,tenthousand,place;
请输入一个整数(0-99999):
%ld"
num);
if(num>
9999)
place=5;
elseif(num>
999)
place=4;
99)
place=3;
9)
place=2;
elseplace=1;
place=%d\n"
place);
每位数字为:
ten_thousand=num/10000;
thousand=(num-tenthousand*10000)/1000;
hundred=(num-tenthousand*10000-thousand*1000)/100;
ten=(num-tenthousand*10000-thousand*1000-hundred*100)/10;
indiv=num-tenthousand*10000-thousand*1000-hundred*100-ten*10;
switch(place)
{case5:
%d,%d,%d,%d,%d"
tenthousand,thousand,hundred,ten,indiv);
\n反序数字为:
%d%d%d%d%d\n"
indiv,ten,hundred,thousand,tenthousand);
break;
case4:
%d,%d,%d,%d"
thousand,hundred,ten,indiv);
%d%d%d%d\n"
indiv,ten,hundred,thousand);
case3:
%d,%d,%d\n"
hundred,ten,indiv);
%d%d%d\n"
indiv,ten,hundred);
case2:
%d,%d\n"
ten,indiv);
%d%d\n"
indiv,ten);
case1:
indiv);
(2)检查程序
①x=0.2y=0.2,x=2y=3,x=10y=19
②96输出A,85输出B
③输入563输出3,365
循环控制
熟练掌握选择结构和循环结构
6.2输入两个正整数m和n求最大公约数和最小公倍数
6.4求1!
+2!
+3!
+4!
+5!
…+20!
6.6输出所有“水仙花数”---3位数,其各位数立方和等于该数
6.2
charc;
intletters=0,space=0,degit=0,other=0;
请输入一行字符:
while((c=getchar())!
='
\n'
)
if(c>
c<
z'
||c>
'
Z'
letters++;
elseif(c=='
'
space++;
elseif(c>
0'
9'
digit++;
other++;
其中:
字母数=%d空格数=%d数字数=%d其它字符数=%d\n"
letters,space,
digit,other);
6.4
floatn,s=0,t=1;
for(n=1;
n<
=20;
n++)
t=t*n;
s=s+t;
1!
+2!
+…+20!
=%e\n"
6.6
main()
inti,j,k,n;
水仙花'
数是:
for(n=100;
1000;
i=n/100;
j=n/10-i*10;
k=n%10;
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
n)
①输入2,3输出6
②输出结果2432902008176640000
③153=13+53+33
数组
1、掌握一维和二维数组的定义、赋值和输入输出
2、掌握字符数组和字符串数组的使用
3、掌握与数组有关的排序算法
7.2用选择法对10整数排序
7.4有一个排好序的数组,要求输入一个数后,按原来排序的规律将他插入数组中。
7.7输出“魔方阵”1~n2的自然数构成的魔方阵
输入
7.2
#defineN10
{inti,j,min,temp,a[N];
请输入十个数:
for(i=0;
N;
{printf("
a[%d]="
i);
a[i]);
%5d"
a[i]);
N-1;
{min=i;
for(j=i+1;
j<
j++)
if(a[min]>
a[j])min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
\n排序结果如下:
7.4
{inta[11]={1,4,6,9,13,16,19,28,40,100};
inttemp1,temp2,number,end,i,j;
初始数组如下:
输入插入数据:
number);
end=a[9];
if(number>
end)
a[10]=number;
{for(i=0;
{if(a[i]>
number)
{temp1=a[i];
a[i]=number;
11;
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
for(i=0;
a%6d"
7.7
#include<
#defineN5
intmain()
{
inta[N][N]={0},i,j,k,p,m,n;
p=1;
while(p==1)
Entern(1~%d):
"
N-1);
scanf("
n);
if((n!
=0)&
(n<
N)&
(n%2!
=0))p=0;
}
i=n+1;
j=n/2+1;
a[1][j]=1;
for(k=2;
k<
=n*n;
k++)
i=i-1;
j=j+1;
if((i<
1)&
(j>
n))
i=i+2;
j=j-1;
else
if(i<
1)i=n;
if(j>
n)j=1;
if(a[i][j]==0)a[i][j]=k;
j=j-1;
a[i][j]=k;
for(i=1;
=n;
i++) {
for(j=1;
printf("
%4d"
a[i][j]);
}
检查
①145826397
②987654321
③17,24,1,8,15
23,5,7,14,16
4,6,13,20,22
10,12,19,21,3
11,18,25,2,9
函数
1、掌握函数定义、调用和声明的方法
2、掌握实参和形参之间的传递方式
3、函数的嵌套调用
8.3写出一个判素数的函数,在主函数输入一个整数,输出是否素数的信息
8.10输入一行字符,将此字符串中最长的单词输出
8.11用冒泡法对输入的10个字符有小到大顺序排列
8.3
intnumber;
请输入一个正整数:
if(prime(number))
\n%d是素数."
number);
else
\n%d不是素数"
intprime(number)
intnumber;
intflag=1,n;
for(n=2;
number/2&
flag==1;
if(number%n==0)
flag=0;
return(flag);
8.10
intalphabetic(c);
if((c>
&
c<
||(c>
))
return
(1);
else
return(0);
intlongest(string)
charstring[];
intlen=0,i,length=0,flag=1,place,point;
=strlen(string);
if(alphabctic(string[i]))
if(flag)
point=i;
flag=0;
len++;
{flag=1;
iflen>
length)
{length=len;
place=point;
len=0;
return(place);
inti;
charline[100];
输入一行文本\n"
gets(line);
\n最长的单词是:
for(i=longest(line);
alphabctic(line[i]);
line[i]
8.11
#defineN10
charstr[N];
inti,flag;
for(flag=1;
flag==1;
\n输入字符串,长度为10:
%s"
str);
if(strlen(str)>
N)
超过长度,请重输!
sort(str);
\n排序结果:
str[i]);
sort(str)
inti,j;
chart;
for(j=1;
(i<
N-j)&
(str[i]!
\0'
if(str[i]>
str[i+1])
{t=str[i];
str[i]=str[i+1];
str[i+1]=t;
输出
①2是素数56不是素数
②输入wordhappy输出happy
③123456789
预处理命令
使用预处理命令预处理功能
9.5分析一组宏所定义的输出格式
value=%format\t"
x);
putchar('
x2);
输出结果:
value=5.000000ormatvalue=5.000000ormat
value=3.000000ormatvalue=8.000000ormat
指针