顺序结构程序设计习题
一、选择题:(以下各题□代表空格。)
1.以下程序运行的结果是:
#include <stdio.h>
int main()
{int m=5,n=10;
printf(%d,%d\n,m++,--n);
}
A)5,9  B)6,9  C)5,10    D)6,10
2.以下程序运行的结果是:
#include <stdio.h>
int main()
{int a=201,b=012;
printf(%2d,%2d\n,a,b);
return 0
}
A)01,12  B)201,10  C)01,10    D)20,01
3.有定义语句int a,b;若要通过语句scanf(%d,%d,&a,&b);使变量a得到数值6,变量b得到数值5,下面输入形式,错误的是:             
A)6,5<回车>  B)6,□□<回车> 
C)6 5<回车>    D)6,<回车>5<回车>
               
4.设有如下程序:
#include <stdio.h>
int main()
{char ch1=A,ch2=a;
printf%c\n,(ch1,ch2));
return 0;
}
则以下叙述正确的是:   
A)程序的输出结果为大写字母A;
B)程序的输出结果为小写字母a;
C)运行时产生错误信息;
D)格式说明符的个数少于输出项个数,编译出错。
5.以下程序运行的结果是:
#include <stdio.h>
int main()
{int x1=0xabc,x2=oxdef;
x2-=x1;
printf(%X\n,x2);
return 0;
}
A)ABC      B)0XABC      C)0X333      D)333
6.以下程序输出的结果是:       
#include <stdio.h>
int main()
{ printf(\n*s1=%15s*,chinabeijing);
printf(\n*s2=%-5s*,chi);
}
A)*s1=chinabeijing□□□*
  S2=**chi*
B)*s1=chinabeijing□□□*
  *s2=chi□□*
C)*s1=*□□chinabeijing*
  *s2=□□chi*
D)*s1=□□□chinabeijing*
  *s2=chi□□*
7.已有定义int a=-2;和输出语句:printf(%8lx,a);以下正确的描述是:     
A)整形变量的输出格式符只有%d一种;
B)%x是格式符的一种,它可以适应与任何一种类型的数据;
C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度。
8.以下C程序的运行结果是:     
#include <stdio.h>
int main()
{long y=-43456;
printf(y=%-8ld\n”,y);
printf(y=%-08ld\n”,y);
printf(y=%08ld\n”,y);
printf(y=%+8ld\n”,y);
return 0;
}
A
y=□□-43456
y=-□□43456
y=-0043456
y=-43456
B
y=-43456
y=-43456
y=-0043456
y=+□-43456
C
y=-43456
y=-43456
y=-0043456
y=□□-43456
D
y=□□-43456
y=-0043456
y=00043456
y=+43456
9.以下程序运行的结果是:   
#include <stdio.h>
int main()
{int y=2456;
printf(y=%3o\n,y);
printf(y=%8o\n,y);
printf(y=%#8o\n,y);
return 0;
}
A
y=□□□2456
y=□□□□□□□□2456
y=>###2456
B
y=□□□4630
y=□□□□□□□□4630
y=>###4630
C
y=2456
y=□□□□2456
y=□□□02456
D
y=4630
y=□□□□4630
y=□□□04630
10.以下程序运行的结果是:
#include <stdio.h>
int main()
{ long y=23456;
printf(y=%3x\n,y);
printf(y=%8x\n,y);
printf(y=%#8x\n,y);
return 0;
}
A
Y=5ba0
Y=□□□□5ba0
Y=□□0x5ba0
B
Y=□□□5ba0
Y=□□□□□□5ba0
Y=□□0x5ba0
C
Y=5ba0
Y=5ba0
Y=0x5ba0
D
Y=5ba0
Y=□□□□5ba0
Y=####5ba0
11.若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:   
A)scanf(%d%lx,%d,&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);
12.如有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10、20、A、B,当从第一列开始输入数据时,正确的数据输入方式为:             
int a1,a2;char c1,c2;
scanf(“%d%c%d%c,&a1,&c1,&a2,&c2);
A)10A□20B<回车>      B)10□A□20□B<回车>
B)10A□20B<回车>      D) 10A20□B<回车>
13.已有定义int x;float y;且执行scanf(%3d%f,&x,&y);语句,若从第一列开始输入数据12345□678<回车>,则x的值为(【1】  )y的值为(【2】    )
【1】:A) 12345    B)123      C)45    D)345
【2】:A)无定值    B)45.000000  C)678.000000    D)123.000000
14.根据以下定义语句和数据的输入方式,scanf语句的正确形式应为:     
已有定义:float f1,f2;
数据的输入方式:4.52<回车>
                3.5<回车>
A)scanf(%f,%f,&f1,&f2);
B) scanf(%f%f,&f1,&f2);
C) scanf(%3.2f %2.1f,&f1,&f2);
D) scanf(%3.2f%2.1f,&f1,&f2);
15.阅读下列程序,当输入数据的形式为25,13,10<回车>,程序的输出结果为:   
#include <stdio.h>
int main()
程序设计c语言{int x,y,z;
scanf(%d%d%d,&x,&y,&z);
printf(x+y+z=%d\n,x+y+z);
return 0;
}
A)x+y+z=48    B) x+y+z=35
C) x+z=35      D)不确定值
16.设有以下程序:
#include <stdio.h>
int main()
{char c1,c2,c3,c4,c5,c6;
scanf(%c%c%c%c,&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);
puchar(c2);
printf(%c%c\n,c5,c6);
return 0;
}
若运行时从键盘输入数据:
abc<回车>
defg<回车>则输出的结果是:         
A)abcd        B)abde          C)abef        D)abfg
17.以下针对scanf函数的叙述中,正确的是:       
A)输入项可以为一实型常量,如scanf(“%f”,3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanf(a=%d,b=%d”);
C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(%4.2f,&f);
D)当输入数据时,必须指明变量的地址,如scanf(%f,&f);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。