文档库 最新最全的文档下载
当前位置:文档库 › C语言程序设计期末考试题库

C语言程序设计期末考试题库

C语言程序设计期末考试题库
C语言程序设计期末考试题库

C语言程序设计期末考试题库

一、单项选择题

1.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( )

A.连接、编译

B. 连接、运行

C. 编译、运行

D. 编译、连接

2.下列说法正确的是()

A.一个c语言程序并非总是从主函数位置开始执行的

B.一个c语言程序有且只有一个主函数

C.函数可以嵌套定义,不可以嵌套调用

D.程序函数的位置不可以任意

3.下面是合法C语言标识符的是()

A. 2A_K;

B. _M+N;

C. –M3;

D. AC_2;

4.下列格式符中,可以用于控制字符输出的是( )

A. %d

B. %f

C. %o

D. %c

5.设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=30)后,x的值是( )

A. 4;

B. 16;

C. 30;

D. 50;

6.执行语句“for(i=1,s=0;i<=5;i++) s+=i;”后,变量s、i的当前值是( )

A. 10,5

B. 15,6

C. 15,5

D. 10,6

7.若有定义int x,*p;,则以下正确的赋值表达式是( )

A. p=x;

B. p=&x;

C. *p=&x;

D. *p=*x;

8.以下对结构体类型变量的定义中,不正确的是( )

A. typedef struct aa

B. #define AA struct aa

{ int n; AA { int n;

float m; float m;

}AA; }stud;

AA stud;

C. struct

D. struct

{ int n; { int n;

float m; float m;

}aa; }stud;

struct aa stud;

9.有如下函数调用语句:

func(rec1,rec2+rec3,(rec4+rec5));

函数调用语句中,含有的实参个数是( )

A. 3

B. 4

C. 5

D. 以上均不是

10.对于以下宏定义:

#define SQ(x) x*x

#define QQ(x,y) SQ(x)- SQ(y)

宏调用QQ(2*3,2+3)执行后值为( )

A.25

B.11

C.43

D.以上均不是

11.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( )

A.连接、编译

B. 连接、运行

C. 编译、运行

D. 编译、连接

12.下列说法正确的是()

A.一个c语言程序并非总是从主函数位置开始执行的

B.一个c语言程序有且只有一个主函数

C.函数可以嵌套定义,不可以嵌套调用

D.程序函数的位置不可以任意

13.下面是合法C语言标识符的是()

A. 2A_K;

B. _M+N;

C. –M3;

D. AC_2;

14.下列格式符中,可以用于控制字符输出的是( )

A. %d

B. %f

C. %o

D. %c

15.设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=30)后,x的值是( )

A. 4;

B. 16;

C. 30;

D. 50;

16.执行语句“for(i=1,s=0;i<=5;i++) s+=i;”后,变量s、i的当前值是( )

A. 10,5

B. 15,6

C. 15,5

D. 10,6

17.若有定义int x,*p;,则以下正确的赋值表达式是( )

A. p=x;

B. p=&x;

C. *p=&x;

D. *p=*x;

18.以下对结构体类型变量的定义中,不正确的是( )

A. typedef struct aa

B. #define AA struct aa

{ int n; AA { int n;

float m; float m;

}AA; }stud;

AA stud;

C. struct

D. struct

{ int n; { int n;

float m; float m;

}aa; }stud;

struct aa stud;

19.有如下函数调用语句:

func(rec1,rec2+rec3,(rec4+rec5));

函数调用语句中,含有的实参个数是( )

A. 3

B. 4

C. 5

D. 以上均不是

20.对于以下宏定义:

#define SQ(x) x*x

#define QQ(x,y) SQ(x)- SQ(y)

宏调用QQ(2*3,2+3)执行后值为( )

A.25

B.11

C.43

D.以上均不是

21.有如下程序的输出结果是()

main( )

{int y=3,x=3,z=1;

Printf(“%d %d\n”,(++x,y++),z+2);

}

A 3 4

B 4 2

C 4 3

D 3 3

22.下列说法不正确的是()

A 主函数main中定义的变量在整个文件或程序中有效

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

C 形式参数是局部变量

D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效. 23.算术表达式 x+a%3*(int)(x+y)%2/4的值为()。其中,x=3.5,a=7,y=4.7。

A 2.500000

B 3.500000

C 3.000000

D 4.500000

24.设有如下定义:

int a=1,b=2,c=3,d=4,m=2,n=3;

则执行表达式(m=a>b)&&(n=c>d)后,n的值为()

A 1

B 0

C 3

D 4

25.以下程序段运行后i的值为()。

int i=0,c=1;

switch(c)

{ case 1: i+=2;

case 2: i+=1; break;

default:i+=4;

}

A 3

B 7

C 1

D 4

26.若有以下定义及语句,则对数组a元素正确引用表达式是()

int a[3][4];

int (*p)[4]=a;

A p+1

B *(p+2)

C *(p+2)[1]

D *(*p+1)

27.以下程序的输出结果为()。

main( )

{ char s1[40]="country",s2[20]="side";

int i=0,j=0;

while(s1[i]!='\0') i++;

while(s2[j]!='\0') s1[i++]=s2[j++];

s1[i]=0;

printf("%s\n",s1);

}

