第3部分 顺序结构

更新时间:2024-04-24 04:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第3部分 顺序结构

一、选择题

1、当运行以下程序: void main()

{ int a; float b,c;

scanf(“-?O”,&a,&b,&c); printf(“\\na=%d,b=%f,c=%f\\n”,a,b,c); }

在键盘上从第一列开始输入9876543210(此处代表Enter键),则程序的输出结果是( C )。

A.a=98,b=765,c=4321 B.a=10,b=432,c=8765

C.a=98,b=765.000000,c=4321.000000 D.a=98,b=765.0,c=4321 2、若有以下程序段: void main()

{ int a=2,b=5;

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

其输出结果是( D )。

A.a=%2,b=%5 B.a=2,b=5 C.a=%%d,b=%%d D.a=%d,b=%d 3、若short int类型占两个字节,则以下程序段: short int a=-1;

printf(“%d,%u\\n”, a,a); 其输出是( D )。

A.-1,-1 B.-1,32767 C.-1,32768 D.-1,65535 4、以下程序段: int x=496;

printf(“*%-06d*\\n”,x); 其输出是( A )。

A.*496 * B.* 496*

C.*000496* D.输出格式符不合法 5、以下程序段: float a=3.1415;

printf(“|%6.0f|\\n”,a); 其输出是( C )。

A.|3.1415| B.| 3.0| C.| 3| D.| 3.|

6、printf(“|.5f|\\n”,12345.678); 语句的输出是( C )。 A.|2345.67800| B.|12345.6780| C.|12345.67800| D.|12345.678|

- 1 -

第3部分 顺序结构

7、以下程序段: float a=57.666;

printf(“*010.2f*\\n”,a); 其输出是( C )。

A.*0000057.66* B.* 57.66* C.*0000057.67* D.* 57.67*

8、若变量c定义为float类型,当从终端输入283.1900(代表回车键),能给变量c赋以283.19的输入语句是( D )。

A.scanf(“%f”,c); B.scanf(“%8.4f”,&c); C.scanf(“%6.2f”,&c); D.scanf(“?”,&c); 9、若变量已正确说明,要求用scanf(“a=%f,b=%f”,&a,&b); 语句给a赋予3.12、给b赋予9.0,则正确的输入形式是(□代表空格,代表Enter键)( C )。 A.3.12□□9.0 B.a=□□3.12b=□□□9 C.a=3.12, b=9 D.a=3.12□□, b=9.0□□ 10、以下程序: #include #include void main()

{ double a=-3.0,b=2;

printf(“%3.0f%3.0f\\n”, pow(b,fabs(a)),pow(fabs(a),b)); }

其输出结果是( B )。

A.9 8 B.8 9 C.6 6 D.以上三个都不对 11、下面程序的输出结果是( C )。 void main()

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

k=(++a<=0)&&!(b--<=0); printf(“%d %d %d\\n”,k,a,b); }

A.1 0 4 B.0 0 4 C.1 0 3 D.0 0 3 12、下面程序的输出结果是( A )。 void main() { int x;

x=-3+4*5-6; printf(“%d”,x); x=3+4%5-6; printf(“%d”,x); x=-3*4%6/5; printf(“%d”,x); x=(7+6)%5/2; printf(“%d”,x); }

A.11 1 0 1 B.11 -3 2 1 C.12 -3 2 1 D.11 1 2 1

13、根据题目中已给出的数据输入和输出形式,程序中输入输出语句的正确内容是( B )。 void main()

{ int a; float x;

- 2 -

第3部分 顺序结构

printf(“input a,x: “); 输入语句 输出语句

}

输入形式:input a,x: 3 2.1 输出形式:a+x=5.10

A.scanf(“%d,%f”,&a,&x); B.scanf(“%d%f”,&a,&x);

printf(“\\na+x=%4.2f”,a+x); printf(“\\na+x=%4.2f”,a+x); C.scanf(“%d%f”,&a,&x); D.scanf(“%d%3.1f”,&a,&x);

printf(“\\na+x=%6.1f”,a+x); printf(“\\na+x=%4.2f”,a+x); 14、下面程序的结果为( A )。 void main() { int x,y,z;

x=y=1; z=x++-1;

printf(“%d,%d\\t”,x,z); z+=-x+++(++y); printf(“%d,%d”,x,z); }

