c语言试题及答案

c语言试题及答案
c语言试题及答案

1. 二进制语言是属于()

A.面向机器语言

B.面向过程语言

C.面向问题语言

D.面向汇编语言

2. 关于指针运算符“*”,下列说法中错误的是()

A.是单目前缀运算符

B.运算对象只能是指针变量

C.运算结果是运算对象对应的变量或数组元素等

D.运算结合律是自右向左的

3. 字符串“ABC”在内存占用的字节数是( )

A.3 B.4 C.6 D.8

4. 不属于高级语言的计算机语言是()

A.BASIC语言B.C语言C.ALGOL语言D.符号语言

5.下列给出的符号串中,不能作为C语言标识符的是( )

A.a_2 B._2a C._a2 D.2_a

6.设有定义语句:char s[12]={“string”}; 则printf (“%d\n”,strlen (s));的输出是( ) A.6 B.7 C.11 D.12

7.执行语句“x=(a=3,b=a--)”后,x,a ,b的值依次为( )

A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2

8. 设整型变量m,n,a,b的值均为1,执行“(m=a>b)&&(n=a>b)”后m,n的值是()

A. 0,0

B. 0,1

C. 1,0

D. 1,1

9. 属于C语言字符集中可显示字符的是()

A.\

B.\n

C.\t

D.\b

10. 设有下列结构及其变量的定义,能正确引用该结构型成员的选项是()

struct { int x[5];} x1,*p=&x1;

A.x1[0] B.x1[0].x C.p->x1[0] D.p->x[0]

11. 设有int i=010, j=10; 则printf (“%d,%d\n”, ++i , j--); 的输出是( )

A.11,10 B.9 ,10 C.010,9 D.10,9

12. 下列给出的符号串中,不属于C语言保留字的是()

A.switch B.cher C.case D.else

13.设整型变量i的值为3,则表达式i---i的值为( )

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

14.关于系统函数strcpy (x1,x2,x3)的下列说法中错误的是( )

A.函数中的参数x3是可以省略的

B.函数的基本功能是将字符串x2中的前x3个字符组成的字符串复制到字符数组x1中C.x1可以是数组名

D.x2必须是存放字符串的字符数组名,不能是字符串

15.设a=1 , b=2 , c=3 , d=4 ,则表达式:a

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

16. 在C语言中,结果不等于4的表达式是()

A. sizeof( double )

B. sizeof( long )

C. sizeof( float )

D. sizeof( unsigned long)

17. 在PC机中,′\n′在内存占用的字节数是()

A. 1

B. 2

C. 3

D. 4

18. 若有以下定义语句: char a; int b; float c; double d;则表达式a*b+d-c的值的

类型为()

A. float

B. int

C. char

D. double

19.在C语言中,下列说法中正确的是( )

A.不能使用“do语句;whlie (表达式);”实现循环结构

B.“do语句;whlie (表达式);”的循环必须使用“break”语句退出循环

C.“do语句;whlie (表达式);”的循环中,当表达式为非0时将结束循环

D.“do语句;whlie (表达式);”的循环中,当表达式为0时将结束循环

20.设有数据定义语句“int i, j=7, *p=&i;”,则与“i=j;”等价的是( )

A.j=*p B.*p=*&j; C.i=&j; D.i=&p;

21.表达式“10!=9“的值是( )

A.true B.非零值C.0 D.1

22. 设有宏定义“#define R 2+3”, 则R*R的宏替换结果正确的是()

A.(2+3)*(2+3)B.2+3*2+3 C.5*5 D.5.0*5.0

23.若有以下数据定义语句,则数值为4的表达式是( )

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c=?a?, d, g ;

A.a[g-c] B.a[4] C.a[…d?-…c?] D.a[…d?-c]

24.关于使用方式,下列说法中正确的是()

A.选用“r”,文件必须存在

B.选用“r+”,文件可以不存在

C.选用“w”,文件必须存在

D.选用“w+”,文件必须存在

25. 设 a=3, b=4, 执行语句“printf(“%d,%d”,(a,b), (b,a));”的输出是()

A.3 ,4

B. 4, 3

C.3, 3

D.4, 4

26.不属于面向机器语言的是()

A.符号语言B.二进制语言C.汇编语言D.C语言

27. 设有数据定义语句“int a=3, b, *p=&a;”,则下列选项中使b不为3的是( )

A.b=*&a; B.b=*p; C.b=a; D.b=*a;

