大学计算机C语言期末试题A

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

专业班级:学号:姓名:

一、选择题(用铅笔把选中的方格涂黑40×1=40分)

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

17 18 19 20

21 22 23 24

25 26 27 28

29 30 31 32

33 34 35 36

37 38 39 40

二、填空题(25×2=50分)

(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16)

(17)

(18)

(19)

(20)

(21)

(22)

(23)

(24)

(25)

三、编程题(10分)

求10个数的最大公约数和最小公倍数(定义两个函数,求两个数的最大公约数和两个数的最小公倍数)

一、选择题 ( 40×1分=40分)

1.以下叙述中正确的是 (1) 。

A .在编译时可以发现注释中的拼写错误

B .

C 语言程序的每一行只能写一条语句 C .main( ){}必须位于程序的开始

D .C 语言程序可以由一个或多个函数组成

2.以下选项中不能用作变量名的是 (2) 。

A ._float

B .switch

C .sum

D ._123 3.已知sizeof(int)的值为2,为将10!的值存储到变量f 中(10!=3628800),变量f 的类

型应声明为

(3) 。

A .long int

B .int

C .short int

D .unsigned int

4. 以下表示中,不能用作C 语言常量的是 (4) 。

A. 0UL

B. (long)123

C. 1e0

D.‘\x2a’ 5.数学式

b

a

2在C 程序中正确的表示形式为 (5) 。 A .sqrt(a)/2*b B .sqrt(a)/2/b C .sqrt(a)/2b D .sqrt a/(2*b)

6.已知有程序段“char str[][10]={"Aoyun","Beijing"},*p=&str[0][0];

printf("%s\n",p+10);”,则执行printf 语句后输出为 (6) 。 A .Beijing B .Aoyun C .ing D .ng 7.以下声明中错误的是 (7) 。

A .int a[2];

B .int a[]={0,1};

C .int a[3]=0;

D .int a[3][4]={0}; 8.以下表示数学式“a

A. a

B. a

C. !(a>=b)&&!(b>=c)

D. !(a>=b||b>=c)

9.已有声明“int a=3,b=3,c=2;”,以下选项中值为0的表达式是 (9) 。

A. !a&&!b&&c

B. !a||!b||c

C. a==b&&b>=c

D. a>=b&&b>c 10.若有声明“char ss[8]="Red";”,则sizeof(ss)的值是 (10) 。

A .8

B .4

C .3

D .1 11. 以下程序运行后的输出结果是 (11) 。

A. 2 2

B. 7 2

C. 7 5

D. 6 2 main()

{ char a[7]="a0\0a0\0"; int i,j; i=sizeof(a); j=strlen(a); printf("%d %d",i,j); }

12. 下面关于循环语句for 、while 、do_while 的叙述中,正确的是 (12) 。

A. 三种循环语句的循环体都必须放入一对花括号中

B. 三种循环语句中都可以缺省循环终止条件表达式

C. 三种循环语句的循环体都至少被无条件地执行一次

D.三种循环语句都可能出现无穷循环

13. 若有声明“int a[]={1,2,3,4},*p,i;”,则以下程序段中不能输出13的是(13)。

A.for(i=0;i<4;i+=2) printf("%d",a[i]);

B.for(p=0;p<4;p+=2) printf("%d",a[p]);

C.for(p=a;p

D.for(p=a,i=0;i<4;i+=2) printf("%d",p[i]);

14.在下列C语言源程序的错误中,通常不能在编译时发现的是(14)。

A. 括号不匹配

B. 非法标识符

C. 数组元素下标值越界

D. 程序结构不完整

15.若有声明“long a,b;”且变量a和b都需要通过键盘输入获得初值,则下列语句中正

确的是(15)。

A. scanf("%ld%ld,&a,&b");

B. scanf("%d%d",a,b);

C. scanf("%d%d",&a,&b);

D. scanf("%ld%ld",&a,&b);

16.若有程序段“char c=256; int a=c;”,则执行该程序段后a的值是(16)。

A. 256

B. 65536

C. 0

D. -1

17.若在一个C语言源程序中“e1”和“e3”是表达式,“s;”是语句,则下列选项中与语

句“for(e1; ;e3)s;”功能等同的语句是(17)。

A. e1;while(10)s;e3;

B. e1;while(10){s;e3;}

C. e1;while(10){e3;s;}

D. while(10){e1;s;e3;}

18.若有声明“int a[3][4], *p=a[0] ,(*q)[4]=a;”,则下列叙述中错误的是 (18) 。

A. a[2][3]与q[2][3]等价B. a[2][3]与p[2][3]等价

C. a[2][3]与*(p+11)等价D. a[2][3]与p=p+11,*p等价

19. 若有声明“long fun(int *x,int n,long *s);int a[4]={1,2,3,4}; long b,c;”,

则以下函数调用形式中正确的是(19)。

A. c=fun(a,4,b);

B. c=fun(a[],4,&b);

C. c=fun(a[4],4,b);

D. c=fun(a,4,&b);

20.已知在函数f中声明了局部变量x,如果希望f函数第一次被调用返回后变量x中存储的数据保持到下次f函数被调用时仍可以使用,则在声明x时必须指定其存储类型为(20)。

A. auto

B. register

C. static

D. extern

21. 若有如下的类型定义和变量声明,则在给出的选项中值不为7的表达式是(21)。

A.ptr->a

B.(++ptr)->a

C.x[1].a

D.x[0].b->a

struct ss

{ int a; struct ss *b; }x[3]={{5,&x[1]},{7,&x[2]},{9,0}}, *ptr=&x[0];

22. 若需要对一个数据文件abc.txt中的数据做加密处理并且限定只能做一次打开文件操

作,则在“fp=fopen("abc.txt", 模式字符串); ”中,模式字符串应当是(22)。

A. "w+"

B. "r+"

C. "a+"

D. "r"

23.若有如下声明和语句:

int t[3][3],*pt[3],k;

for(k=0;k<3;k++) pt[k]=&t[k][0];

相关文档
最新文档