试卷代号: 1253
2021年春季学期期末统一考试
C语言程序设计 试题
2021年7月
一、单项选择题(把合适的选项编号填写在括号内。每小题3分,共42分)
1.C语言中使用的字符常量,其起止标记符是( )。
A.单引号 B.双引号
C.中括号 D.尖括号
2.一个函数定义所包含的两个部分是( )。
A.函数头和函数体 B.函数头和函数尾
C.函数原型和函数体 D.函数名和参数表
3.在printf( )函数调用的格式字符串中,若使用格式符为“%d",则对应输出的数据类型为( )。
A. char B.int
C.float D.double
4.char类型的长度为( )。
A.1 B.2
C.3 D.4
5.要利用const保留字定义整型常量ABC的值为10,则对应的定义语句为( )。
A. const int ABC 10; B. const int ABC,1O;
C. const int ABC;10; D. const int ABC=1O,
6.已知x的初值为15,则下列各表达式中的最小值为( )。
A.x%=20 B.x+=10
C.x/=2 D.x*=2
7.在循环语句“for(i=0;i<n;i++)S;”中,假定n的整数值大于O,则循环体S被执行的次数为( )。
A.1 B.n-l
C.n D.n+l
8.假定一维数组的定义为“char* a[8];”,则该数组所占用的存储空间的字节数为( )。
A.8 B.16
C.64 D.32
9.对于一个长度为n的字符串,保存它至少需要占用的存储字节数为( )。
A.n B.n-l
C.n+l D.n+2
10.假定变量m的定义为“intm-7;”,则下面语句格式正确的是( )。
A.int p=&m; B.int *p=&m;
C.int &p=*m; D.int *p=m;
11.假定a为一个数组名,则下面表达式中错误的是( )。
A.a[i] B.a++
C.a D.(a+1)
12.假定一个函数的原型语句为“intff(intx);”,一个整型数组为a[10],则下面函数调用表达式不正确的是( )。
A. ff(a) B. ff(a[0])
C. ff(a+3) D. ff(&a[0])
13.假定要访问一个结构变量x中的数据成员a,则表示方法为( )。
A.x.a B.x->a
C.x:a D.x(a)
14.表示文件结束符的符号常量EOF的值为( )。
A.127 B.O
C.1 D.-1
二、是非判断题(根据叙述正确与否在其括号内打对号“√”或叉号“×”。每小题2分,共30分)
15.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。( )
16.一个C语言程序能够包含多个用户头文件。( )
17.在定义一个变量时,可以同时给它赋初值。( )
18.表达式14%5的值为5。( )
19.关系表达式(x!=O)的等价表达式为(!x)。( )
20.while循环是先判断循环条件,当条件为真时执行循环体。( )
21.continue语句只有保留字,没有语句体。( )
22.在二维数组的定义语句中,数组名后带有两对圆括号。( )
23.在C语言程序中,存储字符串的方法是使用字符指针。( )
24.在定义指针变量的语句“int *p,**pp;”中,p和pp具有不同的指针类型。( )
25.假定a是一个一维数组,则a+i的值与&a[i]的值相等。( )
26.在一个函数定义中,参数表中的参数说明项之间是采用逗号分开的。( )
27.在C语言程序中,主函数可以是递归函数。( )
28.定义结构类型的同时能够定义它的变量。( )
29.每次只能向文本文件中写入一个字符,不能一次写入一个字符串。( )
三、程序填空题(分析程序后把合适的内容填写在括号内。每小题5分,共20分)
30.执行下面程序的输出结果为( )。
#include<stdio.h>
void main( ) {
int x=5,y=8,z=4;
if(x>y)x=y;
if(x>z)x=z;
printf("%d\n",x);
)
31.执行下面程序的输出结果为( )。
#include<stdio.h>
void main ( ){
int i, f1=l, f2;
for(i=2;i<5;i++){
f2=3*fl;
f1=f2;
}
printf(“f2=%d\n”,f2);
}
32.执行下面程序的输出结果为( )。
#include<stdio.h>
#define N 6
void main( ){
int a[N];
int i:
a[O]=1;a[1]=2;
for(i=2;i<N;i++)a[i]=a[i-2]+a[i-1];
printf("%d\n",a[N-1]);
{
33.执行下面程序的输出结果为( )。
#include<stdio.h>
void main( ){
int a [8] = {10,8,12,15,9,27,8,16);
int i, x=a [0];
for(i=1;i<8;i++)
if(a[i]>x)x=a[i];
printf(“x=%d\n”,x);
{
四、编程题(按题目要求编写程序或函数。每小题4分,共8分)
34.完善下面程序中xxkl函数的定义,使程序能够输出数组a中所有元素的最大值。
#include<stdio.h>
int xxkl (int a [], int n);
Void main ( )
{
int x:
int a [6] = {15,20,36,48,24,44};
x=xxkl(a,6);
printf(“x=%d\n”,x);
{
int xxkl(int a[],int n)
{
int i, x=a [0], max=a [0];
//向下补充内容,用一个for循环实现
return max,
{
35.补充完整下面xxk2函数定义,假定函数参数表中a的值小于等于b,函数功能是求出返回a到b之间(包含a和b值在内)所有偶数之和。
int xxk2(int a,int b)
{
int i,sum=0;
//向下补充内容,用一个for循环实现
return sum;
{