28. 设x,y,z,t均为int型变量,则执行下列语句串后,变量t 的值为()

x=y=z=0; if(x=y) t=z; else t=! z;

A.不定值B.2 C.1 D.0

29.设整型变量m1 值为3、m2值为2、m3值为1,执行下列语句后,整型变量m4值是( )

Switch (m1=m2= =m3+1)

{case 1: m4=1; break;

Case3: m4=3;berak;

Case2:m4=2;break;

Default; m4=4;

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

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

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

A.p+=2,*(p++) B.p+=2,*++p

C.p+=3,*p++ D.p+=2,++*p

31.若有如下定义和语句,则输出结果是( )

int *p,a=10,b=20;

p=&a;p=&b;printf(“%d,%d\n”, *p,*p);

A.10,20 B.10,10 C.20,10 D.20,20

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

A. continue 只能在循环体中使用

B. break 只能在循环体中使用

C.break 不能在循环体中使用

D.break 只能在switch 语句中使用33.关于给一维数组元素赋初值,下列说法中错误的是()

A.在一个数据定义语句中,可以给所有数组赋初值,也可以只给一部分数组赋初值 B.可以给一维数组的全部元素赋初值,也可以只给前面的部分元素赋初值

C.对某个一维数组的前若干个元素赋初值,后面的未赋初值的元素无初值

D.对某个一维数组的所有元素赋初值,数组的长度可以省略

34. 执行下列程序段,则输出结果是()

#include

char *p =“ABC”;

printf(“%d”, strlen(p) +*p);

A.语句错误

B.输出3

C.输出4

D.输出68

35.设有如下定义语句,则正确叙述为( )

Char x[ ]={“abcdef” } ; char y[ ] = {…a?,?b?,?c?,?d?,?e?,?f?,?g?};

A.数组x和数组y等价B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度D.数组x的长度小于数组y的长度

36.设有循环语句“for (i=-1;i<4;i++) i++;”,其循环体执行的次数是( ) A.无限次B.0 C.3 D.4

37.下列语句中,错误的是( )

A.while (x=y) 5; B.do x++ while(x= =10);

C.whlie (0); D.do2;whlie(a= =b);

38.下列数据定义语句中,正确的是()

A.char a[3][ ]={…abc?,?1?};

B.char a[ ][3 ]={…abc?,?1? };

C.char a[3][ ]={…a?,”1” };

D.char a[ ][3 ]={“a”,”1” };

39. 设有下列定义,正确的赋值表达式是( )

struct a {char s[10]; int x; float y[3];}b[2],*p;

char pc; int pi; float pf;

A.p=s B.pc=&s[0] C.pi=b[0] .x D.pf=&b.y[0]

40. 下列选项中,不是转义字符的是()

A .\\

B .\?

C .074

D .\0

41.以下叙述正确的是 ( )

A . do-while 语句构成的循环不能用其它语句构成的循环来代替

B . do-while 语句构成的循环只能用break 语句退出

C . 用do-while 语句构成的循环,在while 后的表达式为非零时结束循环

D . 用do-while 语句构成的循环,在while 后的表达式为零时结束循环

42.有如下程序

main( )

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

switch(x){

case 0: b++;

case 1: a++ ;

case 2: a++;b++ ;

}

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

}

该程序的输出结果是 ( )

A . a=2,b=1

B .a=1,b=1

C . a=1,b=0

D . a=2,b=2

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

A .'a'<=c<= 'z'

B .(c>= 'a')||(c<= 'z')

C .('a'<=c)and ('z'>=c)

D .(c>= 'a')&&(c<= 'z')

44.t 为int 类型,进人下面的循环之前,t 的值为0

while( t=l )

{ ……}

则以下叙述中正确的是( )

A .循环控制表达式的值为0

B .循环控制表达式的值为1

C .循环控制表达式不合法

D .以上说法都不对

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

main()

{ int a=4,b=5,c=0,d;

d=!a&&!b||!c;

printf("%d\n",d);

}

A .1

B .0

C .非0的数

D .-1

46.与数学式子1

23 x x n

对应的C 语言表达式是( ) A .3*x^n/(2*x-1) B .3*x**n/(2*x-1)

C .3*pow(x,n)*(1/(2*x-1))

D .3*pow(n,x)/(2*x-1)

47.下列关于单目运算符++、--的叙述中正确的是( )

A .它们的运算对象可以是任何变量和常量

B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量D.它们的运算对象可以是char型变量、int型变量和float型变量

48.设有如下程序段:

int x=2002, y=2003;

printf("%d\n",(x,y));

则以下叙述中正确的是( )

A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出

B.运行时产生出错信息

C.输出值为2002 D.输出值为2003

49.下列程序执行后的输出结果是()

A.G B.H C. I D. J

main()

{ int x='f'; printf("%c \n",'A'+(x - 'a'+1)); }

50.有以下程序

main()

{ int s=0,a=1,n;

scanf("%d",&n);

do

{ s+=1; a=a-2; }

while(a!=n);

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

}

若要使程序的输出值为 2,则应该从键盘给n输入的值是( )

A.-1 B.-3 C.-5 D.0

51.有以下程序段

int m=0,n=0; char c='a';

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:10A10<回车>,则输出结果是( )

A.10,A,10 B.10,a,10 C.10,a,0 D.10,A,0

52.设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是( ) A.printf("x=%d\n",x); B.printf("x=%ld\n",x);

C.printf("x=%8dL\n",x); D.printf("x=%LD\n",x);

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

char s[]="\\141\141abc\t";

printf ("%d\n",strlen(s));

A.9 B.12 C.13 D.14

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

main()

{ int num= 0; while(num<=2) { num++; printf("%d\n",num);}}

A.1 B.1 C.1 D.l

2 2 2

3 3

4

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

A.0 B.29 C.31 D.无定值

fun(int x, int y, int z)

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

main()

{ int a=31; fun(5,2,a); printf("%d",a);}

56.有如下程序

main( )

{ float x=2.0, y;

if(x<0.0) y=0.0;

else if(x<10.0) y=1.0/x;

else y=1.0;

printf("%f\n",y);

}

该程序的输出结果是()

A. 0.000000 B. 0.250000 C. 0.500000 D. 1.000000 57.执行下面的程序段后,变量k中的值为()

A.不定值 B. 33 C. 30 D.10

int k=3, s[2];

s[0]=k; k=s[1]*10;

58.有如下程序

main( )

