最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

(完整版)C语言程序设计期末考试卷及答案,推荐文档

IT圈 admin 34浏览 0评论

2024年3月15日发(作者:芮盼晴)

.

C 语言程序设计期末考试卷及答案

}

printf("k = %d,k = %o,k = %xn",k,k,k);

A)k = 15,k = 15,k = 15

B)k = 15,k = 17,k = 17

D)k = 15,k = 17,k = f

得分 阅卷人

复核人

C)k = 15,k = 017,k = 0xf

8.已知 a,b,c 为 int 类型,执行语句:scanf( "% d% d% d",& a,& b,& c) ; 使得 a 为 10,b 为 20,c 为

一、单项选择题。从A、B、C、D 四个选项中,选择一个最佳答案填入括号内( 每小题 1 分,共计 30 分)。

30,以下不正确的输入形式是( )。

1.一个 C 语言程序的执行是从( )。

A)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

B)

本程序的 main 函数开始,到 main 函数结束

C)

本程序的 main 函数开始,到本程序文件的最后一个函数结束

2

D)

本程序文件的第一个函数开始,到本程序的 main 函数结束

2.

下列选项中不属于 C 语言关键字的是( )。

A)switch B)printf C)default D)case

3.

设有语句 int a = 4; ,则执行了语句 a += a -= a * a; 后,变量 a 的值是(

A)24 B) -24 C)4 D)16

4.

已知 int i;float d;,则正确的表达式是( )。

A)(int d) B)int(d)%i C)(int)d%i D)int(d%i)

5.

已知 int i,a;,执行语句 i=(a=3*9,a/5),a+11; 后,变量 i 的值是( )。

A)5 B)16 C)27 D)38

6.

下列选项中合法的字符型常量是( )。

A)"a" B)'n' C)"n" D)a

7.下面程序的运行结果是( )。

线

#include

void main( )

A)10 B)10 C)10,20,30

20 20 30

30

9.已知 int x=1,y=2,z=3;,执行下列程序段后,输出的结果是(

if(x>y) z=x;x=y;y=z;

{ int k = 15;

.

D)10 20

30

)。

printf("%d,%d,%d",x,y,z);

.

C)2,3,1 D)2,3,2

A)无限次 B)有语法错,不能执行 C)一次也不执行

)。

D)执行 1 次

12.以下程序的输出结果是(

A)1,2,3 B)2,3,3

void main( )

10.

若变量 c 为 char 类型,能正确判断出 c 为大写字母的表达式是(

)。

A)'A'<=c<='Z'

C)(A<=c)&&(c<=Z)

11.

有以下程序段:

i

n

t

k

=

0

;

w

h

i

l

e

(

k

=

1

)

k++;

while 循环执行的次数是(

B)('A'<=c)||(c<='Z')

D)('A'<=c)&&(c<='Z')

{int x=1,a=0,b=0;

switch(x)

.

.

{ case 0:b++;

case 1:a++;

case 2:a++;b++; }

printf("a=%d,b=%d",a,b);

}

C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

A)a=1,b=0 B)a=1,b=1 C)a=2,b=1 D)

a=2,b=2 13.若有定义 int i = 1;,执行语句 while ( i < 10 )

i++; 后,i 的值为( )。

A)9 B)10 C)11 D)12

14.有说明语句 int a[ ]={1,2,3,4,5};,则数组 a 包括了( )个元素。

A)10 B)5 C)6 D)不确定

15.以下程序段执行后,输出结果是( )。

char str[]="abcn012n";printf("%d",strlen(str));

A)5 B)6 C)7 D)13

16.

若有以下定义:float t[5][4];,能正确引用 t 数组元素的表达式是( )。

A)t[1][4] B)t[5][0] C)t[0][0] D)t[0,0]

17.

执行下列程序段:

int i,s = 0;

int a[ ][3] = {{1,2},{3,4},{5,6}};

for ( i = 0;i < 3;i++ )

s = s + a[i][i];

则 s 的值是( )。

A)5 B)6 C)12 D)21