A side

B country

C sidetry

D countryside

28.有如下函数调用语句:sum(r1,r2+r3,(r4,r5));则含有的实参个数是()。

A 3

B 5

C 4

D 有语法错

29.有如下函数:

int f(int a)

{ auto int b=0;

static int c=3;

b=b+1;

c=c+1;

return(a+b+c);

}

如果有int i,j; ,则执行两次调用i=f(3);j=f(3)后,i,j值为()

A 7,7

B 7,8

C 8,9

D 8,7

30.设有说明 int (*ptr)();其中标识符ptr是()。

A 是一个指向整形变量的指针

B 是一个指针,它指向一个函数值是int的函数

C 是一个函数名 D定义不合法

31.常数的书写格式决定了常数的类型和值,0x1011是( )

A.8进制整型常量

B.字符常量

C.16进制整型常数

D.2进制整型常数

32. 执行下列程序后, a值为: ()

int a, b;

a = 15 ;

b = 12;

a = (a-- == b++) ? a%5 : a/5;

(A) 0 (B) 2.8 (C) 4 (D) 2

33.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()

(A) 地址传递 (B) 单向的值传递

(C) 由实参传给形参,再由形参传给实参 (D)传递方式由用户指定

34.有如下程序段

int *p,a,b=1;

p=&a;*p=10;a=*p+b;

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

(A) 12 (B) 11 (C) 10 (D) 编译出错

35.已知char和int类型分别占1和2个字节,则sizeof(yy) 的返回值应为: ()

union

{

char a1;

int a2;

int a3;

} yy;

(A) 2 (B) 4 (C) 5 (D) 定义有错

36.设j为int型变量,下列for循环语句的执行结果是()

for( j=10;j>3;j--)

{ if (j%3) j--;

--j; --j;

printf(“%d”,j);

}

(A) 6 3 (B) 7 4 (C) 6 2 (D) 7 4 1

37.宏定义"#define p(x,y,z) x=y*z;"的宏替换"p(a,x+5,y-3.1)"应为( )

A. a=x+5*y-3.1

B. a=(x+5)*(y-3.1);

C. a=x+5*y-3.1

D. a=(x+5)*(y-3.1)

38.下列各语句定义了数组,其中一个不正确的是( )

A. static int a[5],b[2][3];

B. char no[30],rec[30,6];

C. int x[ ]={2,4,6,8,10};

D. int x[10]={1,2,3,4,5};

39、以下是合法的C语句的是( )

A)a==1 B)printf(“hello”); C)a=int(i); D)i++ j++;

40.一个C程序由若干个C函数组成,各个函数在文件中的书写位置为()

(A) 任意 (B) 第一个函数必须是主函数,其他函数任意

(C) 必须完全按调用顺序排列 (D) 其他函数必须在前,主函数必须在最后

41. 以下选项中合法的字符常量是( )

A. “B”

B. ‘\010’

C. 68

D. D

42.若有以下定义,则表达式的值为3的是()

int k=7,x=12;

A. x%=(k%=5)

B. x%=(k-k%5)

C. x%=k-k%5

D. (x%=k)-(x%=5)

43.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是 ( )

A. 1

B. 2

C. 2.0

D. 2.5

44.判断字符变量c的值为数字(‘0’---‘9’)则返回1,否则返回0,可用表达式( )

A. ‘0’<=c<=‘9’

B. ‘0’<=c&&c<=‘9’

C. ‘0’<=c||c<=‘9’

D. ‘9’>=c>=‘0’

45.有如下程序,该程序的执行结果是( )

main()

{

int n=9;

while(n>6)

{ n--; printf(“%d”,n);}

}

A. 987

B. 876

C. 8765

D. 9876

46.若有以下的定义及语句,则对数组元素正确引用的表达式是 ( )

int a[5][4];

int (*p)[4]=a;

A. p+1

B. *(p+3)

C. *(p+1)+2

D. *(*(p+3)+2)

47.有如下函数,调用f(“1234”)的返回值为( )

int f(char *s)

{

int k=0;

while(*s)

k=k*10+*s++-‘0’;

return k;

}

A. “1234”

B. 1234

C. “4321”

D. 4321

48.对于以下程序段,运行后i的值为( )

enum WEEK{1,2,3,4,5,6,7};

enum WEEK a=1;

int i=0;

switch(a)

{

case 1: i=2;

case 2: i=3;

default: i=4;

}

A. 2

B. 0

C. 3

D. 4

49.执行下列程序后变量i的值应为( )

#define TA(x,y) ((x)*y)

int i=3;

i=TA(i,i+1)+2;

A.15

B. 10

C.12

D. 14

50. 变量a所占内存字节数是( )

union U

{ char st[4];

int i;

long l;

};

struct A

{ int c;

union U u;

}a;

A. 4

B. 5

C. 6

D. 8

51.下列字符串不是标识符的是( )

sum B. Average C. Day_night D. M.D.JOHN

52. 在C语言中,回车换行符是( )

\ n B. \ t C. \ v D. \ b

