2023年12月29日发(作者:)

C语言程序设计题库说明

一 本题库适用对象

计算机应用技术计算机软件软件技术计算机网络技术与计算机控制技术等专业

二 本题库包含有175道选择题

三 本题库所有题目均附有答案

一、选择题

下列各题ABCD四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。

1、不合法的整数是( )。

A)0x35 B)43.6 C)0532 D)-346

2、下列合法的字符常量是( )。

A)“f” B)x C)65 D)‘Xab'

3、设有整型变量x,单精度变量y=5.5,表达式x=float(y*3+((int)y%4))执行后,x的值为( )。

A)17 B)17.500000 C)17。5 D)1.5

4、在C语言中,负整数在内存中以( )形式释放.

A)补码 B)BCD码 C)反码 D)十进制数

5、在C语言中,要求参加运算的数必须是整数的运算符是( )。

A)/ B)! C)% D)= =

6、( )是C语言中非法的数据类型关键字。

A)float B)singed C)integer D)Char

7、现已定义整形变量int i=1;执行循环语句while(i++<5);后i的值为( )。

A)1 B)5 C)6 D)以上三个答案都不正确

8、下列语句的输出结果是( ).

printf(“%fn”,(float)(2+4)/2);

A)有语法错误不能通过编译 B)3 C)3。0 D)3.000000

9、C语言中,整数-8在内存中的存储形式是( )。

A)1111,1111,1111,1000 B)1000,0000,0000,1000

C)0000,0000,0000,1000 D)1111,1111,1111,0111

10、设C语言中,int类型数据占2个字节,则long类型数据占( )个字节.

A)1 B)2 C)8 D)4

11、若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )。

A)a=(a*100+0。5)/100.0 B)a=(a*100+0。5)/100

C)a=(int)(a*100+0.5)/100。0 D)a=(a/100+0.5)*100。0

12、定义a为整型,下列表达式a=3〉6的运行后,a的值为( )。

A)0 B)1 C)3 D)表达式错误

13、如果a=1,b=2,c=3,d=4,则条件表达式a〉b?a:c>d?c:d的值为( )。

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

14、对于条件表达式(M)?(a++):(a--),其中的表达式M等价于( )。

A)M= =0 B)M= =1 C)M!=0 D)M!=1

15、在x值处于—2到2,4到8时值为“真”,否则为“假"的表达式是( ).

A)(2>x〉—2)||(4>x>8) B)((x〈=—2)||(x>=2)||((x〉4)||(x>=8))

C)(x〈2)&&(x>=—2)&&(x>4)&&(x<8) D)(x>-2)&&(x〉4)||(x〈8)&&(x<2)

16、已知字母a的ASC||的十进制代码为97,则执行下列语句后输出为( ).

Char a=‘a’;

a—-;

printf(“%d,%cn”,a+‘2’-‘0’,a+‘3’—‘0');

A)a,c B)a—运算不合法,故有语法错误 C)98,c D)格式描述和输出项不匹配,输出无定值

17、下列语句中错误的是( )。

A)x=sizeof(int); B)x=sizeof(3.14); C)printf(“%d”,a=a+1,b—-,c+1);

D)printf(“%d”,++x,x++);

18、C语言中,逻辑“真”等价于( )。

A)大于零的数 B)大于零的整数 C)非零的数 D)非零的整数

19、下列语句中,符合语法的语句式( )。

A)a+b=3 B)a=7 C)a=c+b+3=6; D)a=8,b=a+7;

20、若x为float型变量,则以列程序段结果是( )。

x=1234.6789;

printf(“%—2.1f”,x);

A)输出格式描述符的域宽度不够,不能输出 B)输出为1234.7

C)输出为1234.6 D)输出为-1234。6

21、下面函数的功能是( )。

Int funl(char*x)

{

char*y=x;

while(*y++);

return(y-x—1);

A)求字符串的长度 B)比较两个字符串的大小 C)将字符串x复制到字符串y

D)将字符串x连接到字符串y后面

22、指针变量a所指的字符串长度为( )。

Char*a=”n"My Name is ”Zhang Li”n";

A)26 B)27 C)28 D)23

23、若有以下说明和语句,则输出结果是( )。

Char*sp="”n";

Printf(“%d",strlen(sp));

A)6 B)3 C) 5 D)字符串中有非法自负,输出值不定

24、若有以下的说明语句,则对字符串中字符的不正确引用是(其中0<=i〈6)( ).

Char*strp=“string”;