18.

下述对字符数组的描述中,错误的是( )。

A)字符数组可以存放字符串 B)

.

字符数组中的字符串可以整体输入输出

.

.

D)不可以用关系运算符对字符数组中的字符串进行比较

类型应是( )。

B) extern C) static

)。

D)==

)。

D) register

.

)。

A) auto

24.类型相同的两个指针变量之间不能进行的运算是(

A)+ B)- C)=

19.

设有宏定义#define Y(x) (x)+ 2 ,则下面程序段的运行结果是(

int a = 2,b =

2,c = 1;

printf("%dn",a

25.若有说明语句:int i, x[3][4] ;,则不能将 x[1][1]的值赋值给变量 i 的语句是(

* Y( b + c ) );

A)7 B)8 C)9 D)10 20.若用数组名作为函数调用的实参,传递给形参的是( )。

A)数组的长度 B)数组第一个元素的值

C)数组中全部元素的值

D)数组

的首地址21.下面叙述中,不正确的是(

)。 A)

在不同的函数中可以使用相同名字的变量B)

函数中的形式参数是局部变量 C)在

一个函数内定义的变量只在本函数范围内有

效 D)在一个函数内的复合语句

中定义的变量在本函数范围内有效

22.

若在程序中定义了以下函数:

float max( float a ,float b )

{ return ( a>b?a:b); }

并将其放在主调函数之后,则在调用之前应该对该函数进行声明,以下选项中错误的

声明是(

)。

A) float max( float a,b ); B) float max( float ,float );

C) float max( float a ,float b ); D) float max( float x

,float y ); 23.要使函数体内的某局部变量能保留函数前一次调用后的值,供下

一次调用时继续使用,该变量的存储

.

.

A)i = *( *( x + 1 ) + 1 );

B)i = x[1][1];

D)i = *( x[1] + 1 );

A)4 B)0 C)5 D)6

C)i = *( *( x + 1 ) );

26.有如下程序段:

int a[6] = { 1,2,3,4,5,6 };

int m,*ptr;

ptr = &a[0];

m = ( *ptr )*( *( ptr + 2 ) ) *( *( ptr + 4 ) );

执行该程序段后,m 的值为( )。

A) 15 B)48 C)24

27.

设有定义:enum team{ my,your=4,his,her = his+10};

则枚举元素 my、your、his、her 的值分别是( )。

A)0 1 2 3 B)0 4 0 10 C)0 4 5 15

28.

下面程序的运行结果是( )。

union myun

{ struct

{ int x,y,z; }u;

int k;

}a;

void main( )

{ a.u.x = 4;

a.u.y = 5;

a.u.z = 6;

a.k = 0;

printf("%dn",a.u.x);

}

D)8

D)1 4 5 15

.

29.

表达式 11 & 18 的值是(

)。

.

void

main( )

A)0

B)1

C)2

{ char ss[10] ="12345";

D)27 30.当顺利执行了文件关闭操作后,fclose 函数的返回值是( )。

A) 0 B)true C) -1 D) 1

得分 阅卷人 复核人

二、填空题(每小题 2 分,共计 20 分)。

1.C 语言源程序编译后生成 程序,然后经

过连接生成可执行程序。2.实型常量有两种表示方法:

小数形式和 。

3.

rewind 函数的功能是 。

4.

若 ch 是字符型变量,与 ch=getchar();功能相同的语句是 。

5.

以下程序段要使指针变量 p 指向一个整型的

动态存储单元,请填空。int * p;

p= malloc(sizeof(int));

6.

已知:int *p,a = 2,b = 1;,则执行程序段 p = &a;a = *p + b; 后,a 的值

为 。

7.

已知:int x = 1, y = 2, z;,则执行 z = x > y ? ++x : ++y;后,z 的值为 。

8.

当执行下面程序且输入:ABC<回车>时,输出的结果是 。

#

i

n

c

l

u

d

e

.

gets(ss);

printf(“%sn”,ss);

}

9.

下面程序的功能是用函数的递归调用求 n!(n≥1),请填空。

