a=b;
printf(“%u”,a);
}
程序运行后的输出结果是( )。
A. -1 B. 65535
C. 32767 D. -32768
【答案】B
【考点解析】在本题中,有一无符号变量和一整型变量,它们的值都是-1,在计算机整型的存储是以二进制存在,即是1000000000000001,输出函数的要求输出无符号a的值,即要把1000000000000001转化为十进制,得65535。
二、填空题:
【例23】(2002年4月)以下程序的输出结果是_______。
main()
{
int a=177;
printf("%o\n ",a);
}
【答案】261
【考点解析】本题中先定义了一个十进制整数值为177的a,而printf()函数格式控制参数是o,也就是以八进制的整数形式输出,a的十进制数值是177转换为八进制数是261。
【例24】(2002年4月)以下程序的输出结果是_______。
main()
{
int a=0;
a+=(a=8);
printf(“%d\n”,a);
}
【答案】16
【考点解析】在程序是用printf函数输出十进制的整数,表达式经过复合运算:a=a+a=8+8=16,则结果是16。
【例25】(2002年4月)以下程序的输出结果是_______。
main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf(“%d\n”,d);
}
【答案】0
【考点解析】在C语言中规定了关系运算符”>”按左结合来运算的,所以在本题中先计算a>b,结果是真,即是1,再计算a>c,结果是假,所以最后结果是0。
【例26】(2003年4月)若有语句
int i=-19,j=i%4;
printf(“%d\n”,j);
则输出结果是 。
【答案】-3
【考点解析】根据C语言中printf函数的用法可知,格式控制参数是d,即是输出是十进制的数,%运算符是取除运算运算符,j=-19%4=-3。即答案是-3。
【例27】(2003年9月)以下程序运行后的输出结果是 。
main()
{
int p=30;
printf("%d\n",(p/3>0?p/10:p%3));
}
【答案】3
【考点解析】printf函数的格式控制参数是d,即是输出是十进制的数,三目运算符:(条件表达式)?(条件为真时的表达式):(条件为假时的表达式),条件表达式p/3>0=10>0为真,按照规则求表达式p/10的值就是输出的值,因此最后的输出表达式的值为3。
【例28】(2003年9月)以下程序运行后的输出结果是 。
main( )
{
char m;
m=’B’+32;
printf("%C\n",m);
}
【答案】b
【考点解析】printf函数的格式控制参数是C,即输出的是字符,在本题中,表达式m=’B’+32是表示字符B的ASCII码加上32再赋予m,而字符B的ASCII码是66,因此字符m的ASCII为66+32=98,最后输出的结果是ASCII码为98的字符,通过计算得字符b的ASCII码是98,则最后结果是输出b。
【例29】(2004年4月)已知字符A的ASCII码值为65,以下语句的输出结果是______。
char ch=’B’;
printf("%c%d\n",ch,ch);
【答案】B66
【考点解析】本题中printf函数的格式控制参数有两个,分别是c d,即是以字符格式和十进制整数格式输出,B的ASCII码值为66,即输出的十进制数是66,则最后输出答案为B66。
【例30】(2004年9月)以下程序段的输出结果是________。
int i=9;
printf(“%o\n”,i);
【答案】11
【考点解析】本题中有一个十进制整数值为9的变量i,printf函数参数要求输出八进制的数,值为9的变量i的八进制数是11,则最后的结果是11。