(完整版)C程序设计期末考试习题库

(完整版)C程序设计期末考试习题库
(完整版)C程序设计期末考试习题库

13、判断变量ch中的字符是否为大写字母,最简单的正确表达式是(A)。

A、ch>='A'&&ch<='z'

B、A<=ch<=Z

C、'A'<=ch<='z'

D、ch>=A&&ch<=z

14、在C语言中,能表示无符号长整型常数的是(D )。

A、OL

B、4962710U

C、912374u

D、2UL

15、能正确表示C语言的字符常量的是(C)。

A、'\0x41'

B、''A''

C、'\0'

D、''\0''

16、C语言中逻辑表达式的值为(A )。

A、0或1

B、非零值或零值

C、true或false

D、'true'或'false'

17、C语言提供的基本数据类型关键字是(C )。

A、integer

B、FLOAT

C、unsigned

D、Double

18、若定义语句:int b[ ]={1,2,3,4,5},*P=b;则表达式*p++的值是( A )。

A、1

B、2

C、b[0]的地址

D、b[1]的地址

19、在下列选项中,不正确的表达式是(C )。

A、a>b

B、c--, ++b, a+=1

C、a=c+b>n-m=k

D、p++

20、若有以下定义:

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

char cl='b',c2='2';

则数值不为2的表达式是(D )。

A、a[1]

B、'd'-cl

C、a['3'-c2]

D、c2-0

25、下述对C语言字符数组的描述中错误的是(C )。

A、字符数组可以存放字符串

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

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

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

27、以下程序的输出结果是(A )。

main()

