C语言复习题

① \\t、\\r、\\f、\\b、\\n转义字符的作用是什么?程序运行后输出的结果格式如何?

② 整型变量a、b、c均有具体的值,在输出结果中却没有,是何原因?若输出它们的值,如何修改程序?

【程序3】 分析下列程序,并上机运行。 #include \int main() {

int i,j,m,n; i=2; j=5; m=++i; n=j++;

printf(\return 0; }

根据编译、连接和运行回答下列问题: ① 程序运行的结果是多少?

② ++i语句和j++语句有何区别?它们的执行过程如何? 【程序4】 分析下列程序,并上机运行。

#include\

int main() {

char c1,c2; c1='a';c2='b';

c1=c1-32;c2=c2-32;

printf(\printf(\return 0; }

根据编译、连接和运行回答下列问题:

① 该程序实现了什么功能?程序输出结果是什么?

② c1-32和c2-32是怎样进行运算的?%d和%c格式符的含义是什么?

【程序5】 用下面的 scanf 函数输入数据,使 i=40,j=78,k=56.89,m=2.3,c1=′R′,c2=′T′。请问在键盘上如何输入?

#include \int main() {

int i,j; float k,m; char c1,c2;

scanf(\scanf(\scanf(\

printf(\return 0; }

根据编译、连接和运行回答下列问题: ① 若某同学直接输入40 78 56.89 2.3 R T(各数据以空格间隔),程序运行的结果如何?分析结果是否符合要求,为什么?

② 写出3个输入语句在键盘输入时的数据格式。

习题4

1.填空题

(1)能表示10

(2)将下列数学式改写成C语言的关系表达式或逻辑表达式(A)_____ __;(B)

____________。

(A)a=b或a5

(3)请写出以下程序的输出结果_______________。 void main() { int a=100; if(a>100)

printf(''%d\\n'',a>100); else

printf(''%d\\n'',a<=100); }

(4)当a=1,b=2,c=3时,以下if语句执行后,a,b,c中的值分别为 ; ; 。 if(a>c) b=a;a=c;c=b;

(5)若从键盘输入58,则以下程序输出的结果是_______________。 int main( ) { int a;

scanf(\

if(a>50) printf(\ if(a>40) printf(\ if(a>30) printf(\ return 0; }

(6)以下程序输出的结果是___________。 int main( )

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

printf(\ return 0; }

(7)以下程序运行后的输出结果是____________。 int main( )

{int x=10,y=20,t=0;

if(x= =y) t=x;x=y;y=t; printf(\ return 0; }

(8) 若有以下程序 int main( )

{ int a=4,b=3,c=5,t=0; if(a

printf(\ return 0 ;

} 执行后输出结果为____________。 2.选择题

(1)设a、b和c都是int型变量,且a=3,b=4,c=5, 则以下的表达式中,值为0的表达式是( A.a&&b B.a<=b C.a||b+c&&b-c D.!((a

int main( )

{ int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a); printf(\return 0;

。 )

}程序运行后的输出结果是( )。

A. 0,0 B. 0,1 C. 1,0 D.1,1

(3)已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2的值是( )。

A. 6 B. 0 C. 2 D. 1

(4)设 int x=1, y=1; 表达式(!x||y--)的值是( )。 A. 0 B. 1 C. 2 D. -1 (5)有如下程序段 int a=14,b=15,x; char c='A';

x=(a&&b)&&(c<'B');

执行该程序段后,x的值为 ( )。

A. true B.false C. 0 D. 1 (6)阅读以下程序: int main() { int x;

scanf(''%d'',&x);

if(x--<5) printf(''%d'',x); else printf(''%d'',x++); return 0; }

程序运行后,如果从键盘上输入5,则输出结果是( A.3 B. 4 C. 5 D. 6 (7)有以下程序 int main( )

{ int a=15,b=21,m=0; switch(a%3)

{ case 0:m++;break; case 1:m++; switch(b%2) { default: m++;

case 0: m++;break; } }

printf(\ return 0;

} 程序运行后的输出结果是( )。 A. 1 B. 2 C. 3 D. 4 (8)以下程序的输出结果是( )。 int main() { int a=0,i;

for(i=1;i<5;i++) {switch(i) {case 0:

case 3: a+=2; case 1:

case 2: a+=3; default: a+=5; } }

printf(\ return 0; }

A. 31 B. 13 C. 10 D. 20

)。

习题5

一、选择题

1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为 的操作,否则,循环将会无限制地进行下去。 A)0 B)1 C)成立 D)2

2.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的 不能丢,它表示do-while语句的结束。

A)0 B)1 C); D),

3.for语句中的表达式可以部分或全部省略,但两个 不可省略。但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。 A)0 B)1 C); D), 4.语句while(!e)中的条件!e等价于 。

A)e= =0 B)e!=1 C)e!=0 D)e= =1 5.程序段如下:

int k=1;

while(!k= =0) {k=k+1;printf(\说法正确的是 。

A)while循环执行两次 B)循环是无限循环 C)循环体语句一次也不执行 D)循环体语句执行一次 6.程序段如下:

int k=-20;

while(k=0) k=k+1;

则以下说法中正确的是 。

A)while循环执行20次 B)循环是无限循环 C)循环体语句一次也不执行 D)循环体语句执行一次 7.在下列程序中,while循环的循环次数是 。

#include int main( ) { int i=0; while(i<10)

{if(i<1) continue; if(i= =5) break; i++; } ...... }

A)1 B)10 C)6 D)死循环、不能确定次数 8.以下程序的输出结果 。

#include int main() {

int x=3; do {

printf(\}while(--x); return 0; }

A)1 B)31 C)1 -2 D)死循环 9.当输入为\时,下列程序的执行结果是 。

#include int main() {

char c;

c=getchar();

while((c=getchar())!='?') putchar(++c); return 0;

}

A)Quert B)vfsu C)quert? D)rvfsu?

10.以下程序的功能是:按顺序读入10名学生的4门课程的成绩,计算出每位学生的平均分并输出,程序如下:

#include int main() {

int n,k;

float score,sum,ave; sum=0.0;

for(n=1;n<=10;n++) {

for(k=1;k<=4;k++) {

scanf(\ave=sum/4.0;

printf(\}

return 0; }

上述程序有一条语句出现在程序的位置不正确。这条语句是 。

A)sum=0.0; B) scanf(\ C) sum+=score; D) ave=sum/4.0; 二、填空题 1.若for循环用以下形式表示:for(表达式1;表达式2;表达式3) 循环体语句; 则执行语句for(i=0;i<3;i++) printf(\时,表达式1执行 次,表达式3执行 次,该语句的运行结果为 。

2.在循环中,continue语句与break语句的区别是:continue语句是 ,break语句是 。 3.设有以下程序:

#include int main() {

int n1,n2;

scanf(\while(n2!=0) {

n1=n2; n2=n2/10;

printf(\}

return 0; }

程序运行后,如果从键盘上输入1298,则输出结果为 。 4.下列程序运行结果是: 。

#include int main( ) { int i,j;

for(i=1;i<=4;i++) {

for(j=1;j<=i;j++)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4