{int a=2,b= -1,c=2;

if(a

if(b<0) c=0;

else c++ ;

printf("%d\n",c);

}

该程序的输出结果是()

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

59.下列程序段的输出结果是( )

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

void fun(int *x, int *y)

{ printf("%d %d", *x, *y); *x=3; *y=4;}

main()

{ int x=1,y=2; fun(&y,&x); printf("%d %d",x, y);}

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

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

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

main()

{ char ch[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A."AAAA" B."BBB" C."BBBCC" D."CC"

62.若有以下程序:

main()

{int k=2,i=2,m;

m=(k+=i*=k); printf("%d,%d\n",m,i);

}

执行后的输出结果是( )

A.8,6 B.8,3 C.6,4 D.7,4

63.有以下程序

main()

{ int i=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

64.有以下函数定义:

void fun(int n, double x) { …… }

若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )

A.fun(int y,double m); B.k=fun(10,12.5);

C.fun(x,n); D.void fun(n,x);

65.下列程序执行后的输出结果是()

A. 6 B.7 C.8 D. 9

void func(int *a,int b[])

{ b[0]=*a+6; }

main()

{ int a,b[5];

a=0; b[0]=3;

func(&a,b); printf("%d \n",b[0]);

}

66.有以下程序

#include

main()

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

程序运行后的输出结果是( )

A.0 B.1 C.-1 D.NULL没定义,出错

67.有以下程序

. main()

{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2){k=k+p[i]; i++;}

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

}

执行后输出的结果是( )

A.58 B.56 C.45 D.24

68.以下选项中,与k=n++完全等价的表达式是( )

A.k=n,n=n+1 B.n=n+1,k=n C.k=++n D.k+=n+1

69.在C语言中,形参的缺省存储类是( )

A.auto B.register C.static D.extern

70.以下函数值的类型是()

fun ( float x )

{ float y; y= 3*x-4; return y; }

A.int B.不确定C.void D.float

71.下面程序的输出结果是( )

A.0 B.1 C.10 D.9

main()

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

p=a;

printf("%d\n",*p+9);

}

72.有如下程序

main( )

{ int i,sum;

for(i=1;i<=3;sum++) sum+=i;

printf("%d\n",sum);

}

该程序的执行结果是()

A. 6 B. 3 C.死循环D. 0

73. 下列程序的运行结果是()

A. a=%2,b=%5 B. a=2,b=5

C. a=d, b=d D. a=%d,b=%d

#include

main()

{ int a=2,c=5; printf("a=%d,b=%d\n",a,c); }

74.有如下程序

main( )

{ int x=23;

do

{ printf("%d" ,x--);}

while(!x);

}

该程序的执行结果是()

A. 321 B. 23 C.不输出任何内容D.陷入死循环75.当调用函数时,实参是一个数组名,则向函数传送的是( ) A.数组的长度B.数组的首地址

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

76.设有以下函数:

f ( int a)

{ int b=0;

static int c = 3;

b++; c++;

return(a+b+c);

}

如果在下面的程序中调用该函数,则输出结果是()

main()

{ int a = 2, i;

for(i=0;i<3;i++) printf("%d\n",f(a));

}

A.7 B.7 C.7 D.7

8 9 10 7

9 11 13 7

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

main()

{ char x=040;

printf("%o\n",x<<1);

}

A.100 B.80 C.64 D.32

78.有以下程序段

int n=0,p;

do {scanf("%d",&p);n++;} while(p!=12345&&n<3);

此处do-while循环的结束条件是( )

A.p的值不等于12345并且n的值小于3

B.p的值等于12345并且n的值大于等于3

C.p的值不等于12345或者n的值小于3

D.p的值等于12345或者n的值大于等于3

79.有以下程序

main()

{ int i=10,j=1;

printf("%d,%d\n",i--,++j);

}

执行后输出的结果是( )

A.9,2 B.10,2 C.9,1 D.10,1 80.已定义c为字符型变量,则下列语句中正确的是( )

A.c='97'; B.c="97" C.c=97; D.c="a";

81. 下列程序执行后的输出结果是()

A. 3 B. 6 C. 9 D.随机数 main()

{ int a[3][3], *p,i;

p=&a[0][0];

for(i=0; i<9; i++) p[i]=i+1;

printf("%d \n",a[1][2]);

}

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

A.int num[]; B.#define N 100

int num[N];

C.int num[0..100]; D.int N=100;

int num[N];

83.有以下程序

main()

{ char a,b,c,*d;

a='\'; b='\xbc';

c='\0xab'; d="\0127";

printf("%c%c%c%c\n",a,b,c,*d);

}

编译时出现错误,以下叙述中正确的是( )

A.程序中只有a='\';语句不正确B.b='\xbc';语句不正确

C.d="\0127";语句不正确D.a='\';和c='\0xab';语句都不正确84.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是( ) A.p=q; B.*p=*q; C.n=*q; D.p=n;

85.若有下面的说明和定义:

struct test

{ int ml; char m2; float m3;

union uu {char ul[5]; int u2[2];} ua;

} myaa;

则sizeof(struct test )的值是( )

A.16 B.14 C.12 D.9

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

main()

{ char c='z';printf("%c",c-25);}

A.a B.Z C.z-25 D.y

87.设有以下说明语句

struct ex

{ int x ; float y; char z ;} example;

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

A.struct结构体类型的关键字B.example是结构体类型名

C.x,y,z都是结构体成员名D.struct ex是结构体类型

88.有如下程序

main( )

{ int n=9;

while(n>6) {n--;printf("%d" ,n);}

}

该程序段的输出结果是()

A. 987 B. 876 C. 8765 D.9876

89. 下列程序的输出结果是()

A. 4 B. 6 C. 8 D. 10 int b=2;

int func(int *a)

{ b += *a; return(b);}

main()

{ int a=2, res=2;

res += func(&a);

printf("%d \n",res);

}

90.有如下程序

int func(int a, int b)

{ return(a+b);}

main( )

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

printf("%d\n" ,r);

}

该程序的输出的结果是()

A. 12 B. 13 C. 14 D. 15

91.以下只有在使用时才为该类型变量分配内存的存储类说明是( ) A.auto和static B.auto和register

C.register和static D.extern和register

92.以下选项中,非法的字符常量是()

A.'\t' B.'\17' C."\n" D.'\xaa'

93.若有以下定义和语句:

int s[4][5],(*ps)[5];

ps=s;

则对s数组元素的正确引用形式是( )

A.ps+1 B.*(ps+3) C.ps[0][2] D.*(ps+1)+3

94.有以下程序

float fun(int x,int y)

{return(x+y); }

main()

{ int a=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

}

程序运行后的输出结果是( )

A.编译出错B.9 C.21 D.9.0

95.有以下程序

main()

{ char *s[]={"one","two","three"},*p;

p=s[1];

printf("%c,%s\n",*(p+1),s[0]);

}

执行后输出结果是( )