{int i=010, j=10, k=ox10;

printf(''%d,%d,%d\n'',i,j,k);

A、8,10,16

B、8,10,10

C、10,10,10

D、10,10,16

28、以下程序的输出结果是(B)。

#include<stdio.h>

main()

{printf(''%d\n'',NULL);}

A、不确定的值(因变量无定义)

B、0

C、-1

D、1

29、以下程序的输出结果是(B )。

main()

{char c1='6',c2='0';

printf(''%d,%d,%d\n'',c1,c2,c1-c2);

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

B、54,48,6

C、6.0,7

D、6,0,6

32、下述对C语言字符数组的描述中错误的是(C )。

A、字符数组可以存放字符串

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

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

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

33、Turbo C中,对于以下程序(A )。

main()

{int x,y;

y=creat(&x);

printf(''%d \n'', y);

creat(int a)

{return a++;}

A、编译时会给出错信息

B、顺利进行编译、连接、执行;不报任何错误

C、顺利通过编译、连接、但不能执行

D、顺利通过编译,但连接出错

34、设有如下定义:

int x=10, y=4,z;

则语句:

printf(''%d\n'', z=(x%y, x/y));

的输出结果是(C )。

A、1

B、0

C、2

D、3

35、下述程序段的输出结果是(D )。

main()

{int x=10, y=10;

printf(''%d, %d\n'', x++, ++y);

A、10,10

B、11,11

C、11,10

D、10,11

36、定义如下变量和数组:

int j;

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

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

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

printf(''%d'', x[i][2-i]);

A、159

B、147

C、357

D、369

37、若要求在if后一对圆括号中表示a不等于0的关系,则不能正确表示这一关系的表达式为( C )。

A、a<>0

B、!a

C、a=0

D、a

38、若m,y,z均为int型变量,则执行下面语句后m值是(A )。

m=1;x=2;y=3;z=4;

m=(m<x)?m:x;

m=(m<y)?m:y;

m=(m<z) ?m:z;

A、1

B、2

C、3

D、4

39、若有定义:int a=7;float x=2.5,y=4.7,则表达式x+a%3*(int)(x+y)%2/4的值是(A )。

A、2.500000

B、2.750000

C、3.500000

D、0.000000

40、如下说法不正确的是(C )。

A、c>a+b等效于c>(a+b)

B、若a,b均为真,则a||b为真

C、表达式'c'&&'d'的值为0

D、逻辑运算符!比逻辑运算符||的优先级高

41、putchar()函数可以向终端输出一个(B )。

A、整型变量表达式值

B、字符

C、字符串

D、实型变量值

42、表达式18/4*sqrt(4.0)/8值的数据类型为(C)。

A、int

B、float

C、double

D、不确定

43、若已定义a为整型变量:

a=-2L;

printf(''%d\n'',a);

则以上语句(B )。

A、赋值不合法

B、输出值为-2

C、输出为不确定值

D、输出值为2

45、若int类型数据占两个字节,则以下语句的输出为(D )。

int k= -1;

printf(''%d,%u\n'',k,k);

A、-1,-1

B、-1,32767

C、-1,32768

D、-1,65535

46、已知字母a的ASCII码十进制值为97,则执行以下语句后的输出为(C )。yhg

char a='a';

a--;

printf(''%d,%c\n'',a+'2'-'0',a+'3'-'0');

A、b,c

B、a—运算不合法,故有语法错

C、98,c

D、格式描述和输出项不匹配,输出无定值

47、下面语句中(B )是C语言的正确赋值语句。

A、a=1,b=2

B、I++;

48、设有以下说明语句

struct stu

{ int a;

float b;

}stutype;

则下面的叙述不正确的是( C )。

A、struct是结构体类型的关键字

B、struct stu是用户定义的结构体类型

C、stutype是用户定义的结构体类型名

D、a和b都是结构体成员名

49、能正确表示:当x的取值范围在[1,10]或[100,110]内为真,否则为假的表达式是( C )。

A、(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)

B、(x>=1)||(x<=10)||(x>=100)||(x<=110)

C、(x>=1)&&(x<=10)||(x>=100)&&(x<=110)

D、(x>=1)||(x<=10)&&(x>=100)&&(x<=110)

50、设n为整型变量,则循环语句for(n=10;n>0;n--)的循环次数为(A)。

A、10

B、9

C、11

D、12

51、在对文件进行操作时,若要求文件的位置指针回到文件的开头,则应当调用的库函数是( D )。

A、fopen()

B、fseek()

C、fclose()

D、rewind()

52、下列哪个数组定义是正确的(D )。

A、int a[5.5];

B、INT a[10];

C、int a[n];

D、int a[3+2];

53、一个变量的指针就是(A )。

A、变量的地址

B、变量的值

C、变量的名称

D、变量的类型

55、下列正确的说法是(C )。

A、宏替换是在程序运行时进行的

B、函数调用是在程序编译时进行的

C、宏替换时,如果实参是表达式,应先求表达式的值,再替换

D、函数调用时,如果实参是表达式,应先求表达式的值,再替换

56、对于数学式x/2a,下面正确的C语言表达式是(D )。

A、sqr(x)/2a

B、sqr(x)/2*a

C、sqrt(x)/(2*a)

D、sqrt(x)/2*a

57、若int类型数据占2字节,则以下语句的输出为(D )。

int k=32768;

printf(''%d,%u\n'',k,k);

A、-1,65535

B、-1,32767

C、-1,-1,

D、-32768,32768

59、下面程序中(B )有错误。

1)#include<stdio.h>

2)main ( )

3){

4)int a[3]={0,0,0};

5)int i;

6)for(i=0;i<3;i++﹚scanf(''%D'',&a[i]);

7)for(i=1;i<3;i++﹚a[0]=a[0]+a[i];

8)printf(''%d\n'',a[0];}

A、第4行

B、第6行

C、第7行

D、第8行

60、下面程序的运行结果(C )。

main( )