53. 在C语言中,语句和数据定义是用()作为结束标记的A.句号 B.逗号 C.分号 D.括号

54.设有如下定义:

int x=10,y=5,z;

则语句printf(“%d\n”,z=(x+=y,x/y));

的输出结果是()

A.0 B.1 C.3 D.4

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

main( )

{ char c1=’a’, c2=’A’;

printf(“%c,%c,%d,%d\n”, c1, c2,c1,c2);}

A.因输出格式不合法,输出出错信息

B.a,A,97,65 C.65,97,A,a D.a,A,a,A

56. 完成C源文件编辑后经过编译、连接,生成文件扩展名为()的可执行文件。

A. .c

B. .exe

C. .obj

D. .txt

57.下列运算符优先级最高的是( )

A. >

B. +

C. &&

D. !=

58.一个C程序的执行是从()

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

B.本程序中的第一个函数开始,到本程序中的最后一个函数结束

C.本程序中的main函数开始,到本程序中的最后一个函数结束

D.本程序中的第一个函数开始,到本程序中的main函数结束

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

A. 构成C程序的基本单位是函数

B. 可以在一个函数中定义另一个函数

C. main()函数必须放在其它函数之前

D. 所有被调用的函数一定要在调用之前进行定义

60.设a和b均为double型常量,且a=5.0、b=2.0,则表达式(int)(a/b)的值是()

A. 2.5

B. 2.000000

C. 2.500000

D. 2

61.取模运算符“%”不能用于哪一种类型的运算()

A.X=10%3

B.X=6%3

C.X=1024%1

D.X=6.28%3.14

12.下列对变量的定义哪个正确()

A. int x, int y;

B. char s1,s2

C. float a,b;

D.char if;

63.字符串“HELLO!”的长度是多少?在内存中占用多少单元数?()

A.长度为6,占6个单元

B. 长度为6,占7个单元

C.长度为7,占7个单元

D. 长度为7,占6个单元

64.下列错误的赋值语句是()

A.X=Y++=1;

B.X=3*4;

C.X=‘F’-‘A’

D.X=2*(++I);

65.如果:a=5;b=6;那么:a>=b&&(a+5)>=(b-3)和a>b||a!=b的值各是多少()

A.0,0

B.0,1

C.1,0

D.1,1

以下()是C语言提供的合法数据类型关键字

A) Float B)ChAR C) Intger D) unsigned

以下选项中合法的字符常量是()

A)“B” B) ‘\010’ C) 68 D) D

设正x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是() printf(”%d,%d\n”,x--,--y);

A) 10,2 B) 9,3 C) 9,2 D)10,3

下列字符串不是标识符的是( )

A.YEAR

B. Average

C. stUDENT

D. 7_num

66. 以下选项中合法的字符常量是( )

A. “B”

B. ‘\010’

C. 68

D. D

67.若有以下定义,则表达式的值为3的是()

int k=7,x=12;

A. x%=(k%=5)

B. x%=(k-k%5)

C. x%=k-k%5

D. (x%=k)-(x%=5)

68.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是 ( )

A. 1

B. 2

C. 2.0

D. 2.5

69.判断字符变量c的值为数字(‘0’---‘9’)则返回1,否则返回0,可用表达式( )

A. ‘0’<=c<=‘9’

B. ‘0’<=c&&c<=‘9’

C. ‘0’<=c||c<=‘9’

D. ‘9’>=c>=‘0’

70.有如下程序,该程序的执行结果是( )

main()

{

int n=9;

while(n>6)

{ n--; printf(“%d”,n);}

}

A. 987

B. 876

C. 8765

D. 9876

71.若有以下的定义及语句,则对数组元素正确引用的表达式是 ( )

int a[5][4];

int (*p)[4]=a;

A. p+1

B. *(p+3)

C. *(p+1)+2

D. *(*(p+3)+2)

72.有如下函数,调用f(“1234”)的返回值为( )

int f(char *s)

{

int k=0;

while(*s)

k=k*10+*s++-‘0’;

return k;

}

A. “1234”

B. 1234

C. “4321”

D. 4321

73.对于以下程序段,运行后i的值为( )

enum WEEK{1,2,3,4,5,6,7};

enum WEEK a=1;

int i=0;

switch(a)

{

case 1: i=2;

case 2: i=3;

default: i=4;

}

A. 2

B. 0

C. 3

D. 4

74.执行下列程序后变量i的值应为( )

#define TA(x,y) ((x)*y)

int i=3;

i=TA(i,i+1)+2;

A.15

B. 10

C.12

D. 14

75. 变量a所占内存字节数是( )

union U

{ char st[4];

int i;

long l;

};

struct A

{ int c;

union U u;

}a;

A. 4

B. 5

C. 6

D. 8

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

main()

{ int a=3;

printf(“%d\n”,(a+=a-=a*a) );

}

A) –6 B)12 C) 0 D) –12

77.下列说法错误的是()

A.一个c语言程序总是从主函数位置开始执行的

B.一个c语言程序有且只有一个主函数

C.函数可以嵌套定义,不可以嵌套调用

D.程序函数的位置可以任意