A.n,two B.t,one C.w,one D.o,two 96.下列选项中正确的语句组是( )

A.char s[8]; s={"Beijing"}; B.char *s; s={"Bei jing"};

C.char s[8]; s="Beijing"; D.char *s; s="Beijing";

97. 下面程序的输出结果是()

A.4 B. 2 C. 1 D. 0 main()

{ int i, j, m=0, n=0;

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

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

if(j>=i) m=1; n++;

printf("%d \n",n);

}

98.已定义以下函数

fun(int *p)

{ return *p; }

该函数的返回值是( )

A.不确定的值B.形参p中存放的值

C.形参p所指存储单元中的值D.形参p的地址值

99.有以下程序

main()

{ int x[8]={8,7,6,5,0,0},*s;

s=x+3;

printf("%d\n",s[2]);

}

执行后输出结果是( )

A.随机值B.0 C.5 D.6

100.有以下程序

main()

{char a[]={'a','b','c','d','e','f','g','h','\0'}; int i,j;

i=sizeof(a); j=strlen(a);

printf("%d,%d\n",i,j);

}

程序运行后的输出结果是( )

A.9,9 B.8,9 C.1,8 D.9,8

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

main()

{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

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

for(j=i;j<=i;j++) t=t+b[i][b[j][j]];

printf("%d\n",t);

}

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

102.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是()A.i=*p; B.*p=*&j; C.i=&j; D.i=**p;

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

A.1,5,9 B.1,4,7 C.3,5,7 D.3,6,9

main()

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

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

}

104.对于基类型相同的两个指针变量之间,不能进行的运算是()A. < B. = C. + D. -

105. 下列程序的输出结果是()

A. 5 B. 6 C. 7 D. 8 struct abc

{ int a, b, c; };

main()

{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;

t=s[0].a+s[1].b;

printf("%d \n",t);

}

106.有如下程序

long fib (int n)

{ if(n>2) return (fib(n-1)+fib (n-2));

else return(2);

}

main()

{printf("%1d\n",fib(3));}

该程序的输出结果是()

A. 2 B.4 C. 6 D. 8

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

A.18 B.19 C.20 D.21

main()

{ int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0;

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

for(j=0;j<=i;j++)s+=a[i][j];

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

}

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

main()

{ int i, a[10];

for(i=9;i>=0; i--) a[i]=10-i;

printf("%d%d%d",a[2],a[5],a[8]); }

A.258 B.741 C.852 D.369

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

#include

#include

main()

{ char b1[8]="abcdefg",b2[8],*pb=b1+3;

while (--pb>=b1) strcpy(b2,pb);

printf("%d\n",strlen(b2));

}

A.8 B.7 C.3 D.1

110.有以下程序

#include

main()

{char *p="abcde\0fghjik\0";

printf("%d\n",strlen(p));

}

程序运行后的输出结果是( )

A.12 B.15 C.6 D.5

111.以下能正确定义数组并正确赋初值的语句是( )

A.int N=5,b[N][N]; B.int a[1][2]={{1},{3}};

C.int c[2][]={{1,2},{3,4}}; D.int d[3][2]={{1,2},{3 4}};

112.若有定义:int *p[3];,则以下叙述中正确的是( )

A.定义了一个基类型为int的指针变量p,该变量具有三个指针

B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C.定义了一个名为*p的整型数组,该数组含有三个int类型元素

D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素113. 若有定义: float w; int a, b; 则合法的switch语句是()

A. switch(w) B. switch(a);

{ case 1.0: printf("*\n"); { case1 printf("*\n");

case 2.0: printf("**\n"); case2 printf("**\n");

} }

C.switch(b) D. switch(a+b);

{ case 1: printf("*\n"); { case 1: printf("*\n");

default: printf("\n"); case 2: printf("**\n");

case 1+2: printf("**\n"); default: printf("\n");

} }

114.若fp已正确定义并指向某个文为件,当未遇到该文件结束标志时函数feof(fp)的值( ) A.0 B.1 C.-1 D.一个非0值

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

A.全局变量的作用域一定比局部变量的作用域范围大

B.静态(static)类别变量的生存期贯穿于整个程序的运行期间

C.函数的形参都属于全局变量

D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值

116.有以下程序

int a=3;

main()

{int s=0;

{int a=5; s+=a++; }

s+=a++; printf("%d\n",s);

}

程序运行后的输出结果是( )

A.8 B.10 C.7 D.11

117.在说明语句:int *f();中,标识符f代表的是( )