A.2,0 3,0 B.2,1 3,0 C.2,0 2,1 D.2,1 0,1 15、以下C程序,正确的运行结果是( C )。(注□表示空格) void main()

{ long y=-34567;

printf(“y=%-8ld\\n”,y); printf(“y=%-08ld\\n”,y); printf(“y=ld\\n”,y); printf(“y=%+8ld\\n”,y); }

A.y=□□-34567 B.y=-34567

y=-□□34567 y=-34567 y=-0034567 y=-0034567 y=-34567 y=-□34567 C.y=-34567 D.y=□□-34567

y=-34567 y=-0034567 y=-34567 y=-34567 y=-0034567 y=00034567 y=□□-34567 y=-34567

16、在scanf函数的格式控制中,格式说明的类型与输入项的类型应该一一对应匹配,如果类型不匹配,系统将( B )。 A.不予接收

B.并不给出出错信息,但不可能得到正确数据 C.能接收到正确输入

D.给出出错信息,不予接收输入

17、以下程序的输出结果是( B )。

- 3 -

第3部分 顺序结构

void main()

{ char c1=’6’,c2=’0’;

printf(“%c,%c,%d,%d\\n”,c1,c2,c1-c2,c1+c2); }

A.因输出格式不合法,输出出错信息 B.6,0,6,102 C.6,0,7,6 D.6,0,5,7

18、C语言中调用printf函数进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。如果格式说明的个数小于输出项的个数,多余的输出项将( A );如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。 A.不予输出 B.输出空格 C.照样输出 D.输出不定值或0 19、以下程序的输出结果是( D )。 void main()

{ int x=10,y=10;

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

A.10 10 B.9 9 C.9 10 D.10 9 20、下列说法正确的是( D )。

A.输入项可以是一个实型常量,如scanf(“%f”,4.8);

B.只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);

C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%5.3f”,&f); D.当输入数据时,必须指明变量的地址,如scanf(“%f”,&f); 21、若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是( C )。 A.a=b=c=100; B.d++;

C.c+b; D.d=(c=22)-(b++); 22、选项中不是C语句的是( C )。

A.{ int i; i++; printf(“%d\\n”,i); } B.; C.a=5,c=10 D.{ ; } 23、合法的C语言赋值语句是( B )。 A.a=b=58 B.k=int(a+b); C.a=58,b=58 D.--i 24、下面的程序: void main()

{ int x=10,y=3;

printf(“%d\\n”,y=x/y); }

其输出结果是( C )。

A.0 B.1 C.3 D.不确定的值

25、若变量已正确说明为int类型,要从键盘给a、b、c输入数据,正确的输入语句是( D )。

A.read(a,b,c); B.scanf(“%d%d%d”,a,b,c);

C.scanf(“%D%D%D”,&a,&b,&c); D.scanf(“%d%d%d”,&a,&b,&c);

26、若变量已正确说明为float类型,要通过输入语句:scanf(“%f%f%f”,&a,&b,&c); 给a赋予10.0、b赋予22.0、c赋予33.0,以下不正确的输入形式是( B )。 A.10 B.10.0,22.0,33.0

- 4 -

第3部分 顺序结构

22 33

C.10.0 D.10 22

22.0 33.0 33

27、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的语句组是( C )。

A.a=a+b,b=a-b,a=a-b B.t=a,a=b,b=t; C.a=t;t=b;b=a; D.t=b;b=a;a=t; 28、若变量已正确定义,以下程序段: x=5.16894;

printf(“%f\\n”,(int)(x*1000+0.5)/(float)1000); 的输出结果是( D )。

A.输出格式说明与输出项不匹配,输出无定值 B.5.170000 C.5.168000 D.5.169000

29、若有以下程序段: int c1=1,c2=2,c3; c3=c1/c2;

c3中的值是( A )。

A.0 B.1/2 C.0.5 D.1 30、若有以下程序段: int a=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

printf(“%d,%d,%d\\n”,a,b,c); 其输出结果是( B )。

