练习题3及参考答案1. 单项选择题(1)以下说法正确的是。
A. 输入项可以为一个实型常量,如scanf("%f",3.5)B. 只有格式控制没有输入项也能进行正确输入,如scanf("%d")C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f)D. 当输入数据时,必须指明变量的地址,如scanf("%f",&f)【答】D(2)若a为整型变量,则以下语句。
a=-2L;printf("%d\n",a);A. 赋值不合法B. 输出值为-2C. 输出为不确定值D. 输出值为2【答】B(3)若x和y均定义为int型,z定义为double型,以下scanf()函数调用语句不合法的是。
A. scanf("%d%lx,%le",&x,&y,&z);B. scanf("%2d*%d%lf",&x,&y,&z);C. scanf("%x%*d%o",&x,&y);D. scanf("%x%o%6.2f",&x,&y,&z); 【答】scanf()函数中没有精度控制。
本题答案为D。
(4)若a,b,c均定义为int型,要给它们输入数据,正确的输入语句是。
A. read(a,b,c);B. scanf("%d%d%d",a,b,c);C. scanf("%D%D%D",a,b,c);D. scanf("%d%d%d",&a,&b,&c); 【答】D(5)若有定义和语句:int n=10;printf("%\n",n);其输出结果是。
A. 输出10B. 输出一空行C. 没有输出D. 编译不通过【答】D(6)若a是float型变量,b是unsigned型变量,以下输入语句中合法的是。
A. scanf("%6.2f%d",&a,&b);B. scanf("%f%n",&a,&b);C. scanf("%f%3o",&a,&b);D. scanf("%f%f",&a,&b);【答】C(7)字母a的ASCII码为97,则下列语句的运行结果为。
char a='a';a--;printf("%d,%c\n",a+'2'-'0',a+'3'-'0');A. b,cB. a--运算不合法,故有语法错C. 98,cD. 格式描述和输出项不匹配,输出无定值【答】C(8)若k1,k2,k3,k4均为int型变量,为了将整数10赋给k1和k3,将整数20赋给k2和k4,则对应以下scanf()函数调用语句的正确输入方式是。
scanf("%d%d",&k1,&k2);scanf("%d,%d",&k3,&k4);A. 1020B. 10 20C. 10,20D. 10 20102010 2010,2010,20【答】D(9)有如下程序,输入数据12345 678↙后,x的值是①,y的值是②。
#include <stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}① A. 12345 B. 123 C.45 D.345② A. 45.000000 B. 45678.000000 C. 678.000000 D.123.000【答】① B② A(10)有如下程序,输入数据25,13,10↙后,正确的运行结果是。
#include <stdio.h>main(){int x,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n",x+y+z);}A. x+y+z=48B. x+y+z=35C. x+y+z=38D. 不确定值【答】输入的数据与scanf()函数的格式不匹配。
本题答案为D。
(11)有如下程序,输入数据12 345↙后,x的值是①,y的值是②。
#include <stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}① A. 12 B. 123 C. 12345 D. 0② A. 12.000000 B. 345.000000 C. 12345.000000 D.0.000000【答】① A ② B(12)有如下程序,输入数据9876543210↙后,程序的运行结果是。
#include <stdio.h>main(){int a;float b,c;scanf("%2d%3f%4f",&a,&b,&c);printf("a=%d,b=%f,c=%f\n",a,b,c);}A. a=98,b=765,c=4321B. a=10,b=432,c=8765C. a=98,b=765.000000,c=4321.000000D. a=98,b=765.0,c=4321.0 【答】C(13)以下程序的运行结果是。
#include <stdio.h>main(){float a=3.1415;printf("|%6.0f|\n",a);}A. |3.1415|B. | 3.0|C. | 3|D. | 3.|【答】C(14)以下程序的运行结果是。
#include <stdio.h>main(){float a=3.1415;printf("|%06.0f|\n",a);}A. |000003|B. |3.1415|C. |00003.0|D. | 3| 【答】A(15)以下程序的运行结果是。
#include <stdio.h>main(){float a=3.1415;printf("|%-6.0f|\n",a);}A. |3 |B. |000003|C. |3.1415|D. |3.0 |【答】A(16)以下程序的运行结果是。
#include <stdio.h>main(){int i=010,j=10;printf("%d,%d\n",++i,j--);}A. 11.10B. 9,10C. 010,9D. 10,9【答】B(17)以下程序的运行结果是。
#include <stdio.h>main(){int x=10,y=10;printf("%d,%d\n",x--,--y);}A. 10,10B. 9,9C. 9,10D. 10,9【答】D2. 填空题(1)以下程序的运行结果是。
#include <stdio.h>main(){float f=3.1415927;printf("%f,%5.4f,%3.3f",f,f,f);}【答】3.141593,3.1416,3.142(2)以下程序的运行结果是。
#include <stdio.h>main(){float f=3.5;printf("%f,%g",f,f);}【答】3.500000,3.5(3)以下程序的运行结果是。
#include <stdio.h>main(){float f=31.41592;printf("%f,%e",f,f);}【答】31.415920,3.141592e+001(4)以下程序的运行结果是。
#include <stdio.h>main(){int x=0177;printf("%3d,%6d,%6o,%6x,%6u\n",x,x,x,x,x);}【答】127, 127, 177, 7f, 127(5)以下程序的运行结果是。
#include <stdio.h>main(){int x=0177;printf("%-3d,%-6d,%-6o,%-6x,%-6u\n",x,x,x,x,x); }【答】127,127 ,177 ,7f ,127(6)以下程序的运行结果是。
#include <stdio.h>main(){char c='A'+10;printf("c=%c\n",c);}【答】c=K(7)以下程序输入123456↙后,其运行结果是。
#include <stdio.h>main(){int a,b;scanf("%2d%3d",&a,&b);printf("a=%d,b=%d\n",a,b);}【答】a=12,b=345(8)以下程序输入ABC↙后,其运行结果是。
#include <stdio.h>main(){char c;scanf("%3c",&c);printf("c=%c\n",c);}【答】c=A(9)以下程序输入100↙后,其运行结果是。
#include <stdio.h>main(){int n;scanf("%o",&n);printf("n=%d\n",n);}【答】n=64(10)以下程序输入x=1.23,y=50↙后,其运行结果是。
#include <stdio.h>main(){float x,y;scanf("x=%f,y=%f",&x,&y);printf("x=%7.2f,y=%7.2f\n",x,y);}【答】x= 1.23,y= 50.00(11)执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82, c1='A',c2='a'正确的数据输入形式是。