顺序结构程序设计练习题 下载本文

C语言练习题总汇

一、 单选题:

【顺序结构程序设计】

1.己知int k,m=1;执行语句k=-m++;后k的值是( A )。(提示:负号与自加运算符同级,结合方向从右向左) A)-1 B) 0 C)1 D)2

2.若有定义int x=4;则执行语句 x + = x * = x + 1;后,x的值为( C )。 A)5 B)20 C)40 D)无答案

3.若有定义:float a=3.0,b=4.0,c=5.0;则表达式 1/2*(a+b+c)的值为( C )。 A)6.0 B)6 C)0.0 D)无答案 4.以下程序段的输出结果是( C )。(提示:a当约束过严时,约束失效。按自由格式输出。 ) int a=1234;

printf(\

A)12 B)34 C)1234 D)提示出错,无结果 5.下列程序段的输出结果是(C)。 int a=1234;

float b=123.456;

double c=12345.54321;

printf(\,%3.2f,%4.1f\,a,b,c);

A)无输出 B)12, 123.46, 12345.5 C)1234,123.46,12345.5 D)1234,123.45, 1234.5 6.设x, y均为整型变量,且x=8, y=5,则以下语句的输出结果是(D)。 printf(\,%d\\n\,x--,++y);

A)8,5 B)7,5 C) 7,6 D) 8,6 7.以下程序的输出结果是( A )。 int main()

{ int a=20,b=10;

printf(\%d\\n\,a+b,a-b); }

A) 30,%d B)30,10 C)30, D)以上答案均不正确 (%%d中第一个%后面的表示字符) 8.下列程序的运行结果是(A)。 int main() { float x=2.5; int y;

y=(int)x;

printf(\,y=%d\,x,y); }

A) x=2.500000,y=2 B)x=2.5,y=2 C)x=2,y=2 D) x=2.500000,y=2.000000 9.以下程序的输出结果是(A)。 int main() { char c=‘z’;

printf(\,c-25);}

A)a B)z C)z-25 D)y (字母共有26个,而z是最后一个) 10.下面程序的输出结果是(C)。 int main( )

{ double d=3.2 ;

int x=1.2, y ; y=(x+3.8)/5.0 ;

printf(\;}

A) 3 B) 3.2 C)0 D) 3.07

11.下面程序的输出结果是( C )。(提示:输出时无定界符) int main()

{ int k=17;

printf(\,%o,%x\\n\,k,k,k);}

A)17,17,17 B)17,021,0x11 C)17,21,11 D)17,0x11,021 12.下列程序执行后的输出结果是(C)。 int main()

{ char x =OxFFFF;

printf(\,x--);}

A)-32767 B)FFFE C)-1 D)=-32768

13.printf(\;的输出结果是(C)。 A)a\\bre\\'hi\\'y\\\\\\bou B)a\\bre\\'hi\\'y\\bou C)re'hi'you D)abre'hi'y\\bou

14.有定义语句:int x,y;若要通过scanf(\语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中错误的是(A)。

A)11<空格>12<回车> B)11,<空格>12<回车> C)11,12<回车> D)11,<回车>12<回车> 15.有以下程序段: int m=0,n=0; char c=‘a';

scanf(\printf(\

若从键盘上输入:10A10 <回车>,则输出结果是(A)。 A)10,A,10 B)16,a,10 C)10,a,0 D)10,A,0

16.若变量已正确说明为int类型,要通过语句scanf(\给a赋值1,b赋值2,c赋值3,不

正确的输入形式是(B)。

A) 1<空格>2<空格>3<回车> B)1,2,3<回车> C)1<回车>2<空格>3<回车> D)1<空格>2<回车>3<回车> 17.a, b,c被定义为int型变量,若从键盘给a, b,c输入数据,正确的输入语句是(D)

A)input a,b,c; B)read(\18.已知a,b,c为int型变量,若从键盘输入:1,2,3<回车>,使a的值为1,b的值为2,c的值为3,以下选项中正

确的输入语句是(B)。

A)scanf(\,a,b,c); B)scanf(\

C)scanf(\19.执行下程序时输入:123<空格>456<空格>789<回车>,输出结果是( D )。 int main() {char s; int c,i;

scanf(\,&c); scanf(\,&i); scanf(\,&s);

printf(\,%d,%c\\n\,c,i,s);}

A)123,456,789 B)1,456,789 C)1,23,456,789 D) 1,23, 20.已定义c为字符型变量,则下列语句中正确的是( C )。

A)c='97 ' B)c=“97 “ C)c=97 D)c=“a”

21.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。 #include void main() {

int r; float s;

scanf(\

s=p*r*r;

printf(\}

出错的原因是( )。 A)注释语句书写位置错误

B)存放圆半径的变量r不应该定义为整型 C)输出语句中格式描述符非法

D)计算圆面积的赋值语句中使用了非法变量 答案:D

22.有以下程序

#include void main( ) {

int m=12,n=34;

printf(\ printf(\}

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

A)12353514 B)12353513 C)12343514 D)12343513 答案:A

23.数字字符0的ASCII值为48,若有以下程序 #include void main( ) {

char a='1',b='2'; printf(\ printf(\}

程序运行后的输出结果是______。

A)3,2 B)50,2 C)2,2 D)2,50 答案:C

24.有以下程序

#include void main( ) {

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

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

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

C)变量c1被赋予字符a,c2中仍是原有字符2 D)变量c1被赋予字符a,c2中将无确定值 答案:A 25.

【选择结构程序设计】

1.有变量说明语句int a,b ,c;,顺序执行下面语句: a=b=c=1;

++a||++b&&++c;

那么,变量b的值应是( B ) A.2 B.1 C.0 D.3

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

3.设int a=3,b=4,c=5;,下列表达式的值不为1的是( A )。 A)a+b>c&&b==c B)a||b+c&&b-c C)!(a>b)&&!c||1 D)!(a+b)+c-1&&b+c/2 4.#include int main( ) {

int a,b,c;

a=10;b=50;c=30;

if(a>b) a=b;b=c;c=a;

printf(“a=%d,b=%d,c=%d\\n”,a,b,c); }

程序的输出结果是( C )。

A.a=10, b=50, c=10 B. a=10, b=50, c=30 C.a=10, b=30, c=10 D. a=50, b=30, c=50

5.若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a

6.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是( C )。

A)abs(x-y)<10 B)x-y>-10&&x-y<10 C)!(x-y)<-10||!(y-x)>10 D)(x-y)*(x-y)<100

7.若有定义:int a=7;f1oat x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( A )。 A) 2.5 B) 2.7 C) 3.5 D) 4.7 8.若有定义和语句: int s,p;

s=p=5; p=s++,++p,p+2,p++; 则执行语句后 p的值是( C ) A)9 B)8 C)7 D)6

9.若有定义:int a,b;则表达式 a=4,b=3,a+b+2,a++,a+b+2的值为( C )。 A) 12 B)11 C)10 D)无答案

10.己知int k=10 , m=3,n;则下列语句的输出结果是( B )。 printf(\,n=(k%m,k/m)); A) 2 B)3 C)4 D)5

11.设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是( )。 A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 答案:D

12.设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=ik)&&(c=i,j,k)后,c值是( )。 A)0 B)1 C)2 D)3 答案:D

13.若x、a、b、c均 为int型变量,则执行表达式x= (a = 4, b = 8, c = 12)后,x的值为_______。 A)4 B)8 C)12 D)24 答案:C

14.以下程序的输出结果是_______。 #include void main()