湖南大学C语言试卷及答案

一、单项选择题:(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 main() { int n; static char *monthName[]= {\ \ \

第 1 页 共 11 页

for (n=1; n<=12; n++) { printf(\ } }

运行结果是: January February March April May June July August September October November December

2.

#include #define ARR_SIZE 7

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 main() { int i, n; for (i=1; i<=5; i++) { printf(\ scanf(\ if (n <= 0) continue; printf(\ } printf(\}

程序运行时输入: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 void Func(int n);

main()

第 3 页 共 11 页

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4