答案请写在答题纸上
第一部分 综合基础试题 共 50 分
1、(4 分) 用变量 a 给出下面的定义
a) 一个整型数;
b) 一个指向整型数的指针;
c) 一个指向指针的指针, 它指向的指针是指向一个整型数;
d) 一个有 10 个整型的数组;
e) 一个有 10 个指针的数组, 该指针是指向一个整型数;
f) 一个指向有 10 个整型数数组的指针;
g) 一个指向函数的指针, 该函数有一个整型参数并返回一个整型数;
h) 一个有 10 个指针的数组, 该指针指向一个函数, 该函数有一个整型参数并返回一个整型
数
答案:
a)int a
b)int *a;
c)int **a;
d)int a[10];
e)int *a [10];
f) int a[10], *p=a;
g)int (*a)(int)
h) int( *a[10])(int)
2、(4 分) 请写出以下语句的输出结果:
Int i=43;
Int j=5;
Double f=25.45181;
a) printf(“i=%d,j=%d,f=%3.2f”,i,j,f);
b) printf(“i=%x,j=%06d,i/j=%d”,i,j,i/j);
答案:
A) i=43,j=5,f=25.45
(说明: 本来应该输出最小3 位有效数字, 2 5 .5 , 但是由于限定了2 位小数, 所以强制有
2 位小数, 有效数字的个数就起不到强制作用了。 如果是%3.1, 则输出为 25.5)
B) i=2b ,j=00005,i/j=8
(%x 显示的是一个无符号的 0x 16 进制的整数,%06d 输出的是 6 位数, 不够 6 位数, 前面补
0, i/j 两个整数相除, 只取商的整数值)
3、 (2 分)请完成以下宏定义:
a) 用预处理指令#define 声明一个常数, 用以表明 1 年中有多少个秒(忽略闰年问题)
b) 写一个“标准” 宏 MIN, 这个宏输入两个参数并返回较小的一个
答案:
a) #define seconds 365*24*60*60