武汉大学 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,,define,WORD B) a3_b3,_xyz,IF
C) For,-abc,Case D) 2a,DO,sigeof
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小时内删除。
发表评论