A)*strp B)*(strp+i) C)strp[i] D)strp

25、函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。

A) 将串str1复制到串str2中后再连接到串str3之后

B) 将串str1连接到串str2之后再复制到串str3之后

C) 将串str2复制到串str1中后再将串str3连接到串str1之后

D) 将串str2连接到串str1之后再将串str1复制到串str3之后

26、若使用下述程序段将整数12和浮点数13。6分别赋给变量a和b,那么输入应该式( )。

int a;

float b;

scanf(“a=%d,b=%f",&a,&b);

A)12 13.6 B)a=12, b=13.6 C)12, 13。6 D)a=12 b=13。6

27、对下面的程序说法正确的是( )。

main()

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

if(x=y+z)

printf(“****”);

else

printf(“####”);

}

A)有语法错误,不能通过编译 B)输出为**** C)输出为# # # # D)通过编译,但是不能运行

28、下面程序的输出是( )。

main()

{

int x=10,y=3;

printf(“%dn",y=x%y);

A)0 B)1 C)3 D)不确定的值

29、( )是不正确的C语言赋值语句。

A)a=a+1; B)i++; C)a*=1,b=8; D)a=3

30、C语言程序的三种基本程序是( )。

A)顺序结构,选择结构,循环结构 B)递归结构,循环结构,转移结构

C)嵌套结构,递归结构,顺序结构 D)循环结构,转移结构,顺序结构

31、执行下面语句后的输出结果为( )。

int i=-1;

if (i<=0)

printf(“****n”);

i=2;

else

printf(“%%%%n”);

A)**** B)%% C)%%%%c D)有语法错误.不能正确执行

32、下述语句中,( )中的if 语法有错误。

A) if(x y);

B) if(x= =y)

x+y;

C) if(x!=y)

scanf(“%d”,x)

else

scanf(“%d”,y);

D) if(x y)

{x++;y++;}

33、以下程序段( )。

int x=1,y=4;

printf(x〈y?"x=%d”:"y=%d",x,y);

A)输出控制格式错误 B)输出:x=1 C)输出:y=1 D)输出:y=4

34、为了避免嵌套的条件语句if—else的二义性,C语言规定:else与( )是正确的.

A)缩排位置相同的if B)其之前最近的if C)其之后if D)同一行上的if

35、下列关于switch语句和break语句的结论中,只有( )是正确的。

A) break语句是switch语句的一部分

B) 在switch语句中可以根据需要使用或不使用break语句

C) 在switch语句中必须使用break语句

D) 以上三个结论有两个是正确的

36、设I和x都是int类型,则对于for循环语句for(i=0,x=0;〈i9;i++),下列哪句话正确( )。

A)执行8次 B)执行9次 C)是无限循环 D)循环体一次也不执行

37、下述程序的输出结果是( ).

#include

main()

{ int Y=100;

while(Y——);

printf(“y=%d”,Y);

A)Y=0 B)Y=1 C)Y=随机值 D)Y=—1

38、以下for循环语句( ).

for(; ;)

printf(“*");

A)判断循环结束的条件不合法 B)是无限循环 C)循环一次也不执行

D)循环只执行一次

39、以下程序段执行后输出结果( )。

int i;

for(i=1; ; i++)

printf(“%d”,i++);

A)1 B)2 C)3 D死循环

40、char(*A)[5],则标识符A的意义时( ).

A) A是一个指向有5个字符型元素的指针变量

B) A是一个有5个元素的一维数组,每个元素指向字符型的指针变量

C) A是一个指向字符型的函数的指针变量

D) A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量

41、下述程序的运行结果为( )。

#include

void abc(char*str)

{int a, b;

for(a=b=0;str{a}!='0’;a++)

if(str[a]!='c')

tr[b++]=str[a];

str[b]=’0’;

}

void main ()

char str []=”abcdef";

abc(str);

printf(“str[]=”%s”,str);

A)STR[]=abdef B)STR[]=abcdef C)STR[]=a D)STR[]=ab

42、下列各数组定义程序段,正确的是( ).

A) int n=10;

int a[n];

B) main()

{char str[10]=”a man”}

C) static int[][3]={{0,1,2},{80,89,2}};

D) static char[5]=“i am a student.”;

