4.1 选择题
(323) 根据下面的定义,能打印出字母M的语句是____。
struct person
{
char name[9];
int age;
};
struct person linkman[10] =
{
"JHON",17,
"PAUL",19,
"MARY",18,
"ADAM",16
};
a. printf("%c\n", linkman[3].name);
b. printf("%c\n", linkman[3].name[1]);
c. printf("%c\n", linkman[2].name[1]);
d. printf("%c\n", linkman[2].name[0]);
(d)
(324) 下面语句不正确的是:
a. printf("the number of 17 is %o", 17);
b. printf("the number of 30 is %x", 30);
c. printf("%c", 'ab');
d. #define stg "a fling bird"
printf("%s", stg);
(c)
(325) printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式_____。
a. 从左起输出该字串,右补空格
b. 按原字符长从左向右全部输出
c. 右对齐输出该字串,左补空格
d. 输出错误信息
(c)
(326) 已有定义 int a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是____。
a. 整型变量的输出格式符只有%d一种
b. %x 是格式符的一种,它可以适用于任何一种类型的数据
c. %x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的
d. %8lx 不是错误的格式符,其中数字8规定了输出字段的宽度
(d)
(327) 若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);
(b)
(328) 以下说法正确的是____。
a. 输入项可以为一实型常量,如scanf("%f",3.5);
b. 只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");
c. 当输入一个实型数据时,格式控制部分应规定小数点后的位数, 如scanf("%4.2f", &f);
d. 当输入数据时,必须指明变量的地址,如scanf("%f", &f);
(d)
(329) 请阅读以下程序:
main()
{
int a=5, b=0, c=0;
if(a=b+c) printf("***\n ");
e1se printf("$$$\n");
}
以上程序_____。
a. 有语法错不能通过编译 b. 可以通过编译但不能通过连接
c. 输出*** d. 输出$$$
(d)
(330) 根据下面程序(每行程序前面的数字表示行号)正确的是_____。
1 main()
2 {
3 int a[3] = {3*0};
4 int i;
5 for(i=0; i<3; i++) scanf("%d", &a[i]);
6 for(i=1;i++) a[0] = a[0]+a[i];
7 printf("%d\n",a[0]);
8 }
a. 没有错误 b. 第3行有错误
b. 第5行有错误 d. 第7行没有错误
(d)
(331) 下面程序有错的行是_____。
1 main()
2{
3 int a[3]={1};
4 int i;
5 scanf("%d",&a);
6 for(i=1;i<3;i++) a[0]=a[0]+a[i];
7 printf("a[0]=%d\n",a[0]);
8 }
a. 3 b. 6 c. 7 d. 5
(d)
(332) 根据下面程序(每行程序前面的数字表示行号)正确的是_____。
1 main()
2 {
3 float a[10]={0.0};
4 int i;
5 for(i=0;i<3;i++) scanf("%d",&a[1]);
6 for(i=0;i<10;i++) a[0]=a[0]+a[i];
7 printf("%d\n",a[0]);
8 }
a. 没有错误 b. 第3行有错误
c. 第5行有错误 d. 第7行有错误
(d)
(333) 根据下面程序(每行程序前面的数字表示行号)正确的是_____。
1 main()
2 {
3 int a[3]={0};
4 int i;
5 for(i=0; i<3; i++) scanf("%d", &a[i]);
6 for(i=1; i<4; i++) a[0] = a[0]+a[i];
7 printf("%d\n", a[0]);
8 }
a. 没有错误 b. 第3行有错误
c. 第5行有错误 d. 第6行有错误
(d)
(334) 若变量已正确定义,执行语句scanf("%d%d%d ",&k1,&k2,&k3)时,______是正确的输入。
a. 2030,40 b. 20 30 40 c. 20, 30 40 d. 20, 30,40
(b)
(335) 执行语句 printf(" ______", 2); 将得到出错信息。
a. %d b. %o c. %x d. %f
(d)
(336) 若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:
a. 10<回车> b. 10.0,22.0,33.0<回车>
22<回车>
33<回车>
c. 10.0<回车> d. 10 22<回车>
22.0 33.0<回车> 33<回车>
(b)
阅读(806) | 评论(0) | 转发(0) |