float f(int n)

2024年3月15日发(作者:芮盼晴)

.

C 语言程序设计期末考试卷及答案

}

printf("k = %d,k = %o,k = %xn",k,k,k);

A)k = 15,k = 15,k = 15

B)k = 15,k = 17,k = 17

D)k = 15,k = 17,k = f

得分 阅卷人

复核人

C)k = 15,k = 017,k = 0xf

8.已知 a,b,c 为 int 类型,执行语句:scanf( "% d% d% d",& a,& b,& c) ; 使得 a 为 10,b 为 20,c 为

一、单项选择题。从A、B、C、D 四个选项中,选择一个最佳答案填入括号内( 每小题 1 分,共计 30 分)。

30,以下不正确的输入形式是( )。

1.一个 C 语言程序的执行是从( )。

A)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

B)

本程序的 main 函数开始,到 main 函数结束

C)

本程序的 main 函数开始,到本程序文件的最后一个函数结束

2

D)

本程序文件的第一个函数开始,到本程序的 main 函数结束

2.

下列选项中不属于 C 语言关键字的是( )。

A)switch B)printf C)default D)case

3.

设有语句 int a = 4; ,则执行了语句 a += a -= a * a; 后,变量 a 的值是(

A)24 B) -24 C)4 D)16

4.

已知 int i;float d;,则正确的表达式是( )。

A)(int d) B)int(d)%i C)(int)d%i D)int(d%i)

5.

已知 int i,a;,执行语句 i=(a=3*9,a/5),a+11; 后,变量 i 的值是( )。

A)5 B)16 C)27 D)38

6.

下列选项中合法的字符型常量是( )。

A)"a" B)'n' C)"n" D)a

7.下面程序的运行结果是( )。

线

#include

void main( )

A)10 B)10 C)10,20,30

20 20 30

30

9.已知 int x=1,y=2,z=3;,执行下列程序段后,输出的结果是(

if(x>y) z=x;x=y;y=z;

{ int k = 15;

.

D)10 20

30

)。

printf("%d,%d,%d",x,y,z);

.

C)2,3,1 D)2,3,2

A)无限次 B)有语法错,不能执行 C)一次也不执行

)。

D)执行 1 次

12.以下程序的输出结果是(

A)1,2,3 B)2,3,3

void main( )

10.

若变量 c 为 char 类型,能正确判断出 c 为大写字母的表达式是(

)。

A)'A'<=c<='Z'

C)(A<=c)&&(c<=Z)

11.

有以下程序段:

i

n

t

k

=

0

;

w

h

i

l

e

(

k

=

1

)

k++;

while 循环执行的次数是(

B)('A'<=c)||(c<='Z')

D)('A'<=c)&&(c<='Z')

{int x=1,a=0,b=0;

switch(x)

.

.

{ case 0:b++;

case 1:a++;

case 2:a++;b++; }

printf("a=%d,b=%d",a,b);

}

C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

A)a=1,b=0 B)a=1,b=1 C)a=2,b=1 D)

a=2,b=2 13.若有定义 int i = 1;,执行语句 while ( i < 10 )

i++; 后,i 的值为( )。

A)9 B)10 C)11 D)12

14.有说明语句 int a[ ]={1,2,3,4,5};,则数组 a 包括了( )个元素。

A)10 B)5 C)6 D)不确定

15.以下程序段执行后,输出结果是( )。

char str[]="abcn012n";printf("%d",strlen(str));

A)5 B)6 C)7 D)13

16.

若有以下定义:float t[5][4];,能正确引用 t 数组元素的表达式是( )。

A)t[1][4] B)t[5][0] C)t[0][0] D)t[0,0]

17.

执行下列程序段:

int i,s = 0;

int a[ ][3] = {{1,2},{3,4},{5,6}};

for ( i = 0;i < 3;i++ )

s = s + a[i][i];

则 s 的值是( )。

A)5 B)6 C)12 D)21

18.

下述对字符数组的描述中,错误的是( )。

A)字符数组可以存放字符串 B)

