8.输入两个小写字母分别赋值给字符变量ch1与ch2,将它们转换成大写字母,并交换ch1与ch2的值,最后输出ch1与ch2的值。
#include
void main()
{ char c1, c2, t;
printf(\请输入两个半角的小写英文字母:\ c1=getchar(); c2=getchar();
c1 -= 32;
c2 -= 'a'-'A'; /*与32等价*/ t = c1; c1 = c2; c2 = t;
printf(\ }
运行结果:
请输入两个半角的小写英文字母:db
BD
9.输入秒数,将它转换,用小时、分钟、秒来表示。例如输入7278秒,则输出:2小时1分18秒。
#include
void main()
{ int k;
int hour, minute, second; printf(\请输入秒数:\ scanf(\ hour = k/3600; k %= 3600; minute = k/60;
second = k`;
printf(\小时%d分钟%d秒。\\n\ }
运行结果:
请输入秒数: 7278
2小时1分钟18秒。
10.输入两个复数的实部和虚部,输出这两个复数积的实部和虚部。两复数的积按下面的公式计算:(a+bi)·(c+di)=(ac-bd)+(ad+bc)i。
#include
void main()
{ float a, b, c, d, real, imag;
printf(\请输入第一个数的实部和虚部:\ scanf(\
printf(\请输入第二个数的实部和虚部:\ scanf(\ real = a*c-b*d; imag = a*d+b*c;
printf(\两个复数积的实部和虚部分别是%f, %f\\n\ }
运行结果:
请输入第一个数的实部和虚部:1.1 2.2 请输入第二个数的实部和虚部:3.3 4.4 两个复数积的实部和虚部分别是-6.050000, 12.100000
第三章 C程序的基本控制结构
一.单选题
1.若变量已经正确定义为float型,要通过语句scanf(“%f %f %f ”, &a,&b,&c)。
给a输入10.0,n输入20.0,c输入30.0,下列不正确的输入形式是( B )。A) 10<回车>20<回车>30<回车> B) 10.0,20.0,30.0<回车> C) 10.0<回车>20.0 30.0<回车> D) 10 20<回车>30<回车> 2.若有说明语句:char c=?65?; 则变量c( D )。
A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,c的值不确定 3.若w=1,x=2,y=3,z=4,则条件表达式w A)1 B)2 C)3 D)4 4.x、y、z被定义为int型变量,若从键盘给它们输入数据,正确的输入语句是( B A) input x,y,z; B) scanf(“%d%d%d”, &x,&y,&z); C) scanf(“%d%d%d”, x,y,z); D) read(“%d%d%d”, &x,&y,&z); 5.有以下程序。 #include char a1=?A?, a2=?a?; printf(“%c\\n”, (a1, a2)); } 以下叙述中正确的是( B )。 A) 程序输出大写字母A B) 程序输出小写字母a 。 ) C) 格式说明符不足,编译出错 D) 程序运行时产生出错信息 6.以下程序的输出结果是( A )。 #include int a=2,b=3,c=0,d; d=!a&&!b||!c; printf(“%d\\n”,d); } A)1 B)0 C)非0的数 D)-1 7.以下程序的输出结果是( B )。 #include int a=6,b=5; printf(“%d\\n”,--a+b,--b+a); } A) 8 B)9 C)10 D)11 8.下面程序输出的结果是( D )。 #include {int a=55,b=50,c=60,d; d=a>20?b:c; switch(d) {case 40: printf(“%d,”,a ); case 50: printf(“%d,”,b ); case 60: printf(“%d,”,c ); default: printf(“$\\n” );}} A)50,60 B)50,$ C)60,$ #include D)50,60,$ 9.如果从键盘输入数据666,下面程序输出的结果是( C )。 A)666 B)666666 C)666666666 D)以上都不对 10.有如下程序。 #include void main( ) { int a=5,b=6,c=1; switch (c) { case 0:b++; case 1:a++; case 2:a++;b++; } printf (“a=%d,b=%d\\n”,a,b); } 该程序的输出结果是( C ) A)a=5,b=6 B)a=6,b=7 C)a=7,b=7 D)a=7,b=8 11、下面的程序中: int i=9; while(i=0) i=i-1; 则下列描述正确的是( C ) A)while循环执行9次 C)循环体语句一次也不执行 B)循环体语句执行一次 D)循环是无限循环 (注意:i=0是赋值语句,不是对i中值和0进行比较,因此程序执行后i的值是0而不是9) 12、下面的程序中: int i=-1; do {i=i*i;} while(!i); 则下列描述正确的是( B ) A)循环体一次也不执行 B)循环体执行一次 C)循环体执行两次 D)是无限循环 13、下面的程序中: int i=0; while(i=1) {…} 则下列描述正确的是( C ) A)循环控制表达式不合法 B)循环控制表达式为0 C)循环控制表达式为1 D)以上都不对 14、下面的程序中: int x=0,total=0; while(!x!=0) total+=++x; printf(“%d”, total); 则下列描述正确的是( D ) A)程序段的控制表达式是非法 B)程序段是无限循环 C)运行程序段后输出0 D)运行程序段后输出1 A) B) i=1; i=1; x=1; while (i﹤=6) { x=x*i; i++;} x=1; do {x=x*i; 15、若变量已正确定义,要求以下程序段完成6!的运算,不能完成的程序段是( D )。 i++; } while (i﹤=6); C) D) for (x=1,i=1;i﹤=6;i++) for (i=1;i﹤=6;i++) x=x*i; { x=1; x=x*i;} 16、设n为整型变量,则for(n=10 ;n>=0 ;n--)循环次数为( C ) A)9 B)10 C)11 D)12 17、对表达式for(表达式1; ; 表达式3)可以理解为( B ) A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3) 18、下面的程序运行结果是( B ) #include while(--x); printf(\ } A)-1 B)0 C)1 D)8 二.填空题 1.下面程序的输出结果是16.00,请填空。 #include float x= 6.6 , y=1.1, z; z=a/2+b*x/y+1/2; printf(“%5.2f \\n”, z); } 2.下面程序输出的结果是 Z 。