1、前言- /*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。 本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。 为回报度娘及众网友的帮助,本文档免费下载。 */ /*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*/ /*努力吧,骚年以及学妹们!*/ /*整理ed by 口玉刀一 of GUET.*/ ===================== 实验一 C语言程序初步 ===================== 1.---------------------------- 已知a=5,b=4,
2、c=6,求出s并换行
#include"stdio.h"
main()
{
int a,b,c,s;
a=5;b=4;c=6;
s=(a+b+c)/3;
printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s);
}
2.-------------------------------
输入一个数字求他的平方
#include
3、
(1)
#include
4、 实验二 数据类型、运算符和表达式 ================================= 1. (1)-------------------------------------------------- //总觉得打印结果怪怪的,DO YOU THINK SO? main() { char s1='3',s2='4',s3='5'; int c1=101,c2=102; printf("3%c\t4%c\t5%c\n",s1,s2,s3); //3%c为输出3和%c printf("s1=%d\ts2=%d\t
5、s3=%d\n",s1,s2,s3);//注意哦,s1,s2,s3是char!而%d:输入输出为整形 %ld 长整型 %hd短整型 %hu无符号整形 %u %lu%s:输入输出为字符串 %c字符%f:输入输出为浮点型 %lf双精度浮点型 printf("c1=%d\t~%c\n",c1,c1); //换码符'\t',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置 printf("c2=%d\t~%c\n",c2,c2); //注意c1,c2的类型 } (2) //运行结果为8.300000 %是求余数 先运算x-y,把结
6、果转换为int型的有利于四则运算 main() { float x=8.3,y=4.2,s; int a=7; s=x+a%5*(int)(x-y)%2/3; printf("s=%f",s); } (3) main() { int i,j,p,q; i=3;j=6; p=i++; q=--j; printf("%d,%d,%d,%d\n",i,j,p,q); p=i--+3; q=++j-4; printf("%d,%d,%d,%d",i,j,p,q); } (4) main() {
7、
int m=15,n=9,s;
m*=3+2;
printf("%d",m);
n+=n-=n*=n;
printf("%d",n);
printf("%d\n",(s=6*5,m+n+s));
printf("%d\n",s);
}
2.----------------------------------------------------
(1)#include
8、",t,MM);
}
//原来printf语句打成了print,printf语句中少了一个%d.
(2)
#include
9、 main() { int a=9,b=5; a+=b; b=a-b; a-=b; printf("%d%d",a,b); } 4. ---------------------------------------------------- //4.输入a,b,c三个变量,计算数学公式(a*b)/c main() { int a,b,d; float s,c; scanf("%d%d%f",&a,&b,&c); d=a*b; s
10、d/c; printf("%f",s); } ================================= 实验三 顺序结构和输入输出方法 ================================= 1.--------------------------------------------------- (1)main() { int m=345,t; float n=2.56; t=2.56*100; printf("m=%d,n*100=%d\n",m,t); } (2) main() {
11、 int a,b,c,s,v; scanf("%d%d%d",&a,&b,&c); s=a*b; v=a*b*c; printf("%d,%d,%d\n",a,b,c); printf("s=%d,v=%d\n",s,v); } 2.---------------------------------------------------- (1) main() { int m,n; float x=3.5,y=6.2; scanf("%d,%d",&m,&n); printf("%6d,%6d",m,n); /*每个数的输出宽
12、度为6,两个数之间逗号建个。*/ printf("x=%7.2f,y=%7.2f",x,y); /*个数的输出宽度7,小数位2*/ } (2) main() { int a,b; long m,n; float p,q; scanf("a=%d,b=%d\n%f,%f",&a,&b,&p,&q); scanf("%ld",&m); scanf("%ld",&n); printf("a=%d,b=%d\n m=%ld,n=%ld\n",a,b,m,n); printf("p=%f,q=%f\n",p,q); } //打印
13、结果有误!!
3.----------------------------------------------------
main()
{
int i,j,k,ss,m=1,n=1;
scanf("%d%d",&i,&j);
m+=i++;
n*=--j;
ss=(k=m+2,n-5,k+n);
printf("%d",ss);
}
4.----------------------------------------------------
#include
14、 char c1,c2;
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
printf("c1=%c,c2=%c",c1,c2);
printf("%d.%d\n",c1,c2);
}
5. ---------------------------------------------------
#include
15、
}
6. ---------------------------------------------------
#include
16、 double a; scanf("%lf",&a); printf("%.2f\n",a); } ================================= 实验四 逻辑运算判断选取控制 ================================= 1.--------------------------------------------------- 1. a. 错误原因分析:Switch分号错误 switch(a*a+b*b) { case 3: case 1:y=a+b;break; ca
17、se 0:y=b-a;break; } b. 错误原因分析:switch语句使用错误,后跟括号。Default放在后 边。 switch (a) { case 10:y=a-b;break; case 11:x=a*b;break; default:x=a+b;} c. 错误原因分析:没有输出 语句。 switch(a+b) {case 10:x=a+b;break; case 11:y=a- b;break; } 2.---------------------------------------------------- (1) main ( )
18、{ int x,y; scanf("%d",&x ); if (x>-5&&x<0) y=x ; if (x==0) y=x-1 ; if(x>0&&x<10) y=x+1; printf ("%d",y); } (2) main() { int x,y; scanf("%d",&x); if((x>-5)&&(x<0)) y=x; else if (x==0) y=x-1; else if(x>0&&x<10) y=x+1; printf("%d",y); }
19、3.---------------------------------------------------- main ( ) { int a,M; scanf("%d",&a); M=a>0?a:-a; printf("abs(a)=%d",M); } 4.---------------------------------------------------- main() { int c,t,m; printf("input the number of coat and trousers your want buy:\n"); scan
20、f("%d%d",&c,&t);
if(c==t) if(c>=50) m=c*80; else m=c*90; else if(c>t)
if(t>=50) m=t*80+(c-t)*60; else 90*t+(c-t)*60;
else if(c>=50) 80*t+(t-c)*45;
else m=c*90+(t-c)*45;
printf("%d",m);
}
5. ---------------------------------------------------
#include
21、{ int a, b, c; scanf("%d%d%d",&a,&b,&c); if(a + b <= c || a + c <= b || b + c <= a) printf("不构成三角形\n"); else if (a == b && b == c) printf("等边三角形\n"); else if (a == b || b == c || a == c) printf("等腰三角形\n"); else printf("不等边三角形\n");
22、 return 0; } 6. -------------------------------------------------- #include"stdio.h" main() { long a; scanf("%ld",&a); if(a%5==0) if(a%7==0) printf("yes\n|"); else printf("no\n"); } ================================= 实验五 循环结构 ========================
23、 1. --------------------------------------------------- #include"stdio.h" main() { int n; while(1) { printf("Enter a number:"); scanf("%d",&n); if(n%2==1) { printf("I said"); continue; } break; } printf("Thanks.Ineeded that!"); } 2. -----
24、
#include
25、
#include
26、 }
return 0;
}
4.----------------------------------------------------
#include
27、
printf("%3d",c);}
printf("\n");}
}
5. --------------------------------------------------
#include 28、
#include 29、);
}
s+=a;
}
printf("=%d\n",s);
}
=================================
实验六 数组
=================================
1.---------------------------------------------------
#include 30、ur number\n");
for(i=1;i<=20;++i)
{
scanf("%d",&mumber);
if(!mumber) break;
++grade[mumber];
}
printf("\n\nresult of search\n");
printf("---------------\n");
for(i=1;i<=5;++i)
printf("%4d %d\n",i,grade[i]);
}
2.--------------------------------------------- 31、
#include"stdio.h"
main()
{
int n,k,xx[20];
int i,j,t;
printf("\nPlease enter a number");
scanf("%d",&n);
printf("\nPlease enter %d numbers:",n);
for(i=0;i 32、i++)
{
t=xx[0];
for(j=1;j 33、180,270,380,590,530,140,750,380},b[6];
for(i=0;i<6;i++)
b[i]=0;
for(i=0;i<9;i++)
{
switch(a[i]/100)
{
case 0:b[0]++;break;
case 1:b[1]++;break;
case 2:b[2]++;break;
case 3:b[3]++;break;
case 4:b[4]++;break;
default :b[5]++;break;
}
34、
}
printf("The result is:");
for(i=0;i<6;i++)
printf("%d",b[i]);
printf("\n");
}
4.----------------------------------------------------
#include 35、
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("%d ",a[i]);
}
printf("\ninput number:\n");
scanf("%d",&n);
for(i=0;i<10;i++)
if(n=i;j--)
a[j+1]=a[j];
break;
}
a[i]=n;
for(i=0;i<=10 36、i++)
printf("%d ",a[i]);
printf("\n");
}
5. ---------------------------------------------------
#include 37、0;
j++;
}
printf("%d", n);
}
=================================
实验七 字符处理
=================================
1.---------------------------------------------------
该程序的功能是:输入字符串,删除其中的数字,保留剩下的字符。
#include 38、g: ") ;
scanf("%s",a) ;
i=j=0;
while (a[i]!='\0')
{
if (! (a[i]>='0'&&a[i]<='9') )
{
b[j]=a[i];
j++;
}
++i;
}
b[j]='\0';
printf (" %s",b) ;
}
2.----------------------------------------------------
#include "string.h"
#include "stdio.h"
main()
{
39、 char str1[50]="every one!";
char str2[50]="hello ";
strcpy(str2+strlen(str2),str1);
printf("%s",str2);
}
3. ----------------------------------------------------
//本代码有些奇怪,在有的vc上可以执行,有的却不行。
#include "stdio.h"
main()
{
int i,pos;
char str[]="This is a program";
for( 40、i=0;str[i]!='\0';i++)
{
if (str[i]=='a') {pos=i;break;}
}
printf("The position is %d\n",pos);
}
4.----------------------------------------------------
#include "stdio.h"
main()
{
int i,pos;
char str[]="This is a program";
for(i=0;str[i]!='\0';i++)
{
if (str[i]=='a') { 41、pos=i;break;}
}
printf("The position is %d\n",pos);
}
程序运行结果如下图所示:
5. ---------------------------------------------------
#include "stdio.h"
main()
{
int i,j,k=0;
char s[255];
while((s[k]=getchar())!='@') k++;
for(j=0;s[j]!='@';j++)
{
if(s[j]<='Z'&&s[j]>='A')
{ s[j]+=32;
42、 }
if(s[j]<='w'&&s[j]>='a')
s[j]+=3;
else if(s[j]=='x'||s[j]=='y'||s[j]=='z')
s[j]-=23;
}
printf("译码后结果:");
for(i=0;s[i]!='@';i++)
printf("%c",s[i]);
printf("\n");
getchar();
}
6. --------------------------------------------------------
#include "stdio.h"
main()
{
int i=0; 43、
char str1[255],str2[255];
printf("\n Input string 1:");
scanf("%s",str1);
printf("\n Input string 2:");
scanf("%s",str2);
while(1)
{
if(str1[i]==str2[i])
{ i++;
continue;
}
else
break;
}
printf("\n%d\n",str1[i]-str2[i]);
}
=====================
实验八 函数
========= 44、
8.1???????????????????未成功
int a=3,b=5;
max(int a,int b)
{
int c;
c=a>b?a:b;
return (c);
}
main()
{
extern int a,b;
printf("%d\n",max(a,b));
}
8.2
#include 45、 {
return 0;
}
}
return 1;
}
void main()
{
int n,c;
scanf("%d",&n);
c=is_prime(n);
if(c==1)
printf("prime\n");
else
printf("not prime\n");
}
8.3
#include 46、\n");
scanf("%d",&n);
if(m 47、 1) % 4 == 0)
//调试后的程序是:
#include 48、n()
{
void swap(int*p1,int*p2);
int n1,n2,n3;
int*p1,*p2,*p3;
printf("input three interer n1,n2,n3:");
scanf("%d%d%d",&n1,&n2,&n3);
p1=&n1;
p2=&n2;
p3=&n3;
if(n1>n2)swap(p1,p2);
if(n1>n3)swap(p1,p3);
if(n2>n3)swap(p2,p3);
printf("Now,the order is :%d,%d,%d\n",n1,n2,n3);
}
49、void swap(int *p1,int *p2)
{
int p;
p=*p1;*p1=*p2;*p2=p;
}
3. main()
{
int a[10];
int *p,i;
p=a;
for(i=0;i<10;i++)
{
*p=i;
p++;
}
p=a;
for(i=0;i<10;i++)
printf("n[%d]=%d\n",i,*p++);
}
4.#include 50、
{
int k;
*a=t[0];
for(k=1;k






