武汉大学 2016—2017 学年度第学期
C 语言程序设计》(2 学分)试卷(A
学号    姓名    院(专业)    分数   
说明:请考生将答案写在“武汉大学考试答题纸”上并标明题号,否则不得分。
一、单选题(本大题共 15 个小题,每小题 2 分,共 30 )
1.以下叙述正确的是   
A)C 程序的基本单位是语句
B)C 程序中第一个函数必须是 main 函数
C)C 程序从 main 函数开始执行
D)一般地,C 程序的第一条语句是# include <stdio.h>
2.下面四个选项中,均是合法的 C 语言标识符的是   
A)void,defineWORD    B) a3_b3_xyzIF
C) For-abcCase    D) 2aDOsigeof
3.若有定义语句:char s="\\\092";,则下面说法正确的是   
A)使 s 的值包含 2 个字符    B) 定义语句不合法
C) 使 s 的值包含 6 个字符    D) 使 s 的值包含 4 个字符
4.若变量 a i 已正确定义,且 i 已正确赋值,则下面合法的 C 语句是   
A) a=l    B) ++i;    C) a=a++=5;    D) a=int(i);
5.设整型变量 i 的值为 5,使 j 的值为 2 的表达式是   
A) j=(i++)/3    B) j=6-(i--)    C) j=i/2    D) j=i%2
6.判断字符型变量 switch case判断字符串c 是否为小写字母的正确表达式是    。
A) (c>=65)&&(c<=91)    B) (c>='A') &&(c<='Z')
C) ('a'>=c)||('z'<=c)    D) (c>='a')&&(c<='z')
7. a 是整型变量,则逻辑表达式 (a!1)||(a=1) 的值是    。
A)0    B)    1    C) 2    D) 不知道 a 的值,不能确定
8.对于下面的程序段,选项中描述正确的是   
int    k=0; while(k=0) k=k-1;
A)while 循环执行 10 次    B) 循环是无限循环
C) 循环体语句一次也不执行    D) 循环体语句执行一次

9.下列叙述中正确的是   
A)for 循环中的 break 语句表示当条件成立时中止程序执行。
B)for 循环中的 continue 语句表示当条件成立时中止本层循环。
C)break 语句必须与 switch 语句中的 case 配对使用。
D)switch 语句中,不一定使用 break 语句。
10.设有定义:float x; int a,b;,则正确的 switch 语句是   
A)switch(x)    B) switch(x)
{ case 1.0: printf("*\n");    { case1,2: printf("*\n");
Case 2.0: printf("**\n"); }    case 3: printf("**\n");}
C) switch (a+b)    D) switch (a+b);
{ case 1 :printf("\n");    { case 1: printf("*\n");
case 1+2: printf("**\n"); }    case 2: printf("**\n"); }
11. 若有定义 int a[10]={1,2,3,4,5,6,7,8,9,10};char c='a';,则数值为 5 的表达式是   
A) a['e'-c]    B) a[5]    C) a['e'-'c']    D) a['c'-c+a[2]]
12.定义二维数组 int a[4][5],则对 a 数组元的正确引用是   
A) a[2][4]    B)    a[1,2]    C) a(3)(4)    D) a[3][5]
13.以下正确的函数定义是   
A)fun(int x, y) { int z; return z; }
B)double fun(int x,int y) { double z; z=x+y; return z; }
C)double fun(int x,int y); { double z; z=x+y; return z; }
D)double fun( x, y) { int x,y; double z; z=x+y; return z;}
14.若有以下函数定义,则在主函数中正确的调用语句是   
void fun(int arr[][5]) {……}
int main(void) { int a[3][5], b;    }
A)fun(a[3][5]);    B) b=fun(a);    C) fun(a);    D) fun(a)
15.当全局变量与函数内部的局部变量同名时,则在函数内部   
A)全局变量有效    B) 局部变量有效
C) 全局变量与局部变量都有效    D) 全局变量与局部变量都无效
二、填空题(本大题共 10 个小题,每小题 2 分,共 20 )
1. 结构化程序由顺序、        三种基本结构组成。
2. 有整型变量定义 int i=345,j,k则表达式 k=(j=3, j+2,(++j)+i/10%10)的值为   
3.数学式子 2x+y2 对应的 C 语言表达式为   
4.使用 scanf()函数输入多个数值数据时,若格式控制字符串中没有普通字符作输入数

据之间的间隔, 则可用空格键、Tab 键、    作间隔。
5.复合语句在语法上被认为是    ,空语句的形式是   
6.为避免嵌套的条件语句 if-else 的二义性,C 语言规定:else 总是与    对。
7.决定数组所占内存单元多少的是数组元素的个数及其    。若 int 类型变占用 4 个字节,且有定义 int a[10] ;,则数组 a 占用的内存字节数是   
8. 若有数组的定义和初始化:int a[3][4]={{1,2},{3},{4,5,6,7}};,则 a[1][2]的初值是
    ,a[2][1]的初值是   
9.以下程序执行时输入 5,则输出为   
#include <stdio.h> int fun (int n)
{    if (n==1) return 1 ;
else return(fun(n-1)*n);
}
int main(void)
{        int n; scanf("%d",&n);
printf("%d\n",fun(n)); return 0;
}
10、在函数外定义的变量称为    变量,其存储类别默认为   
三、写出下面程序的运行结果。(本大题共 10 个小题,每小题 3 分,共 30 )
1.#include <stdio.h> int main( void)
{    double d;float f; long l;int i; char c; c='A';
i=d=80/7; l=f=(float)(c+5)/6;
printf("c=%d,i=%d,l=%ld,f=%.2f,d=%.2f\n",c,i,l,f,d); putchar(c+5);
return 0;
}
2.#include <stdio.h>

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