printf double输出格式_C语言输入与输出习题及答案

本文介绍了C语言中使用printf函数输出double类型的格式,包括精度控制和科学计数法。通过示例解析了不同格式说明符对输出的影响,帮助读者理解如何正确地输出double数值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击蓝字

关注我们

1-1double f = 2.5e5;

printf ("f=%5.4lf\n", f);

The output will be

f=250000.0000

T

1-2int a,b;

scanf("a=%d,b=%d",&a,&b);

the correct input should be: 5,6 

 F

1-3语句printf("%.2f",1.0/3);输出为0.33。

1-4

C语言中不能用scanf 函数输入字符。

F

1-5C语言中不能用printf函数输出字符。

F

1-6执行以下程序段后,输出i = 10, j = 20。

int i, j;  
i = 10;
j = 20;
printf("i = %d, j = %d", j, i);

F

1-7执行以下程序段,输入10,输出10.00。

double x;
scanf("%d", &x);  
printf("%.2f", x);   F

1-8执行以下程序段,输入20,输出20.00。

double x;  
scanf("%f", &x);  
printf("%.2f", x);   F

1-9执行以下程序段,输入30,输出30.00。

double x;  
scanf("x=%lf", &x);  
printf("%.2f", x);   F

1-10执行以下程序段,输入1000 3 0.025,输出1000#3#0.025。

int money, year;
double rate;
scanf("%d %d %lf", &money, &year, &rate);
printf("%d#%d#%.3f", money, year, rate); T

1-11执行以下程序段,输入1001 3 0.025,输出1001#3#0.025。

int money, year;
double rate;
scanf("%d %lf %d ", &money, &year, &rate);
printf("%d#%d#%.3f", money, year, rate);

F

1-12执行以下程序段,输入1002 0.025 3,输出1002#3#0.025。

int money, year;
double rate;
scanf("%d%lf%d", &money, &rate, &year);
printf("%d#%d#%.3f", money, year, rate);  T 

1-13执行以下程序段,输入1003 3 0.025,输出1003#3#0.025。

int money, year;
double rate;
scanf("%d %d %lf", &money, &year);
printf("%d#%d#%.3f", money, year, rate);

F

1-14C语言中不能用printf函数输出字符。

F

1-15C语言中不能用scanf函数输入字符。

F

1-16执行语句putchar('S');后,在屏幕上显示的输出结果是'S'。

F

1-17设变量已正确定义,执行以下程序段,顺序输入三个字符'Q',则输出Q。 

F

ch = getchar(); 

putchar(ch);
1-18设变量已正确定义,执行以下程序段,顺序输入三个字符'k',则输出k。

T

scanf(“%c%c%c”, &ch1, &ch2, &ch3); 

printf(“%c”, ch2);
1-19若表达式sizeof(int)的值为4,则int类型数据可以表示的最大整数为231−1。 

T

1-20

下面这段代码,用%d格式打印输出double型变量,将会进行取整,输出为3。 

#include

int main(){
   double pi = 3.14159;
   printf("%d", pi);
   return 0;
}

1-21下面这段代码,用%.2f格式打印输出int型变量,将会输出2019.00。

F

#include

int main(){
   int k=2019;
   printf("%.2f", k);
   return 0;
}

1-22下面这段代码,用%d格式打印输出double型变量,不会进行取整,打印输出的结果不会为3。

#include

int main(){
   double pi = 3.14159;
   printf("%d", pi);
   return 0;
}

1-23下面这段代码,用%.2f格式打印输出int型变量,不会进行类型转换,打印输出的结果不会是2019.00。 

T

#include

int main(){
   int k=2019;
   printf("%.2f", k);
   return 0;
}

1-24下面这段代码,打印输出变量e的值,将会进行取整,输出为2。 

F

#include

int main(){
   double e = 2.71828;
   printf("%d", e);
   return 0;
}

1-25可以使用printf输出一个字符。 

1-26下面这段代码,将打印输出2020.00 。 

F

#include

int main(){
   int year=2020;
   printf("%.2f", year);
   return 0;
}