78.在C语言中,语句和数据定义是用()作为结束标记的A.分号 B.逗号 C.句号 D.括号

79.语句“x*=y+2;”与下列( )语句结果一样

A. x=x*y+2;

B. x=2+x*y;

C. x=x*(y+2);

D. x=y+2*x;

80.下列各语句中,能够且仅输出整型变量a、b中最大值的是( )

A. if(a>b) printf(″%d\n″,a);printf(″%d\n″,b);

B. printf(″%d\n″,b);if(a>b) printf(″%d\n″,a);

C. if(a>b) printf(″%d\n″,a);else printf(″%d\n″,b);

D. if(a

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

main()

{ int x=4,y=2,z;

printf(“%d\n”,z=(x-=y,x/y));}

A.0 B.1 C.2 D.3

82.以下不能正确定义二维数组的选项是()

A)int a[2][2]={{1},{2}};

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

C)int a[2][2]={{1},2,3};

D)int a[][2]={1,2,3,4};

83.判断字符变量c的值为数字(’0’—’9’)则返回1,否则返回0, 可用表达式: ()

(A) ‘0’<=c && c<=‘9’ (B)‘0’<=c<=‘9’

(C) ‘0’<=c || c<= ‘9’ (D)以上均不是

84.设j为int型变量,下列for循环语句的执行结果是()

for( j=7;j>3;j--)

{ if (j%3) j--;

--j; --j;

printf(“%d”,j); }

(A) 4 (B) 4 0 (C) 死循环 (D) 4 1

85.已知char和int类型分别占1和2个字节,则sizeof(yy) 的返回值应为: ()union

{

char a1;

int a2;

int a3;

} yy;

(A) 2 (B) 4 (C) 5 (D) 定义有错

86.以下程序的运行结果是()

# define MIN(x,y) (x)<(y) ? (x) : (y)

main()

{ int i=10,j=13,k;

k=10*MIN(i,j);

printf(“%d\n”,k);}

A )10

B )130 C) 100 D) 13

87. 下列字符序列中,不合法的C语言标识符的是()。

A.abc123 B.no.1 C._123_ D._ok

88. 以下说法中正确的是()。

A.C语言程序总是从第一个定义的函数开始执行

B.在C语言程序中,要调用的函数必须在main( )函数中定义

C.C语言程序总是从main( )函数开始执行

D.C语言程序中的main( )函数必须放在程序的开始部分

89. 设以下变量均为int类型,则值不等于7的表达式是()。

A.(m=n=6, m+n, m+1)

B.(m=n=6, m+n, n+1)

C.(m=6, m+1, n=6, m+n)

D.(m=6, m+1, n=m, n+1)

90. 当调用函数时,实参是一个数组名,则向函数传送的是()。

A. 数组的长度

B. 数组的首地址

C. 数组每一个元素的地址

D. 数组每个元素中的值

91. 下列程序运行的情况是()。

main()

{ int i=1,sum=0;

while(i<10)sum=sum+1,i++;

printf("i=%d,sum=%d",i,sum);

}

A. i=2,sum=1

B.i=9,sum=9

C. i=10,sum=9

D.运行出现错误

92. 设x、y和z都是int类型变量,且x=3,y=4,z=5,则下面的表达式中,值为0的表达式是()。

A.’x’ && ’y’ B.x<=y

