您好,欢迎来到华拓网。
搜索
您的当前位置:首页C语言——顺序结构程序设计练习题

C语言——顺序结构程序设计练习题

来源:华拓网
顺序结构程序设计习题

一、选择题:(以下各题□代表空格。)

1. 以下程序运行的结果是: #include 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 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 int main()

{char ch1=’A’,ch2=’a’; printf”%c\\n”,(ch1,ch2)); return 0; }

则以下叙述正确的是:

A) 程序的输出结果为大写字母A; B) 程序的输出结果为小写字母a; C) 运行时产生错误信息;

D) 格式说明符的个数少于输出项个数,编译出错。

5. 以下程序运行的结果是: #include 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 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 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 y=-43456 y=-43456 y=-0043456 B y=-43456 y=-43456 y=-0043456 y=+□-43456 D y=□□-43456 y=-0043456 y=00043456 C y=□□-43456 9. 以下程序运行的结果是: #include 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 y=2456 y=□□□□2456 y=□□□02456 y=+43456 B y=□□□4630 y=□□□□□□□□4630 y=########4630 D y=4630 y=□□□□4630 y=□□□04630 C

10. 以下程序运行的结果是: #include 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 Y=5ba0 Y=5ba0 Y=0x5ba0 B Y=□□□5ba0 Y=□□□□□□5ba0 Y=□□0x5ba0 D Y=5ba0 Y=□□□□5ba0 Y=####5ba0 C

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 int main() {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 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);

18. 根据下面的程序及数据的输入方式和输出方式,程序中输入语句的正确形式应该为: #include int main()

{ char ch1,ch2,ch3; 输入语句;

printf(“%c%c%c”,ch1,ch2,ch3); return 0; }

输入形式:A□B□C<回车> 输出形式:A□B

A) scanf(“%c%c%c”,&ch1,&ch2,&ch3); B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3); C) scanf(“%c %c %c”,&ch1,&ch2,&ch3); D) scanf(“%c%c”,&ch1,&ch2,&ch3);

19. 有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,

c的值为2,从键盘输入数据的正确形式应当是: 。 A)132<回车> B)1,3,2<回车> C)a=1□b=3□c=2<回车> D)a=1,b=3,c=2<回车>

20. 以下不符合C语法的赋值语句是: 。 A)m=(2+1,m=1); B) m=n=0; C)m=1,n=2 D)n++;

21. 以下能正确定义整型变量a,b,c并为其赋初值5的语句是: 。 A)int a=b=c=5; B) int a,b,c=5; C)a=5,b=5,c=5; D)a=b=c=5;

22. 已知ch是字符型变量,下面不正确的赋值语句是: 。

A)ch=’a+b’; B) ch=’\\0’; C)ch=’7’+’9’; D)ch=5+9;

23. 已知ch是字符型变量,下面正确的赋值语句是:

A)ch=’123’; B)ch=’\\xff’; C)ch=’\\08’; D)ch=”\\”;

24. 若有以下定义,则正确的赋值语句是: 。

int a,b; float x;

A) a=1,b=2, B)b++; C)a=b=5 D)b=int(x);

25. 设x,y均为float型变量,则以下不合法的赋值语句是: 。 A) ++x; B)y=(x%2)/10; C)x*=y+8; D)x=y=0;

26. 设x,y,z为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x,y,z的值分别

为: 。 A X=10 Y=15 Z=10 B X=10 Y=10 Z=10 C X=10 Y=10 Z=15 D X=10 Y=5 Z=10 27. 设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用C语言库函数的赋值语句

是: 。

A) z=exp(y)+fabs(x); B) y=log10(y)+pow(y); C) z=sqrt(y-z);

D) x=(int)(atan2((double)x,y)+exp(y-0.2));

程序分析题:

1、以下程序运行的结果是: 。 #include int main() {short i; i=-4;

printf(“\\ni:dec=%d,oct=%o,hex=%x,usigned=%u\\n”,i,i,i,i); return 0; }

2、以下程序运行的结果是: 。 #include int main()

{printf(“*%f,%4.3f*\\n”,3.14,3.1415); return 0;}