A.一个用于指向整型数据的指针变量

B.一个用于指向一维数组的行指针

C.一个用于指向函数的指针变量

D.一个返回值为指针型的函数名

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

main()

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

printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);

}

A.0650 B.1470 C.5430 D.输出值不定

119.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROG ABCDEFGH IJKL<回车>,则输出结果为( ) A.ABCDEFG B.IJHL C.ABCDEFGHIJKL D.IJKLABCDEFGH main( int argc, char *argv[ ] )

{ while(--argc>0) printf("%s",argv[argc] );

printf("\n");

}

120.有如下程序段

int a=14,b=15,x;

char c='A';

x=(a&&b)&&(c<'B');

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

A.true B.false C.0 D.1

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

A."B" B.'\010' C.68 D.D

122.若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、

c 的语句是()

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

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

123.以下选项中合法的用户标识符是( )

A.long B._2Test C.3Dmax D.A.dat

124.下列叙述中正确的是()

A.C语言中既有逻辑类型也有集合类型

B.C语言中没有逻辑类型但有集合类型

C.C语言中有逻辑类型但没有集合类型

D.C语言中既没有逻辑类型也没有集合类型

125.有以下程序

main()

{ int a=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a

printf("%d,%d\n",k,m);

}

程序运行后的输出结果是( )

A.0,0 B.0,1 C.1,0 D.1,1

126.以下叙述正确的是( )

A.do-while语句构成的循环不能用其它语句构成的循环来代替

B.do-while语句构成的循环只能用break语句退出

C.用do-while语句构成的循环,在while后的表达式为非零时结束循环

D.用do-while语句构成的循环,在while后的表达式为零时结束循环

127.有如下程序

main( )

{ float x=2.0,y;

if(x<0.0) y=0.0;

else if(x<10.0) y=1.0/x;

else y=1.0;

printf("%f\n" ,y);

}

该程序的输出结果是 ( )

A.0.000000 B.0.250000 C.0.500000 D.1.000000 128.下列程序段的输出结果是( )

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

void fun(int *x, int *y)

{ printf("%d %d", *x, *y); *x=3; *y=4;}

main()

{ int x=1,y=2;

fun(&y,&x);

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

}

129.若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是()A.a的值是字符C B.a的值是浮点型

C.不允许字符型和浮点型相加D.a的值是字符'A'的ASCII值加上1 130.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )

A.地址传递B.单向值传递

C.由实参传给形参,再由形参传回实参D.传递方式由用户指定131.以下程序的输出结果是( )

A.0 B.29 C.31 D.无定值

fun(int x, int y, int z)

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

main()

{ int a=31;

fun(5,2,a);

printf("%d",a);

}

132.有如下程序

main( )

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

switch(x){

case 0: b++;

case 1: a++ ;

case 2: a++;b++ ;

}

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

}

该程序的输出结果是( )

A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2 133.以下循环体的执行次数是( )

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

main()

{ int i,j;

for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);

}

134.以下选项中非法的表达式是()

A.0<=x<100 B.i=j==0

C.(char)(65+3) D.x+1=x+1

135.在一个C语言程序中( )

A.main函数必须出现在所有函数之前

B.main函数可以在任何地方出现

C.main函数必须出现在所有函数之后

D.main函数必须出现在固定位置

136.以下选项中合法的实型常数是()

A.5E 2.0 B.E-3 C. .2E0 D.1.3E

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

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

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

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

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

138.C语言中用于结构化程序设计的三种基本结构是()A.顺序结构、选择结构、循环结构

B.if、switch、break

C.for、while、do-while

D.if、for、continue

139.有以下程序

main()

{ int a; char c=10;

float f=100.0; double x;

a=f/=c*=(x=6.5);

printf("%d %d %3.1f%3.1f\n",a,c,f,x);

}

程序运行后的输出结果是( )

A.1 65 1 6.5 B.1 65 1.5 6.5

C.1 65 1.0 6.5 D.2 65 1.5 6.5

140.与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是()A.if (x>0) y=1; B.if(x)

else if(x<0)y=-1; if(x>0)y=1;

else y=0; else if(x<0)y=-1;

else y=0;

C.y=-1 D.y=0;

if(x) if(x>=0)

if(x>0)y=1; if(x>0)y=1;

else if(x==0)y=0; else y=-1;

else y=-1;

141.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是( ) A.a>=10 or a<=0 B.a>=0|a<=10

C.a>=10 &&a<=0 D.a>=10‖a<=0