.

字符数组中的字符串可以整体输入输出

.

.

D)不可以用关系运算符对字符数组中的字符串进行比较

类型应是( )。

B) extern C) static

)。

D)==

)。

D) register

.

)。

A) auto

24.类型相同的两个指针变量之间不能进行的运算是(

A)+ B)- C)=

19.

设有宏定义#define Y(x) (x)+ 2 ,则下面程序段的运行结果是(

int a = 2,b =

2,c = 1;

printf("%dn",a

25.若有说明语句:int i, x[3][4] ;,则不能将 x[1][1]的值赋值给变量 i 的语句是(

* Y( b + c ) );

A)7 B)8 C)9 D)10 20.若用数组名作为函数调用的实参,传递给形参的是( )。

A)数组的长度 B)数组第一个元素的值

C)数组中全部元素的值

D)数组

的首地址21.下面叙述中,不正确的是(

)。 A)

在不同的函数中可以使用相同名字的变量B)

函数中的形式参数是局部变量 C)在

一个函数内定义的变量只在本函数范围内有

效 D)在一个函数内的复合语句

中定义的变量在本函数范围内有效

22.

若在程序中定义了以下函数:

float max( float a ,float b )

{ return ( a>b?a:b); }

并将其放在主调函数之后,则在调用之前应该对该函数进行声明,以下选项中错误的

声明是(

)。

A) float max( float a,b ); B) float max( float ,float );

C) float max( float a ,float b ); D) float max( float x

,float y ); 23.要使函数体内的某局部变量能保留函数前一次调用后的值,供下

一次调用时继续使用,该变量的存储

.

.

A)i = *( *( x + 1 ) + 1 );

B)i = x[1][1];

D)i = *( x[1] + 1 );

A)4 B)0 C)5 D)6

C)i = *( *( x + 1 ) );

26.有如下程序段:

int a[6] = { 1,2,3,4,5,6 };

int m,*ptr;

ptr = &a[0];

m = ( *ptr )*( *( ptr + 2 ) ) *( *( ptr + 4 ) );

执行该程序段后,m 的值为( )。

A) 15 B)48 C)24

27.

设有定义:enum team{ my,your=4,his,her = his+10};

则枚举元素 my、your、his、her 的值分别是( )。

A)0 1 2 3 B)0 4 0 10 C)0 4 5 15

28.

下面程序的运行结果是( )。

union myun

{ struct

{ int x,y,z; }u;

int k;

}a;

void main( )

{ a.u.x = 4;

a.u.y = 5;

a.u.z = 6;

a.k = 0;

printf("%dn",a.u.x);

}

D)8

D)1 4 5 15

.

29.

表达式 11 & 18 的值是(

)。

.

void

main( )

A)0

B)1

C)2

{ char ss[10] ="12345";

D)27 30.当顺利执行了文件关闭操作后,fclose 函数的返回值是( )。

A) 0 B)true C) -1 D) 1

得分 阅卷人 复核人

二、填空题(每小题 2 分,共计 20 分)。

1.C 语言源程序编译后生成 程序,然后经

过连接生成可执行程序。2.实型常量有两种表示方法:

小数形式和 。

3.

rewind 函数的功能是 。

4.

若 ch 是字符型变量,与 ch=getchar();功能相同的语句是 。

5.

以下程序段要使指针变量 p 指向一个整型的

动态存储单元,请填空。int * p;

p= malloc(sizeof(int));

6.

已知:int *p,a = 2,b = 1;,则执行程序段 p = &a;a = *p + b; 后,a 的值

为 。

7.

已知:int x = 1, y = 2, z;,则执行 z = x > y ? ++x : ++y;后,z 的值为 。

8.

当执行下面程序且输入:ABC<回车>时,输出的结果是 。

#

i

n

c

l

u

d

e

.

gets(ss);

printf(“%sn”,ss);

}

9.

下面程序的功能是用函数的递归调用求 n!(n≥1),请填空。

float f(int n)

发布评论

评论列表 (0)

  1. 暂无评论