北京理工大学C语言期末模拟考试
北京理工大学C语言期末模拟试题
一、单项选择题 - 试答 1
Question 1
分数: 2
已知结构定义如下:
struct sk
{ int a;
float b;
}data, *p;
如果 p = &data;则对于结构变量data 的成员 a 的正确引用是 。
选择一个答案
A. p->data.a
B. p.data.a
C. (*p).a
D. (*).data.a
Question 2
分数: 2
说明一个变量 s 来保存 20 以内整数的阶乘,则该变量应说明为 。
选择一个答案
A. float 型
B. long 型
C. unsigned 型
D. int 型
Question 3
分数: 2
下列四组标识符中, 每组有用逗号分开的4个标识符,全都符合标准 C 标识符规定的一组是______。
选择一个答案
A. *4,trin,mA,Ma
B. r_,_r,i,st’
C. name,t3,x_y,_n3y
D. function1,g,c10,k.c7
Question 4
分数: 2
已知int n = 1, m = 0; 执行下述语句后,变量m的值是 。
switch( n ) { case 1: case 2: m = 1; break; case 3: m = 3; default: m = 2; }
选择一个答案
A. 3
B. 0
C. 2
D. 1
Question 5
分数: 2
已知:char str[ ][4] ={ “abc”, ”def”, ”ghi”}, c, * p=&c;如果要使则执行“printf( “%c”, * p )”语句后的输出结果为字符 ’c’,则赋值语句是 。
选择一个答案
A. p = str[0][2];
B. *p = str[0][2];
C. p = str[1][3];
D. *p = str[1][3];
Question 6
分数: 2
已知:int k = 2, m =3, n = 4; 则表达式“ ! k && m || n” 的值是 。
选择一个答案
A. 1
B. 3
C. 2
D. 0
Question 7
分数: 2
在下面的说明语句中为字符数组 str 赋初值,而 str 不能作为字符串使用的是 。
选择一个答案
A. char str[8] = “Beijing”;
B. char str[7] = “Beijing”;
C. char str[10] = “Beijing”;
D. char *str = “Beijing”;
Question 8
分数: 2
已知在主调函数中有说明语句如下:
int n, data[10][6]; double sum, *q;
函数的调用语句是: q = func( &n, data );
则函数 func 的原型是 ______ 。
选择一个答案
A. double func( int *x, int **data );
B. double func( int x, int data[][] );
C. double *func( int *x, int **data );
D. double *func( int *x, int data[][6] );
Question 9
分数: 2
已知int i, k = 4; 则执行循环语句:
for( i =0; ++i < k; i++ )
printf(“%d\n”, i);
最后一行输出的数值是 。
选择一个答案
A. 4
B. 3
C. 5
D. 2
二 、程序填空
分数: 2
以下函数使用合并排序法,将两个已经按照从小到大的排序的整型数组,合并到新的数组,新数组仍按照从小到大的顺序排序, 数值相同的数据在新数组中只保存一次。参数a、b是两个排好序的数组的首地址,参数c是合并后数组的首地址,参数m、n分别是数组a、b的长度,函数的返回值是数组c的长度。combine(int *a, int m, int *b, int n, int *c ){ int i = 0, j = 0, k = 0; while( 【1】 ) c[k++] =