C实验Word格式文档下载.docx
《C实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C实验Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
,c1,c2,c3,c4);
/*数据以原进制输出,注意是否有前导0或0x?
*/
c1=%c,c2=%c,c3=%c,c4=%c\n"
/*结果都是什么字符?
,也就是说字符可以自由的表示成几种形式?
c1=%d,c2=%d,c3=%d,c4=%d\n"
/*看看这些字符的10进制ASCII码哦,ASCII码一样,同一种字符*/
/*字符型数据参与算术运算*/
c=c1+32;
/*字符怎么参加了数学运算,哦,是字符对应的ASCII码-整数
/*参与数学运算;
结果还是一个整数-另外一个字符的ASCII码*/
c=%c,c=%d\n"
c,c);
/*看看这个字符是什么?
哇,'
+32='
m'
了,看看ASCII码表,原来如此!
结果:
x=10,y=10,z=10
x=8,y=10,z=16
c1=M,c2=4d,c3=115,c4=77
c1=M,c2=M,c3=M,c4=M
c1=77,c2=77,c3=77,c4=77
c=m,c=109
实验二顺序结构程序设计
一、实验目的:
1.掌握顺序结构程序设计
2.掌握赋值语句的用法
3.熟练地进行数据输入和输出
1、已知:
a=2,b=3,x=3.9,y=2.3(a,b整型,x,y浮点),计算算术表达式(float)(a+b)/2+(int)x%(int)y的值。
试编程上机验证。
提示编程要点:
(1)先判断结果值类型,可设置一个此类型的变量用于记录表达式结果,本例用r存放结果;
(2)程序先给几个变量赋初值,然后将表达式赋值给变量r;
(3)最后打印变量r的值就是表达式的值。
程序:
inta=2,b=3;
floatx=3.9,y=2.3;
floatr;
r=(float)(a+b)/2+(int)x%(int)y;
%f\n"
r);
3.500000
2、分析下面程序结果,并上机验证。
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
i=%d,j=%d,m=%d,n=%d\n"
i,j,m,n);
i=9,j=11,m=9,n=10
3、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
从键盘如何输入?
inta,b;
floatx,y;
charc1,c2;
scanf("
a=%db=%d"
&
a,&
b);
%f%e"
x,&
y);
%c%c"
c1,&
c2);
a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n"
a,b,x,y,c1,c2);
}
4、编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
\n%c,%c"
c1,c2);
实验三选择结构程序设计
1.了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);
2.学会正确使用逻辑运算符和逻辑表达式;
3.掌握if语句和switch语句的应用。
(1)掌握各种格式转换符的正确使用方法,输出结果。
inta=5,b=7;
floatx=67.8564,y=-789.124;
charc='
A'
;
longn=1234567;
unsignedu=65535;
%d%d\n"
a,b);
%3d%3d\n"
%f,%f\n"
x,y);
%-10f,%-10f\n"
%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n"
x,y,x,y,x,y);
%e,%10.2e\n"
%c,%d,%o,%x\n"
c,c,c,c);
%ld,%lo,%x\n"
n,n,n);
%u,%o,%x,%d\n"
u,u,u,u);
%s,%5.3s\n"
"
COMPUTER"
);
(2)1.从键盘任意输入一个年号,判断它是否是闰年。
若是闰年,输出“Yes”,否则输出“No”。
已知符合下列条件之一者是闰年:
(1)能被4整除,但不能被100整除;
(2)能被400整除。
intmain()
intyear,flag;
Enteryear:
"
scanf("
%d"
&
year);
if(year%4==0&
&
year%100!
=0||year%400==0)
{
flag=1;
}
else
flag=0;
if(flag)
printf("
Yes\n"
No\n"
(3)编程序:
输入4个整数,要求按由小到大的顺序输出。
(要求文件名:
3_4.c)
intt,a,b,c,d;
%d,%d,%d,%d"
b,&
c,&
d);
a=%d,b=%d,c=%d,d=%d\n"
a,b,c,d);
if(a>
b){t=a;
a=b;
b=t;
c){t=a;
a=c;
c=t;
d){t=a;
a=d;
d=t;
if(b>
c){t=b;
b=c;
d){t=b;
b=d;
if(c>
d){t=c;
c=d;
%d,%d,%d,%d\n"
实验四选择/循环结构程序设计
1.熟练掌握switch语句中break语句的作用;
2.初步掌握循环结构的使用;
3.掌握while语句的应用。
(1)编程序,并给出程序的运行结果,注意思考case中break的用法以及为什么是这样的结果?
intx=2,y=1,a=1,b=2;
switch(x)
case2:
switch(y)
{
case1:
a++;
case2:
b++;
break;
}
case3:
%d%d\n"
(2)输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
string.h>
charc;
intletter=0,digit=0,space=0,other=0;
pleaseinputstring:
while((c=getchar())!
='
\n'
)
if(c>
a'
c<
z'
||c>
Z'
letter++;
elseif(c>
0'
9'
digit++;
elseif(c=='
'
space++;
elseother++;
letter,digit,space,other);
实验五循环结构程序设计
1.掌握for语句的应用;
2.理解while、for语句的相同及不同之处;
3.掌握嵌套循环程序设计;
4.掌握break和continue的用法。
(1)输入两个正整数m和n,求它们的最大公约数和最小公倍数。
intmain()
intx,y,i,m,max;
%d,%d"
if(x>
y)
m=x;
else
m=y;
for(i=1;
i<
=m;
i++)
if((x%i==0)&
(y%i==0))
max=i;
%d\n"
max);
x*y/max);
(2)从键盘输入一个int类型的正整数,输出它的所有因子。
如输入6,输出1,2,3;
输入20,输出1,2,4,5,10。
intx,i;
x);
for(i=1;
x;
if(x%i==0)
i);
(3)编程计算
的值。
intsign=1;
doublesum=1;
doubledeno=2;
doubleterm=1;
while
(1)
sign=(-1)*sign;
term=sign*(1/deno);
sum=sum+term;
deno++;
if(deno<
=100)
break;
%lf\n"
sum);
实验六数组的使用
1.掌握一维、二维数组的定义、引用、应用
2.掌握字符数组的定义、引用、应用
3.掌握字符串处理函数
(1)给出下面程序的结果,思考为什么?
intmain()
chara[]="
Chinaren"
b[]="
Tiananmen"
char*p1,*p2;
intk=0;
p1=a;
p2=b;
for(k=0;
k<
10;
k++)
if(*(p1+k)==*(p2+k))
printf("
%c"
*(p1+k));
\n"
(2)有一个3×
4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。
#defineM3
#defineN4
intmain()
intmax,i,j,r,c;
inta[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
max=a[0][0];
for(i=0;
M;
i++)
for(j=0;
j<
N;
j++)
if(a[i][j]>
max)
{
max=a[i][j];
r=i;
c=j;
}
max=%d,row=%d,colum=%d\n"
max,r,c);
return0;
(3)编程序用于读入10个字符串,然后找出最大的字符串并打印。
main()
charstr[10][80],maxstring[80];
inti;
Entertenstrings:
for(i=0;
i<
i++)
scanf("
%s"
str[i]);
strcpy(maxstring,str[0]);
for(i=1;
if(strcmp(str[i],maxstring)>
0)
{
strcpy(maxstring,str[i]);
}
Themaxstringis:
%s\n"
maxstring);
(4)给出下面程序的运行结果,思考为什么?
inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
inti,j,s=0;
4;
{
j++)
if(a[i][j]<
0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
(5)测试二维数组的各个地址值,结果是什么。
#defineM3
#defineN4
inta[M][N];
%x\n"
a);
a[0]);
for(inti=0;
for(intj=0;
%x,"
a[i][j]);
实验七函数的应用
1.掌握C语言函数的定义方法、函数的声明及函数的调用方法。
2.了解主调函数和被调函数之间的参数传递方式。
voidswap(intx,inty)
intt;
t=x;
x=y;
y=t;
%d%d"
inta=5,b=7;
swap(a,b);
%d%d\n"
(2)写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。
intprime(intnumber);
intnumber;
pleaseinputanum:
number);
if(prime(number))
%disprime!
number);
%disnot!
!
intprime(intnumber)/*此函数用于判别素数*/
intflag=1,n;
for(n=2;
n<
number/2&
flag==1;
n++)
if(number%n==0)
flag=0;
return(flag);
(3)求两个整数的最大公约数和最小公倍数。
写一个函数求最大公约数。
intmax_ys(intx,inty);
intx,y,i,max;
max=max_ys(x,y);
intmax_ys(intx,inty)
inti,m,max;
if(x>
m=x;
else
m=y;
if((x%i==0)&
max=i;
return(max);
(4)写一函数,输入一个十六进制数,输出相应的十进制数。
math.h>
longchange(charshu[])
longi,k,sum=0;
k=strlen(shu)-1;
for(i=k;
i>
=0;
i--)
if(shu[i]>
=48&
shu[i]<
=57)
sum=sum+(shu[i]-48)*pow(16,k-i);
elseif(shu[i]>
=65&
=70)
sum=sum+(shu[i]-55)*pow(16,k-i);
=97&
=102)
sum=sum+(shu[i]-87)*pow(16,k-i);
else
error!
break;
returnsum;
charstr[100];
longs;
gets(str);
s=change(str);
if(!
s)
Thenumberisnotox\n"
change:
%ld\n"
实验八指针的应用
1.掌握指针变量的定义与引用。
2.熟练使用函数指针、数组指针、字符串指针编写应用程序。
(1)输入三个整数,按由小到大的顺序输出,然后将程序改为:
输入三个字符串,按由小到大顺序输出。
(输入三个整数,按由小到大的顺序输出)
voidswap(int*p1,int*p2);
intn1,n2,n3,*p1,*p2,*p3;
%d,%d,%d"
n1,&
n2,&
n3);
p1=&
n1;
p2=&
n2;
p3=&
n3;
if(n1>
n2)swap(p1,p2);
n3)swap(p1,p3);
if(n2>
n3)swap(p2,p3);
theorderis:
%d,%d,%d\n"
n1,n2,n3);
voidswap(int*p1,int*p2)
inttemp;
temp=*p1;
*p1=*p2;
*p2=temp;
(输入三个字符串,按由小到大顺序输出)
voidswap(char*p1,char*p2);
chars1[20],s2[20],s3[20];
char*ps1=s1,*ps2=s2,*ps3=s3;
ps1);
ps2);
ps3);
if(strcmp(ps1,ps2)>
0)swap(ps1,ps2);
if(strcmp(ps1,ps3)>
0)swap(ps1,ps3);
if(strcmp(p