3、以下程序运行的结果是: #include int main() {char c=’x’;

printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\\n”,c,c,c,c); return 0; }

4、已有定义int d=-2;执行以下语句后,输出的结果是 。 printf(“*d(1)=%d,d(2)=%3d,d(3)=%-3d*\\n”,d,d,d); printf(“*d(4)=%o,d(5)=%7o,d(6)=%-7o*\\n”,d,d,d);

5、已有定义int d=-2;执行以下语句后,输出的结果是 。 printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*\\n”,d,d,d); printf(“*d(4)=%o*d(5)=%7o*d(6)=%-7o*\\n”,d,d,d);

6、已有定义float d1=3.5,d2=-3.5;执行以下语句后,输出的结果是 。 printf(“*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\\n”,d1,d1,d1); printf(“*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\\n”,d2,d2,d2);

7、以下程序输出的结果是: 。 #include int main()

{ int x=1,y=2;

printf(“x=%d y=%d * sum *=%d\\n”x,y,x+y); printf(“10 Squared is :%d\\n”,10*10); return 0; }

8、以下程序输出的结果是: 。 #include int main()

{int x=10;float pi=3.1416; printf(“(1)%d\\n”,x); printf(“(2)%6d\\n”,x); printf(“(3)%f\\n”,56.1); printf(“(4)%14f\\n”,pi); printf(“(5)%e\\n”,568.1); printf(“(6)%14e\\n”,pi); printf(“(7)%g\\n”,pi); printf(“(8)%12g\\n”,pi); return 0; }

9、以下程序输出的结果是: 。 #include int main()

{int a=123.456;float b=8765.4567; printf(“(1)%f\\n”,a); printf(“(2)%14.3f\\n”,a); printf(“(3)%6.4f\\n”,a); printf(“(4)%lf\\n”,b);

printf(“(5)%14.3lf\\n”b); printf(“(6)%8.4lf\\n”,b); printf(“(7)%.4f\\n”,b); return 0; }

10、以下printf语句中*号的作用是【1】,输出结果是【2】 #include int main() {int i=1;

