全国计算机二级C语言 # 选择题:顺序结构程序设计(1-4)
1. 有以下程序
#include <stdio.h>
main()
{
int a=2, c=5;
printf(“a=%%d,b=%%d “, a, c );
}
程序运行后的输出结果是答案:C
A)a=2,b=5
B)a=%2,b=%5
C)a=%d,b=%d
D)a=%%d,b=%%d
题目解析:百分号”%”主要用于指定输出格式,如果格式字符串中两个百分号连续即为”%%”的形式,则表示输出一个普通字符”%”。
2. 有以下程序
#include <stdio.h>
#include <math.h>
main()
{
int a=1, b=4, c=2;
double x=10.5, y=4.0, z;
z = ( a+b )/c + sqrt( y ) * 1.2 / c + x;
printf(“%f “, z);
}
程序运行后的输出结果是答案:C
A)15.400000
B)14.000000
C)13.700000
D)14.900000
题目解析: 考查运算符与表达式。表达式( a+b )/c + sqrt( y ) * 1.2 / c + x;先计算( a+b )/c,a、b、c均为整数,所以计算的结果也为整数即2;然后计算sqrt( y ) * 1.2 / c,即2.0*1.2/c,结果为1.2;最后计算2+1.2+x的值,为13.7,输出结果为13.700000。
3. 若有定义:int a=0,b=0,c=0,d=0;,以下关于C语言表达式:(++a || ++b) ? ++c : ++d 执行顺序的叙述正确的是答案:A
A)先计算表达式++a,其值为1,由此可确定(++a || ++b)值为1,因此计算++c
B)先计算表达式++b,其值为1;再计算表达式++a,其值为1,由此可确定(++a || ++b)值为1,因此计算++c
C)先计算表达式++a,其值为1;再计算表达式++b,其值为1,由此可确定(++a || ++b)值为1,因此计算++c
D)先计算++a,++b,++d,使得a,b,d的值都为1,由此可确定(++a || ++b)值为1,因此计算++c
题目解析:1、c语言中||是逻辑或,即两个或多个表达式中有一个为真,结果为真。2、c语言中逻辑表达式采用短路算法,从左向右一个表达一个表达式的计算,当能判定整个表达式真假时,后面的表达式不再计算。计算表达式++a,其值为1,由此可确定(++a || ++b)值为1,然后再进行计算++c。
4. 有下列程序
#include <stdio.h>
main( )
{ int a=123456, b;
while(a)
{ b = a%10;
a /= 10;
switch(b)
{ default: printf(“%d”, b++);
case 1:
case 2: printf(“%d”, b++); break;
case 3: printf(“%d”, b++); break;
case 4: printf(“%d”, b++);
}
}
}
程序执行后的输出结果是答案:A
A)67564321
B)76654321
C)12345667
D)654321
题目解析:分析题意可知:第1次,a=123456,b=6,a=12345,执行default和case 2后的语句,输出67;第2次,a=12345,b=5,a=1234,执行default和case 2后的语句,输出56;第3次,a=1234,b=4,a=123,执行case 4后的语句,输出4;第4次,a=123,b=3,a=12,执行case 3后的语句,输出3;第5次,a=12,b=2,a=1,执行case 2后的语句,输出2;第6次,a=1,b=1,a=0,执行case 1和case 2后的语句,输出1;第7次a=0,不执行循环语句,程序结束。故最终输入结果为67564321。
本章结束…