43、以下main函数调用invert函数将串s的元素按逆序重新存放,(

功能的程序。

void main()

{

char srt[]=“String";

invert(s);

···

A) void invert(char s[])

int t,I,j;

for(i=0,j=strlen(s)—1;i

{

t=*(s+i);

*(s+i)=*(s+j);

*(s+j)=t;

}

B) void invert(char *s)

int t,i,j;

for(i=0,j=strlen(s);i〈j;i++,——j)

{

t=s[i];

s[j]=s[i];

s[i]=t;

}

}

C) void invert(char *s)

{

int t,*h,*p;

h=s;

)是不能正确实现此

p=s+strlen(s)-1;

while(h

t=*h,h=*p,*p=t,p—-,h++;

}

D) void invert(char *s)

int t, *p;

p=s+stlen(s)—1;

while(s〈p)

t=*s;

*s++=*p;

*p--=t;

}

44、下列程序的输出结果是( )。

#include〈stdio。h〉

void fun();

void main()

int x=1;

if(x= =1)

int x=2;

printf(“%d”,++x);

}

void fun()

{

printf(“%d”,x++);

}

A)2,1,1 B)1,2,1 C)2,2,2 D)2,2,1

45、下面程序的输出是( ).

#include〈stdio.h〉

#include〈string.h〉

main()

char *p1=“are”,*p2=“ARE”,a[50]=“xyz”;

strcpy(a+2,strcat(p1,p2));

printf(“%sn”,A);

A)xyareARE B)yzareARE C)zareARE

46、请选出以下程序段的输出结果( )。

#include

main()

D)xyzareARE

{

char a1[10],a2[10],a3[10],a4[10];

scanf(“%s%s",a1,a2);gets(a3);gets(a4);

puts(a1);puts(a2);puts(a3);puts(a4);

输入数据如下:(此处

mmmm nnnn

xxxx yyy

A) mmm

nnnn

xxxx xxx

B) mmmm

nnnn

xxxx

yyy

C) xxxx

nnnn

xxy yyy

zzzz

D) xxxxy yyy

xxxx

xxxx

yyy

47、以下程序的输出结果( )。

#include〈stdio.h〉

#include

main()

{

char a[100]={‘a’,’b’,'c','d','e',’f’,'h’,'i',’j'};

printf(“%dn",strlen(str));

A)6 B)9 C)11 D)不能正常输出

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

main()

{

char *a[][5]={“how”,”do”,”you",”do”,”!”}; char **p;

int i;

p=a;

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

printf(“%s”,p[i]);

}

A)howdoyoudo! B)how C)howdoyoudo

49、下列程序段正确的是( )。

D)hdyd

A)#include〈stdio.h〉

main()

{

int i,j;

int(i)=j;

}

B)#include;

mnain()

{

int i,j;

(int)i=j;

}

C)include

main()

int i,j;

(int)i=j;

D)#include〈stdio。h〉

main()

int i,j;

(int)i=j;

50、下述程序的输出结果为( )。

#include

void main()

{

int a[5]={2,4,6,8,10};

int *p=a,**q=&p;

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

printf(“%d”,**q);

}

A)4,4 B)2,2 C)4,5 D)2,4

51、在C语言中,合法的长整形常数是( ).

A)3452 B)0L C)3553% D)-3452

52、在C语言中,不正确的int类型常量是( )。

A)0453 B)0Xbd C)32768 D)-32768

53、设有整形变量x,单精度变量y=5.5,表达式x=fioat(y*3+((int)y%4))执行后,x的值为( )。

A)17 B)17.500000 C)17.5 D1.5

54、已知字母b的ASC||码的十进制代码为98,则执行下列语句输出为( )。

ch=’b';

ch——;

printf(“%d,%cn”,ch, ch);

A)a,b B)运算不合法,故有语法错 C)97,a D)格式描述和输出项不匹配,输出无值

55、下列程序的输出是( )。

main()

{int a=2, b=13;

printf(“%dn",b=b/a);

A)6。5 B)6.50 C)6 D)6。500000

56、设已定义k为int类型变量

k=—8567;

printf(“|%6d|n",k);

则以上语句( ).

A)输出为|%6d| B)输出为|-8567| C)格式描述符不合法,输出无定值 D)输出为|-8567|

57、若a为整形变量,则以下语句( )。

a=—2L;

printf(“%dn”,a);

A)赋值不合法 B)输出值为—2 C)输出为不确定值 D)输出值为2

58、下面程序的输出是( )。

main()

{

int x=10,y=3;

printf(“%dn",y=x/y);

}

A)0 B)1 C)3 D)不确定的值

59、下面的程序运行结果为( ).

#include

main()