{ unsigned a=3,b=10;5

printf(''%d\n''a<<2|b>>1=;

}

A、3

B、10

C、13

D、14

61、已定义x为float型变量。

Printf(''%-4.2f\n'',x);

则以上程序(A )。

A、输出格式描述符的域宽不够,不能输出

B、输出为213.83

C、输出为213.82

D、输出为-213.82

62、设已定义整型变量K,则下面的程序输出为(D )。

k=017;s=111;

printf(''%d'',++k);

printf(''%x\n'',s++);

A、15 6f

B、16 70

C、15 71

D、16 6f

63、不能正确表示a*b/c*d的C语言表达式是(C )。

A、a*b/c*d

B、a/(c*d)*b

C、a*b/c/d

D、a*b/(c*d)

64、下列( C )表达式不满足;当x的值为偶数时值为“真”,为奇数时值为“假”。

A、x%2= =0

B、!x%2!=0

C、x/2*2-x= =0

D、!(x%2)

65、设已定义k为int型变量,则下面while循环执行( C )次。

k=10;

while(k=0)k=-1;

A、执行10次

B、无限循环

C、一次也不执行

D、执行一次

67、用高级语言编写的程序称之为(A)。

A、源程序

B、目标程序

C、汇编程序

D、命令程序

69、有以下程序的输出结果为(B )。

main( )

{ char a=0x95,b,c;

b=(a&0xf)<<4;

c=(a&0xf0)>>4;

a=b|c;

printf(''%x\n'',a);

}

A、24

B、59

C、34

D、56

70、下述程序段的输出结果是(A)。

int a=3;b=4;

int c=a^b>>3;

printf(''%d'',c)

A、3

B、4

C、5

D、6

73、设int型变量在内存中占用两个字节存储单元,定义如下结构体:

struct student

{ char name[10];

char sex;

int age;

struct

{ int year;

int month;

int day;

}birth;

}stul;

则表达式sizeof(stul)的值是()。

A、5

B、8

C、2

D、26

75、下述程序段的运行结果是( B )。

#include

main( )

{ int m=7,n=4;

float a=38.4,b=0.4,x;

x=m/2+n*a/b+1/2;

printf(''%f\n'',x);

}

A、22

B、387.000000

C、27

D、26

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

main( )

{ int cl=2,c2=0;

while(!c2- -)

printf(''%d%d'',cl- -,c2);

}

A、陷入死循环

B、不输出任何内容

C、输出2 -1

D、输出20

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

int m=4,n=6;

max(int x,int y)

{ int max;

max=x>y?x:y;

return(max);

}

main( )

{ int m=10;

printf(''%d\n'',max(m,n));

}

A、4

B、10

C、6

D、5

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

fun(int p)

{ int k=1;

static t=2;

k=k+1;

t=t+1;

return(p*k*t);

}

main( )

{ int x=4;

fun(x);

printf(''%d\n'',fun(x));

}

A、4

B、32

C、30

D、16

79、阅读下面的程序:

main( )

{ char ch;

scanf(''%c'',&ch);

if(ch>='a'&& ch<='z')

ch=ch-32;

printf(''%c'',ch);

}

若输入字符为:e,则程序运行结果为( A )。

A、E

B、A

C、e

D、z

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

main( )

{ static int a[3][3]={{3,2,1},(4,5,6),{-2,9,1}};

int i,j,sum=0;

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

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

{ if(i= =j)

sum=sum+a[iJ[j]];

}

printf(''sum=%d'',sum);

}

A、sum=10

B、sum=9

C、9

D、10

84、下述程序的运行结果是(A )。

#include

void fun(int x)

{

putchar('0'+(x% 10));

fun(x/10);

}

main( )

{

printf(''\n'');

fun(1234);

}

A、4321

B、321

C、21

D、1

86、设已定义i和k为int类型变量,则以下for循环语句(B)。

for(i=0,k=-1;;i++,k++)

printf(''* * * *\n'');

A、判断循环结束的条件不合法

B、是无限循环

C、循环一次也不执行

D、循环只执行一次

87、下列程序段选择项中,使i的运行结果为4的程序段是(D)。

A、int i=0,j=0;

B、int i=1,j=70;

(i=3,(j++)+i); j=i=((i=3) *2);

C、int i=0,j=1;

D、int i=1,j=1;

(j= =1)?(i=1):(i=3); i+=j+=2;

89、阅读以下程序(最左边是附加的行号)。

1)#include

2)main( )

3){ float s[5];

4)int i,k=0;

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

6)scanf(''%d'',s+i);

7)for(i=0;i<5;i++)

8)k=s[i];

9)printf(''\n%f'',(float)k);

10)}

此段程序(A)。

A、没有错误

B、第4行错误

C、第6行错误

D、第9行错误

90、下列程序中有三个是完全相同的功能,只有(B )所完成的功能与其他程序不同。

A、s=0;

B、s=0;

i=0; i=1;

