这些关于C语言的题怎么做?
图1的题目:考的是scanf输入参数与格式的对应。
所以只要知道整型对应int(数值太大就要长整形),字符对应char,实数对应float或double。
对应的输入格式分别是%d,%c,%f或%lf。
在多个同类型的输入参数变量,可用独立变量,也可用数组。比如3个整型,你可定义3个变量来接收输入,也可定义一个int n[3]这样的数组来接收输入。
值得注意的是字符型输入,scanf输入%c这样的格式,是会把空格和回车也作为字符接收的。所以如你单独写scanf("%c",&c);是没问题的。但如连续输入比如scanf("%d%c",&n,&c);这样输入的时候第一个数字和第二个字符之间不能有任何其它字符,包括空格和回车。否则就要用getchar来把多余字符接收掉,或清空缓存。
提示:scanf连续输入包含字符的多种格式有一技巧,那就是%s把字符当字符串来输入,最后按字符串打印或用下标取字符串中的每个字符。
下面是图1代码(我写在一个main函数中,拆开的话,getchar函数可删除):
#include <stdio.h>
int main()
{
int i,n[3];
printf("(1)输入3个整数:\n");
for(i=0;i<3;i++)scanf("%d",&n[i]);
printf("输入的整数为:\n");
for(i=0;i<3;i++)printf("%d ",n[i]);
getchar();//连续输入在下一次输入字符前,把上一次回车接收掉
char c[3];
printf("\n\n(2)输入3个字符:\n");
for(i=0;i<3;i++)scanf("%c",&c[i]);
printf("输入的字符为:\n");
for(i=0;i<3;i++)printf("%c ",c[i]);
int n2[2];
char c2;
printf("\n\n(3)输入2个整数和1个字符(注意第3个字符输入和前一个数字间不要有任何字符包括空格和回车):\n");
for(i=0;i<2;i++)scanf("%d",&n2[i]);
scanf("%c",&c2);
printf("输入的2个整型1个字符为:\n");
for(i=0;i<2;i++)printf("%d ",n2[i]);
printf("%c",c2);
int n3;
char c3;
float f3;
printf("\n\n(4)输入1个整数和1个字符和1个实数(注意第2个字符输入和前一个数字间不要有任何字符包括空格和回车):\n");
scanf("%d%c%f",&n3,&c3,&f3);
printf("输入的整型、字符及实数为:\n");
printf("%d %c %f\n",n3,c3,f3);
return 0;
}
下面是图2:
#include <stdio.h>
int main()
{
float r,pi=3.14159;
printf("1、输入圆的半径:"),scanf("%f",&r);
printf("圆的周长是%f,面积是%f\n",2*r*pi,pi*r*r);
printf("--------------------------------------------\n\n");
float n1,n2;
printf("2、输入长方形的长和宽:"),scanf("%f%f",&n1,&n2);
printf("长方形的面积是%f\n",n1*n2);
return 0;
}
#define PI 3.14159//定义圆周率
int main()
{
float r,l,s;
scanf("%f",&r);
l=2*PI*r;
s=PI*r*r;
printf("周长:%.2f 面积:%.2f",l,s);
return 0;
}
————————————————————————————
#include<stdio.h>
#define PI 3.14159//定义圆周率
int main()
{
float b,a,l;
scanf("%f%f",&a,&b);
s=a*b;
printf("面积:%.2f",s);
return 0;
}