{

char c1, c2;

c1=’a’;

c2=’n’;

printf(“%c%c", c1,c2);

}

A)aa B)a C)an D)nn

60、有关下述语句输出的判断中,正确的是( ).

char x=’A’;

printf(“%d”, x);

A)赋值非法 B)输出值不确定 C)输出值为—32 D)输出值为65

61、执行下面程序中的输出语句后,a的值是( )。

main()

{int a;

printf(“%dn”,(a=65,20,15));

A)65 B)20 C)15 D)10

62、若变量都已正确说明,则以下程序段输出为( )。

a=6;

b=3;

printf(a〉b?”%d”,a:"%d”,b);

A)%3 B)6 C)%6 D)3

63、若有数学公式,其正确的表达式是( )。

A)sqrt(abs(x*x/180)) B)sqrt(abs(sinx*3.14/180)))

C)sqrt(sinx) D)sqrt(fabs(sin(x*3。14/180)))

64、在C语言中,逻辑值“真”用( )来表示。

A)true B)大于0的数 C)非0的数 D)非0整数

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

#include〈stdio.h>

void main()

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

switch(x)

{ case 1:

switch(y)

{case 0: a++; break;

case 1: b++; break;

}

case 2:

a++; b++;

case 3:

a++; b++;

printf(“a=%d, b=%d”, a, b) ;

}

A)a=3, b=2 B)a=2, b=3 C)a=3, b=3 D)a=2, b=2

66、若要求在if后一对括号中表示a不等于0时,条件成立,则能正确表示这一关系的表达式为( )。

A)a!=0 B)!a C)a=0 D)a

67、若执行下面的程序时从键盘上输入5,则输出是( )。

main()

{int x;

scanf(“%d0”, x);

if(++x>5)

printf(“%d”, x);

else

printf(“%d”, x—-);

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

68、设a,b,c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,表达式的值为0的是( )。

A)a&&b B)a<=b C)a||b+c&&b-c D)!((a

69、下面程序的运行结果是( ).

main()

{ int c1=2, c2=0;

while(!c2-—)

printf(“%d,%d”, c1——, c2);

}

A)陷入死循环 B)不输出任何内容 C)输出2, -1 D)输出2,

0

70、已知有以下定义

char a;

int b;

float c;

double d;

则表达式a*b+c—d的结果为( )型。

A)double B)int C)float D)char

71、设定义整形变量k, g,则下面的程序的输出为( )。

k=017; g=1111;

printf(“%dn", ++k);

printf(“%xn”, g++);

A)15 6f B)16 7 C)15 71 D)16 6f

72、已知7/2级结果为( )性。

A)double B)int C)float D)char

73、下列程序的输出结果是( )。

#include

void main()

{

int a=1234;

float b=123。456;

double c=12345。54321;

printf(“n%2d, %2。1f”, a, b, c);

A)输出格式的位数不够,无输出 B)输出的结果为12,12.4,12。5

C)输出的结果为1234,123.5,1234.5 D)输出的结果为1234,123。4,1234。5

74、对下述程序,( )是正确的判断.

#include〈stdio。h〉

main()

int x, y;

scanf(“%d, %d", &x, &y);

if(x〉y)

x=y;

y=x;

else

x++;

y++;

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

}

A)有语法错误 ,不能通过编译 B)若输入数据7和9,则输出8和9

C)若输入数据9和7,则输出7和9 D)如输入数据9和7,则输出9和9

75、对下述程序,( )是正确的判断。

#include

main()

{int x, y;

scanf(“%d, %d",x, y);

if(x y)

{x=y;

y=x; }

else

x++;

y++;

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

76、C语言中,合法的长整型常数是( )

A)3452 B)0L C)3553% D) –3452

77、下列不合法的实数是( )

A)34。65 B)6。3E2 C)e3 D)54.3

78、下列合法的字符常量是( )

A)”f” B)x C)65 D)'Xab’

79、在C语言中,不正确的int类型常量是( )

A)0453 B) 0Xbd C)32768 D) –32768

80、执行下列语句后,第一个输出的值为( )

#include 〈stdio.h〉

#define M 3

#define N M+1

main()

{

printf(“%dn”,N);}

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

81、设有整型变量x,单精度变量y=5.5,表达式x=float(y*3+((int)y%4))执行后,x的值为( )

A)17 B)17.500000 C)17.5 D)1.5

82、整型变量x=1,y=3经下列运算后,x的值不等于6的是( )