while(i<=100) while(i++<100)

s+=i++; s+=i;

C、s=0;

D、s=0;

i=0; i=0;

while(i<=100) while(++i<=100)

s+=++i; s+=i;

92、执行下面的程序后,a的值为( D )。

main( )

{ int a,b;

for(a=1,b=1;a<=100;a++)

{ if(b>=20)break;

if(b%3= =1)

b+3;

continue;

}

b-=5;

}

A、7

B、8

C、

D、10

93、下面的程序中(C )有错误。

1)#include

2)main( )

3){

4)float a[3]={0.0};

5)int i;

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

7)scanf(''%D'',&a[i]);

8)for(i=1;i<3;i++)a[0]=a[0]+a[i];

9)printf(''%f\n'',a[0]);

}

A、第4行

B、第6行

C、第7行

D、第8行

94、以下程序的输出结果是(C )。

#include

main( )

{ int i;

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

{ if(i%2)

printf(''+'')

else

continue;

printf(''-'')

}

printf(''$\n'');

}

A、+-+-+-$

B、-+-+-+$

C、+-+-$

D、-+-+$

95、下述程序段的输出结果是(C)。

int x=3;

do

{ printf(''%d'',x-=2);

}while(!(--x));

A、1

B、30

C、1-2

D、死循环

96、定义如下变量:

int n=10;

则下列循环的输出结果是( A )。

while(n>7)

{ n--;

printf(''%d'',n);

}

A、1098

B、987

C、10987

D、9876

100、两次运行下面的程序,如果键盘上分别输入6和4,则输出结果是(A )。

main( )

{ int x;

scanf(''%d'',&x);

int(x++>5)

printf(''%d\n'',x--);

}

A、7和5

B、6和3

C、7和4

D、6和4

101、运行下段程序的结果是(D )。

#include

main( )

{ int x;

for(x=1;x<=100;x++)

if(++x%= =0)

if(++x%3= =0)

if(++x%5= =0)

printf(''%d'',x);

}

A、31,61,91

B、30,60,90

C、不输出任何内容

D、29,59,89

102、运行下述程序段后,i值为4的是(B)。

A、int i=1,j=0;

B、inti=1,j=1;

i=j=((i=3)++); i+=i+=2;

C、int i= =0,j=0;

D、int i=0,j=1;

(i=2,i+(j=2)); (j= =1)?i+=3:i=2;

104、以下程序的输出结果是(D)。

main()

{ int a=-1,b=4,k;

k=(++a,0)&&!(b--<=0);

printf(''%d,%d,%d\n'',k,a,b);

}

A、1,0,4

B、1,0,3

C、0,0,3

D、0,0,4 105、以下程序的输出结果是(A )。

main( )

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

if(x=y+z)

printf(''* * * *'');

else

printf(''# # # #'');

}

A、# # # #

B、* * * *

C、1

D、4 106、以下程序的输出结果是(A )。

int m=13;

int fun2(int x, int y)

{ int m=3;

return(x*y-m);

}

main( )

{ int a=7,b=5;

printf(''%d\n'',fun2(a,b)/m);

}

A、2

B、3

C、7

D、5

112、阅读程序:

#include

main( )

{ int m,n,w;

scanf(''%d,%d'',&m,&n);

while(n)

{ w=m%n;

m=n;

n=w;

}

printf(''%d'',m);

}

如果输入10,6,则输出结果是(D )。

A、60

B、120

C、2

D、10

113、下列程序执行后输出的结果是(A )。

#include

f(int a)

{ int b=0;

static c=2;

a=c++, b++;

return(a+b);

}

main( )

{ int a=2,i,k;

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

k=f(a++);

printf(''%d\n'',k);

}

A、3

B、0

C、4

D、5

115、下列程序的运行结果是(B )。

main( )

{ static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

int i,j, sum=0;

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

for(j=0;j<4;j++)

if(j>i)

sum+=a[i][j];

printf(''sum=%d\n'',sum);

}

A、40

B、36

C、24

D、30

120、阅读下列程序:

main( )

{ int n[3],i,j,k;

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

n[i]=0;

k=2;

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

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

printf(''%d'',n[i]);

printf(''\n'');

}

