C语言程序设计基础教程 - 习题答案(2)

2019-01-07 19:26

3.2.3 执行scanf (“a=%d,b=%d”,&a,&b) 语句, 若要使变量a和b的值分别为3和4, 则

正确的输入方法为( C )。

A) 3 ,4 B) a:3 b: 4 C) a=3,b=4 D) 3 4

3.2.4 设b=1234 , 执行printf(“%%d@%d”,b) 语句,输出结果为: ( D )。

A) 1234 B) 34 C) %%d@1234 D) %d@1234 3.2.5 若x是int型变量,y是float型变量,所用scanf语句为 scanf(“x=%d,y=%f”,&x,&y);

正确的输入操作是( A )。

A) x=10,y=66.6<回车> B) 10 66.6<回车>

C) 10<回车>66.6<回车> D) x=10<回车>y=66.6<回车> 3.2.6 设a,b均是int型变量,则以下不正确的函数调用为( D )。

A) getchar(); B) putchar(?\\108?); C) scanf(“%d,-”,&a,&b); D) putchar(?\\?); 3.2.7 下列程序的执行结果是( C )。

# include void main( ) { int a=5;

float x=3.14; a*=x*(?E?-?A?);

printf (“%f\\n”,(float)a); }

A) 62.800000 B) 62 C) 62.000000 D) 63.000000 3.2.8 若输入2.50 ,下列程序的执行结果是( A )。

void main( ) { float r , area ;

scanf (“ %f ” , & r ) ;

printf (“ area=%f \\n” , area=1/2*r*r ) ; }

A) 0 B) 3.125 C) 3.13 D) 程序有错

习 题 四

4.1 填空题

4.1.1 表示条件:10

达式为 a 。 4.1.3 若已知a=10,b=20,则表达式!ab>c的值是 0 。 4.1.5 设y为int型变量,请写出描述“y是奇数”的表达式 y%2!=0 。 4.1.6 设x,y,z为int型变量,请写出描述“x或y中有一个小于z”的表达式 x=z||x>=z&&yb && c>a||ab的值是 1 。 4.1.8 假设 a=5, b=2, c=4,以下表达式的值依次为: 0,1,1,1 。

(1) a % b * c && c % b * a (2) b % c * a && a % c * b

(3) a % b * c || c % b * a (4) b % c * a || a % c * b

4.1.9 假设 a=3, b=4, c=5,x=0,y=0,以下各表达式的值依次为 0,1,1,0,1 。

(1) a + b > c && b == c (2) a || b + c && b - c (3) ! (a > b) && ! c || 1

(4) ! (x = a) && (y = b) && 0 (5) ! (a + b) + c – 1 && b + c/2

4.1.10 两次运行下面的程序,如果从键盘上分别输入6和4,输出的结果是 7和5 。

void main() { int x;

scanf(“%d”,&x); if(x++>5)

printf(“%d”,x); else

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

4.2 选择题:

4.2.1 设a为整型变量,不能正确表达数学关系: 10

A) 1010&&a<15 D) !(a<=10)&&!(a>=15) 4.2.2 在以下一组运算符中,优先级最高的是( C )。

A) <= B) = C) % D) && 4.2.3 设a,b,c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是

( D )。

A) ?a?&&?b? B) a<=b C) c||+c&&b-c D) !((a

A) 关系表达式 B) 逻辑表达式 C) 算术表达式 D) 任意表达式 4.2.5 在以下运算符中,优先级最高的运算符是( B )。

A) <= B) / C) != D) && 4.2.6 假设所有变量均为整型,表达式(a=2,b=5,a>b? a++:b++,a+b)的值是( B )。

A) 7 B) 8 C) 9 D) 2 4.2.7 在C语言中,能代表逻辑值\真\的是( D )。

A) true B) 大于0的数 C) 非0整数 D) 非0的数 4.2.8 在以下运算符中,优先级最高的运算符是( A )。

A) ! B) = C) + D) || 4.2.9 逻辑运算符两侧运算对象的数据类型( D )。

A) 只能是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据

习 题 五

5.1填空题

5.1.1 C语言三个循环语句分别是 while 语句, do while 语句和 for 语句。 5.1.2 至少执行一次循环体的循环语句是 do while 。 5.1.3 循环功能最强的循环语句是 for 。

5.1.4 下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填

填空。 int n=0,c; c=getchar();

while( c!=?\\n? )

{ if( c>=?0?&&c<=?9? ) n++; c=getchar(); }

5.1.5 在执行以下程序时,如果键盘上输入:ABCdef<回车>,则输出为 abcDEF 。

#include { char ch;

while((ch=getchar())!=?\\n?)