A)x=(x=1+2,x*2 ) B)x=y〉2?6:5 C)x=9—(——y)—(——y) D)x=y*4.8/2

83、下列浮点数的表达中不正确的是( )

A)223 B)719E22 C)2e3 D)12e2.0

84、下列程序的输出结果是( )

main()

{int b=4;

b*=b+=b+b;

printf(“%dn”,a);

}

A)16 B)32 C)96 D)144

85、已知字母‘A’的ASCII码值是65,以下程序输出的结果是( )

#include〈stdio。h>

void main()

{char w=’A';

int x=10;

w=x+w;

printf(“%d",w);}

A)表达式非法 B)0 C)不确定值 D)75

86、下列程序段正确的输出结果是( )

float a=1111111。111;

float b=7777777.777;

float c;

c=a+b;

printf(“c=%f",c);

A)c=8888888。888 B)8888888.888 C)c=88888888.236 D)88888888。236

87、下列程序的输出为( )

#include〈stdio.h>

main()

{ int m=13;

float a=12.6, x;

x=m/2+a/2;

printf(“%fn”, x);

}

A)12.000000 B)12.300000 C)12.800000 D)12.3

88、在C语言中,负整数在内存中以( )形式存效.

A)补码 B)BCD码 C)反码 D)十进制数

89、在C语言中,要求参加运算的数必须是整数的运算符是( )

A)/ B) ! C)% D)= =

90、( )是C语言中非法的数据类型关键字。

A)float B)singed C)integer D)Char

91、已知字母b的ASCII码的十进制代码为98,则执行下列语句输出为( )

ch='b’;

ch--;

printf(%d,%cn",ch,ch);

A)a,b B)运算不合法,故有语法错 C)97,a

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

92、若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )

A)a=(a*100+0。5)/100.0 B)a=(a*100+0.5)/100 C)a=(int)(a*100+0.5)/100

D)a=(a/100+0。5)*100。0

93、下列程序段的输出结果是( )

int a=5,b=7;

printf(“%d,%d”,a++,++b);

A)5, 7 B)5, 8 C)6, 7 D)6, 8

94、下列程序的输出结果是( )

main()

{ int a=4;

a*=a+=6;

printf(“%dn”,a);

A)40 B)60 C)80 D)100

95、下列程序的输出结果是( )

main()

{int a=8;

printf(“%a",(a=a*5,a+6));

A)14 B)40 C)46 D)50

96、定义a为整型,下列表达式a=3>6的运行后,a的值为( )

A)0 B)1 C)3 D)表达式错误

97、、如果a=1,b=2,c=3,d=4,则条件表达式a〉b?a: c>d?c: d的值为( )

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

98、、下述程序段的输出结果是( )

{int a=5;

a%=7;

printf(“%d, ",a);

a+=a*=a—=a*=2;

printf(“%d”,a);

}

A)5, 0 B)0, 0 C)5, 12 D)0, 12

99、、下列变量名中合法的是( )

A)Tom B)3a6b C)6a7b D)5ABC

100、对于条件表达式(M)?(a++): (a—-),其中的表达式M等价于( )

A)M= =0 B)M= =1 C)M!=0 D)m!=1

101、下列语句中错误的是( )

A)x=sizeof(int); B)x=sizeof(3。14); C)printf(“%d",a=a+1,b-—,c+1);

D)printf(“%d”,++x,x++);

102、下面语句中,符合C语言语法的赋值语句是( )

A)a=7+b+c=5a+7; B)a=7+b++=a+7; C)a=7+b=b++,a+7;

D)a=7+b;c=a+7;

103、下述语句的输出为( )

int x=—1;

printf(“%d, %u, %o",x, x, x);

A)-1, —1, -1 B)—1, 32767, —177777 C)—1, 32767, 177777

D)—1, 65535, 177777

104、在C语言中,下列属于非法的长整型常量是( )

A)5876273 B)0L C)2E10 D)(long)573

105、若a为整型变量,则以下语句( )

a=—2L;

printf(“%dn”,a);

A)赋值不合法 B)输出值为—2 C)输出为不确定值 D)输出值为2

106、C语言中,逻辑“真”等价于( )

A)大于零的数 B)大于零的整数 C)非零的数 D)非零的整数

107、若使用下述程序段将整数12和浮点13。6分别赋给变量a和b,那么输入应该是( )

int a;

float b;

scanf(“a=%d, b=%f”, &a, &b);

A)12 13。6 B)a=12, b=13。6 C)12, 13.6 D)a=12 b=13.6