1-27执行以下程序段,输入1.0 0.01 365,输出1.0#0.010#365。 

T

int day;

double factor, initial;
scanf("%lf %lf %d", &initial, &factor, &day);
printf("%.1f#%.3f#%d", initial, factor, day);

1-28执行以下程序段,输入1.1 0.01 365,输出1.1#0.010#365。 

F

int day;

double factor, initial;
scanf("%lf %d %lf", &initial, &factor, &day);
printf("%.1f#%.3f#%d", initial, factor, day);

1-29执行以下程序段,输入1.2 365 -0.01,输出1.2#-0.010#365。 

F

int day;

double factor, initial;
scanf("%lf %d %lf", &initial, &day, &factor);
printf("%.1f#%.3f#%d", initial, factor, day);

1-30执行以下程序段,输入1.3 0.01 365,输出1.3#0.010#365。 

F

int day;

double factor, initial;
scanf("%lf %lf %d", &initial, &factor);
printf("%.1f#%.3f#%d", initial, factor, day);

2-1若a是基本整型变量,c是单精度实型变量,输入语句__D__是错误的。 

A.scanf("%d,%f”, &a, &c);

B.scanf("d=%d, c=%f”, &a, &c);

C.scanf("%d%f”, &a, &c);

D.scanf("%d%f”, a, c);

2-2以下scanf函数调用语句中不正确的是_C_。

struct pupil {
   char name[20];
   int age;
   int sex;
} pup[5], *p=pup;

A.scanf("%s", pup[0].name);

B.scanf("%d", &pup[0].age);

C.scanf("%d", p->age);

D.scanf("%d", &(p->sex));

2-3假设在n进制下,下面的等式240*12=2880成立,n值是(D) 

A.19

B.17

C.15

D.以上都对

2-4下列语句中, _B 将输出%d。

A.printf(“%d”);

B.printf(“%%d”);

C.printf(“\%d”);

D.printf(“%%%d”);

2-5下列程序段输出结果为 _B_。int x=1, y=012; printf(“%d”,y*x++); 

A.12

B.10

C.20

D.24

2-6已定义 int a = -2;和输出语句printf("%8lx",a);以下正确的叙述是D 

A.整型变量的输出只有%d一种

B.%x是格式符的一种,它可以适用于任何一种类型的数据

C.%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的

D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度

2-7下列语句中, _B_ 将输出%d。 

A.printf(“%d”);

B.printf(“%%d”);

C.printf(“\%d”);

D.printf(“%%%d”);

2-8有如下的语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为2,c的值为3,从键盘输入数据的正确形式是( B) 

A.1,2,3

B.1,3,2

C.a=1,b=2,c=3

D.a=1,b=3,c=2

2-9若变量已正确定义,执行scanf("%d%c%f", &op1, &op, &op2); 输入(D )之后,op1的值为1,op的值为'*',op2的值为2.0。 

A.1 *2.

B.1 *2

C.1 *2.0

D.1*2

2-10上机运行【例1-1】,当输入13时,会输出一个错误的结果,其原因是(D )。

A.printf( )使用了错误的格式控制符

B.for循环语句多执行了一次,计算结果是14的阶乘

C.for循环语句少执行了一次,计算结果是12的阶乘

D.运算结果超出了整数的取值范围

2-11下列(C )不是C语言所表现出来的不足之处。 

A.数据类型检查不严格

B.表达式容易出现二义性

C.可移植性差

D.不能自动检查数据越界

2-12程序员要想调用输入输出函数,需要在程序的开头写上语句( B)。 

A.#include

B.#include

C.#include

D.#include

2-13已知字符'c' 的ASCII码为99,语句printf ("%d,%c",'c','c'+1); 的输出为(C )。

A 99,c

B.99,100

C.99,d

D.语句不合法

2-14阅读以下程序段,如果从键盘上输入1234567,则程序的运行结果是(D )。

int i,j;
scanf("%3d%2d",&i,&j);
printf("i = %d, j = %d\n",i,j);

A.i = 123, j = 4567

B.i = 1234, j = 567

C.i = 1, j = 2

D.i = 123, j = 45

2-15阅读以下程序段,如果从键盘上输入abc,则程序的运行结果是( A)。

char ch;
scanf("%3c",&ch);
printf("%c",ch);

A.a

B.b

C.c

D.语法出错

2-16已知字母A的ASCII码为十进制的65,下面程序段的输出是(A )。

char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);

A 67,D

B.B,C

C.C,D

D.不确定的值

2-17下面合法的C语言字符常量是(A)。 

A.'\t'

B."A"

C.'xx'

D.A

2-18下面程序段的输出是(B )。

int x=023;
printf("%d\n",--x);

A.17

B.18

C.23

D.24

2-19下面的程序段输出是( D)。 

int k=11;
printf("k=%d,k=%o,k=%x\n",k,k,k);

A.k=11,k=12,k=11

B.k=11,k=13,k=13

kC.=11,k=013;k=0xb

D.k=11,k=13,k=b

2-20下面的程序段输出是(B )。 

short int a;
int b = 65536;
a = b;
printf("%d\n", a);

A.65536

B.0

C-.1

D.1

2-21执行printf("%x",100);后的输出结果是( C) 

A.100

B.0x100

C.0X64

D.64

2-22使用“scanf("X=%f,y=%f",&x,&y)”,要使 X,y均为1.25,正确的输入是( C) 

A.1.25,1.25

B.1.25 1.25

C.X=1.25,y=1.25

D.X=1.25 y=1.25

2-23假设有变量定义:double f=3.14; 则对于printf("%d\n", f); 和 printf("%d\n", (int)f); 两个操作是否可以实现“打印数字3并换行”的表述正确的是:C

A.两个操作都可实现

B.只有printf("%d\n", f); 可以实现

C.只有printf("%d\n", (int)f); 可以实现

D.两个操作都不可实现

2-24字符串常量”ab\n\cde\125”包含字符个数是(B)。 

A.13

B.8

C.9

D.12

2-25putchar函数可以向终端输出一个(D )。 

A.整型变量表达式

B.实型变量值

C.字符串

D.字符

2-26printf函数中用到格式符%-6s,其中数字6表示输出的字符串占用6列。如果字符串长度小于6,则输出按方式 ( A)。 

A.从左起输出该字符串,右补空格

B.从右起输出该字符串,左补空格

C.0

D.输出错误信息

2-27printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 ( B)。 

A.从左起输出该字符串,右补空格

B.按原字符长从左向右全部输出

C.0

D.输出错误信息

2-28若变量已定义为float类型,要通过以下赋值语句scanf("%f,%f",&a,&b);给a赋值为11,给b赋值为22,以下正确的输入形式是(D )。 

A.11 22

B.11&22

C.11:22

D.11,22

2-29若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是(C)。 

A.read a,b,c;

B.getchar(a,b,c);

C.scanf("%d%d%d",&a,&b,&c);

D.scanf("%d%d%d",a,b,c);

2-30以下各选项中,错误的浮点型常量是:C

A.5.36e-1

B.0.483e3

C.8.27e4.5

D.-6.93

2-31下列叙述中错误的是(A ) 。 

A.用户所定义的标识符允许使用关键字

B.用户所定义的标识符应尽量做到“见名知意”

C.用户所定义的标识符必须以字母或下划线开头

D.用户定义的标识符中、大、小写字母代表不同标识

2-32有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c); 为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是(D )。(注:┗┛表示空格) 

A.132

B.1,3,2

C.a=1┗┛b=3┗┛c=2

D.a=1,b=3,c=2

2-33请阅读以下程序段:

int a=5, b=0, c=0;
if ( a=b+c )
 printf("Equal!\n");
else
 printf("Not Equal!\n");

以上程序(C )。 

A.有语法错误不能通过编译

B.可以通过编译但是不能通过连接

C.输出 Not Equal!

D.输出 Equal!

2-34改正下列程序中的( C)处错误后,程序的运行结果是在屏幕上显示短句“Welcome to You!”。

# include
int mian(void)
{  printf(Welcome to You!\n")
    return 0;
}

A.1

B.2

C.3

D.4

2-35假设i和j是整型变量,以下语句( B) 的功能是在屏幕上显示形如i * j = i*j的一句乘法口诀。例如,当i=2,j=3时,显示2 * 3 = 6。 

A.printf("d * %d = %d\n", i, j, i*j);
B.printf("%d * %d = %d\n", i, j, i*j);

C.printf("%d * %d = %d\n", i, j);
D.printf("%d = %d * %d\n", i, j, i*j);

2-36若x是double型变量,n是int型变量,执行以下语句(A ),并输入3 1.25后,x的值是1.25,n的值是3。。 

A.scanf("%d%lf", &n, &x);
B.scanf("%lf%d", &x, &n);

C.scanf("%lf%d", &n, &x);

D.scanf("%d, %lf", &n, &x);

2-37假设下列op1(操作数1)、op(操作符)、op2(操作数2三个)变量都被正确声明。如果执行语句 scanf (”% d% c% f” ,& op1,& op,& op2) ; ,op1、 op 和 op2的值分别为1、 * 和2.0,则输入必须为(B)。 

A.1.0*2

B.1*2

C.1 * 2

D.1 * 2.0

2-38若a是基本整型变量,c是字符型变量,b是单精度实型变量,输入语句_C_是错误的。 

A.scanf("a=%d,c=%c,b=%f”, &a, &c,&b);

B.scanf("%d,%c,%f”, &a, &c,&b);

C.scanf("%d%c%f”, a, c,b);

D.scanf("%d%c%f”, &a, &c,&b);

2-39已有下列语句组:int a=123;char c='+’;float b=127;能正确输出"123+127.00=250.00”的语句是(A )。

A.printf(“%d%c%.2f=%.2f\n”,a,c,b,a+b);

B.printf("%d%c%f=%f\n",a,c,b,a+b);

C.printf("%d%c%6f=%6f\n",a,c,b,a+b);

D.printf("%d%c%7.2f=%-7.2f\n",a,c,b,a+b);

2-40有以下程序

#include
main()
{  int  a;
  a = (int)1.99*3;
  printf("%d\n", a);
}

程序的运行结果是 A

A.3

B.5

C.6

D.结果不确定

2-41有以下程序

#include
main()
{  int  k=-17;
  printf("%d,%o,%x\n", k, 1-k, 1-k);
}

程序的运行结果是 A

A.-17,22,12

B.-17,12,22

C.-17,-22,-12

D.17,22,12

2-42有如下程序段:

int  x=12;  
double y=3.141593;
printf("%d%8.6f", x, y);
其输出结果是A 

A.123.141593

B.12 3.141593

C.12, 3.141593

D.123.1415930

2-43已知字符'A'的ASCII代码值是65,字符变量c1的值是'A',c2的值是'D'。则执行语句 printf("%d,%d", c1, c2-2 ); 的输出结果是D

A.65,68

B.A,68

C.A,B

D.65,66

2-44有以下程序

#include
main()
{  int  x;
  scanf("%d", &x);
  if(x<=3) ;  
  else if(x!=10)  
     printf("%d\n", x);
}

程序运行时,输入的值在哪个范围才会有输出结果 D

A.小于3的整数

B.不等于10的整数

C.大于3或等于10的整数

D.大于3且不等10的整数

2-45使用scanf("a=%d,b=%d",&a,&b)要使a,b均为50,正确的输入是(A ).

A.a=50,b=50

B.50 50(空格分开)

C.a=50 b=50(空格分开)

D.50,50

2-46已知字母Z的ASCII码为十进制数90,c1为字符型变量,则执行语句:c1='Z'-('9'-'6');printf("%d",c1);后,屏幕输出内容为(B )。

A.W

B.87

C.不确定的值

D.Y

019c242dd83e82cb5a2786d952f636b9.gif有空吗?帮忙点个“分享”吧

0a645e011f3769da5188abaca13d06b0.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值