实验一数据类型和表达式
一.实验目的
1.掌握C语言基本数据类型的概念,理解数据类型与运算的关系。
2.熟悉简单变量的定义和赋值方法,掌握不同类型数据之间转换的规律。
3.学习C语言运算符优先级和结合性的概念,掌握算术表达式的计算方法及表达式计算中的类型转换方法。
4.掌握数学式子的表达式表示。
5.进一步熟悉C程序的编辑、编译、连接和运行的过程。
二.实验内容与算法解析
1.编程计算下面算术表达式的值,手工计算检测。
(1) x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7
(2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5, y=2.5
2.下面表达式计算中,哪些地方会发生类型转换?各个转换从什么类型转换到什么类型?表达式计算的结果是什么?试编程进行验证。
(1) 2.5+2*7%2/4 (2) 4*(2L+6.5)-12
(3) 10/(int)(5.1+3)) (4) 2*10.0/(5*3)
3.运行下面程序分析结果:
main()
{
int a,b,c;
a=9;
b=5;
c=24;
printf("%d",a%c/b);
}
4.输入并运行下面程序,对照程序分析运行结果:
程序如下:
#include <stdio.h>
main( )
{ int a,b;
long d;
unsigned e;
char c;
a=100;
c='W';
b=-100;
d=50000;
e=8766;
printf("a=%d,b=%d,c=%c,d=%ld,e=%u\n",a,b,c,d,e);
}
并修改程序测试:
1)将a=100;换成a=42569;,会得到什么结果,为什么?
2)将b=-100;换成b=c;,会得到什么结果,为什么?
3)将e=8766; 换成e=-10;,会得到什么结果,为什么?
5.写出程序运行结果,并上机进行验证,并分析原因。
main( )
{ int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);
}
6.编写一个C程序,测试下列各表达式。
1) i,j
2) i+1,j+1
3)j+=i
4) i++,j++
5) ++i,++j
6) i+++++j
7) ++i+++++j++
各表达式中i、j的初始值分别为2、3时分别测试上表达式的值。
在实验中,注意如下问题:
1)哪些表达式是错误的?为什么?
2)理解+,+=,++,++i,i++的意义和优先级。
实验二顺序结构程序设计
一.实验目的
1.掌握C语言基本语句的概念,尤其是赋值语句的使用。
2.了解算法的概念及算法的表示方法。
3.掌握不同数据类型的数据的输入输出方法。
4.掌握C程序的结构化设计方法,尤其是顺序结构程序的设计。
5.能熟练的使用顺序结构方法设计简单C程序。
c语言数组最大值最小值6.进一步学习使用Turbo c调试程序的技术
二.实验内容与算法解析
1.通过下面程序,练习输入语句的使用方法,并观察程序的输出格式。main()
{int x,y,z;
scanf("%d%d",&x,&y);
z=x+y;
printf("%d+%d = %d",x,y,z);
}
输入以下几组数据,观察z的值,看输入是否合理,并分析原因。
1) 3 5 2) 2,6
3) 2.3 3.6 4) 8 <Tab> -6
5) 32756 21458
2.观察下面程序的输出结果,掌握输出的格式。
main()
{
int a=25;
float b=3.1545;
char c='A';
printf("%d\n",a);
printf("%4d\n",a);
printf("%f\n",b);
printf("%6.2f\n",b);
printf("%-8.3f\n",b);
printf("%.2f\n",b);
printf("%c\n",c);
printf("%5c\n",c);
printf("%d\n",c);
}
3.从键盘输入直角三角形的两条直角边a,b,编程序计算斜边c。
【算法提示】
1) 输入a,b的值,a,b为实型数据。
2) 根据公式斜边c为2直角边的平方和的平方根,求出c;(要使用数学函数的开方函数,程序上方要使用#include <math.h>)
3) 输出c。
4.鸡兔同笼问题:已知笼子里有16只鸡和40只兔,求有多少只脚,有多少只头。
【算法提示】
1)设有x(x=16)只鸡,有y(y=40)只兔,则有:
2)头数等于a=x+y只
3)脚数等于b=2x+4y只
4)输出a,b。
5.某试卷由26个问题组成,答对一题得8分,答错一题扣5分。输入考生答对的题目数,并输出该考生的考试成绩。
6.有一函数如下:
编写一程序实现输入x,则输出f(x)值。
7.一个有3位整n,请输出它的各个位。
8.已知一平行四边形的边长为a和b,a,b两边的夹角的锐角为d度,求平行四边形的面积。(提示:数学函数中求正弦值的为sin(x),其中x为弧度)
实验三选择结构程序设计
一.实验目的
1.掌握计算关系表达式和逻辑表达式的方法。
2.掌握选择结构程序设计的方法和相关语句。
3.掌握if语句、switch语句和条件运算符的格式与应用。
4.能熟练的使用if语句或switch语句进行选择结构的程序设计。
二.实验内容与算法解析
1.下面两个程序均是求a,b,c中最大值,请把程序补充完整,并上机调试验证是否正确。
1) if(a>b)
max=________ ;
else
max=_______ _;
if(max<c)
max=________ ;
printf("%d",max);
2) if(a>b)
{ if(a>c)
max=______;
else
max=______;
}
else
{ if(b>c)
max=_______ _;
else
max=_________;
}
printf("%d",max);
2.分析下面程序的运行结果,掌握switch的使用方法。
main()
{ int a=0,i=1;
switch(i)
{ case 0:
case 3:a+=2;break;
case 1:
case 2:a+=3;
case 4:a+=1;break;
default:a+=5;
}
printf("%d\n",a);
}
3.猜数游戏。程序预制一个常数(称为幻数),让用户猜,猜对时给出正确信息,否则会给出是大了还是小了的提示。
4.给定一个不多于5位的整数N,求它是几位数。
5.有一函数:
写一程序,输入x的值,输出y的值。
6.输入一个字符,如果是字母则原样输出,如不是字母请输出Error!。
7.任意输入一个3位数,判断其是不是水仙花数。水仙花数:各位数的立方和等于该数本身,如153=13+53+33。
8.任意输入一个整数n(n的位数小于4),判断是不是自同构数。自同构数:一个自然数的平方的末几位数与该数相同,如: 52=25, 62=36,即5,6都是自同构数。
【算法提示】
1)输入n;
2)先求出;
3)当n为一位数时,判断(%10)是否和n相等;当n为2位数时,判断(%100)是否和n 相等;以下依此类推;
4)输出结果(是或否)。
9.请把下面的程序补充完整实现输入一个年份,判断是不是闰年。如是闰年则必符合下面二条件之一:
①能被4整除,但不能被100整除。
②能被4整除,又能被400整除。
main()
{ int x;
printf("Input a year:");
scanf("%d",&x);
if( )
printf("%d is",x);
else
printf("%d is not",x);
}
10.某衣服商店出售某种衣服,每件30元,买10件以内打九折,买10件到19件打八折,20到39件打七折,40到59件打六折,60件以上打五折。(分别使用switch语句和if语句实现)
实验四循环结构程序设计(一)
一.实验目的
1.掌握循环结构程序设计的基本思想。
2.熟练掌握用for、while、do-while语句实现一重循环程序设计。
2.在程序设计过程中实现一些常用算法。
3.掌握for、while、do-while三种循环的区别和联系。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论