二级C语言复习题 下载本文

1.若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是 0 。 2.以下4个选项中,不能被看作是一条语句的是( c ) 。 A) {;} B) a=0,b=0,c=0; C) if (a>0); D) if (b==0)m=1;n=2;

下列程序执行后的输出结果是 h 。

#include void main() {

int x= 'f';

printf(\}

若变量c为char类型,能正确判断出c为大写字母的表达式是 b 。 A) 'A'<=c<= 'Z' B) (c>= 'A')||(c<= 'Z') C) ('A'<=c) and ('Z'>=c) D) (c>= 'A')&&(c<= 'Z') 有以下程序

#include void main() {

char c1='1',c2='2';

c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); }

当运行时输入:a<回车> 后,以下叙述正确的是_b_____。 A)变量c1被赋予字符a,c2被赋予回车符 B)程序将等待用户输入第2个字符

C)变量c1被赋予字符a,c2中仍是原有字符2 D)变量c1被赋予字符a,c2中将无确定值 有以下程序

void main( ) {

int a,b,d=25; a=d/10%9; b=a&&(-1);

printf(\}

程序运行后的输出结果是__0,1____。

已定义c为字符型变量,则下列语句中正确的是 c

A)c=‘98’; B)c=\C)c=98; D) c=\以下的程序:其输出结果是多少?

#include void main() {

char x=040;

printf(\

}

在下列符号中,不属于转义字符的是 c 。

(A)\\ (B)\\x12 (C)\\013 (D)\\05 有以下程序

#include void main( )

{ int x=102,y=012;

printf(“-,-\\n”,x,y); }

执行后输出结果是 b 。

(A)10,01 (B)02,12 (C)102,10 (D)02,10 以下选项中可以作为C语言中合法整数的是 b 。

(A)10110B (B)0386 (C)0Xffa (D)x2a2 sizeof(float)是(b )。

A)一个双精度型表达式 B)一个整型表达式 C)一种函数调用 D)一个不合法的表达式

执行语句scanf (“%c%c%c”,&c1,&c2,&c3),输入abc时,变量c1、c2、c3的值分别为 a 。

A)'a', 'b', 'c' B)'a','b', '' C)'a', '', 'b' D)'a','','c' 下列描述中,正确的一条是 b 。

A)C语言的整型变量可以分为int 、short、long、unsigned int、unsigned short、unsigned long等几种类型,因此整型常量也可以分为这几种类型

B)C语言的字符数据与整型数据可以互相赋值 C)若对字符型变量的定义为:“char c;”可使用语句c=“a”对变量c赋值 D)已知x为float型,执行语句(int)x后,x为int型 若有语句scanf(”%d %c%f”,&a,&b,&c),假设输入序列为2223a123o.12,a、b、c的值为 b 。

A)无值 B)2223,a,123o.12 C)2223,a,无 D)2223,a,123

在C语言中不合法的整数是 a 。

A)20 B)0x4001 C)08 D)0x12ed 已知x=3、y=2,则表达式 x*=y+8的值为 c 。

A)3 B)2 C)30 D)10

若输入字符串:abcde<回车>,则以下while循环体将执行 c 次。

While ((ch=getchar ( ))= = ' e ')printf(\A)4 B)5 C)0 D)任意 以下程序的输出结果是 。

#include void main( ) {

int a=-1,b=1,k;

if((++a<0)&&!(b--<=0)) printf(\

else printf(\

若变量已正确定义,要求程序段写成5!的计算,不能完成此操作的程序段是( )。

A)for(i=1,p=1;i<=5;i++) p*=i; B)for(i=1;i<=5;i++){p=1;p*=i;}

C)i=1;p=1;while(i<=5){p*=i;i++;} D)i=1;p=1;do{p*=i;i++;}while(i<=5);

定义:int x=7,y=8,z=9;后,则下面表达式为0的是 。

A)' x ' && ' y ' B)x<=y

C)x||y+z&&y-z D)!((x

#include void main() {

int i=1,j=1,k=2;

if((j++||k++)&&i++) printf(\}

执行后输出结果是 。

A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 以下程序的输出结果是 。

#include void main() {

int n=4;

while(n--) printf(\}

有以下程序

#include void main() {

int a=3,b=4,c=5,d=2; if(a>b) if(b>c)

printf(\ else

printf(\ printf(\}

程序运行后的输出结果是 。 以下叙述正确的是_______。

A)do-while语句构成的循环不能用其它语句构成的循环代替 B)do-while语句构成的循环只能用break语句退出

C)用do-while语句构成的循环,在while后的表达式为非0时结束循环 D)用do-while语句构成的循环,在while后的表达式为0时结束循环 以下程序执行后,输出结果是_______。

#include void main() {

int n=0; while(n<=2) {

n++;

printf(\ } }

以下选项中不正确的实型常量是( ) A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2

若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b .以下程序的输出结果是 。 short i=65535; printf (“%d\\n”,i);

2.有变量说明int a=3;,则表达式a<1&&--a>1的运算结果和a的值应该是(

3.以下程序的输出为( ) 。 #include void main( ) {

double x=213.82631; printf(\}

若有程序段如下: a=b=c=0;x=35; if(!a)x--;

else if(b);if(c)x=3; else x=4;

执行后,变量x的值是( )

A.34 B.4 C.35 D.3 3.有程序段: int a;

for (scanf (“%d”,&a);!a;) printf (“continue”);

则for语句中的!a等价于( )。

(A)a!=0 (B)a= =0 (C)a>0 (D)a=0

) 若x是int型变量,以下程序的输出结果是 。 for (x=3;x<6;x++)

printf ((x%2)?(“**%d”):( “##%d\\n”),x); printf (“\\n”);

A.* * 3 B.# # 3 C.# # 3 D.* * 3 # # 4

# # 4 * * 4 * * 4# # 5 * * 5 * * 5 # # 5

5、 下面程序的输出结果是 。 #include void main( ) { int i,j,m=0,n=0; for (i=0;i<2;i++) for (j=0;j<2;j++) if (j>=i)m=1; n++; printf(\}

若有int x=3;,执行程序段: do {

printf(\}while(!(--x));

输出的结果是( )

A.1 3 B.1 -1 C.1 -2 D.1 -3 若有int x=3;,执行程序段: do {

printf(\}while(!(--x));

输出的结果是( )

A.1 3 B.1 -1 C.1 -2 D.1 -3 若有int x,y;,执行程序段: for(x=1,y=1;y<50;y++) {

if (x>=10) break; if(x%2==1) {

x+=5; continue; } x-=3; }