5. 以下程序的输出是什么?
#include
int i;
unsigned int j; i= ~0; j= ~0;
printf (\}答:
输出结果为:
i=-1 j=-1
6. 使用运算符++可以把以下3个语句写成一个语句。请设法写出这个语句,并编程上机验证结果。
y=y+1; z=x+y; x=x+1; 答:
可使用语句: z=(x++)+(++y);
7. 假定输入的数据流如下:
23.456789 12.23 567 hello F 34.32
为了把第二个数赋给变量second,把第三个数赋给变量third,把字符’F’赋给变量ch。问scanf( )函数的表示形式是什么?
解:scanf (\
8. 找出并更正以下程序中的错误。 #include
void main ( ) {
double pound; double kilograms; scanf (“%f”,pound); kilogram=pound/2.2;
printf (“%d pounds equals %d kilograms\\n”,pounds,kilograms); } 答:
正确的程序如下: #include
double pound;
}
double kilograms;
scanf (\输入输出double型数,要使用格式符%lf */ kilograms=pound/2.2;
printf (\
9. 语句printf(\的输出结果是 。 答案:Re’CH’you
10. 说明下面程序的输出结果:
#include
int x='f';
printf(\}
答:输出大写字母G。因为x-’a’是字符常量’f’的ASCII码值减去字符常量’a’的ASCII码值。结果是5,加1后为6。于是’A’+6得到的是大写字母G的ASCII码值。按格式“%c”输出,即是字母G。
11. 分析下面程序的输出结果。
#include
int x,m,n,a,b; m=n=a=b=8;
x=(m=a>b)&&(n=a>b);
printf(\}
【解】输出结果是:
x=0,m=0,n=8
这里,变量m、n、a、b初始值都是8。语句
x=(m=a>b)&&(n=a>b);
把逻辑表达式(m=a>b) &&(n=a>b)的值赋给变量x。逻辑运算符&&左右两边都是赋值表达式:左边是把关系表达式a>b的值赋给变量m;右边是把关系表达式a>b的值赋给变量n.
在计算这个逻辑表达式取值时,左边的关系表达式a>b不成立,因此取值为0。也就是说,变量m的值为0,所以&&左边的条件取值为假。于是,C语言不再去计算这个逻辑表达式右边的条件,而直接把逻辑值0赋给变量x。正因为没有去计算右边表达式的取值,所以并没有做把关系表达式的a>b的值赋给变量n的操作。因此变量n仍保持它原有的值8。
12. 执行下面的程序后,变量b里的值是什么? #include
int x =35; char c='A'; int b;
b=((x&15)&&(c<'a')); printf(\}
【解】这里是要把逻辑表达式(x&15)&&(c<‘a’)的值赋给变量b。该逻辑表达式进行的是逻辑与(“&&”)运算。它的左边是一个位逻辑表达式,右边是一个关系表达式。
先来看左边的x&15。从图3- 4看出,运算结果是3,即是逻辑真,取值为1。
X=35: 0 0 15: 0 0 & 0 0 0 0 0 0 0 0 0 0 0 0 1 1 结果: 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 图3-4 位逻辑运算示意
再来看右边的关系表达式c<‘a’。由于变量c里存放的是’A’,它的ASCII码值
(65)小于’a’的ASCII码值(97)。因此,该关系成立,运算结果为1。 所以,整个逻辑表达式的结果是1。因此,程序执行后,变量b里的值是1。
13. 以下程序的执行结果是什么?为什么?
#include
long a=32767; long b; b=a+1;
printf (\}
解:这里都是长整型数,存储一个数的位数是32,故直接相加即可。 所以,本程序的执行结果为:a=32767,b=32768
14. 执行以下程序时输入:
1234567 请写出程序运行结果。 #include
int x,y;
scanf(\ printf(\}
解:scanf ( )函数中第一个格式说明为“-”,表示接受两个数字即12赋给x;第二个格式说明为“%*2s”,表示接受两个数字不赋给任何变量,即跳过34;第三个格式说明为
“”,表示接受一个数字即5赋给y。所以程序输出为:
x=12,y=5
15. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后
#include
int i; float f; char c;
scanf(\
printf (\}
当输入100a1.563时,程序的运行结果是: 当输入1.23456时,程序的运行结果是: 答案:当输入100a1.563时,程序的运行结果是:
i= 100, c=a, f=1.563000
当输入1.23456时,程序的运行结果是:
i= 1, c= ., f=23456.000000
16. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后
#include
int i = 010, j = 10, k = 0x10;
printf (\}
运行结果是:
答案:运行结果是:
i= 8, j= 10, k= 16
17. 阅读程序,并按给定的输出格式将程序运行结果写在“运行结果:”之后
#include
int a = 7, b = 9;
a = a + b; b = a - b; a = a - b; printf (\}
运行结果是:
答案:运行结果是:
a= 9, b= 7