142.若变量c为char类型,能正确判断出c为小写字母的表达式是( ) A.'a'<=c<= 'z' B.(c>= 'a')||(c<= 'z')

C.('a'<=c)and ('z'>=c) D.(c>= 'a')&&(c<= 'z') 143.以下程序的输出结果是( )

main()

{ int num= 0;

while(num<=2)

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

}

A.1 B.1 C.1 D.l

2 2 2

3 3

4

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

main()

{ char ch[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);}

A."AAAA" B."BBB" C."BBBCC" D."CC"

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

A.C语言比其他语言高级

B.C语言可以不用编译就能被计算机识别执行

C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现得最晚,具有其他语言的一切优点

146.若有以下程序:

main()

{int k=2,i=2,m;

m=(k+=i*=k); printf("%d,%d\n",m,i);

}

执行后的输出结果是( )

A.8,6 B.8,3 C.6,4 D.7,4

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

char s[]="\\141\141abc\t";

printf ("%d\n",strlen(s));

A.9 B.12 C.13 D.14

148.t为int类型,进人下面的循环之前,t的值为0

while( t=l )

{ ……}

则以下叙述中正确的是( )

A.循环控制表达式的值为0 B.循环控制表达式的值为1 C.循环控制表达式不合法D.以上说法都不对

149.有以下程序段

int x=3;

do

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

C语言试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。

历年二级C语言笔试真题及答案

1 2009年9月全国计算机等级考试二级笔试 试卷 1)下列数据结构中,属于非线性结构的是 A )循环队列 B) 带链队列 C) 二叉树 D )带链栈 2)下列数据结果中,能够按照“先进后出”原则存取数据的是 A) 循环队列 B) 栈 C)队列 D)二叉树 3)对于循环队列,下列叙述中正确的是 A )队头指针是固定不变的 B )队头指针一定大于队尾指针 C )队头指针一定小于队尾指针 D )队头指针可以大于队尾指针,也可以小于队尾指针 4)算法的空间复杂度是指 A )算法在执行过程中所需要的计算机存储空间 B )算法所处理的数据量 C )算法程序中的语句或指令条数 D )算法在执行过程中所需要的临时工作单元数 5)软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 6)下列选项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 7)软件详细设计产生的图如下: 该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图 8)数据库管理系统是 A )操作系统的一部分B) 在操作系统支持下的系统软件C) 一种编译系统 D) 一种操作系统 9)在E-R 图中,用来表示实体联系的图形是 A) 椭圆图B) 矩形C) 菱形D) 三角形 10)有三个关系R ,S 和T 如下: 其中关系T 由关系R 和S 通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 11)以下叙述中正确的是 A )程序设计的任务就是编写程序代码并上机 B )程序设计的任务就是确定所用数据结 构 C )程序设计的任务就是确定所用算法 D )以上三种说法都不完整 12)以下选项中,能用作用户标识符的是 A )void B )8_8 C )_0_ D )unsigned 13)阅读以下程序 #include main() { int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,&case,&pjrintF); printf(“%d %f \n”,case,printF); } 该程序编译时产生错误,其出错原因是 A )定义语句出错,case 是关键字,不能 用作用户自定义标识符B )定义语句出错,printF 不能用作用户自定义标识符 C )定义语句无错,scanf 不能作为输入函 数使用 D )定义语句无错,printf 不能输出case 的值 14)表达式:(int)((double)9/2)-(9)%2的值是 A )0 B )3 C )4 D )5 15)若有定义语句:int x=10;,则表达式 x-=x+x 的值为 A )-20 B )-10 C )0 D )10 16)有以下程序 #include main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d \n”,a=2*b); } 程序运行后的输出结果是 A )0,0 B )1,0 C )3,2 D )1,2 17)设有定义:int a=1,b=2,c=3;,以下语 句中执行效果与其它三个不同的是 A )if(a>b) c=a,a=b,b=c; B )if(a>b) {c=a,a=b,b=c;} C ) if(a>b) c=a;a=b;b=c; D ) if(a>b) {c=a;a=b;b =c;} 18)有以下程序 #include main() { int c=0,k; for (k=1;k<3;k++) switch (k) {default: c+=k case 2: c++;break; case 4: c+=2;break; } printf(“%d \n”,c); } 程序运行后的输出结果是 A )3 B )5 C )7 D )9 19)以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是 A )if((a>b)&&(b>c)) k=1;else k=0; B )if((a>b)||(b>c) k=1;else k=0; C )if(a<=b) k=0;else if(b<=c) k=1; D )if(a>b) k=1;else if(b>c) k=1; else k=0; 20)有以下程序 #include main() { char s[]={“012xy”};int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>=?a?&&s[i]<=?z?) n++; printf(“%d \n”,n); } 程序运行后的输出结果是 A )0 B )2 C )3 D )5 21)有以下程序 #include main() { int n=2,k=0; while(k++&&n++>2); printf(“%d %d \n”,k,n); } 程序运行后的输出结果是 A )0 2 B )1 3 C )5 7 D )1 2 22)有以下定义语句,编译时会出现编译错误的是 A )char a=?a? B )char a=?\n?; C )char a=?aa?; D )char a=?\x2d?; 23)有以下程序 #include main() { char c1,c2; c1=?A?+?8?-…4?; c2=?A?+?8?-…5?; printf(“%c,%d \n”,c1,c2); } 已知字母A 的ASCII 码为65,程序运行后的输出结果是

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)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语言全部题目及答案

