C语言程序设计(专升本)A卷

  • 格式:docx
  • 大小:22.51 KB
  • 文档页数:5

《C语言程序设计》(专升本)期末试卷 A卷
一、单选题(每小题4分,共60分)
1.下列是C语言提供的合法的数据类型关键字的是( B )A.Float B.long
C.Integer D.Char
2.在以下各组标识符中,合法的标识符是( A )A.B01 B.table-1
C.0_t D.k%
3.假定x和y为double型,表达式x=2,则y=x+3/2的值是( A )A.3.500000 B.3
C.2.000000 D.3.000000
4.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( D )A.k%2 B.k%2==1
C.(k%2)!=0D.!k%2==1
5.为了计算s=10!(即10的阶乘),则s变量应定义为( C )A.int B.unsigned int
C.long D.以上三种类型均可
6.以下不能正确计算代数式0.25sin2(0.5)值的C语言表达式是( A )A.1/4*sin(1/2)*sin(1/2) B.sin(0.5)*sin(0.5)/4
C.pow(sin(0.5),2)/4D.1/4.0*pow(sin(1.0/2),2)
7.设有定义:int a=2,b=3,c=4;则以下选项中值为0的表达式是( A )A.(!a==1)&&(!b==0) B.(a<b)&&!c||1
C.a&&b D.a||(b+b)&&(c-a)
8.有以下程序段:
int k=0,a=1,b=2,c=3;
k=a<b?b:a; k=k>c?c:k;
执行该程序段后,k 的值是( B )A.3 B.2 C.1 D.0
9.设该变量已正确定义,则以下能正确计算f=n!的程序段是( D )
A.f=0; B.f=1;
for(i=1;i<=n;i++) f*=i; for(i=1;i<n;i++) f*=i;
C.f=1; D.f=1;
for(i=n;i>1;i++) f*=i; for(i=n;i>=2;i--) f*=i;
10.有以下程序:
main()
{ int a[]={2,4,6,8,10},y=0,x,*p;
p=&a[1];
for(x=1;x<3;x++) y+=*(p+x)
printf(“%d\n”,y);
}
程序运行后的输出结果是( C )A.10B.11
C.14 D.15
11.以下关于函数的叙述中正确的是( B )A.每个函数都可以被其它函数调用(包括main函数)
B.每个函数都可以被单独编译
C.每个函数都可单独运行
D.在一个函数内部可以定义另一个函数
12.若有语句:char *line[5];,以下叙述中正确的是( A )A.定义line是一个数组,每个数组元素是一个基类型为char的指针变量B.定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C.定义line是一个指针数组,语句中的*号称为间址运算符
D.定义line是一个指向字符型函数的指针
13.有如下程序:
#define N 2
#define M N+1
#define NUM 2*M+1
#main()
{ int i;
for(i=1;i<=NUM;i++)printf(“%d\n”,i);
}
该程序中的for循环执行的次数是( B )
A. 5
B. 6
C.7
D. 8
14.有如下程序段:
int *p,a=10,b=1
p=&a; a=*p+b;
执行该程序段后,a的值为( B )A.12 B.11 C.10 D.编译出错15.有如下定义:
struct person{char name[9]; int age;};
stru ct person class[10]={“Johu”, 17,“Paul”, 19,“Mary”, 18,“Adam 16,};
根据上述定义,能输出字母M的语句是( D )A.prinft(“%c\n”,class[3].mane);
B.pfintf(“%c\n”,class[3].name[1]);
C.prinft(“%c\n”,class[2].name[1]);
D.printf(“%c\n”,class[2].name[0]);
二、填空题(每空2分,共20分)
1.一个C语言程序总是从main(或主函数)开始执行。

2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为_____字母或下划线________________。

3.设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为__2.5____。

4.如下为闰年的判断条件,须满足如下两个条件之一:
1)能被400 整除;
2)能被4 整除,并且不能被100 整除。

写出如上的条件表达式(设年份为int y):_y%400==0||y%4==0&&y%100 !=0;_。

5.若有定义:double x[3][5],则x数组中行下标的最大值为___2____,列下标的最大值为___4____。

6.函数的实参传递到形参有两种方式:___传值______和___传地址______。

7.C语言中的逻辑运算符共有三种,分别是:&&、___ ||____、___!_____。

三、简答题(第1、2小题每题6分,第3小题8分,共20分)
1.写出以下程序运行的结果。

void main ( )
{
int i,j,m,n;
i=8; j=10;
m=++i; n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
请在此作答:9,11,9,10。

2.分析以下程序的运行结果。

struct s{ int a;
float b;
char *c;
};
main()
{ struct s x={19,83.5,”zhang”};
struct s *px=&x;
printf(“%d,%.2f,%s\n”,x.a,x.b,x.c);
printf(“%d,%.2f,%s\n”,px->a,(*px).b,px->c);
}
请在此作答:19,83.50,zhang
19,83.50,zhang
答题标准:须分成两行书写结果。

3.已知某学生5门课成绩,分别为{79,93,83,88,91},
求(1) 求该学生5门课平均分;
(2) 查找该学生5门课的最高分,并显示结果。

试写出程序分别实现以上要求。