108、若x为float型变量,则以列程序段结果是( )

x=1234.6789;

printf(“%-2。1f”, x);

A)输出格式描述符的宽度不够,不能输出 B)输出为1234。7

C)输出为1234.6 D)输出为-1234。6

109、下列程序的输出是( )

main()

{

int x=10,y=3;

printf(“%dn”,y=x/y);

}

A)0 B)1 C)3 D)不确定的值

110、下面程序的输出是( )

main()

int x=10, y=3;

printf(“%dn”, y=x%y);

}

A)0 B)1 C)3 D)不确定的值

111、( )是不正确的C语言赋值语句。

A)a=a+1; B)i++; C)a*=1, b=8; D)a=3

112、C语言程序的三种基本结构是( )

A)顺序结构,选择结构,循环结构 B)递归结构,循环结构,转移结构

C)嵌套结构,递归结构,顺序结构 D)循环结构,转移结构,顺序结构

113、有关下述语句输出的判断中,正确的是( )

char x=’A’;

printf(“%d”, x);

A)赋值非法 B)输出值不确定 C)输出值为—32 D)输出值为65

114、执行下面程序中的输出语句后,a的值是( )

main()

{int a;

printf(%dn”, (a=65, 20, 15))

}

A)65 B)20 C)15 D)10

115、执行先面语句后的输出结果为( )

int i=-1

if(I〈=0)

printf( “****n");

i=2;

else

printf(“%%%%n”);

A)**** B)%% C)%%%% D)有语法错误,不能正确执行。

116、若执行下面的程序时,从键盘上输入5和2,则输出结果是( )

main()

{int a, b, s;

scanf(“%d%d”, &a, &b);

s=a;

if(a〈B)

s=b;

s=s*s;

printf(“%dn”, s);

A) 4 B)10 C)20 D)25

117、下述语句中,( )中的if语法的错误的.

A) if(x,y)

B) if(x= =y)

x+y;

C) if(x!=y)

scanf( “%d", x)

else

scanf(“%d”, y);

D) if(x y)]

{ x++;y++; }

118、以下程序段( )

int x=1,y=4;

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

A)输出控制格式错误 B)输出:x=1 C)输出:y=1 D)输出:y=4

119、若要求在if后一对括号中表示a不等于0时,条件成立,则能正确表示这一关系的表达式为( )

A)a! =0 B)!a C)a=0 D)a

120、下面的成粗运行结果为( )

main()

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

if(x=y+z)

printf(“****”);

else

printf(“####");

A)语法有错误,不能编译 B)**** C)#### D)能编译,不能连接

121、为了避免嵌套的条件语句if-else的二义性,C语言规定:else与( )匹配。

A)缩排位置相同的if B )其之前最近的if C)其之后if D)同一行上的if

122、设i和x都是int类型,则对于for循环语句for(i=0,x=0;i<9;i++),下列哪句语正确( )

A)执行8次 B)执行9次 C)是无限循环 D)循环体一次也不执行

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

main()

{ int s1=2, c2=0;

while(!c2—-)

printf(%d, %d, c1--, c2);

A)陷入死循环 B)不输出任何内容 C)输出2, —1 D)输出2,0

124、在下述程序中,判断i〉j共执行了( )次。

#include〈stdio。h〉

void main()

{ int i=0, j=10, k=2, s=0;

for(; ;)

{ i+=k;

if(i>j)

{ printf(“%d”, s);

break;}

s+=i

}

}

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

125、假设int a, b, c, w;且a, b均已经被赋值,同时满足条件a<〉b,执行以下程序后要把c的值赋值给w,从键盘上输入c的值不应取的范围是( )

scanf(“%d”, &c);

w=b;

if(w<=c)

printf(“%d", w);

else

w=c;

A)b>c B)b〈=c C)c〉a&&c〈b D)c〈a‖c〈b

126、执行下面的程序后的数学户结果为( )

int x, y, z

x=20, y=40, z=15;

while(x>y)

x+=4, y-=4;

z/=2;

printf(“%d, %d, %d”, x, y, z);

A)40, 36, 30 B)32, 8, 7 C)32, 28, 7 D)32, 28,7.5

127、对于循环语句while(1);下面( )是正确的。

A)死循环 B)循环一次 C)不进如循环体 D)编译有错

128、下述程序的输出结果是( )

#include

main()

{ int Y=100;

while(Y-—);

printf(“y=%d”,Y);

A)Y=0 B)Y=1 C)Y=随机值 D)Y=-1

