哈尔滨工业大学C语言期末试卷(2007秋季笔试B卷)
一、单项选择题:(10分,每题2分)
1.在下面的语句中:只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的语句是 。 A)if (a) s1; else s2; B)if (!a) s2; else s1; C)if (a!=0) s1; else s2; D)if (a==0) s1; else s2;
2.以下正确的描述是 。
A) 对共用体初始化时,只能对第一个成员进行初始化,每一瞬时起作用的成员是最后一次为其赋值的成员
B) 结构体可以比较,但不能将结构体类型作为函数返回值类型 C) 函数定义可以嵌套
D) 关键字typedef用于定义一种新的数据类型 3.下列的定义中,正确使用字符串初始化的是 。 A)char str[7] = \B)char str[] = {F,O,R,T,R,A,N,0}; C)char *str = \
D)char str[] = {'F','O','R','T','R','A','N'}; 4.要使下面程序的输出语句在屏幕上显示 1,2,34
则从键盘上输入的正确数据格式为: 。
main() {
char a,b; int c;
scanf(\ printf(\}
A)1 2 34 B)1,2,34 C)'1''2'34 D)12 34
5.若有二维数组定义语句:int a[3][4]; 则下面对元素a[i][j]不正确的引用方式是: 。 A) *(&a[i][j]) B) *(a+4*i+j) C) *(a[i]+j) D) *(*(a+i)+j)
二、写出下列程序的运行结果。(10分,每题2分) 1.
#include
int k=4, n=0;
for (;n if (n%2 == 0) break; k--; } printf(\ } 程序运行结果为 2. #include static char *mName[]={\ \ \ \ \ \ printf(\ scanf(\ printf(\ } 当程序输入9时,完整的(包括输入)程序运行结果是: 当程序输入13时,完整的(包括输入)程序运行结果是: 3. #include int year; int month; int day; }DATE; void func(DATE *p) { p->year = 2000; p->month = 5; p->day = 22; } main() { DATE d; d.year = 1999; d.month = 4; d.day = 23; printf(“%d,%d,%d\\n”, d.year, d.month, d.day); func(&d); printf(“%d,%d,%d\\n”, d.year, d.month, d.day); } 运行结果是: 4. #include int m = 7; printf(\ printf(\