哈尔滨工业大学(威海)2011/2012学年季学期
    C语言程序设计    笔试试题(A卷)
题号
笔试(70%)
综合
(30%)
总分
分数
c语言用递归函数求n的阶乘
试卷说明:
1. 笔试卷面总分100分,取卷面成绩的70%计入总分;
2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%
3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;
4. 答题时间105分钟。
一、单项选择题。请把答案填入下面框中, 
不允许出框线。(本题16分,每小题1
题号
1
2
3
4
5
6
7
8
答案
题号
9
10
11
12
13
14
15
16
答案
注意行为规范
  遵守考试纪律
1. 下面程序的输出是______。
main()
{ int x=10,y=3;
printf("%d\n",y=x/y);  }
A) 0    B) 1    C) 3    D) 不确定的值   
2. 下列函数的功能是______。
int fun1(char *x)
{ char *y = x;
while(*y++);
return(y-x-1);  }
A) 求字符串的长度          B) 将字符串X连接到字符串Y后面
教研室主任签字:
C) 将字符串X复制到字符串Y  D) 比较两个字符串的大小
3.  以下对C语言函数的有关描述中,正确的是______。
A) C程序中有调用关系的所有函数必须放在同一个源程序文件中
B) C函数既可以嵌套定义又可以递归调用
C) 调用函数时,实参的值传送给形参
D) 函数必须有返回值
4.  若用数组名作为函数调用的实参,传递给形参的是______。
A) 数组的首地址    B) 数组第一个元素的值 
C) 数组中全部元素的值    D) 数组元素的个数
5.  若有以下定义,则p+5表示_______.
    int  a[10],*p=a;
  A) 元素a[5]的地址            B) 元素a[5]的值
  C) 元素a[6]的地址            D) 元素a[6]的值
6.    以下选项中,与k=n++完全等价的表达式是_______。
A) n=n+1,k=n  B) k=n,n=n+1  C) k=++n  D) k+=n+1
7.  如果在一个函数中的复合语句中定义了一个变量,则该变量_______。
A) 只在该复合语句中有效        B)在该函数中有效
C) 在本程序范围内均有效        D)为非法变量
8. 定义一个结构体变量时,系统分配给它的内存大小是_______。
A)成员中占内存量最大者所需的容量
B)各成员所需内存量的总和 
C)结构中第一个成员所需内存容量 
D)结构中最后一个成员所需内存容量
9. 在C程序中,使用结构体的目的是______。
A)将一组相关的数据作为一个整体,以便程序使用。
B)将一组相同数据类型的数据作为一个整体,以便程序使用。
C)将一组数据作为一个整体,以便其中的成员共享存储空间。
D)将一组数值一一列举出来,该类型变量的值只限于列举的数值范围内。
10. 判断字符串s1与字符串s2相等,应当使用______ 。
A)  if (s1 = s2)       
B)  if (strcmp(s1, s2))
C)  if (!strcmp(s1, s2))     
D)  if (strcmp(s1, s2) = 0)
11. 若有定义int  *p[4],则标识符p是一个______ 。
A)指向整型变量的指针变量
B)指向函数的指针变量
C)指向有四个整型元素的一维数组的指针变量
D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针
12. 设有以下定义:
    int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    int (*ptr)[3] = a, *p = a[0];
    则以下能够正确表示数组元素a[1][2]的表达式是______ 。
A) *((*ptr + 1)[2])
B) *(*(p + 5))
C) (*ptr + 1)
D) *(*(a + 1) + 2)
13. 凡是在函数中未指定存储类别的局部变量,其隐含的存储类别是________。
A)静态(static)        B)外部(extern)
C)自动(auto)        D)寄存器(register)
14. 以下错误的描述是________ 。
A)    不同的函数中可以使用相同名字的变量,互不干扰
B)    形式参数都是局部变量
C)    一个C程序只包含一个函数
D)    C语言中的函数参数传递都是单向值传递
15. 以下对二维数组进行正确初始化的是________。   
A)int a[2][3]={{1,2},{3,4},{5,6}}; 
B)int a[2][]={1,2,3,4,5,6}; 
C)int a[][3]={1,2,3,4,5,6};
D)int a[2][]={{1,2},{3,4}};
16. 设有如下定义:
    struct st
    {
        int a;
        float b;
}st1, *pst;
若有pst = &st1; 则下面引用正确的是________。
A)    (*pst.st1.b)        B) (*pst).b
C)    pst->st1.b            D) pst.st1.b
二、填空题。请按序号把答案填入下面框中, 
不允许出框线。(本题20分,每空2
题号
 
题号
 
1
6
2
7
3
8
4
9
5
10
1. 下面程序的功能是要把1~90之间的不能被3整除的数输出。请补全。
main()
  {
int n;
    【1】         
    {
if (n%3==0)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。