C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H-

C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes?

大学C语言考试题库(含标准答案)

单项选择 ================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10 。printf("%d",a++) 。 A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A' 的ASCⅡ代码值是65, 字符变量c1的值是'A',c2 的值是'D'. 执行语句printf("%d,%d",c1,c2-2) 。后, 输出结果是 A、65,66 B、A,B C、 65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10] 。合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B 题号:45 能正确表示逻辑关系:" a ≥10或a≤0 " 的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0

D 题号:157 main() {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) 。} 该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f 是实型,i 是双精度型,则表达式10+'a'+i*f 值的 数据类型为()。 A、不确定 B、double C、int D、 float 答案: B 题号:1647 以下程序中,while 循环的循环次数是______ main() { int i=0 。 while(i<10) { if(i<1) continue 。 if(i==5) break 。 i++ 。 } } A、死循环,不能确定次数 B、6 C、4 D、1

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言期末考试题含答案

C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

《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=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) 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!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,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、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言上机作业试题5套含答案

第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件

A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。

c语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】A) 函数B) 语句C) 字符D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】A) 整型、实型、逻辑型B) 整型、实型、字符型 C) 整型、双精度型、布尔型D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】A) 固定的B) 由用户自己定义的 C) 任意的D) 与机器字长有关

C语言试题及答案

C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

第1章C语言概述习题1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成

C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言 的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言期末上机考试题及答案

C语言上机考试题—01 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include main() { int k,m,s=0,i,b=0; for(k=10000;k<=20000;k++ ) { if(k%10==7) { for(i=2,b=0;i main() { int a; printf("请输入一个需要判 断的年份:\n"); scanf("%d",&a); if(a%4==0&&a%100!=0) printf("是闰年\n"); else if(a%400==0) printf("是闰年 \n"); else printf("不是闰 年\n"); } C语言上机考试题—02 1. //#include #include double fun( int n ) { double sum=0,a=1; for(;n>0;n--,a++) sum=sum+1/(a*(a+1)); return sum; } main() { // clrscr(); printf("%f\n", fun(10)); } 2. #include fun(int n) { int i,j=0; for(i=2;i #include main() { char str[81]; int i,j=0,w=1,s=0; printf("请输入一串字符: \n"); gets(str); for(i=0;i

C语言考试题及答案

一、单项选择题:(10分,每题2分) 1.char *p[10];该语句声明了一个: c 。 A)指向含有10个元素的一维字符型数组的指针变量p B)指向长度不超过10的字符串的指针变量p C)有10个元素的指针数组p,每个元素可以指向一个字符串 D) 有10个元素的指针数组p,每个元素存放一个字符串 2.若int x;且有下面的程序片断,则输出结果为: D 。 for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "**%d\n", x); } A) ##3B) **3C) **3D)##3**4 **4 ##4 ##4**5 ##5 ##5 **5 3.在while(!x)语句中的!x与下面条件表达式等价的是:D 。 A) x!=0 B) x==1 C) x!=1 D) x==0 4.已知 struct point { int x; int y; }; struct rect { struct point pt1; struct point pt2; }; struct rect rt; struct rect *rp = &rt; 则下面哪一种引用是不正确的__D______。 A) r t.pt1.x B) (*rp).pt1.x C) r p->pt1.x D) rt->pt1.x 5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为: C 。 A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+j CDDDC 二、分析程序并写出运行结果。(25分,每题5分) 1. #include main()

相关文档
最新文档