C.x||y+z && y-z D.!((x

93. 以下程序的输出结果是( )。

main()

{ int n=4;

while (n- -)

printf(〞%d〞,- -n);

}

A.20

B.31

C.321

D.210

94. 以下对一维整型数组a正确定义的是( )。

A.int a(10);

B. int n=10,a[n];

C.int n;

D. #define SIZE 10

scanf("%d",&n); int a[SIZE];

int a[n];

95. 若定义如下变量和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9};

则下面语句的输出结果是( )。

for(i=0;i<3;i++) printf("%d ",x[i][2-i]);

A. 1 5 9

B. 1 4 7

C. 3 5 7

D. 3 6 9

96. 有下列程序输出结果是( )。

#include

main()

{union

{int k;

char i[2];

}*s,a;

s=&a;

s->i[0]=0x39;

s->i[1]=0x38;

printf("%x\n",s->k);

}

A. 3938

B. 3839

C.380039

D.390038

97.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( )

A.连接、编译

B.编译、连接

C.连接、运行

D.运行

98.下列说法错误的是()

A.一个c语言程序总是从主函数位置开始执行的

B.一个c语言程序有且只有一个主函数

C.函数可以嵌套定义,不可以嵌套调用

D.程序函数的位置可以任意

99.C语句“x*=y+2;”还可以写作( )

A. x=x*y+2;

B. x=2+y*x;

C. x=x*(y+2);

D. x=y+2*x;

100.下列格式符中,可以用于控制输出十进制整数的是( )

A. %d

B. %f

C. %o

D. %c

101.下列各语句中,能够且仅输出整型变量a、b中最大值的是( )

A. if(a>b) printf(″%d\n″,a);printf(″%d\n″,b);

B. printf(″%d\n″,b);if(a>b) printf(″%d\n″,a);

C. if(a>b) printf(″%d\n″,a);else printf(″%d\n″,b);

D. if(a

102.执行语句“for(i=1;i<=10;i++) s+=i;”后,变量s、i的当前值是( ) A. 55,11 B. 55,10

C. 45,10

D. 45,11

103.下列各语句定义了数组,其中一个不正确的是( )

A. int a[5],b[2][3];

B. char no[30],rec[];

C. int x[]={2,4,6,8,10};

D. int x[10]={1,2,3,4,5};

104.下列算法的特性,其中哪一个是不正确的( )

A. 有穷性

B. 有一个或多个输入

C. 不确定性

D. 可执行性

105.执行语句“for(i=0;i<10;++i,++a)scanf(″%d″,a);”试图为int类型数组a [10]输入数据,是错误的。错误的原因是( )

A.变量不能做自增运算

B.数组首地址不可改变

C.++i应写作i++

D.++a应写作a++

106.定义函数时,缺省函数的类型声明,则函数类型取缺省类型( )

A. void

B. char

C. float

D. int

二、填空题

1.设int a=5, c=32;float b=

2.5;,表达式b+c/a的值为___ ___。

2.若x和a均是int型变量,则计算x=(a=4,6*2)后x的值是 __。

3.设a=3,b=4,c=5。则a+b>c&&b==c的值为 ___。

4.有如下程序段:int k=10;

while(k=0) k=k-1;

则循环体语句执行___ 次。

5.int i=0,s=0;

while (i

等价于 int i,s;

for(______;________;________);

6.将p说明为字符数组指针,数组大小为10,应写为______________;

7.对于 int *p,*q,i=5,j=6; ,执行:

p=&i;q=p;p=&j;

输出结果(*p)=_______,(*q)=________。

8.设有以下变量定义,并已赋确定的值,则表达式:w*x+z-y所求得的数据类型为____ _。 char w; int x; float y; double z;

9.当a=5,b=4,c=2时,表达式a>b!=c的值为____ __。

10. 用for循环打印 1 4 7 10 13 16 19 22 25 , 其语句应为:

for (i=1; i<=9; i++) printf(“%3d”, )

11.执行语句“a=5+(c=6);”后,变量a、c的值依次为___ , _ 。

12.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则a[1][2]的值为,a[2][1]的值为_ 。

13.表达式~3&3的值为_______________

14. 若有以下定义和语句,则++(*p)的值为

int a[4]={0,1,2,3},*p;

p=&a[1];

15. 若有定义:int a[2][3]={2,4,6,8,10,12},(*p)[3];p=a[0];*(*(p+1)+1)的值是。

16.设int a=5, c=32;float b=2.5;,表达式b+c/a的值为___ ___。

17.若x和a均是int型变量,则计算x=(a=4,6*2)后x的值是 __。

18.设a=3,b=4,c=5。则a+b>c&&b==c的值为 ___。

19.有如下程序段:int k=10;

while(k=0) k=k-1;

则循环体语句执行___ 次。

20.int i=0,s=0;

while (i

等价于 int i,s;

for(______;________;________);

21.将p说明为字符数组指针,数组大小为10,应写为______________;

22.对于 int *p,*q,i=5,j=6; ,执行:

p=&i;q=p;p=&j;

输出结果(*p)=_______,(*q)=________。

23.设x、y、z、和k都是int型变量,则执行表达式x=(y=4,z=16,k=32)后,x的值为____

24.定义字符指针数组a,数组大小为10,应写为

25.对于整形变量i,j 值分别为1,2,执行scanf(“i=%d,j=%d”,&i,&j);则在输入数据时如何输入

26.若x和a均是int型变量,则计算表达式x=(a=4,5*3)的值为

27.int i=0,s=0;

while(i<4) s+=i++;

等价于

int i,s;

for( ; ; );

28.对于 int *p,*q,i=7,j=8;执行:p=&i;q=p;p=&j;输出结果(*p)=

(*q)=

29.以下函数用来求出两整数之差并通过形参将结果传回,请填空。

void func(int x,int y,*z)

{ }

30.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型

是。

31.一个C源程序至少包括一个,即。

32.一个函数由两部分组成,它们是和。

33.C语言的数据类型有四大类,它们是、、单精度实

型、。

34.Break语句只能用于和语句。

35.若x=3,y=z=4,下列各式的结果是什么?

(1) (z>=y)?1:0

(2) z>=y&&y>=x

(3) x

(4) x

(5) x&&x||x

36.在C语言中,函数的隐含存储类型是____ ___。

37.设有以下变量定义,并已赋确定的值,则表达式:w*x+z-y所求得的数据类型

为。

char w; int x; float y; double z;

38.当a=5,b=4,c=2时,表达式a

39.若有说明int i, j, k; 则表达式i=10,j=20,k=30,k*=i+j的值为__ ____。

40.若已知a=10,b=20,则表达式!a

41.用for循环打印 1 4 7 10 13 16 19 22 25 , 其语句应为_

42.设i、j、k均为int变量,执行完下面的循环后i、j、k值为_ __。

(注:i,j,k中任意答对一个均得分)

for ( i=0,j=10;i

执行完下列语句段后, i值为_ __。

int i=3, j;

j=10*i;

i+=j*=i+2;

43.若有定义:int a[3][4]={{1,2},{3,7,5},{4,6,8,10}};则a[1][2]的值

为。

44.若有以下定义和语句,则++(*p)的值为。

int a[4]={1,2,4,5},*p;

p=&a[1];

45. 1≤x<30的C语言表达式是__ ___。

46. C语言中,数组元素的下标下限为 __ ___。

47. 表达式!9!=0的值为。

48. 一个函数由两部分组成,它们是和。

49. 表达式(x=2,x-1,++x)的值为。

50. 有以下说明定义语句,可用a.day引用结构体成员day,请写出引用结构体成员

a.day

的其它两种形式,。

{

int day;

char mouth;

int year;

} a,*b;

b=&a;

51.若声明“char a[15]=″Windows-XP″;”,

执行语句“printf(″%s″,&a[3]);”的输出结果为__ _。

52. 定义如下:

typedef char INT;

INT n;

则变量n的类型为__ ____。

53.设int a=5, c=32;float b=2.5;,表达式b+c%a的值为___ ___。

54.计算a、b中最小值的条件表达式为____ __。

55.计算x、y之和的平方根,表达式应写作___ ___。

56.执行语句“a=5+(c=6);”后,变量a、c的值依次为___ , _ 。

57.执行语句“n=1;if(n=5) n++;"后,变量n值为___ ___。

58.执行语句: s=0;n=5;

while(--n) s+=n;

执行后,变量s、n值依次为____ __,。

59.若声明“char a[15]=″Windows-9x″;”,

执行语句“printf(″%c″,a[3]);”的输出结果为____ _。

60.程序中使用了输入、输出函数(如printf()),则应当包含的头文件名为:____ 。

61.设有以下变量定义,并已赋确定的值,则表达式:w*x+z-y所求得的数据类型为____ _。 char w; int x; float y; double z;

62.当a=5,b=4,c=2时,表达式a>b!=c的值为____ __。

63. 用for循环打印 1 4 7 10 13 16 19 22 25 , 其语句应为:

for (i=1; i<=9; i++) printf(“%3d”, )

64.执行语句“a=5+(c=6);”后,变量a、c的值依次为___ , _ 。

65.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则a[1][2]的值为,a[2][1]的值为_ 。

66.表达式~3&3的值为_______________

67. 若有以下定义和语句,则++(*p)的值为

int a[4]={0,1,2,3},*p;

p=&a[1];

68. 若有定义:int a[2][3]={2,4,6,8,10,12},(*p)[3];p=a[0];*(*(p+1)+1)的

值是。

69.执行语句"for(s=0,i=1;i<11;i++) {if(i==6)continue;s+=i;}"后,s值为____ __。

70.若声明"char a[ ]=″windows″,b[ ]=″9x″;",执行语句"printf(″%s″,strcat(a,b));"的输出结果为___ __。

71.C语言中能表示a≥10或a≤10的关系表达式是 _ _______。

72.计算a、b中最小值的条件表达式为___ ___。

73.执行语句"a=5+(c=6);"后,变量a、c的值依次为__ ___。

74.若已知a=10,b=20,则表达式!a

75.程序中使用了数学函数(如abs()),则应当包含的头文件名为:__ __ 。

76.假设int变量占两个字节的存储单元,若有定义:int x[10]={1,2,3};则数组x

在内存中所占的字节为______ ______。

77.在C语言中,函数的隐含存储类型是______ _____。

78.a、b都是结构体变量,语句"a=b;"能够执行的条件是___ ___。

三、程序阅读题

1. #include

main()

{ int i,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(″%d, %d, %d, %d″,i,j,m,n);

}

输出结果:

2.. #include

main()

{ int i;

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

{ if(i*i/20>1) break;

printf("%d; ",i);

}

printf("\n");

}

输出结果:

3. #include

int fac(int n)

{ static int f=1;

f=f*n;

return(f);

}

main()

{ int i;

for(i=2;i<=5;i++)

printf(“%d!=%d\n”,i,fac(i)); }

输出结果:

4. #include

main()

{ char s[]=“ABCD”,*p;

for(p=s+1;*p!=’\0’;p++)

printf(“%s\n”,p);

}

该程序的输出结果是:

5. #include

int f(char *s)

{ int k=0;

while(*s) k=k*10+*s++-‘0’;

return(k);

}

main()

{ int a;

a=f(“1234”);

printf(“a=%d\n”,a);

}

该程序的输出结果是:

6. #include

void main(void)

{

int num= 0;

while(num<=2)

{ num++; printf(“%d\n”,num);}

}

输出结果:

7. #include

void main(viod )

{ int a,s,n,count;

a=2;s=0;n=1;count=1;

while(count<=4) {n=n*a; s=s+n; ++count;} printf(“s=%d”, s);

}

输出结果:

8. #include

void main()

{ int n;

for(n=1;n<=10;n++)

{ if(!(n%3))

continue;

printf(“%d”,n);

}

}

输出结果:

9. #include

void f( int y,int *x)

{y=y+*x; *x=*x+y;}

void main(viod )

{ int x=2,y=4;

f(y,&x);

printf(“%d %d\n”,x,y);

}

输出结果:

C语言程序设计试题及答案

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12AC C、sun D、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是(B) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D、+ 6、以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)

A、INPUTx、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain() {intm,n; scanf(“%2d%3d”,&m,&n); printf(“m=%dn=%d\n”,m,n); } A、m=23n=45 B、m=234n=56 C、m=23n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main() {intx,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、0B、22C、12D、10 11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 12、以下对二维数组的正确说明的语句是(C) A、inta[3][] B、floata(3,4) C、doublea[3][4] D、floata(3)(4) 13、以下程序的输出结果是(C) main()

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言期末考试题库(第一章 c语言基

一、单项选择 1.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为(). A、关系运算,赋值运算,算术运算 B、算术运算,关系运算,赋值运算 C、算术运算,赋值运算,关系运算 D、关系运算,算术运算,赋值运算 答案:B 2.下述正确的C语言常量是:(). A、E2 B、3e-3 C、1.5E2.5 D、5.0E 答案:B 3.使用共用体变量,不可以(). A、进行动态管理 B、节省存储空间 C、同时访问所有成员 D、简化程序设计 答案:C 4.为表示关系x>=y>=z,应使用C语言表达式为:()

A、(x>=y)&(y>=z) B、(x>=y>=z) C、(x>=y)&&(y>=z) D、(x>=y)AND(y>=z) 答案:C 5.以下程序的输出结果是(). main() {char str[]="ABCD",*p=str;printf("%s\n",p);} A、68 B、ABCD C、不确定的值 D、字符D的地址 答案:B 6.char a[10];不能将字符串"abc"存储在数组中的是(). A、a="abc"; B、a[0]=0;strcat(a,"abc"); C、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; D、strcpy(a,"abc"); 答案:A 7.fscanf函数的正确调用形式是(). A、fscanf(文件指针,格式字符串,输入表列);

B、fscanf(格式字符串,文件指针,输出表列); C、fscanf(fp,格式字符串,输出表列); D、fscanf(格式字符串,输出表列,fp); 答案:A 8.下列数组说明中正确的是(). A、int array[][]={1,2,3,4,5,6,7,8,9,10}; B、int array[][][5]={1,2,3,4,5,6,7,8,9,10}; C、int array[][4]={1,2,3,4,5,6,7,8,9,10}; D、int array[3][]={1,2,3,4,5,6,7,8,9,10}; 答案:C 9.以下选项中,与k=n++完全等价的表达式是(). A、n=n+1,k=n B、k+=n+1 C、k=++n D、k=n,n=n+1 答案:D 10.针对下列程序段回答问题(). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0)continue;

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计试题集

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。

程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言期末考试试题

C语言试题1 一填空题(15分) 1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为()。 2.设int a=7,b=9,t;执行完表达式t=(a>b)?a:b后,t的值是()。 3.下面程序段的输出结果是()。 int a=1234; a=a&0377; printf(“%d %o\n”,a,a); 4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。 char a[3]; 5.设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a的值是()。 #define PR 80 #define PP PR+403 6.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:()、()和()。7.在C文件中,数据存在的两种代码形式是()和()。 8.C语言中调用()函数打开文件,调用()函数关闭文件,调用()函数可实现文件的随机读写。 9.若有int a[3]={10,12,30};则a+1是()的地址,*(a+2)=()。 二判断对错(5分,对的划“√”,错的划“×” 1.在Turbo C中,整型数据在内存中占2个字节。() 2.表达式1/4+2.75的值是3。() 3.结构体类型只有一种。() 4.函数若无返回值,则它一定无形参。() 5.C语言只能处理文本文件和二进制文件。() 三选择题(20分) 1.设int a=12; 表达式a+=a-=a*=a的值是()。 A 12 B 144 C 0 D 132 2.以下程序的输出结果是()。 main( ) { int a=011; printf(“%d\n”,++a); } A 12 B 11 C 10 D 9 3.以下程序的输出结果是()。 #define ADD(x) (x)+(x) main() { int a=4,b=6,c=7,d=ADD(a+b)*c; printf(“d=%d”,d); } A d=70 B d=140 C d=280 D d=80 4.下面的选项中正确的赋值语句是(char a[5],*p=a;)()。 A p=“abcd”; B a=“abcd”; C *p=“abcd”; D *a=“abcd”; 5.若k为整形,则while循环执行()次。 k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”); A 10 B 9 C 0 D 1

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

C语言程序设计试卷及 答案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

C语言程序设计 一、单项选择题(共15小题,每题4分,共60分) 1、下列有关C语言的叙述中错误的是()。 A)C语句必须以分号结束B)任何一个C程序中有且只有一个主函数 C)复合语句在语法上可被看作一条语句D)C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A)MAINB)_HJC)2ongD)LINE1 3、以下能正确定义一维数组的是()。 A)inta[5]={0,1,2,3,4,5};B)inta[5]=”012345”; C)chara[]=”012345”;D)chara[5]={0,1,2,3,4,5}; 4、以下关于main()函数的说法,正确的是。 A)main()必须是程序的第一行B)main()可以有参数 C)一个程序可以有多个main()D)main()可以被用户自定义的函数调用 5、设charstr1[10]=“ABCDE”,str2[10]=“xyz”; 则执行语句printf(“%d”,strlen(strcpy(str1,str2)));后的输出结果是()。 A)9B)8C)5D)3 6、若用数组名作为函数调用的实参,则传递给形参的是()。 A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为()。 A)void?B)double?C)int?D)char 8、下面不能正确进行字符串赋值操作的语句是()。

