结构推理
最简单的C程序设计
1.实验目的
①掌握C语言中使用最多的一种语句——赋值语句的使用方法。
②掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
2.实验内容和步骤
掌握各种格式转换符的正确使用方法。
①输入程序
main()
{int a,b;
float d,e;
char c1,c2;
double f,g;
longm,n;
unsigned int p,q;
a=16;b=62;
c1='a';c2='b';
d=3.56;e=-6.87;
f=3157.890121;g=0.123456789;
m=50000:n=-60000;
p=32768;q=40000;
printf("a=/%d,b=/%d\nc1=/%c,c2=/%c\nd=/%6.2f,e=/%6.2f\n",a,b,c1,c2,d,e);
printf("f=/%15.6f,g=/%15.12f\nm=/%1d,n=/%ld\np=/%u,q=/%u\n",f,g,m,n,p,q);
}
②运行此程序并分析结果。
③在此基础上,修改程序的第8~13行。
a=b1;b=b2;
c1=a;c2=b;
f=3157.890121;g=0.123456789;
d=f; e=g;
p=a=m=50000;q=b=n=-60000;
运行程序,分析结果。
④改用scanf函数输入数据而不用赋值语句,scanf函数如下。
scanf("/%d,/%d,/%c,/%c,/%f,/%f,/%lf,/%lf,/%ld,/%ld,/%u,/%u"
&a,&b,&c1,&c2,&d,&e,&f'&g,&m,&n,&p,&q);
输入的数据如下。
61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000,-60000,37678,40000
(说明:ld格式符用于输入long型数据)分析运行结果。
⑤在上面的基础上将printf语句改为
printf("a=/%d,b=/%dknc1=/%c,c2=/%c\nd=/%15.6f,e=/%15.12f\n",a,b,c1,c2,d,e);
printf("f=/%f,g=/%f\nm=/%d,n=/%d,p=/%d,q=/%d\n",f,g,m,n,p,q);
运行程序。
⑥将p、q改用/%o格式符输出。
⑦将scanf函数中的/%lf和/%ld改为/%f和/%d,运行程序并观察分析结果。
3编写程序
①有下面的程序
main()
{
int a;
float b,c;
scanf("/%2d/%3f/%4t",&a,&b,&c);
printf("\na=/%d,b=/%f,c=/%f\n",a,b,c);
}
若从键盘上输入9876543210并回车,则程序的输出结果是______。
②下面程序的输出结果是______。
main()
{int x=5,y=3;
printf("/%d\n",y=x/y);
}
③以下程序的输出结果是______。
main()
{
int a=2,b=5;
printf("a=/%/%d,b=/%/%d\n",a,b);
}
④以下程序的输出结果是______。
#include"stdio.h"
main()
{
double x=123.123789;
printf("/%8.6f,/%8.3f,/%14.8f\n",x,x,x);
}
⑤以下printf语句中的"-"的作用是______,该程序的输出结果是______。
#include<stdio.h>
main()
{ int x=12;
double a=3.1415926;
printf("/%6d##\n",x);
printf("/%-6d##\n",x);
printf("/%14.10f##\n",a);
printf("/%-14.10f##\n",a);
}
⑥以下程序的输出结果是______。
#include<stdio.h>
main()
{int a=325;
double x=3.1415926;
printf("a=/%+0.6d x=/%+e\n",a,x);
}
⑦编写程序,让用户输入两个整数,输出它们的商和余数。
⑧编程:设圆半径r=1.5,求圆周长、圆面积。用scanf输入数据,输出计算结果,输出开寸要求有文字说明,取小数点后2位数字。
⑨输入一个华氏温度,要求输出摄氏温度。公式为c=5/9(F-32)。输出要有文字说明,取2位小数。
【正确答案】编写程序
①a=98,b=765.000000,c=4321.000000
②1
③a=/%d,b=/%d
④123.123789,123.124,123.12378900
⑤输出数据左对齐,
12##
12##
3.1415926000##
3.1415926000 ##
⑥a=+00325 x=+3.14159e00
⑦main()
{int a,b,c,d;
scanf("/%d/%d",&a,&b);
c=a/b;
d=a/%b;
printf("/%d与/%d的商是:/%d\n",a,b,c);
printf("/%d与/%d的余数是:/%d\n",a,b,d);
}
(8)main()
{
float pi,r,l,s;
pi=3.1415926;
r=1.5;
1=2*pi*r;
s=r*r*pi;
printf("圆周长为:1=/%.2f\n",1);
printf("圆面积为:s=/%.2f\n",s);
}
⑨main()
{
float c,f;
printf("请输入一个华氏温度:\n");
scanf("/%f",&f);
c=(5.0/9.0)*(f-32);
printf("摄氏温度为:/%.2f\n",c);
}
【答案解析】