一、从下列四个供选择的答案中选出正确的一个答案(每题2分,共30分)
1 语句printf("%%d%d", 123); 将输出:
A) %123%d B) %%d
2 执行下列程序段后, a值为:
int a, b;
a=15; b=12;
a=(a-- ==b++)? a%5 : a/5;
A) 0 B)
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)
7 以下程序的正确运行结果是。
f(int a)
{int i=0;static int c=3;
i++;c++;
return(a+i+c);
}
main()
{int a=2,i;
for(i=0;i<3;i++) printf("%4d",f(a));
}
A) 7 7 7 B) 7 10
8 对于以下宏定义:
#define SQ(x) x*x
#define DD(x,y) SQ(x)-SQ(y)
宏调用DD(2*3, 2+3)执行后值为:
A) 43 B)
9 对于以下结构定义:
struct { int len;
char *str;
} *p;
*p->str++中的++加在
A) 指针str上 B) 指针p上 C) str所指的内容上 D) 以上均不是
10 若x=2,y=3则x&y的结果是。
A) 0 B)
11若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式
字符串应是。
A) "ab+" B) "wb+" C) "rb+" D) "ab"
12 已知函数的调用形式:fread(buffer,size,count,fp);其中 buffer代表的是。
A) 一个整形变量,代表要读入的数据项总数
B) 一个文件指针,指向要读的文件
C) 一个指针,指向要读入数据的存放地址
D) 一个存储区,存放要读的数据项
13 若有以下说明和语句, 已知int和double类型分别占2和8个字节,则sizeof(st)的值为:
struct st {
char a[10];
union {
int i;
double y;
}
};
A) 18 B)
14 在C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为:
A) void B) double C) char D) int
15 对于以下递归函数f, 调用f(4),其返回值为:
int f(int n)
{ if (n == 0)
return 1;
return f(n-1)+n;
}
A) 10 B)