一、单项选择题:(10分,每题2分)
1.char *p[10];该语句声明了一个: 。
A) 指向含有10个元素的一维字符型数组的指针变量p B) 指向长度不超过10的字符串的指针变量p
C) 有10个元素的指针数组p,每个元素可以指向一个字符串 D) 有10个元素的指针数组p,每个元素存放一个字符串 2.若int x;且有下面的程序片断,则输出结果为: 。
for (x=3; x<6; x++) {
printf((x%2) ? \}
A) ##3 B) **3 C) **3 D) ##3**4
**4 ##4 ##4**5 ##5 ##5 **5
3.在while(!x)语句中的!x与下面条件表达式等价的是: 。
A) x!=0 B) x==1 C) x!=1 D) x==0 4.已知
struct point { int x; int y; };
struct rect { struct point pt1; struct point pt2; };
struct rect rt;
struct rect *rp = &rt;
则下面哪一种引用是不正确的_______。 A) rt.pt1.x B) (*rp).pt1.x C) rp->pt1.x D) rt->pt1.x
5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为: 。
A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+j
CDDDC
二、分析程序并写出运行结果。(25分,每题5分) 1.
#include
第 1 页 共 11 页
for (n=1; n<=12; n++) { printf(\ } }
运行结果是: January February March April May June July August September October November December
2.
#include
void YH(int a[][ARR_SIZE], int n);
void PrintYH(int a[][ARR_SIZE], int n);
main() { int a[ARR_SIZE][ARR_SIZE];
YH(a, ARR_SIZE-1); PrintYH(a, ARR_SIZE-1); }
void YH(int a[][ARR_SIZE], int n) { int i, j; for (i=1; i<=n; i++) { for (j=1; j<=i; j++) { if (j==1 || i==j) { a[i][j] = 1; } else {
a[i][j] = a[i-1][j-1] + a[i-1][j];
第 2 页 共 11 页
} } } }
void PrintYH(int a[][ARR_SIZE], int n) { int i , j ;
for (i=1; i<=n; i++) { for (j=1; j<=i; j++) { printf(\ }
printf(\ } }
运行结果是: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 3.
#include
程序运行时输入:1 -2 3 -4 5↙ 运行结果是: n = 1
Please enter n: Please enter n:n = 3 Please enter n: Please enter n:n = 5 Program is over! 4.
#include
main()
第 3 页 共 11 页