综合练习题
一、从下列四个供选择的答案中选出正确的一个答案
1、语句printf(“%%d%d”, 123); 将输出:
A) %123%d B) %%d123 C) %d123 D)上述语句语法有错
2、执行下列程序段后, a值为:
int a, b;
a=15; b=12;
a=(a-- ==b++)? a%5 : a/5;
A) 0 B) 2.8 C ) 4 D) 2
3、判断字符变量c的值为数字(?0?---?9?)则返回1,否则返回0, 可用表达式:
A) …0?<=c<=…9? B) …0?<=c && c<=…9?C) …0?<=c || c<= …9? D)以上均不是
4、对于int x, y; 语句if (x<0) y= -1; else if (!x) y=0; else y=1; 等价于:
A) y=0; if (x>=0) if (x) y=1; else y= -1;
B) if (x!=0) if (x>0) y=1; else y= -1; else y=0;
C) if (x<0) y= -1; if (x!=0) y=1; else y=0;
D) y= -1; if (x!=0) if (x>0) y=1; else y=0;
5、循环for(i=0, j=5; ++i!=--j; ) printf(“%d %d”, i, j); 将执行
A) 6次B) 3次C) 0次D) 无限次
6、下列程序段执行后s值为:
int i=5, s=0;
do if (i%2) continue; else s+=i; while (--i);
A) 15 B) 9 C) 6 D) 以上均不是
8、对于以下宏定义:
#define SQ(x) x*x
#define DD(x,y) SQ(x)-SQ(y)
宏调用DD(2*3, 2+3)执行后值为:
A) 43 B) 11 C) 25 D) 以上均不是
11、语句if (a>b) k=0; else k=1; (int a, b, k) 等价于:
A) k=(a>b)?1:0; B) k=a>b; C) k=a<=b; D) 以上均不是
12、对于int i; char c, s[20];从输入序列123ab45efg中将123读入i; ? b?读入c; “45efg”读入s, 则scanf语句应写为:
A) scanf(“%da%c%s”, i, c, s) B) scanf(“%d%*c%c%s”,&i, &c, s);
C) scanf(“%da%c%s”, &i,&c,&s) D) scanf(“%d%c%c%s”, &i, &c, s);
15、对于以下递归函数f, 调用f(4),其返回值为:
int f(int n)
{ return f(n-1)+n; }
A) 10 B) 11 C) 0 D) 以上均不是
17、如下程序段: