内容发布更新时间 : 2025/1/5 9:43:15星期一 下面是文章的全部内容请认真阅读。
厦门大学《C语言程序设计》课程试卷
信息科学与技术学院 通信工程系 2011年级通信工程专业
主考教师:孙海信 施俊杰 试卷类型:(A卷)
一、 选择题(30分)
1.
A. B. C. D. 2. A. B. C. D. 3.
以下对数组a进行初始化不正确的是 char word[] = ?turbo\\0?;
char word[] = {?t?,?u?,?r?,?b?,?o?,?\\0?}; char word[] = {“turbo\\0”}; char word[] = “turbo\\0”;
以下对数组a进行初始化不正确的是 int a[2][3] = {0};
int a[][3] = {{1,2}, {0}};
int a[2][3] = {{1,2}, {3,4}, {5,6}}; int a[][3] = {1,2,3,4,5,6};
以下程序的输出结果是 main() { int n[2] = {0}; int i, j, k=2; for ( i=0; i A. 不确定的值 B. 3 C. 2 D. 1 4. 在C语言中,对于存储类型为 的变量只有在使用时才占用内存单元。 A. static和auto B. register 和 extern C. register 和 static D. auto 和 register A. 7 B. 2 C. 0 D. 3 5. 语句 int ( *ptr )() 说明了 A. ptr是指向一维数组的指针变量 B. ptr是指向in型数据的指针变量 C. ptr是指向函数的指针,该函数返回一个int型数据 D. ptr是一个函数名,该函数的返回值是指向int型数据的指针 6. 若有以下说明,且0 1 7. 8. 若有如下宏定义 #define X 5 #define Y X+1; #define Z Y*X/2; 则执行以下语句后输出结果是 int a = Y; printf( “%d, %d”, Z, --a ); A. 7, 6 B. 12, 6 C. 12, 5 D. 7, 5 设有下面的程序段 char s[] = “china”; char *p = s; 则以下叙述正确的是 A. 数组s中的内容和指针变量p中的内容相等 B. s和p完全相同 C. s数组长度和p所指向的字符串长度相等 D. *p和s[0]相等 9. 若已定义: int a[] = {0,1,2,3,4,5,6,7,8,9}, *p=a, i; 其中0<=i<=9,则对a数组元素引用不正确的是 A. a[p-a] B. *(&a[i]) C. p[i] 10. 以下对结构体变量中成员age的非法引用是 struct student { int age; int num; } stu1, *p; p = &stu1; A. stu1.age B. student.age C. p->age D. *(*(a+i)) D. (*p).age 二、 程序填空题(21分) 1. 下面的函数完成1到i的累加计算,请填空 sum ( int i ) { int r; if ( n<=0 ) printf(“error”); if ( n==1) (1) ; else (2) ; return r; } 2. 以下min()函数的功能是查找带有头结点的单链表中结点数据域的最小值作为函数返回,请填空 struct node { int data; 2 3. struct node *next; }; int min( struct node *first ) { struct node *p; int m; p = first->next; m = p->data; for ( p=p->next; p!=0; p= (1) ) if ( (2) ) m=p->data; return m; } 下列程序用于判断字符串s是否对称,对称时返回1,否则返回0,请填空 int f ( (1) ) { int i=0, j=0; while ( s[j] ) (2) ; for ( j--; i 三、 程序分析题,写出以下程序的运行结果(24分) 1. int m=13; int fun ( int x, int y ) { int m=3; return x*y-m; } main() { int a=7, b=5; printf( “%d”, fun( a, b )/m ); } 2. main() { int i; char **p, *a[] = {“dog”, “cat”, “pig” }; for ( p=a, i=0; i<3; i++ ) printf(“ %s, %c\\n”, *(p+i), *(*(p+i)+i) ); } 3. main() { int a[] = {1,2,3,4,5}, *p = a; printf(“%d, %d, %d, %d”, *++p, *p++, (*p)++, ++*p ); } 3