单片机C语言作业及上机习题及答案 - 图文 下载本文

.

第三次课

熟悉scanf()函数的使用:

1. 用下面的scanf()函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’;

main() {

int a,b; float x,y; char c1,c2;

scanf(“a=%d b=%d”,&a,&b); scanf(“ x=%f y=%e”,&x,&y); scanf(“ c1=%c c2=%c”,&c1,&c2); printf(“a=%d b=%d”,a,b); printf(“ x=%f y=%e”,x,y); printf(“ c1=%c c2=%c”,c1,c2); }

2.加载,编译并运行下面的程序然后回答下面的问题。

2. 改写这个程序使他可以用一个单独的变量以天的形式存储用户的年龄。

;.

#include main() { int user_age; char user_name[51]; /* Get the users name */ printf(\ scanf(\ /* Get the users age */ printf(\ scanf(\ /* Print out their name and age in days */ printf(\’day %s, you are %d days old\\n\ user_age*365); return(0); } 存储用户名的变量名是什么? 1. .

3.使用 scanf() 读取多行输入

#include main() { int user_age; char user_name[51]; /* Get the users name and age*/ printf(\ scanf(\ /* Print out their name and age in days */

printf(\’day %s, you are %d days old\\n\return(0); } 1. 当你在回答问题时颠倒了年龄和姓名会出现什么情况? 2. 当你在代码中省去了&时会出现什么情况? 4.编程题

(1) 已知a,b均是整型变量,写出将a,b两个变量中的值互换的程序来。

(2)若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)

5(3)输入一个华氏温度,要求输出摄氏温度,公式为:C?(F?32),取两位小数。

95.请判断以下表达式是否正确,若正确,写出表达式的值;若不正确,写出出错原因。 各变量的类型说明如下:

int i=8, j=3, k, a, b; unsigned long w=5, u; double x=1.42 , y=5.2 , t ;

;.

.

(1) k=i++ 8 (2) (int)x+0.4 1.4 (3) w+=-2 3 (4) y+=x++ ? (5) i/=j+12 0 (6) k=--i 7 (7) f=3/2*(t=30.0-10.0) 30.0 (8) k=(a=2,b=3,a+b) 5 (9) a+=a-=(b=4)*(a=3) -18 (10) a=2*a=3 ?

(11) u=65535, j=-1,u=u+j (12) ++(i+j) ? (13) 2%(-3) 2 (14) -2%(-3) 2

6. 求以下表达式的值,假设所有变量都为整型。 (1) (a=b=4,a+1,b+1,a+b) (2) (a=2,b=5,a>b?a++:b++,a+b) (3) (x=8,x%=x+5) (4) 30 % 6 / 2

7.写出下面各逻辑表达式的值。设:a=3,b=4,c=5. (1)a+b>c&&b==c (2)a ||b+c&&b-c (3)!(a>b) && !c || 1 (4)!(x=a)&&(y==b)&&0 (5)!(a+b) + c –1 && b + c/2 第四次课

1. if语句应用

(1)加载,编译并运行下面的程序,先使用一个正整数,然后再使用一个负数。有什么不同?

#include main() { int x; printf(\ scanf(\ if (x > 0) { printf(\ } return(0); }

;.

.

(2)使用 if语句避免除0 #include main() { float x, y; printf(\ scanf(\ y = 1/x; printf(\ return(0); } 1. 当你输入数字0时结果为多少? 2. 增加一个if语句使它只有当if x不等于0时进行计算。 3. 现在你输入0会出现什么情况? 4. 改进程序使之可以当输入数字0时打印出警告信息。 (3)编写 if语句

写一个程序用来计算电阻上的功率。功率大小等于电阻上的电压值乘以流过电阻的电流 值。

完成计算后,使用一个if 语句判断功率是否低于0.5 瓦特。如果低于0.5 瓦特则输 出“Okey to use half watt resistor”,否则输出“haff watt registor will not be okey”。

下面是程序的开始部分,请添加完成if语句。 #include main() { float power, voltage, current; printf(\ scanf(\ printf(\ scanf(\ /* Calculation here */ /* if check here */ /* else here */ return(0); ;. }