1.选择题
(1)以下说法正确的是 。
A.输入项可以为一个实型常量,如scanf("%f",3.5)
B.只有格式控制没有输入项也能进行正确输入,如scanf("%d")
C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%
4.2f",&f)
D.当输入数据时,必须指明变量的地址,如scanf("%f",&f)
(2)若a为整型变量,则以下语句 。
a=-2L;
printf("%d\n",a);
A.赋值不合法 B.输出值为-2
C.输出为不确定值 D.输出值为2
(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);
(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);
(5)若有定义和语句:
int n=10;
printf("%\n",n);
其输出结果是 。
A.输出10 B.输出一空行 C.没有输出 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);
(7)字母a的ASCII码为97,则下列语句的运行结果为 。
char a='a';
a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A.b,c B.a-运算不合法,故有语法错
C.98,c D.格式描述和输出项不匹配,输出无定值
(8)若k1、k2、k3、k4均为int型变量,为了将整数10赋给k1和k3,将整数20赋给k2和k4,则对应以下scanf()函数调用语句的正确输入方式是 。
scanf("%d%d",&k1,&k2);
scanf("%d,%d",&k3,&k4);
A.1020 B.10 20 C.10,20 D.1020
1020 1020 10,20 10,20
2.填空题
(1)以下程序的运行结果是 。
#include <stdio.h>
void main()
{
float f=3.1415927;
printf("%f,%5.4f,%3.3f",f,f,f);
}
(2)以下程序的运行结果是 。
#include <stdio.h>
void main()
{
float f=3.5;
printf("%f,%g",f,f);
}
(3)以下程序的运行结果是 。
#include <stdio.h>
void main()
{
int x=0177;
printf("%-3d,%-6d,%-6o,%-6x,%-6u\n",x,x,x,x,x);
}
(4)以下程序的运行结果是 。
#include <stdio.h>
void main()
{
char c='A'+10;
printf("c=%c\n",c);
}
(5)以下程序输入123456后,其运行结果是 。
#include <stdio.h>
void main()
{
int a,b;
scanf("%2d%3d",&a,&b);
printf("a=%d,b=%d\n",a,b);
}
(6)以下程序输入x=1.23,y=50后,其运行结果是 。
#include <stdio.h>
void main()
{
float x,y;
scanf("x=%f,y=%f",&x,&y);
printf("x=%7.2f,y=%7.2f\n",x,y);
}
3.上机操作题
(1)编写一个程序,求出任一输入字符的ASCII码。
(2)编写一个程序,输入一个字符,依次输出其前导字符、该字符和后续字符。
(3)编写一个程序,输出任意一个十进制整数对应的八进制数和十六进制数。
(4)编写一个程序,从键盘输入圆锥体的半径r和高度h,计算其体积。