c语言上机习题免费的.docx
《c语言上机习题免费的.docx》由会员分享,可在线阅读,更多相关《c语言上机习题免费的.docx(53页珍藏版)》请在冰豆网上搜索。
![c语言上机习题免费的.docx](https://file1.bdocx.com/fileroot1/2023-4/17/11c8eccf-6985-4641-b5af-e51f3f9048ac/11c8eccf-6985-4641-b5af-e51f3f9048ac1.gif)
c语言上机习题免费的
C语言程序设计实验教学
(2)
【实验目的】以实验形式认识变量、表达式等概念,以及它们在程序中的作用。
【实验要求】测试多种不同类型的变量,理解它们在程序中的表现。
【实验课时】2.0
【实验内容】
1.写出以下程序运行的结果:
voidmain()
{charc1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
aabbccabc
AN
printf("\t\b%c%c\n",c4,c5);
}
2.
输出:
9,18
分析以下程序能否正常运行。
voidmain()
ab
9798
{intc1,c2;c1=97;c2=98;
printf("%c%c\n",c1,c2);
printf("%d%d\n",c1,c2);
}
3.写出程序运行的结果。
输出:
9,11,9,10
voidmain()
{inti,j,m,n;
i=8;j=10;m=++i;n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}
4.求下面算术表达式的值
(1)设x=2.5,a=7,y=4.7
x+a%3*(int)(x+y)%2/4
(2)设a=2,b=3,x=3.5,y=2.5,
(float)(a+b)/2+(int)x%(int)y
输出:
2.500000
voidmain()
{inta=7;
floatx=2.5,y=4.7;
printf("%f\n",x+a%3*(int)(x+y)%2/4);
}
输出:
9,24,6
输出:
9,21,6
输出:
9,18
voidmain()
输出:
3.500000
{inta=2,b=3;
floatx=3.5,y=2.5;
printf("%f\n",(float)(a+b)/2+(int)x%(int)y);
}
5.要将“China”翻译成密码。
密码规律是:
用原来字母的后面第4个字母代替原来的字母。
请编写一程序实现。
并输出结果。
(Glmre)
voidmain()
{chara,b,c,d,e;
scanf("%c%c%c%c%c",&a,&b,&c,&d,&e);
a+=4;b+=4;c+=4;
d+=4;e+=4;
printf("%c%c%c%c%c\n",a,b,c,d,e);
}
6.
输出:
9,21,6
写出以下四个程序运行的结果:
voidmain()
{inti=6;
printf("%d,%d,%d\n",i,(i++)+(i++)+(i++),i);}
输出:
9,24,6
voidmain()
{inti=6;
printf("%d,%d,%d\n",i,(++i)+(++i)+(++i),i);}
voidmain()
输出:
9,18
{inti=6,j;
j=(i++)+(i++)+(i++);
printf("%d,%d\n",i,j);}
输出:
9,27
voidmain()
{inti=6,j;
j=(++i)+(++i)+(++i);
printf("%d,%d\n",i,j);
}
7.写出以下程序运行的结果:
voidmain()
{typedefintcounter;
输出:
4,2.000000
counterx;
floaty;
x=sizeofy;
y=sizeof(counter);
printf("%d,%f\n",x,y);
}
8.写出以下程序运行的结果:
voidmain()
输出:
2.000000
{floatf;
inti=4;
f=10/i;
printf("%f\n",f);}
voidmain()
输出:
2.500000
{floatf;
inti=4;
f=10.0/i;
printf("%f\n",f);}
9.请编写程序szys.c,输入两个整数n和m,计算以下表达式的值:
(1)sum=n+m
(2)diff=n-m
voidmain()
{intm,n;
intsum,diff;
scanf("%d,%d",&n,&m);
sum=n+m;
diff=n-m;
printf("sum=%d,diff=%d\n",sum,diff);
}
10.使用sizeof()函数测试int、long、float、double类型变量占用的内存空间,并记录下来。
例如:
sizeof(12),sizeof(12L),sizeof(1.2f),sizeof(1.2),分析理解长类型变量赋值给短型变量时数据丢失的现象。
方法:
printf(“int:
%d”,sizeof(int));
输出:
int:
2
long:
4
float:
4
double:
8
sizeof(12):
2
sizeof(12l):
4
sizeof(1.2f):
4
sizeof(1.2):
8
voidmain()
{printf("int:
%d\n",sizeof(int));
printf("long:
%d\n",sizeof(long));
printf("float:
%d\n",sizeof(float));
printf("double:
%d\n",sizeof(double));
printf("sizeof(12):
%d\n",sizeof(12));
printf("sizeof(12l):
%d\n",sizeof(12l));
printf("sizeof(1.2f):
%d\n",sizeof(1.2f));
printf("sizeof(1.2):
%d\n",sizeof(1.2));
}
11.输入一个字母,将该字母进行大小写转换,输出转换后的字母。
(也可以不进行判断,直接进行转换)
voidmain()
{charch;
scanf("%c",&ch);
if(ch>=97&&ch<=122)
ch=ch-32;
elseif(ch>=65&&ch<=90)
ch=ch+32;
printf("Nowchis:
%c\n",ch);
}
12.输入一个不大于255的自然数x,计算y=(1+x)/x2。
(x使用char类型)
voidmain()
{charx;floaty;intz;
scanf("%d",&x);
if(x>0&&x<=127)
{z=x;y=1.0*(1+z)/z/z;}
else
{z=x+256;y=1.0*(1+z)/z/z;}
printf("x=%d,z=%d,y=%f\n",x,z,y);
}
13.输入一个自然数n,计算n除以3的商与余数。
voidmain()
{intn,a,b;
printf("Pleaseinputanum:
");
scanf("%d",&n);
a=n/3;b=n%3;
printf("shangis:
%d,yushuis:
%d\n",a,b);
}
C语言程序设计实验教学(3)
【实验目的】通过程序设计实现,掌握scanf()和printf()的正确应用。
【实验要求】使用输入输出函数实现多种类型变量的输入输出操作,注意总结输入和输出的格式问题。
【实验课时】2.0
【实验内容】
1.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。
要求输出的结果如下:
(ㄩ表示一个空格):
a=ㄩ3ㄩㄩb=ㄩ4ㄩㄩc=ㄩ5
x=1.200000,y=2.400000,z=-3.600000
x+y=ㄩ3.60ㄩㄩy+z=-1.20ㄩㄩz+x=-2.40
u=ㄩ51274ㄩㄩn=ㄩㄩㄩ128765
c1=’a’ㄩorㄩ97(ASCII)
c2=’b’ㄩorㄩ98(ASCII)
2.写出以下程序运行的结果:
main()
{inta=5,b=7;floatx=67.8564,y=-789.124;charc='A';
longn=1234567;unsignedu=65535;
printf("%d%d\n",a,b);
printf("%3d%3d\n",a,b);
printf("%f,%f\n",x,y);
printf("%-10f,%-10f\n",x,y);
printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);
printf("%e,%10.2e\n",x,y);
printf("%c,%d,%o,%x\n",c,c,c,c);
printf("%ld,%lo,%x\n",n,n,n);
printf("%u,%o,%x,%d\n",u,u,u,u);
printf("%s,%5.3s\n","COMPUTER","COMPUTER");}
3.用下面的scanf函数输入数据,问在键盘上应如何输入才能使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’
main()
{inta,b;floatx,y;charc1,c2;
scanf("a=%db=%d",&a,&b);
scanf("%f%e",&x,&y);
scanf("%c%c",&c1,&c2);
printf("a=%d,b=%d\n",a,b);
printf("x=%f,y=%f\n",x,y);
printf("c1=%c,c2=%c\n",c1,c2);}
4.用下面的scanf函数输入数据,问在键盘上应如何输入才能使a=10,b=20,c1=’A’,c2=’a’,x=1.5,y=-3.75,z=67.8
main()
{inta,b;charc1,c2;floatx,y,z;
scanf("%5d%5d%c%c%f%f%*f,%f",&a,&b,&c1,&c2,&x,&y,&z);
printf("a=%d,b=%d\n",a,b);
printf("c1=%c,c2=%c\n",c1,c2);
printf("x=%6.2f,y=%6.2f,z=%6.2f\n",x,y,z);}
5.请编写程序prog35.c。
设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据,输出计算结果时保留小数点后两位。
6.请编写程序prog36.c。
输入一个华氏温度,要求输出摄氏温度。
(保留小数点后两位)。
计算公式如下:
c=(F-32)*5/9
7.输入任意两个整数,求它们的和及平均值。
要求平均值取两位小数输出。
8.给定一个三位正整数,分别输出它的个位数、十位数和百位数。
9.取一个16位的二进制数a的7、6、5、4四个位,如图4-2中加阴影的部分。
15
图4-2整数a的二进制位
8
7
6
5
4
3
2
1
0
10.求方程ax2+bx+c=0的根。
a、b、c由键盘输入,a≠0且b2-4ac≥0。
C语言程序设计实验教学(4)
【实验目的】通过程序设计实现,掌握if结构和switch结构的正确应用。
【实验要求】使用if结构和switch结构实现多种条件的选择结构程序,熟练二者的应用范围和注意事项。
练习条件表达式的书写。
【实验课时】4.0
【实验内容】
1、编写程序,实现从键盘上输入一个整数,判断其奇偶性。
#include
voidmain()
{inta;
scanf("%d",&a);
if(a%2==0)
printf("%disoushu.\n",a);
else
printf("%disjishu.\n",a);}
2、输入一个整数,判断它能否被3或7整除,若能整除,输出“YES”,
否则输出“NO”。
#include
voidmain()
{intn;
scanf("%d",&n);
if(n%3==0||n%7==0)/*判断能否被3或7整除*/
printf("YES\n");
else
printf("NO\n");
}
3、编写程序,实现从键盘上输入3个整数a,b,c,并输出其中最大的数。
#include
voidmain()
{inta,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
max=a>b?
a:
b;
max=max>c?
max:
c;
printf("maxis%d\n",max);}
#include
voidmain()
{inta,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)max=a;
elsemax=b;
if(c>max)max=c;
printf("maxis%d\n",max);}
#include
voidmain()
{inta,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
if(a>c)
max=a;
else
max=c;
else
if(b>c)
max=b;
else
max=c;
printf("maxis%d\n",max);}
4、编写程序,实现从键盘上输入4个整数,并按从大到小顺序输出。
#include
voidmain()
{inta,b,c,d,t;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(a>d){t=a;a=d;d=t;}
if(b>c){t=b;b=c;c=t;}
if(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;}
printf("sortedbysmalltolarge:
%d,%d,%d,%d\n",a,b,c,d);}
5、完成下列分段函数的计算:
分别使用if-elseif和if-if的嵌套结构来实
现。
方法一(用if——elseif结构表达)
#include
#include
voidmain()
{intx,y;
clrscr();
printf("Pleaseinputvalueofx:
\n");
scanf("%d",&x);
if(x<0)
y=1;
elseif(x<=10)
y=x+1;
else
y=x*x+x+1;
printf("x=%d,y=%d\n",x,y);}
方法二(用if——if结构表达)
#include
#include
voidmain()
{intx,y;
clrscr();
printf("Pleaseinputvalueofx:
\n");
scanf("%d",&x);
if(x<=10)
if(x<0)
y=1;
else
y=x+1;
else
y=x*x+x+1;
printf("x=%d,y=%d\n",x,y);}
6、输入x和a的值,按下列公式计算y的值。
程序代码一:
#include
#include
voidmain()
{floatx,a,y;
printf("\nPleaseinputx,a:
");
scanf("%f,%f",&x,&a);
if(x>-a&&xy=sqrt(a*a-x*x);
if(x==a||x==-a)/*或fabs(x)==a*/
y=0;
if(x<-a||x>a)/*或fabs(x)>a*/
y=x-1;
printf("x=%g,a=%g,y=%g\n",x,a,y);
}
程序代码二:
#include
#include
voidmain()
{floatx,a,y;
printf("\nPleaseinputx,a:
");
scanf("%f,%f",&x,&a);
if(fabs(x)-a&&xy=sqrt(a*a-x*x);
elseif(fabs(x)==a)/*或x==a||x==-a*/
y=0;
else
y=x-1;
printf("x=%g,a=%g,y=%g\n",x,a,y);
}
程序代码三:
#include
#include
voidmain()
{floatx,a,y;
printf("\nPleaseinputx,a:
");
scanf("%f,%f",&x,&a);
if(fabs(x)<=a)
if(fabs(x)y=sqrt(a*a-x*x);
else
y=0;
else
y=x-1;
printf("x=%g,a=%g,y=%g\n",x,a,y);
}
7、编写一个程序,判断从键盘上输入的一个年份是否为闰年?
方法一:
#include
#include
voidmain()
{intyear;
clrscr();
printf("Pleaseinputayear:
\n");
scanf("%d",&year);
if(year%4==0&&year%100!
=0||year%400==0)
printf("%disaleapyear\n",year);
else
printf("%disnotaleapyear\n",year);}
方法二:
(用ifif结构表达)
#include
#include
voidmain()
{intyear,leap;
clrscr();
printf("Pleaseinputayear:
\n");
scanf("%d",&year);
if(year%4==0)
if(year%100==0)
if(year%400==0)
leap=1;
else
leap=0;
else
leap=1;
else
leap=0;
if(leap==1)
printf("%disaleapyear\n",year);
else
printf("%disnotaleapyear\n",year);}
方法三:
(用ifelseif结构表达)
#include
#include
voidmain()
{intyear,leap;
clrscr();
printf("Pleaseinputayear:
\n");
scanf("%d",&year);
if(year%400==0)
leap=1;
elseif(year%100==0)
leap=0;
elseif(year%4==0)
leap=1;
else
leap=0;
if(leap==1)
printf("%disaleapyear\n",year);
else
printf("%disnotaleapyear\n",year);}
8、输入一个三位自然数num,判断其是否为水仙花数?
注:
一个3位自然数,各个数位的数字立方和等于该数本身,即称为水仙花数。
如:
153=13+53+33。
#include
#include
voidmain()
{intm,a,b,c;
clrscr();
printf("Pleaseinputanum(100<=num<=999):
\n");
scanf("%d",&m);
a=m/100;b=m/10%10;c=m%10;
if(a*a*a+b*b*b+c*c*c==m)
printf("%dissxhshu.\n",m);
else
printf("%disnotsxhshu.\n",m);}
9、编写一个程序,实现对给出的一百分制成绩,输出相应的成绩等级。
即:
90分以上为’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。
方法一:
(用if结构)
#include
#include
voidmain()
{floatscore;chargrade;
clrscr();
printf("Pleaseinputascore(0<=score<=100):
\n");
scanf("%f",&score);
if(score>=90)
grade='A';
elseif(score>=80)
grade='B';
elseif(score>=70)
grade='C';
elseif(score>=60)
grade='D';
else
grade='E';
printf("scoreis%5.1f,gradeis%c.\n",score,grade);}
方法二:
(用switch结构)
#include
#include<