129、C语言中,下列说法正确的是( )

A) 不能使用do…while语句构成循环.

B) do…while语句构成的循环必须用break语句才能退出。

C) do…while语句构成的循环,当while语句中的表达式值为非0结束循环。

D) do…while语句构成的循环,当while语句中的表达式值为0结束循环.

130、以下for循环语句( )

for(; ;)

printf(“*”);

A)判断循环结束的条件不合法 B)是无限循环

C)循环一次也不执行 D)循环只执行一次

131、C语言中的构造类型数据包括( )

A) 数组类型、构造体类型和共用体类型

B) 数组类型、结构体类型和指针类型

C) 数组类型、结构体类型和枚举类型

D) 数组类型、结构体类型和空类型

130、若有定义:int A[3][4];能表现数组元素A[1][1]的是( )

A)(A[1]+1) B)*(&A[1][1]) C)(*(A+1)[1]) D)*(A+5)

131、以下程序段叙述正确的是( )

char A[]=”Chinese";

char *p;

p=A;

A)*p和A[0]相等。 B)A和p完全相等。 C)A和p中的内容相等。

D)A数组的长度和p所指向的字符串长度相等。

132、有下列语句和赋值语句:

(1) char str[]=”i am aboy.”

(2) charstr[12]=”i am a boy。"

(3) char *p=”i am aboy.”

(4) char *p; p=”i am a boy。"

下列说法正确的是( )

A)只有(1)、(2)正确 B) 只有(3)、(4)正确

C) 只有(1)、(3)、(4)正确 D) 只有(3)正确

133、有下列基本类型相同的指针p1,p2,则下列运算不合理的是( )

A)p1/=5 B)p1-p2 C)p1=p2 D)p1= =p2

134、在说明语句float f[3][4], *p1,*p2[3],k中,若k>=0且k>3,则下列赋值语句中错误的是( )

A)p2=f B)p1=f[k] C)p2[k]=f[k] D)p1=&[0][0]

135、如下定义语句,则下列符号中均正确地代表x的地址的选项是( )

int x, *p;

p=&x;

A)&x, p, &*x B)*&x, p C)*p, &p, x D)&x, &*p, p

136、对于定义float *p[4];则下面的叙述中正确的是( )

A) 此定义不正确,要改为char *p[4];定义才是正确的.

B) 此定义不正确,p是指向一维实型数组的指针变量,而不是指向单个实型变量的指针变量。

C) 此定义不正确,C语言中不允许类似的定义。

D) 此定义不正确,定义了一个指针数组。

137、下面程序段的输出是( )

static char A[]={“Abcdef"};

char *p;

p=A;

(p+2)+=3;printf(“%c, %cn",p,*(p+2));

A)d, f B)c, e C)A,f D)f, e

138、如下程序段:

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

int *p=&m[0][0];

printf(“%d”,*(p+1)[1]);

则下列说法正确的是( )

A) 输出结果为:0

B) 输出结果为:6

C) 输出结果为:0,6

D) 将输出数据元素的地址而不是数据元素值。

139、执行下面程序段,输出结果是( )

char *p="student”;

p++;

printf(“%d", p);

A)s B)student C)t D)p的地址

140、有定义:float x=3。14, *p;

下列错误的语句是( )

A)p=&x B)p=x C)*p=3 D)*p=x

141、对于两个基类型相同的指针变量,不能进行( )运算。

A)+ B)— C)= D)= =

142、若有以下说明,并且0≤i<10,则( )是对数组元素的错误引用。

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

A)*(a+i) B)a[p-a+i] c)p+i D)*(&a[i])

143、若定义int a[4][10];则以下选项中对数组元素a[i][j]的错误的应用是( )

(其中0 〈=i<4,0<=j〈10)。

A)*(&a[0][0]+10*i+j)

B)(a+i)[j]

c)*(a+i)[j]

D)*(a+i+j)

144、下列各组定义程序段,正确的是( )

A) int n=10;

int a[n];

B) main()

{char str[10]=”a man”;}

C) static int[][3]={{0, 1, 2},{80, 89, 2}}

D) static char[5]="i am a student.”;

145、与十六进制数BB等值的十进制数是( )

A)187 B)188 C)185 D)186

146、在C语言中,字符型数据杂内存中以( )形式存放。

A)原码 B)BCD码 C)反码 D)ASCII码

147、下列运算符中,不属于关系运算符的是( )

