(15)main(()
{ float x=123A56; printf(“%-5.2f\\n”,x); }
以上程序输出的结果是________。
A)123.4 B)123.5 C)123.45 D)123.46 答案:D
评析:f格式符,用来输出实数,以小数形式输出。“%-m.nf”的含义是:输出数据共占m列,其中n位小数,如果输出位数小于m。则右端补空格。如果总长度大于列数,则按实际情况四舍五入输出。
(16)下面语句的输出结果是________。
Printf(“%d\n”,strlen(“\t\”\065\xff\n”)); A)14 B)8
C)5 D)输出项不合法,无正常输出 答案:C
评析:在c语言中,以“\”开头的字符均为转义字符,其中“\”后可跟l~3位八进制数或在“\”后跟字母x及l~2位十六进制数,以此来代表一个特定的字符。
(17)下列程序的输出结果是________。 main()
{ int a=0,b=0,c=0; if(++a>0lI++b>0)++c;
printf(“\na=%d,b=%d,c=%d”,a,b,C); }
A)a=0,b=0,c=0 B)a=l,b=l,c=1 C)a=l,b=O, c=I D)a=0, b=1.c=1 答案:C 评析:
“︱︱”是或运算,它有个“短路”的特点需特别注意,当“︱︱”运算符左边的表达式的值为真时,则程序就不再对“︱︱”右边的表达式的值进行运算,而是使得整个表达式的值直接为真。
(18)下列程序的输出结果是_________。 Main() { int i; for(i=1;i+l;i++)
{ if(i>4){printlf(”%d”,i++);break;} }
printf(“%d”,i++); }
A)55 B)56 C)程序错误,没有输出 D)循环条件永远为真,死循环 答案:B
评析:本程序中有个for循环,但注意到for循环的条件是“i+l”,也就是只要i+l的值为真(非零值均为真),就执行循环。当i=l的时,i+l的值为真,判断if条件不成立,执行i++,输出i的值为5。
(19)下列程序的输出结果是_________。 #define A 100 main()
{ int i=O,sum=O;