运行该程序,其输出结果是(B )。

A、230

B、330

C、123

D、321

123、下述程序段的运行结果是(B )。

main( )

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

int b[3][2],i,j;

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

{ for(j=0;j<3;j++)

{ b[i][j]=a[j][i]+a[i][j];

printf(''%5d'',b[i][j]);

}

printf(''\n'');

}

}

A、2 4 7

B、2 6 10

C、18 14 10

D、18 2 3

2 10 8 6 10 14 14 10 6 4 10 2

3 6 18 10 1

4 1810 6 2 7 4 2 124、如果程序中有如下的说明和定义:

struct s

{ int x,y;}

struct s x,y;

则会发生的情况是(A )。

A、编译出错

B、能顺利编译和链接,但不能执行

C、程序能顺利通过编译,但是链接时会出错

D、程序能顺利编译,链接,执行

127、对C语言的文件存取方式的论述中,正确的是文件(C )。

A、只能顺序存取

B、只能随机存取(也称直接存取)

C、可以是顺序存取,也可以是随机存取

D、只能从文件的开头存取

填空练习题

1、有以下定义:int x; float y; 执行scanf("%3d%f",&x,&y);时,如果输入的数据为:12345 678,则x的值为123,y的值为这个与12345后有没有空格有关,到时候看着办吧(有空格就是45.000000)。

2、有定义语句:int x,y,z;,执行x=(y=4,z=8,z=16) 后,x的值为16 。

3、计算表达式b=25/3%3后,b的值为2。

4、设有定义语句int x=1,y=0;,则表达式x-->(y+x)?10:12>y++?'A': 'Z'的值是:65 。

5、请写出以下语句的输出结果9 。

printf("%d",strlen("\t\"065\xffab\n"));

7、C语言规定:标识符只能由字母、数字、下划线三种字符组成。

8、有定义语句:int x=5,y=1;表达式x&y==y? x|y:x^y的值为5。

9、下述程序段的循环次数是0 次,输出结果是y=1,x=0 。

int x=0,y=0;

do

{ y++;

x*=x;

}while(x>0&&y>5)

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

10、若m,y,z,均为int型变量,则执行下面语句后m值是1。

m=1;x=2;y=3;z=4;