printf(“##%*d\\n”,i,i); i++;

printf(“##%*d\\n”,i,i) i++;

printf(“##%*d\\n”,i,i) return 0; }

11、以下printf语句中负号号的作用是【1】,输出结果是【2】 #include int main()

{int x=12;double a=3.1415926; printf(“%6d##\\n”,x); printf(“%-6d##\\n”,x); printf(“%14.10lf##\\n”,a); printf(“%-14.10lf##\\n”,a); return 0; }

12、以下程序运行的结果是: 。 #include int main()

{int a=325;double x=3.1415926; printf(“a=%+06dx=%+e\\n”,a,x); return 0; }

13、以下程序运行的结果是: 。 #include int main() { int a=252;

printf(“a=%o a=%#o\\n”,a,a); printf(“a=%x a=%#x\\n”,a,a); return 0;

}

14、以下程序运行的结果是: 。 #include int main()

{ int n=100;char c; float f=10.0; double x; x=f*=n/=(c=48);

printf(“%d%d%3.1f%3.1f\\n”,n,c,f,x); return 0; }

15、有以下程序: #include int main()

{int k=0;char c1=’a’,c2=’b’; scanf(“%d%c%c”,&k,&c1,&c2); printf(“%d,%c,%c\\n”,k,c1,c2); return 0; }

若运行时从键盘输入:55 A B<回车>,则输出的结果是 。

16、以下程序运行的结果是 。 #include int main() { int m=177;

printf(“%o\\n”,m); return 0; }

17、以下程序运行的结果是 。 #include int main() { int n=0; n+=(n=10);

printf(“%d\\n”,n); return 0; }

18、若要下列程序的输出结果为8.00,则【 】中应填入的是 。 #include int main()

{ int k=2,m=5;

float s,x=1.2,y=[ ]; s=2/3+k*y/x+m/2;

printf(“%4.2f\\n”,s); return 0; }

19、已知字母A的ASCII码值为65,以下程序输出的结果是: 。 #include int main() { char a,b;

a=’A’+’4’-‘3’; b=’A’+’6’-‘2’;

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

20、假设变量a和b均为整型,以下语句可以不借助任何变量把a和b中的值进行交换,请填空:

a+=[ ];b=a-[ ];a-=[ ];

21、假设变量a,b,c均为整型,以下语句借助中间变量t把a,b,c中的值进行交换,即把b中值给a,把c中的值给b,把a中的值给c.例如:交换前,a=10,b=20,c=30,交换后,a=20,b=30,c=10.请填空:

【 】; a=b; b=c; 【 】;

22、设有一输入函数scanf(“%d”,k);它不能使float类型变量k得到正确数值的原因是【1】未指明变量k的地址和【2】格式控制符与变量类型不匹配。

23、已有定义int a;float b,x;char c1,c2;为使a=3、b=6.5、x=12.6、c1=’a’、c2=‘A’,正确的scanf函数调用语句是【 】,数据输入的形式应为【 】。

24、若有以下定义和语句,为使变量c1得到字符‘A’,变量c2得到字符‘B’,正确的输入形式是:【 】 char c1,c2;

scanf(“%4c%4c”,&c1,&c2);

25、执行以下程序时,若从第一列开始输入数据,为使变量

a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,正确的数据输入形式是【 】 #include int main()

{ int a,b;float x,y;char c1,c2; scanf(“a=%d b=%d”,&a,&b);

scanf(“x=%f y=%f”,&x,&y); scanf(“c1=%c c2=%c”,&c1,&c2);

printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c”,a,b,x,y,c1,c2); return 0; }

编程题:

编写程序,从终端键盘输入圆的半径r,圆柱的高h,分别计算出圆的周长cl、圆的面积cs和圆柱的体积cvz。输出计算结果时要求有文字说明,并取小数点后2位数字。

编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。

编写程序,从键盘输入两个整数,分别计算他们的商和余数,输出时,商要求保留两位小数,并对第三位四舍五入。

参考答案:

1-5:ABCBD,6-10:DDCDA,11-15:DAB(B)BD,16-20:BDADC,21-27:AABBBAD 填空:

1、 i:dec=-4,otc=177774,hex=fffc,unsigned=65532 2、 *3.140000,3.142*

3、 c:dec=120,otc=170,hex=78,ASCII=x 4、 *d(1)=-2*d(2)= □-2*d(3)=-2□*

*d(4)=177776*d(5)= □177776*d(6)=177776□* 5、 *d(1)=-2*d(2)= □-2*d(3)=-2□*

*d(4)=fffe*d(5)= □□fffe*d(6)=fffe□□*

6、 *d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=□3.500e+00*

*d(4)=-3.50000e+00*d(5)-3.50000e+00*d(6)=-3.5000e+00□* 7、 x=1 y=2 *sum*=3

10 Squared is :100 8、 1) 10

2) □□□□10 3)56.100000

4) □□□□□□3.141600 5)5.68100e+02

6) □□□3.14160e+00 7)3.1416

8) □□□□□□3.1416 9、 1)123.456.000

2) □□□□□□□123.457 3)123.4560 4)8765.456700

5) □□□□□□8765.457 6)8765.4567 7)8765.4567

10、 1)可以使同一输出语句中的输出宽度得以改变

2)##1 ##2 ##□□3

11、 输出数据左对齐

2)□□□□12## 12□□□□##

□□3.141592600## 3.141592600□□##

12、 a=+00325□□□X=+3.14159e+00 13、 a=374□□a=0374

a=fa□□=0xfc

14、 2 48 20.0 20.0 15、 55, ,A 16、 261

17、 20 18、 3.6

19、 a=66,b=E 20、 1)b 2)b 3)b 21、 1)t=a 2)c=t

22、 1)格式控制符与变量类型不匹配。

scanf语句的正确形式应该是:scanf(“%f”,&k); 2)位指明变量k的地址 23、 1)scanf(“%d%f%f%c%c”,&a,&b,&c1,&c2);

2)3□6.5□12.6Aa<回车> 24、 A□□□B□□□<回车>

25、 a=3□b=7x=8.5□y=71.82c1=A□c2=a<回车>

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo3.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务