C语言2-3章习题参考解答
第二章 C语言的基本数据类型及运算
C语言中的标识符可以由哪些字符组成?一个合法的C语言标识符应遵循那些规定?
解:略。
C语言有哪些数据类型?各种基本数据类型所占存储空间长度如何?
解:略。
若有定义int a=7; float x=2.5, y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值为多少?
解:2.5
假设所有变量均为整型,则表达式(a=2, b=5, b++, a+b)的值是什么?
解:8
若int x=1, y=2; 则表达式1.0+x/y的值是什么?
解:1.0
找出下列程序中的几处错误并改正。
Main()
{ int a=1, b=c=5, t=326845;
int d; char ch='A' ;
d=b*c;
printf("ch=%c, d=%d, t=%ld\n", ch, d, t);
}
解:错误(1)b=c=5(初始化错误)应该为:b=5,c=5
错误(2)t=326845(给基本整型变量t赋值超过最大值32768,会导致执行结果错误)
写出下列程序的运行结果。
(1) main()
{ int a, b, c, d;
a=28; b=8;
c=a/b; d=a%b;
printf("%d/ %d=%d, %d%%d=%d\n", a, b, c, a, b, d);
}
(2) main()
{ char x='a', y=98;
printf("%d\t\b%c", x, y);
}
(3) main()
{ int a=5, b=12, x, y;
x=a*=4; y=b- -;
printf("%d, %d, %d, %d\n", a, b, x, y);
}
(4) main()
{ int m, n=4;
float x=21.7, y=7.0;
++n;
m=x/y+n;
printf("%d, %d\n", m, n);
}
解:(1)28/8=3, 28%8=4
(2)97b
(3)20, 11, 20, 12
(4)8, 5
第三章 C语言程序设计初步
什么是输入输出格式说明符?它与转义字符的区别是什么?
解:略。
C语言中有哪几类语句?C语句与其它语言中的语句有那些异同?
解:略。
阅读下列程序,写出正确的输入输出语句
已知a、b、c、d的值分别为10、12.06、a和b,利用语句
scanf ("a=%d, b=%f ", &a, &b);
scanf ("c=%cd=%c", &c, &d);
如何从键盘上输入数据?
已知float f1, f2; ,若用以下输入形式,请写出正确的输入语句。
输入:4.52↙
3.52↙
main()
{ int a; float b;
printf("input a, b: ");
输入语句
输出语句
}
输入形式:56.4↙
输出形式:a+b=11.40
解:(1)可按如下形式在键盘上键入:
a=10, b=12.06c=a, d=b↙
(2)输入语句可以为:
scanf ("%f%f ", &f1, &f2);
(3)输入语句可以为:
scanf ("%d%f ", &a, &b);
输出语句可以为:
printf ("a+b=%4.2f ", a+b);
写出下列程序的运行结果
main()
{ int i;
i=15;
printf("%d, %o, %x, %u", i, i, i, i);
}
main()
{ int x=10; float y=3.1416; char c='x' ;
printf("%d, %3d, %-3d\n", x, x, x);
printf("%f, %10f, %-10f\n", y, y, y);
printf("%8.2f, %.2f, %4f\n", y, y, y);
printf("%e, %10.2e\n", y, y);
printf("%c, %d, %o, %u\n", c, c, c, c);
printf("%s, %5.3s, %-5s, %15s\n", "I Love China", "I Love China", "I Love China", "I Love China");
}
已知a=b=6,写出程序运行结果。
main()
{ int a, b, sum;
printf("please input a number! a:");
scanf("%d", &a);