m=(m

m=(m

m=(m

11、下述程序段的运行结果是5 。

int x,y;

x=17;

y=26;

printf("%d",y/=(x%=6));

12、下列循环语句执行的循环次数是:无数次。

for(a=1,b=1;a<4&&b!=4;a++)//循环体内b的值不变。

14、下述程序段的输出结果是3。

int a=3;b=4;

int c=a^b>>3;

printf("%d",c);

17、下述程序段的输出结果是1245056。

#include

void fun(int*x)

{

printf("%d",++x);

}

main( )

{ int y=20;

fun (&y);

}

20、下述程序段的运行结果是15 。

#include

main( )

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

int s=0,i;

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

s+=(*(a+i))[i];

printf("%d",s);

}

21、下述程序的输出结果是18 。

#include

main()

{ int x=8,y=9;

int k;

k=(x++)+(++y);

printf("%d",k);

}

22、下述程序的输出结果是6。

#include

int fun(int x)

{ static int a=3;

a+=x;

return a;

}

main( )

{ int k=2,m=1,n;

n=fun (k);

n=fun (m)

printf("%d",n);

}

23、用“冒泡法”对输入的10个字符按由小到大顺序排序,请填空。

#include

#include

#define n 10

main()

{ int i,j;

char str[11];

scanf("%s",str);

char t;

for(j=1;j

for(i=0;(i

if( str[i]>str[i+1] )

{ t=str[i];

str[i]=str[I+1];

str[i+1]=t;

}

for(i=0;i

printf("%c",str[i]);

}

24、把字符数组中的字符串按反序存放,例如:字符串"ABCD"的输出结果应为"DCBA",请填空。

#include

#include

#include

main()

{

char a[100],t;

printr(“输入字符串:\n”);

scanf("%s",a);

int i,j;

for(i=0,j=strlen(a);i

{ t=a[i];

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程序设计题库

填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:

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语言期末考试题(含答案)

《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语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#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分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() 3. 不是C语言实型常量的是:() .字符串“xyzw”在内存中占用的字节数是:() 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:() (a的ASCII码值为97) ,2 ,3 ,2 ,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是: =,b=3 = b=3 3 表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>yx:mc4)后,s,t的值为:() ,2 ,1 ,1 ,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf 最多可执行次数为:() 13. 对于for(s=2;;s++)可以理解为:() A. for(s=2;0 ;s++) B. for(s=2;1 ;s++) C. for(s=2;s<2 ;s++) D. for(s=2;s>2;s++)

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语言期末考试题及其答案

选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套

C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #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=80 C d=140 D d=700 10.已知职工记录描述如下,在Turbo C中,系统为变量w分配()字节的空间。 struct worker { int no; char name[20]; char sex; union { int day; int month; int year;}birth; } w; A 29 B 20 C 25 D 6 11.设有以下定义,值为5的枚举常量是()。 enum week{sun,mon=4,tue,wed,thu,fri,sat} w; A tue B sat C fri D thu 12.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。 A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd"; 13.设有以下程序段,则值为6的表达式是()。 struct st { int n; struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p; p=&a[0]; A p++->n B ++p->n C p->n++ D (*p).n++ 写出下列程序的运行结果(10分,每小题2分) 1.float average (float array[10]) { int i;

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语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共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

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

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)数据在内存中的存储形式是____。

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语言程序设计期末考试试题及答案

C 语言程序设计 试 题 (2008 /2009 学年 第 二 学期) 一. 选择题(满分30分,每题2分) 1.若a 、b 、c 都定义为int 类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d ”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j 的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C 语言中函数返回值的类型由 D 决定的。 A. return 语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i 的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A . char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

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程序设计语言复习题(试题及答案版)

一.填空题 26.C#源程序的后缀名为______.cs________。 26.C#中每个int 类型的变量占用____4___个字节的内存。 26.C#的每行语句以________分号_______结尾。 26.布尔型的变量可以赋值为关键字_____true__________或_____false_________。 26.如果int x的初始值为5,则执行表达式x - =3之后,x的值为_____2_________。 26.do...while语句在执行循环体_____之后________测试语句是否满足循环条件。 26.关键字_______class________表示一个类的定义。 26.如果一个类包含一个或多个抽象方法,它是一个_________抽象_____________类。 26.try块运行后,总是会执行_________finally_____________块中的代码。 26.一个数组如果有两个索引值,那么它是__________二维__________数组。 二.单项选择题 1.在对SQL Server 数据库操作时应选用()。 A、SQL Server .NET Framework 数据提供程序; B、OLE DB .NET Framework 数据提供程序; C、ODBC .NET Framework 数据提供程序; D、Oracle .NET Framework数据提供程序; 2.下列选项中,()是引用类型。 A、enum类型 B、struct类型 C、string类型 D、int类型 3.C#的数据类型有() A、值和调用类型; B、值和引用类型; C、引用和关系类型; D、关系和调用类型 4.下列描述错误的是() A、类不可以多重继承而接口可以; B、抽象类自身可以定义成员而接口不可以; C、抽象类和接口都不能被实例化; D、一个类可以有多个基类和多个基接口; 5.下列关于构造函数的描述正确的是() A、构造函数可以声明返回类型。 B、构造函数不可以用private修饰 C、构造函数必须与类名相同 D、构造函数不能带参数 6.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; 那么myArray3[2][2]的值是( )。 A、9 B、2 C、6 D、越界 7.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。 A、方法、属性、索引器和事件; B、方法、属性信息、属性; C、索引器和字段; D、事件和字段; 8.在https://www.360docs.net/doc/d25649134.html,中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误 的是()。 A、insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B、ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C、Select操作的Sql语句只能由ExecuteReader()方法来执行; D、ExecuteReader()方法返回一个DataReder对象; 9.Winform中,关于ToolBar控件的属性和事件的描述不正确的是( )。 A、Buttons属性表示ToolBar控件的所有工具栏按钮 B、ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 C、DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭 头键 D、ButtonClick事件在用户单击工具栏任何地方时都会触发

大学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

相关文档
最新文档