A.3,0,-10 B.0,0,5 C.-10,3,-10 D.3,0,3 31、按以下由if和goto所构成的循环程序段改写成for语句循环程序段是( B int i=1,s=0;

begin: if(i<=10) { s+=i; i++; goto begin; } printf(“s=M\\n”,s);

A.i=1;s=0; B.int i=1;s=0;

for(i=1;i<=10;i++) s+=i; for(i=1;i<=10;i++) s+=i; printf(“s=M\\n”,s); printf(“s=M\\n”,s); C.int i=1;s=1; D.i=1;s=1;

for(i=1;i<=10;i++) s+=i; for(i=1;i<=10;i++) s+=i; printf(“s=M\\n”,s); printf(“s=M\\n”,s);

二、填空题

1、以下程序段: int x=0177;

printf(“x==,x=m,x=%6o,x=%6x,x=%6u\\n”,x,x,x,x,x);

其输出结果是 x=127,x=□□□127,x=□□□177,x=□□□□7f,x=□□□127 。 2、以下程序段:

- 5 -

。 )

第3部分 顺序结构

int x=0177;

printf(“x=%-3d,x=%-6d,x=$%-06d,x=$d,x=%d\\n”,x,x,x,x,x);

其输出结果是 x=127,x=127□□□,x=$127□□□,x=$000127,x=d 。 3、以下程序段: double a=513.789215;

printf(“a=%8.6f,a=%8.2f,a=.8f,a=.8lf\\n”,a,a,a,a);

其输出结果是 a=513.789215,a=□□513.79,a=□□513.78921500,a=□□513.78921500 。 4、对不同类型的数据有不同的格式字符,例如: %d 格式字符是用来输出十进制整数, %c 格式字符是用来输出一个字符, %s 格式字符是用来输出一个字符串。 5、符号“&”是 取地址 运算符,&a是指 a在内存中的地址 。 6、putchar函数的作用是 向终端输出一个字符 。 7、阅读程序: void main()

{ char str1[]=”people and computer”,str2[10];

scanf(“%s”,str2); printf(“%s”,str2); printf(“%s\\n”,str1); }

运行上面的程序,输入字符串PEOPLE AND COMPUTER,则程序的输出结果是: PEOPLEpeople and computer 。 8、“%-ms”表示如果串长 小于 m,则在m列范围内,字符串向 左 靠, 右 补空格。 9、若有以下定义,请写出以下程序段输出语句执行后的输出结果 (1)-200,2500 (2)i=-200,j=2500 (3)i=-200 。 int i=-200,j=2500;

printf(“(1)%d,%d\\n”,i,j); printf(“(2)i=%d,j=%d\\n”,i,j); printf(“(3)i=%d\\nj=%d\\n”,i,j);

10、变量i、j、k已定义为int类型并有初值0,用以下语句进行输入

scanf(“%d”,&i); scanf(“%d”,&j); scanf(“%d”,&k); 当执行以上输入语句,从键盘输入:12.3

则变量i、j、k的值分别是 12 、 0 、 0 。

11、复合语句在语法上被认为是 一条语句 。空语句的形式是 ; 。 12、以下程序段: int k; float a; double x;

scanf(“%d%f%lf”,&k,&a,&x); printf(“k=%d,a=%f,x=%f\\n”,k,a,x);

要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.82,给x输入1.89234时的三种可能的输入形式:

(1)100 25.82 1.89234 (2)100<回车符> 25.82<回车符> 1.89234<回车符>

(3)100<制表符>25.82<制表符>1.89234

- 6 -

第3部分 顺序结构

三、编程题

1、编写程序,读入3个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。 答案:编程如下: #include void main()

{ double a,b,c,ave;

printf(“Enter a,b,c: “);

scanf(“%lf%lf%lf”,&a,&b,&c); ave=(a+b+c)/3;

printf(“ave=%f\\n”,ave);

ave=(int)((ave+0.05)*10)/10.0;

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

2、编写程序,读入3个整数给a、b、c,然后把a中原来的值给b,把b中原来的值给c,把c中原来的值给a。 【程序】

#include void main() { int a,b,c,t;

printf(“Enter a,b,c:\\n”);

scanf(“%d%d%d”,&a,&b,&c);

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

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

- 7 -

本文来源:https://www.bwwdw.com/article/afrp.html

Top