A)〉 B)>= c)= D)1

148、byte的意思是( )

A)字 B)字长 C)字节 D)二进制值

149、可以在C语言程序中用做用户标识符的一组标识符是( )

A)void B)as_b3 C)for D)2c

define _123 —abc Do

WORD If cas SIC

150、表达式10!=9的值是( )

A)ture B)非零值 C)0 D)1

151、( )是构成C语言程序的基本单位。

A)函数 B)过程 C)0 D)1

152、若x为int型变量,则执行以下语句后,x的值为( )

x=6;

x+=x—=x*x;

A)36 B)—60 C)60 D)-24

153、能将高级语言程序转换成目标程序的是( )

A)调试程序 B)解释程序 C)编译程序 D)编辑程序

154、以下运算符中优先级最高的运算符为( )

A)&& B)& C)‖ D)!=

155、C语言的程序一行写不下时,( )

A)用逗号换行 B)用分号换行 C)在任意一空格处换行

E) 用回车符换行

156、下述标识符中,( )是合法的用户标识符。

A)Long B)—2Test C)3Dmax D)

157、函数double sqrt(x)的功能是( )

A)求x的平方 B)求x的平方根 C)求x的对数 D)求x的绝对值

158、( )是非法的C语言转义字符.

A)'b' B)’0xf' C)’037' D)’’’

159、语句char s='092’;的作用是( )

A)使s包含一个字符 B)说明不合法,s的值不定

C)使s包含四个字符 D)使s包含三个字符

160、在C语言中,int 、char和 short三中类型数据所占用的内存( )

A)均为2个字节 B)由用户自己定义

C)由所有机器的机器字长决定 D)是任意的

161、下述表达式中,( )可以正确表示x<=0或x>=1的关系。

A)(x>=1)‖(x<=0) B) x>1‖x〈=0 C) x〉=1。OR。x〈=0

D)x>=1‖x〈=0

162、若已定义a为整型数据变量,则语句

a=-2L;

printf(“%dn”, a);

A)赋值不合法 B)输出值为—2 C)输出为不确定值

E) 输出值为2

163、现已定义整型变量int i=1;执行循环语句while(i++〈5);后I的值为( )

A)1 B)5 C)6 D)以上三个答案均不正确

164、( )是不正确的C语言赋值语句。

A)x=1, y=2; B)x++; C)x=y=5; D)y=int(x);

165、C语言可执行程序的开始执行点是( )

A)程序中第一条可执行语句 B)程序中第一个函数

C)程序中的main函数 D)包含文件中的第一个函数

166、有关下述语句输出的判断中,正确的是( )

char x=’xe0—1';

printf(“%d”, x);

A)赋值非法 B)输出值不正确 C)输出值为49

E) 输出值为224

167、下述for语句

int I,x;

for(i=0,x=1,i<=9&&x!=876;i++)

scanf(“%d”, &x);

A)最多循环10次 B)最多循环9次 C)无限循环

A) 一次也不循环

168、下列关于switch语句和break语句的结论中,只有( )是正确的。

A) break语句是switch语句中的一部分

B) 在switch语句中可以根据需要使用或不使用break语句

C) 在switch语句中必须使用break语句

D) 以上三个结论中有两个是正确的

169、设已定义i和k为int类型变量,则以下for循环语句

for(I=0;k= —1,k=1; i++,k++)

printf(“****n”);

A)判断循环结束的条件不合法 B)是无限循环

C)循环依次也不执行 D)循环只执行一次

170、字符串"”ABC"”的长度是( )

A)11 B)7 C)5 D)3

171、以下叙述中不正确的是( )

A) 在C程序中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B) 在C程序的函数中,最好使用全局变量

C) 在C程序中,形参只是局限于所在函数

D) 在C程序中,函数名的存储类别为外部

172、char(*A)[5],则表示符的意义是( )

B) A是一个指向有5个字符型元素的指针变量.

C) A是一个有5个元素的一维数组,每个元素是指向字符型的指针变量。

D) A是一个指向字符型的函数的指针变量。

E) A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量.

174、C语言中的构造类型数据包括( )

E) 数组类型、构造体类型和共用体类型

F) 数组类型、结构体类型和指针类型

G) 数组类型、结构体类型和枚举类型

H) 数组类型、结构体类型和空类型

175、若有定义:int A[3][4];能表现数组元素A[1][1]的是( )

A)(A[1]+1) B)*(&A[1][1]) C)(*(A+1)[1]) D)*(A+5)