C语言程序设计习题集(3)

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0

8、有以下程序: #include voidmain(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 9、有以下程序: #include voidmain(){ inti,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

2019年C语言期末考试题与答案

1、给定n个数据, 求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可)。 最大值第三行i<=n五行k+1 2、编写程序求无理数e的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他)6、求出N×M整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 1 5 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n位自然数的各位数字的积。(n 是小于10的自然数) 8、计算n门课程的平均值,计算结果作为函数值返回。例如:若有5门课程的成绩是:92,76,69,58,88,则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。

10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。 11、请编一个函数void fun(int tt[M][N],int pp[N]), tt 指向一个M 行N 列的二维数组,求出二维数组每列 中最大元素,并依次放入pp 所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun 用比较法对主程序中用户输入的具有10 个数据的数组a 按由大到小排序,并在主程序中输出 排序结果。 13、编写main 程序调用函数fact 求解从m 个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m 不能小于n ,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a 和b 分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。 19、对任意输入的 x ,用下式计算并输出 y 的值。 5 x<10 y= 0 x=10 -5 x>10

C语言程序设计试题与答案D

绝密★启用前学院 学年第二学期期末考试 级专业()《 C语言程序设计》试卷D 一、单项选择题(本大题共15小题,每小题2分,共30分) 1、以下正确的C语言自定义标识符是() A._la B.2a_ C.do D.a.12 2、在C语言中,错误 ..的常数表示是() A.0L B.-0x6aL C.′6′D.1.234E3.5 3、设int a,x=2;执行语句a=x>0?3*x:(x=10);后,变量x的值是() A.1 B.2 C.6 D.10 4、设有以下程序段: int x=2,y=2,z=0,a; a=++x||++y&&z++; printf(″%d,%d,%d\n″,x,y,z); 执行后输出的结果是() A.2,2,0 B.3,3,1 C.3,2,0 D.3,2,1 5、逗号表达式a=2*6,a*3,a+5的值是() A.12 B.17 C.36 D.41 6、设int a[2][3]={{1},{2,3}};,则元素a[1][0]的值是() A.0 B.1 C.2 D.3 7、C语言中,错误 ..的int类型的常数是() A.1E5 B.0 C.037 D.0xaf 8、在C语言中,′a′和″a″存储所占用的字节数分别是() A.1,1 B.1,2 C.2,1 D.2,2 9、设int x;,则以下语句中错误 ..的输入是() A.scanf (″%d″,x); B.scanf (″%d″,&x); C.scanf (″%o″,&x); D.scanf (″%x″,&x); 10、在C语言中,运算符″=″和″==″的功能分别是() A.关系运算和赋值运算B.赋值运算和关系运算 C.都是关系运算D.都是赋值运算 11、设int x[]={1,2,3,4,5},*p=x;,则值为3的表达式是() A.p+=2, *p++ B.p+=2, *++p C.p+=2, p++ D.p+=2, ++*p 12、设for(i=0, j=10; (j>0)&&(i<4); i++, j--);,该语句的循环次数是() A.0 B.3 C.4 D.无限 13、设函数定义如下: float f1 (float a, float b) { return (a+b); } 若有float x=1.1, y=2.2;,则以下语句中正确的函数调用是() A.printf (″%f″, f1(x)); B.printf (″%f″,f1(&x, y)); C.printf (″%f″,f1(*x,*y)); D.printf (″%f″,f1(x, y)); 14、若有说明:int i,j=7,*p=&i;则与i=j;等价的语句是()。 A. i=*p; B. *p=*&j; C. i=&j ; D. i=**p; 15、设char str1[10]=″ABCDE″,str2[10]=″XYZ″;则执行语句: printf(″%d″,strlen(strcpy(str1,str2))); 后的输出是()。 A. 3 B. 5 C. 8 D. 9 二、填空题(本大题共10小题,每小题2分,共20分) 16、一个C语言程序的基本组成单位是___________________。 17、求字符串的有效长度的系统函数名是___________________。 18、设float a [4][5];,则数组a中第一维下标的最大值是___________________。 19、设int a; float b; char c; long d; double e; , 则表达式a/c-b+d-e值的类型是 ______________。 20、设int a=2;,则执行a+=a*=15;后,变量a的值是__________。 21、一个C语言程序的执行起点是__________。 22、设double y[4][5];,则数组y中元素的个数是__________。 23、设int x=7,y=3,则表达式x%y+x/y的值是__________。 24、一个short型变量所占内存的字节数是____________________。

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

大学C语言期末考试习题集(带详解答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123 选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai

C语言程序设计试题集及答案

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

相关文档
相关文档 最新文档