训练题0410.docx
《训练题0410.docx》由会员分享,可在线阅读,更多相关《训练题0410.docx(60页珍藏版)》请在冰豆网上搜索。
训练题0410
实验一数据类型、运算符和表达式
实验目的:
1. C语言中各种运算符的使用。
2. 掌握运算的优先级。
3. 掌握C语言中++、――运算符的运算规则。
实验要求:
1. 每次实验前一定要认真预习实验内容,深刻理解其中的相关知识,写出分析结果。
2. 实验时对所做的每一步操作,都要弄懂其中的道理,得出最终正确运行结果。
实验内容:
一.读程序
1、若x的值为10,输出结果为什么
#include
main()
{
floatx,y;
scanf("%f",&x);
printf("\n2.4*x-1/2=%f",2.4*x-1.0/2);
printf("\nx%%2/5-x=%f",(int)(x)%2/5-x);
printf("\n(x-=x*10,x/=10)=%d",(x-=x*10,x/=10));
}
分析结果
运行结果
2、
(1)
1#include
2main()
3{
4inti,j,m,n;
5i=8;j=10;
6m=++i;
7n=j++;
8printf(“%d,%d,%d,%d”,i,j,m,n);
}
分析结果
运行结果
(2) 将第6、7行改为:
m=i++;
n=++j;
分析结果
运行结果
(3)程序改为
1#include
2main()
3{
4inti,j,m,n;
5i=8;j=10;
6printf(“%d,%d,%d,%d”,i++,j++);
}
分析结果
运行结果
(4)在(3)的基础上,将printf语句改为
printf(“%d,%d,%d,%d”,++i,++j);
分析结果
运行结果
(5)将printf语句改为
printf(“%d,%d,%d,%d”,i,j,i++,j++);
(6)程序改为:
1#include
2main()
3{
4inti,j,m=0,n=0;
5i=8;j=10;
6m+=i++;
7n-=--j;
8printf(“%d,%d,%d,%d”,i,j,m,n);
}
分析结果
运行结果
二.完成程序
要求:
按照给定题目要求,参照出现的语句,填写程序空白处。
1、求表达式a%=(b/=2)的值。
(设a=20,b=5)
#include
main()
{inta,b;
a=20;b=5;
printf(“\n%d”,);
}
2、任意输入小于255的正整数,求其ASCⅡ码对应的字符。
#include
main()
{charc;
inta;
printf(“pleasea<255integernumber:
”);
scanf(“%d”,&a);
c=;/*使用强制类型转换*/
printf(“\n\n%c的ASCⅡ码为%d”,c,a);
}
三.调试程序
要求:
分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。
1、#include
1main()
2{charu='c',v='f';
3charw;
4w=v-'b'+'B';
5printf("%f,%c,%d",u-v,u+v,w);
}
正确
运行结果:
错误
错误所在行:
应改为:
2、#include
1main()
2{doublef=3.14159;
3intn;
4n=int(f+20)%3;
5printf(“\nn=%d”,n);
6}
正确
运行结果:
错误
错误所在行:
应改为:
3、#include
1main()
2{charc;
3intd;
4printf(“输入数字字符:
”);
5scanf(“%c”,&c);
6d=(int)c;
7printf(“\n\n%c对应的数字为:
%d”,c,d);
}
正确
运行结果:
错误
错误所在行:
应改为:
四.写程序
1、设j=6,求表达式―(j++)―3的值和此时j的值。
2、设a=10,求表达式a%=a+=a-=a*a的值。
实验二顺序结构程序设计和输入、输出函数
实验目的:
1.掌握赋值语句的使用。
2.掌握printf(),scanf()函数的使用。
3.掌握顺序结构程序设计。
实验要求:
1.做实验前,一定要预习实验内容及相关知识点,写出分析结果。
2.上机调试运行时,还要应用已经学过操作方法,最终获得正确运行结果。
实验内容:
一. 读程序
1、
#include
main()
{inta=17;
floatu=1234.567;
printf(“\n%s,%d,%7d,%-7d,%07d”,“outputinteger”,a,a,a,a);
printf(“\n%f,%7.2f”,u,u);
}
分析结果
运行结果
2、
#include
main()
{inta,x,y;
x=(a=2,6*2);
y=a=2.6*a;
printf(“\nx=%d,y=%d”,x,y);
}
分析结果
运行结果
3、
#include
main()
{floatx,y;
intk1,k2;
x=-45.2;y=1.1;
k1=(int)x+10;
k2=y+10;
printf(“x=%f,k1=%d”,x,k1);
printf(“y=%f,k2=%d”,y,k2);
}
分析结果
运行结果
二. 完成程序
要求:
按照给定题目要求,参照出现的语句,填写程序空白处。
1、键盘输入任意一个小写字母,将其转换成大写字母,然后输出。
#include
main()
{charc1,c2;
c1=getchar();
c2=;
putchar(‘\n’);putchar(‘\’’);putchar(c2);putchar(‘\’’);
}
2、求
的值。
(设a=25,b=5)
#include
main()
{floata=25,b=5;
floatc;
c=;
printf(“\n\nc=%f”,c,c);
}
3、计算到期利息。
到期利息=
,其中本金为a,存款年数为n,年利率为p。
#include
#include
main()
{floata,p,s;
intn;
printf(“InputMoneys:
”);
scanf(“%f”,&a);
printf(“Inputyears:
”);
scanf(“%d”,&n);
printf(“Inputrate%%:
”);
scanf(“%f”,&p);
p=p/100;
___________________
printf(“到期利息:
%10.2f\n”,s);;
}
三. 调试程序
要求:
分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。
1、#include
1main()
2{inti,k;
3i=80;
4k=5*i*j;
5printf(“\n%d”,k);
6}
正确
运行结果:
错误
错误所在行:
应改为:
2、该程序输入一个三位数,然后进行个位和百位的置换,如234,转换成432
#include
1main()
2{intn,a,b,c,m;
3scanf("%d",&n);
4a=n%10;
5b=(n/10)%10;
6c=(n/100)%10;
7m=100*a+10*b+c
8printf("\n\n%d=>%d",n,m);
}
正确
运行结果:
错误
错误所在行:
应改为:
四. 写程序
编程求出某学生期末三门课程的总分及平均分。
结果保留小数点后一位。
实验三选择结构程序设计
实验目的:
1.掌握关系运算符和逻辑运算符
2. 学会正确书写关系表达式和逻辑表达式
3. 熟练掌握三种if语句和switch语句
4. 了解break和continue的使用和区别
实验要求:
每次实验前,学生要先预习实验内容,写出分析结果或程序,经实验指导老师检查后,上机运行、调试程序,得出最终正确结果。
实验内容:
一.读程序
要求:
读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。
1、main()
{
inta,b,c;
a=10;b=60;c=30;
if(a>b)a=b;
b=c;
c=a;
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
}
分析结果
运行结果
2、main()
{
intx=60,a=30,b=20;
intv1=3,v2=8;
if(a
if(b!
=15)
if(!
v1)
x=1;
else
if(v2)x=10;
x=-2;
printf(“%d\n”,x);
}
分析结果
运行结果
3、main()
{inta1,a2,b1,b2;
inti=4,j=8,k=0;
a1=!
k;
a2=i!
=j;
printf(“a1=%d\ta2=%d\n”,a1,a2);
b1=k&&j;
b2=k||j;
printf(“b1=%d\tb2=%d\n”,b1,b2);
}
分析结果
运行结果
4、main()
{inta=1,b=3,c=5,d=4;
intx;
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7
printf(“x=%d\n”,x);
}
分析结果
运行结果
5、main()
{
intk;
scanf(“%d”,&k);
switch(k)
{
case1:
printf(“%d\n”,k++);
case2:
printf(“%d\n”,k++);
case3:
printf(“%d\n”,k++);
case4:
printf(“%d\n”,k++);break;
default:
printf(“Full!
\n”);
}
}
分析结果
输入k值
输出结果
1
3
运行结果
输入k值
输出结果
1
3
二. 完成程序
要求:
根据要求,分析给出的上下语句,填写程序
1、 输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变,请在_______上填写正确内容。
main()
{
charch;
scanf(“%c”,&ch);
if(_______________________)ch=ch+32;
elseif(ch>=’a’&&ch<=’z’)____________________;
printf(“%c”,ch);
}
2、 以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型,请在_______上填写正确内容。
#include“math.h”
main()
{
floata,b,c;
floats,area;
scanf(“%f,%f,%f”,&a,&b,&c);
if(___________________________)
{s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“%f”,area);
if(_________________)
printf(“等边三角形”);
elseif(_________________)
printf(“等腰三角形”);
elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a))
printf(“直角三角形”);
elseprintf(“一般三角形”);
}
elseprintf(“不能组成三角形”);
}
三.调试程序
要求:
分析下列程序是否正确,如有错,错在哪儿?
应如何改正?
如正确,运行结果如何?
上机调试之。
1、调试下列程序,使之具有如下功能:
输入a、b、c三个整数,求最小值。
写出调试过程。
main()
{inta,b,c;
scanf("%d%d%d",a,b,c);
if((a>b)&&(a>c))
if(bprintf("min=%d\n",b);
else
printf("min=%d\n",c);
if((a
printf("min=%d\n",a);
}
2、以下程序实现求分段函数。
main()
1{intx,y;
2scanf(“%d”,&x);
3if(34elseif(-15elseif(x<=-1)y=x-1;
6elsey=-1;
7if(y!
=-1)printf(“%d”,y);
8elseprintf(“Error”);
9}
对
运行结果
错
错误在行
应改为:
3、
有一函数关系如下:
x-3x<0
y=0x=0
x+3x>0
以下程序表示上面的函数关系
main()
1 {intx,y;
2 scanf(“%d”,&x);
3 y=x-3;
4 if(x!
=0)
5 if(x>0)y=x+3;
6 elsey=x;
7 printf(“y=%d\n”,y);
8 }
对
运行结果
错
错误在行
应改为:
4、 有一函数关系如下:
-2x<0
y=
2x>=0
以下程序表示上面的函数关系
main()
1{intx,y;
2scanf(“%d”,&x);
3switch(x);
4{
5casex>=0:
y=2;break;
6casex<0:
y=-2;break;
7}
8printf(“y=%d\n”,y);
9}
对
运行结果
错
错误在行
应改为:
四.写程序
输入某学生的成绩,经处理后给出学生的等级,等级分类如下:
90分以上(包括90):
A
80至90分(包括80):
B
70至80分(包括70):
C
60至70分(包括60):
D
60分以下:
E,分别用if和switch编程
实验四循环结构程序设计
实验目的:
1.进一步掌握三种循环语句
2.掌握循环嵌套的执行过程。
3.熟练使用循环语句、循环嵌套编写程序
实验要求:
每次实验前,学生要先预习实验内容,写出分析结果或程序,经实验指导老师检查后,上机运行、调试程序,得出最终正确结果。
实验内容:
一.读程序
要求:
读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。
1、main()
{
inti,j,k;
printf("\n");
for(i=1;i<=5;i++)
{
for(j=1;j<=20-2*i;j++)
printf("");
for(k=1;k<=i;k++)
printf("%4d",i);
printf("\n");
}
}
分析结果
运行结果
2、main()
{
intk=0;charc=‘C‘;
do
{switch(c++)
{case‘A’:
k++;break;
case‘B’:
k--;
case‘C’:
k+=2;break;
case‘D’:
k=k%2;continue;
case‘E’:
k=k*10;break;
default:
k=k/3;
}
k++;
}while(c<‘H‘);
printf(“k=%d\n“,k);
}
分析结果
运行结果
3、键盘输入(CR表回车)6312CR,则下面程序的运行结果是
main()
{
intm,n;
printf(“Enterm,n”);
scanf(“%d%d”,&m,&n);
while(m!
=n)
{
while(m>n)m-=n;
while(m}
printf(“m=%d\n“,m);
}
分析结果
运行结果
二. 完成程序
要求:
根据要求,分析给出的上下语句,填写程序
1、 以下程序功能是完成用10元人民币换成一角、两角、五角的所有兑换方案,请在_______上填写正确内容。
main()
{
inti,j,k,L=1;
for(i=0;i<=20;i++)
for(j=0;j<=50;j++)
{____________________;
if(_____________)
{printf(“%2d%2d%2d”,i,j,k);
L=L+1;
if(L%5==0)printf(“\n”);
}
}
}
2、 以下程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请在_______上填写正确内容。
main()
{
intn,k=1,s=0,m;
for(n=1;n<=100;n++)
{k=1;
s=0;
________________;
while(m)
{k*=m%10;
s+=m%10;
_______________;
}
if(k>s)printf(“%d”,n);
}
}
三.调试程序
要求:
分析下列程序是否正确,如有错,错在哪儿?
应如何改正?
如正确,运行结果如何?
上机调试之。
1、 以下程序输出1---100的数字
main()
1{inti=100;
2while
(1)
3{
4i=i%100+1 ;
5printf(“%6d,“,i);
6if(i%10==0)printf(“\n”);
7if(i>100)break;
8}
9}
对
运行结果
错
错误在行
应改为:
2、下面程序的功能是从三个红球、五个白球、六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案。
main()
1{inti,j,k;
2for(i=0;i<=3 ;i++)
3for(j=0;j<=5 ;j++)
4{k=8-i–j;
5if(k>=0&&k<=6)
6printf(“3%d%3d%3d\n”,i,j,k);
7}
8}
对
运行结果
错
错误在行
应改为:
3、 下面是一个用以计算和的C程序。
#include
voidmain(void)
{
1inti,j;
2longsum=0;
3for(,i<=20,i++)//查查错误
4for(;j<=3;j++)
5sum=sum+(i+1)*(i+1)*(j+2);
6printf("sumis:
%d\n",sum);
}
(1)将上述程序中的和分别做什么样修改,能使程序按如下要求运行:
.不循环;
.外循环1次,不进入内循环;
.外循环,内循环各1次;
.外循环1次,内循环2次;
.外循环2次,内循环1次;
.外循环19次,内循环3次;
.外循环20次,内循环2次;
.外循环21次,内循环3次。
注:
控制循环次数可通过控制i,j的值以及循环终止条件来进行。
(2)试修改程序,以便能知道控