{ if(ch>=?A?&&ch<=?Z?) ch=ch+32; else if(ch>=?a?&&ch<=?z?) ch=ch-32; printf(“\\n”); }

5.1.6 下面程序的功能是用辗转相除法求两个正整数的最大公约数,请填空。

#include void main() { int r,m,n;

scanf(“%d,%d”,&m,&n);

if(m

while(r) { m=n; n=r; r= m%n ;} printf(“%d\\n”,n); }

5.1.7 当运行以下程序时,从键盘输入“right? <回车>”,则下面程序的运行结果是sjhiu 。

#include void main() { char c;

while((c=getchar())!=???) putchar(++c); }

5.1.8 下面程序的运行结果是 s=254 。

#include void main()

{ int a,s,n,count;

a=2; s=0; n=1; count=1;

while(count<=7) { n=n*a; s=s+n; ++count; } printf(“s=%d”,s); }

5.1.9 执行下面程序段后,k的值是 36 。

k=1;n=263;

do{ k*=n; n/=10; } while(n); 5.1.10 下面程序的运行结果是 -10 。

#include void main() { int i;

for(i=100; i>=0; i-=10); printf(“%d\\n”, i); }

5.1.11 下面程序使循环结束的条件式 i==0 。

#include void main()

{ int i;

for(i=250;i;i-=5) printf(“%d\\n”,i); }

5.1.12 以下程序输出结果为 x=-1,y=21 。

#include void main() { int x,y;

for(x=30,y=0;x>=10,y<20;x--,y++) x/=2, y+=2;

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

5.1.13 下面程序的功能是计算1-3+5-7+...-99+100的值,请填空。

#include void main()

{ int i, t=1, s=0;

for( i=1; i<=101; i+=2) { t=t*i ; s=s+t; t=-t/i ; } printf(“%d\\n”,s); }

5.1.14 下面程序的运行结果是****。

#include void main() { int i, j=4;

for(i=j; i<2*j; i++) switch(i/j) { case 0:

case 1: printf(”*”); break; case 2: printf(“#”); } }

5.1.15 下面程序的输出结果是i=6, k=4 。

#include void main() { int i, j,k=19; while(i=k-1) { k-=3;

if(k%5==0) { i++; continue; } else if(k<5) break; i++; }

printf(“i=%d, k=%d\\n”,i k); }

5.2 选择题

5.2.1 设有程序段:int k=10; while(k=0) k=k-1;,则下面描述正确的是( C)。

A) while循环执行10次 B) 循环时无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次 5.2.2 有以下程序:

#include

void main() { while(putchar(getchar())!=???); }

当输入“china?”时,程序的执行结果是( D )。

A) china B) dijob C) dijiob? D) china? 5.2.3 语句while(!E);中的表达式!E等价于( A )。

A) E==0 B) E!=1 C) E!=0 D) E==1 5.2.4 下面程序段的运行结果是( A )。

a=1;b=2;c=2; while(a

{ t=a; a=b; b=t;c- -; }

printf(“%d,%d,%d”,a,b,c);

A) 1,2,0 B) 2,1,0 C) 1,2,1 D) 2,1,1 5.2.5 下面程序段的输出结果是( C )。

int n=0;

while(n++<=2); printf(“%d“,n);

A) 2 B) 3 C) 4 D) 有语法错误

5.2.6 下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一

对相等数时结束循环,请选择填空。 #include void main() { int a,b,t;

scanf(“%d,%d”,&a,&b); while( B ) { if(a>b)

{ t=a; a=b; b=t; } printf(%d,%d\\n“,a,b); scanf(“%d,%d”,&a,&b); }

}

A) !a=b B) a!=b C) a==b D) a=b

5.2.7 下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小

写字母的个数n,并输出m、n中的较大者,请选择填空。 #include void main()

{ int m=0,n=0; char c;

scanf(“%d,%d”,&a,&b); while( ( [1] C )!=?\\n ? ) { if(c>=?A?&&c<=?Z?) m++; if(c>=?a?&&c<=?z?) n++; } printf(“%d”,m

}

[1] A) c==getchar( ) B) getchar( )

C) c=getchar( ) D) scanf(“%c”,c) [2] A) n:m B) m:n

C) m:m D) n:n

5.2.8 下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,

请选择填空。 #include void main()

{ int a,max=0;

scanf(“%d”,&a); while( B )

{ if(max

printf(“%d”,max);

}

A) a==0 B) a C) !a==1 D) !a 5.2.9 下面程序段的输出结果是( C)。

#include void main() { int num=0;

while( num<=2 ) { num++;

printf(“%d\\n”,num);


C语言程序设计基础教程 - 习题答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: