2012C语言程序设计试题

更新时间:2024-06-20 03:09:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2012C语言程序设计试题

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

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

B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C.本程序的main函数开始,到本程序文件的最后一个函数结束 D.本程序文件的第一个函数开始,到本程序main函数结束 2.以下叙述正确的是:( )

A.在C程序中,main函数必须位于程序的最前面 B.程序的每行中只能写一条语句 C.C语言本身没有输入输出语句

D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误 3.以下叙述不正确的是:( )

A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成单位是函数

D.在C程序中,注释说明只能位于一条语句的后面 4.C语言规定:在一个源程序中,main的位置( ) A.必须在最开始

B.必须在系统调用的库函数后面 C.可以任意 D.必须在最后

5.一个C语言程序是由( )

A.一个主程序和若干子程序组成 B.函数组成

C.若干过程组成

D.若干子程序组成

6.C源程序的基本单位是_______

7.一个C源程序中至少包括一个_______

8.在一个C源程序中,注释部分两侧的分界符分别为_____和____

9.在C语言中,输入操作是由库函数______ 完成的,输出操作是由库函数_____ 完成的

运算符与表达式

1.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为( ) x=(i=4,j=16,k=32)

A.4 B.16 C.32 D.52 2.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )

A.7 B.8 C.6 D.2 3.下面四个选项中,均是不合法的用户标识符的选项的是:( )

A.A p_o do B.float lao _A

C.b-a goto int D._123 temp INT

4.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )

A.必须为字母

B.必须为下划线

C.必须为字母或下划线

D.可以是字母、数字和下划线中的任意一种

5.下面四个选项中均是不合法整型常量的选项是( )

A.160 -0xffff 011 B.-0xcdf 01a 0xe C.-01 986,012 0668 D.-0x48a 2e5 0x 6.下面四个选项中均是不合法整型常量的选项是( )

A.-0f1 -0xffff 0011 B.-0xcdf 017 12,456 C.-018 999 5e2 D.-0x48eg -068 03f 7.下面四个选项中,均是不合法的浮点数的选项是( )

A.160 0.12 e3 B.123 2e4.2 e5 C.-18 123e4 0.0 D.-e3 234 1e3 8.下面四个选项中,均是合法的浮点数的选项是( )

A.+1e+1 5e-9.4 03e2 B.-60 12e-4 -8e5 C.123e 1.2e-4 -8e5 D.-e3 8e-4 5.e-0 9.下面四个选项中,均是合法转义字符的选项是( )

A.'\\\ ?\\\\' ?\\n' B.?\\' ?\\017' ?\\\C.'\\018' ?\\f' ?xab' D.'\\\\0' ?\\101' ?x1f' 10.下面四个选项中,均是不合法的转义字符的选项是( )

A.'\\\ ?\\\\' ?\\xf' B.'\\1011' ?\\' ?\\a' C.'\\011' ?f' ?\\}' D.'\\abc' ?\\101' ?x1f' 11.下面正确的字符常量是( )

A.?c\ B.'\\\\\ C.'w' D.\

12.下面四个选项中,均是正确的数值常量或字符常量的选项的是( )

A.0.0 0f 8.9e ?&' B.\ 3.9E-2.5 1e1 ?\\\C.'3' 011 0xFF00 0a D.+001 0xabcd 2e2 50 13.下面不正确的字符串常量是( )

A.'abc' B.\ C.\ D.\ “ 14.若有代数式3ae/bc,则不正确的C语言表达式是( )

A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3

15.已知各变量的类型说明如下:int k,a,b; unsigned long w=5; double x=1.42;则以下不符合C语言语法的表达式是( )

A.x%(-3) B.w+=-2

C.k=(a=2,b=3,a+b) D.a+=a-=(b=4)*(a=3)

16.已知各变量的类型说明如下:int i=8,k,a,b; unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是( )

A.a+=a-=(b=4)*(a=3) B.a=a*3=2 C.x%(-3) D.y=float(i) 17.以下不正确的叙述是( )

A.在C程序中,逗号运算符的优先级最低

B.在C程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变 D.当从键盘输入数据时,对整型变量只能输入整型数值,对实型变量只能输入实型数值

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

A.在C程序中,每行中只能写一条语句

B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C.在C语程序中,无论是整数还是实数,都能被准确无误地表示 D.在C程序中,%是只能用于整数运算的运算符 19.以下符合C语言语法的赋值表达式是( )

A.d=9+e+f=d+9 B.d=9+e,f=d+9

C.d=9+e,e++,d+9 D.d=9+e++=d+7

20.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( )

A.D B.68 C.不确定的值 D.C 21.在C语言中,要求运算数必须是整型的运算符是( )

A./ B.++ C.!= D.%

22.若以下变量均是整型,且num=sum=7;则计算表达式SUM=num++,SUM++,++num后sum值为( )

A.7 B.8 C.9 D.10 23.若有说明语句:char c='\\72';则变量c( )

A.包含1个字符 B.包含2个字符

C.包含3个字符 D.说明不合法,c的值不确定 24.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( ) A.2.500000 B.2.750000 C.3.500000 D.0.000000

25.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( ) A.int B.float C.double D.不确定 26.在C语言中,char型数据在内存中存储形式是( )

A.补码 B.反码 C.原码 D.ASCII码 27.表达式18/4*sqrt(4.0)/8值的数据类型为( )

A.float B char C.double D.不确定 28.设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( ) A.float B char C.int D.double

29.若有以下定义,则能使值为3的表达式为3的表达式是( ) int k=7,x=12; A.x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5 D.(x%=k)-(k%=5) 30.设以下变量均为int类型,则值不等于7的表达式是( )

A.(x=y=6,x+y,x+1) B.(x=y=6,x+y,y+1) C.(x=6,x+1,y=6,x+y) D.(y=6,y+1,x=y,x+1)

31.在c语言中(以16位pc机为例),一个char型数据在内存中所占的字节数为( ),一个int型数据在内存中所占的字节数为( ), 一个float型数据在内存中所占的字节数为( ), 一个double型数据在内存中所占的字节数为( ).

32.有以下定义,则计算表达式y+=y-=m*=y后的y值是( )。int m=5,y=2; 33.若s是int型变量,s=6;则下面表达式的值为( )s%2+(s+1)%2

34.若a是int 型变量,则下面表达式的值为( )(a=4*5,a*2),a+6 35.若x和a均是int型变量,则计算式(1)后的x的值为( ),计算表达式(2)后的x的值为( )。

(1)x=(a=4,6*2) (2) x=a=4,6*2

36.若a.b和c均是int型变量,则计算表达式后,a值为( ),b值为( ),c值为( ).

a=(b=4)+(c=2)

37.若a是int型变量,且a的初值为6,则计算表达式后a的值为( )。 a+=a-=a*a 38.若a是int型变量,则计算表达式后a的值为( )。 a=25/3%3

39.若x和n均是int型变量,且x和n的初值均为5,则精神表达式后x的值为( ),难得值为( )。x+=n++ 40.若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为( )。 a+(int)(b/3*(int)(a+c)/2)%4 41.若定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值( )。(float)(a+b)/2+(int)x%(int)y 42.若有定义:char c='\\010';则变量c中包含的字符个数为( ).

43.若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值( ) (x+y)%2+(int)a/(int)b 44.若x和n均为int型变量,且x的初值为12,n的初值为5,则计算表达式后x的值为( ) x%=(n%=2)

45.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为( ) 46.C语言中的标识符只能由三种字符组成,它们是( ),( )和( ).

47.已知字母a的ASII码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'+-'3'的值为( ).

48.把以下多项式写成只含七次乘法运算,其余皆为加.减运算的表达式为 ( ) 5x^7+3x^6-4x^5+2x^x^3-6x^2+x+10

49.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为( )

50.若有定义:int e=1,f=4,g=2;float m=10.5,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是( )

51.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为( ) 52.表达式pow(2.8,sqrt(double)(x)))值的数据类型为( )

53.假设m是一个三位数,从左到右用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是( )

顺序结构程序设计

注:□代表空格;表示回车

1.putchar函数可以向终端输出一个( )

A.整型变量表达式值 B.实型变量值

C.字符串 D.字符或字符变量值 2.以下程序的输出结果是( ) main( ) {

printf(“\\n*s1=s*',“chinabeijing\ printf(“\\n*s2=%-5s*\

}

A.*s1=chinabeijing□□□* *s2=**chi* B.*s1=chinabeijing□□□* *s2=chi□□* C.*s1=*□□chinabeijing* *s2=□□chi*

D.*s1=□□□chinabeijing* *s2=chi□□*

3.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列.如果字符串长度以大于5,则输出按方式( );如果字符串长度小于5,则输出按方式( )

A.从左起输出该字串,右补空格

B.按原字符长从左向右全部输出 C.右对齐输出该字串,左补空格 D.输出错误信息

4.x和y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( ) A.scanf(“%d%s,\,&z); B.scanf(“-*%d%f\

C.scanf(“%x%d*%o\

D.scanf(“%x%o%6.2f\,&z);

5.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( );

int a1,a2;char c1;c2;

scanf(“%d%c%d%c\

A.10A□20B B.10□A□20□B

C.10A20B D.10A20□B

6.已有定义int x;float y;且执行scanf(“=%f\语句时,从第一列开始输入数据12345□678<回车>,则x的值为( 1 ),y的值为( 2 )

(1)A.12345 B.123 C.45 D.345

(2)A.无定值 B.45.000000 C.678.000000 D.123.000000 7.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( )(注:□表示空格,表示回车)

int a1,a2; char c1,c2; scanf(“%d%d\,&a2); scanf(“%c%c\

A.1020AB B.10□20AB C.10□□20□□AB D.10□20AB

8.已有程序段和输入数据的形式,程序中输入语句的正确形式应当为( ) main( ) {

int a;float f;

printf(“\\nInput number:\

}

输入语句 printf(“\\nf=%f,a=%d\\n\输入的数据为4.52

A.scanf(“%d,%f\ B.scanf(“%f,%d\ C.scanf(“%d%f,&a,&f); D.scanf(“%f%d\ 9.阅读以下程序,当输入数据形式为:25,13,10,正确的输入结果为( ) main( ) {

int x,y,z;

scanf(“%d%d%d\ printf(“x+y+z=%d\\n\

}

A.x+y+z=48 B.x+y+z=35 C.x+z=35 D.不确定值

}

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

23.为了避免在嵌套的条件语句if--else中产生二义性,C语言规定:else子句总是与( )配对。

A.缩进排位置相同的if B.其之前最近的if C.其之后最近的if D.同一行上的if 24.以下不正确的语句为( ) A.if(x>y);

B.if(x=y)&&(x!=0) x+=y;

C.if(x!=y) scanf(“%d”,&x); else scanf(“%d”,&y);

D.if(x

25.运行下面程序后输入为2.0,则输出结果是( ) main()

{ float a,b; scanf“%f”,&a);

if(a<0.0) b=0.0;

else if((a<0.5)&&(a!=2.0)) b=1.0/(a+2.0); else if(a<10.0) b=1.0/x; else b=10.0; printf(“%f\\n”,y); }

A.0.000000 B.0.500000 C.1.000000 26.若运行时给变量x输入12,则以下程序的运行结果是( main()

{ int x,y;

scanf(“%d\\n”,y);

}

A.0 B.22 C.12 27.以下程序的运行结果是( ) main()

{int k=4,a=3,b=2,c=1;

printf(“\\n%d\\n”,k

A.4 B.3 C.2 28.执行以下程序段后,变量a,b,c的值分别是( ) int x=10,y=9; int a,b,c; a=(-x= =y++)?- -x:++y; x=x++;c=y; A.a=9,b=9,c=9 B.a=8,b=8,c=10

C.a=9,b=10,c=9 D.a=1,b=11,c=10

29.int w,x,y,z,m;则执行以下语句后m的值为( ) w=1;x=2;y=3;z=4;

m=(w

A.1 B.2 C.3 D.0.250000 ) D.10 D.1 D.4

30.若w=1,x=2,y=3,z=4,则表达式w

A.4 B.3 C.2 D.1 31.执行以下程序段后的输出结果是:( ) int w=3,z=7,x=10;

printf(“%d ”,x>10?x+100:x-10); printf(“%d ”,w++||z++); printf(“%d ”,!w>z);

printf(“%d ”,w&&z);

A.0 1 1 1 B.1 1 1 1 C.0 1 0 1 D.0 1 0 0 32.当a=3,b=2,c=1时,表达式f=a>b>c的值是________ 33.当a=5,b=4,c=2时,表达式a>b!=c的值是________ 34.以下程序的运行结果是___________ main()

{int x=1,y,z;

x*=3+2; printf(“%d\\t”,x); x*=y=z=5; printf(“%d\\t”,x);

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

35.在C语言中,表示逻辑“真”用__________

36.设y为int型变量,请写出描述“y是奇数”的表达式__________

37.C语言提供的三种逻辑运算符是____ _____ _____

38.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式____________ 39.设int x,y,z;请描述“x,y和z中有两个为负数”的表达式____________ 40.已知A=7.5,B=2,c=3.6,表达式A>B&&C>A||AB的值是________ 41.若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是____________ 42.若a =2,b=4,则表达式(x=a)||(y=b)&&0的值是___________ 43.若a=1,b=4,c=3,则表达式!(a

48.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后;n的值为______,m的值为________

49.以下程序运行结果是______ main() {

int a1,a2,b1,b2; int i=5,j=7,k=0; a1=!k; a2=i!=j;

printf(“a1=%d\\t a2=%d\\n”,a1,a2); b1=k&&j; b2=k||j;

printf(“b1==%d\\t b2=%d\\n”,b1,b2);

}

51.以下程序的运行结果是:_________ main()

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

x=x||y&&z; printf(“%d,%d”,x,x&&!y||z);

}

52.有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值是______

循环控制

1.设有程序段 int k=10; while (k=0) k=k-1; 则下面描述中正确的是 ( ) A while循环执行10次 B 循环是无限循环 C 循环体语句一次也不执行 D 循环体语句执行一次

2.设有以下程序段 int x=0,s=0; while(!x!=0)s+=++x;printf(\则( ) A 运行程序段后输出0 B 运行程序段后输出1 C 程序段中的控制表达式是非法的 D 程序段执行无限次 3、语句while(!E);中的表达式!E特等价于( )

A、E==0 B、E!=1 C、E!=0 D、E==1 4、下面程序段的执行结果是( ) a=1;b=2;c=2;

while(a

printf(\

A、1,2,0 B、2,1,0 C 、1,2,1 D、2,1,1 5、下面程序段的运行结果是( ) x=y=0;

while(x<15) y++,,x+=++y;

printf(\

A、20,7 B、6,12 C、20,8 D 8,20 6、下面程序段的运行结果是( )

int n=0; while (n++<=2); printf(\

A,2 B、3 C、4 D 有语法错误

8、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等的数时结束循环,请选择填空。

main()

{ int a,b,t;

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

{ if(a>b) { t=a; a=b; b=t; } printf(“%d,%d\\n”,a,b); scanf(“%d,%d”,&a,&b); }

}

A、!a=b B、a!=b C、a==b D、a=b 9、下面程序的功能是从键盘输入的一组字符中统计出大写字母个数m和小写字母个数n,并输出m,n中较大者,请选择填空。

#include

main( )

{ int m=0,n=0; char c;

while((_①_)!=?\\n?)

{ if(c>=?A?&&c<=?Z?) m++;

if(c>?a?&&c<=?z?) n++; }

printf(“%d\\n”,m

①A. c==getchar( ) B.getchar( ) C.c=getchar( ) D.scanf(“%c”,c) ②A. n:m B.m:n C.m:m D.n:n

11.下面程序的功能是在输入的一批正整数中求出最大者,输入0时结束,请选择填空 main( ) { int a,max=0;

scanf(“%d”,&a); while(____)

{ if(max

}

A.a==0 B.a C!a==1 D.!a 12、下面程序的运行结果是( ) main( )

{ int num=0;

while(num<=2) num++; printf(“%d”,num);

}

A.0 B.1 C.2 D.3 14.C语言中while和do-while循环的主要区别是( ) A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do–while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句 15 .以下程序段()

x=-1; do{ x=x*x; }while(!x);

A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误 16、以下描述中正确的是( )

A.由于do-while循环中循环语句中只能是一条可执行语句,所以循环体内不能使用复合语句。

B.do-while循环由do开始,且while结束,在while(表达式)后面不能写分号。 C.在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作。 D.do-while循环中,根据情况可以省略while

17.若有以下后句 int x=3; do { print(\ } while(-x);则运行程序段() A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.死循环 18.下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环,填空。

main()

{ long int num;

scanf(\

do{ if(__①_) printf(\ scanf(\ }while(__②__); }

①A.num0/10=3. B.num/100=3 C.num/10=3 D.num/10=3 ②A.!num B.num>0=0 C.!num=0 D.!num!=0 19.下面程序的运行结果是( ) main( ) { int y=10;

do{y--;} while(--y); printf(\}

A .-1 B.1 C.8 D.-8 21.下面程序的运行结果是( ) main()

{ int a=1,b=10,

do{b-=a;a++;}while(b-,0); printf(\

}

A.3.11 B.2,8 C.1,-1 D.4,9 22.下面有关for循环的正确描述是( )

A.for循环只能有于循环次数已经确定的情况 B.for 循环是先执行循环体语句,后判断表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须花括号括起来 23.对for(表达式1; ; 表达式3)可理解为( )

A.for(表达式1;0;表达式3) B.for(表达式1;1;表达式3) C.for(表达式1;表达式1;表达式3) D.for(表达式1;表达式3;表达式3) 24.若i为整型变量,则以下循环执行的次数是( )

for(i=2; i=0; ) printf(“%d”, i--)

A.无限次 B.0次 C.1次 D.2次 25.以下for循环的语句是( )

for (x=0,y=0 ; (y=123)&&(x<4) ; x++);

A.是死循环 B.循环次数不定 C.4次 D.3次 26.以下不是死循环的语句是( )

A.for(y=0,x=1;x>++y;x=I++) I=x; B.for(; ;x++=I);

C.while (1) {x++;} D.for(I=10; ;I--) sum+=I; 27.以下程序段的运行结果是( ) for (y=1; y<10; ) y=((x=3*y,x+1),x-1);

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

A. x=27,y=27 B.x=12,y=13 C.x=15,y=14 D.x=y=27 29.下列程序段不是死循环的是( )

A. int I=100; while(1) {I=I0+1; if(I>100)break; } B. for( ; ; )

C. int k=0; do{++k;}while(k>=0); D.int s=36; while(s); --s;

30.执行语句for(I=1;I++<4;);后变量I的值是( )

A.3; B.4 C.5 D.不定 31.下面程序的功能是计算1到50中是7的倍数的数值之和,请选择填空。 main()

{ int I,sum=0;

for(I=1;I<=50;I++) if(______)sun+=I; printf(“%d”,sum);

}

A.(int)(i/7)=i/7 B.(int)i/7=i/7 C.i%7+0 D.i%7=0 32.下面程序的运行结果是( ) main( ) { int a;

for(a=1;a<=5;a++) switch(a%5)

{ case 0: printf(“*”); break;

case 1: printf(“#”); break;

default: printf(“\\n”); case 2: printf(“&”); }

}

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

main()

{ int I,b,k=0;

for(I=1;I<=5;I++) { b=I%2; while(b-->=0) k++; } printf(“%d,%d”,k,b); }

A.3,-1 B.8-1 C.3,0 D.8,-2 35.以下正确的描述是( )

A. continue语句的作用是结束整个循环的执行

B. 只能在循环体内和switch语句体内使用break语句 C. 在循环体内使用break或continue语句

D. 从多层循环嵌套中退出时,只能使用goto语句

36.下面程序段( )

for(t=1;t<=100;t++) { scanf(“%d”,&x); if(x<0) continue; ptintf(“=”,t); } A. 当x<0时整个循环结束 B. x>=0时什麽也不输出

C. printf函数永也不执行 D. 最多允许输出100个非负整数 37.下面程序段( )

x=3; do{y=x--; if(!y) {printf(“x”); continue;} printf(“#”);} while(1<=x<=2); A.将输出## B.将输出##* C.是死循环 D.含有不合法的控制表达式 38.以下是死循环的是( )

A.for(I=1; ; ) {if(++I%2==0) continue; if(++I%3==0) break;} B.int I=32767; do{if(I<0) break;}while(++I); C.for(I=1; ; ) if(++I<10) continue; D.i=1; while(i--);

39.以下描述正确的是( )

A. goto语句只能用于退出多层循环 B. switch语句中不能出现continue语句 C. 只能用continue语句来终止本次循环 D. 在循环中break语句不能独立出现 41.下面程序的运行结果是( ) 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; } ptintf(“%d\\n”,a); }

A.7 B.8 C.9 D.10 42.下面程序的运行结果是( ) main()

{ int I,j,x=0;

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

{ x++; for(j=0;j<=3;j++) { if ( j%2 ) continue; x++; } ) ptintf(“x=%d\\n”,x); }

A.x=4 B.x=8 C.x=6 D.x=12 43.下面程序的运行结果是( )

main() { int I;

for(I=1;I<=5;I++) { if(I%2) printf(“*”); else continue; printf(“#”); }

printf(“$\\n”); }

A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$ 44.下面程序的运行结果是( ) main()

{ int I,j,a=0;

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

{ for(j=0;j<4;j++) { if (j%2) break; a++; }

a++; }

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

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

45.下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空: int n=0,c; c=getchar( );

while( ) { if ( ) n++; c=getchar( );}

46.当运行以下程序段时,从键盘输入right?,则下面程序的运行结果是( ) char c; while((c=getchar()!=???) putchar(++c); 47.下面程序的运行结果是:

main()

{ int a,s,n,count;

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

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

49.执行以下程序段以后,K值是:________________ k=1;n=263; do{k*=n; n/=10;}while(n);

50.下面程序段中循环体的执行次数是_______________ a=10; b=0; do{b+=2;a-=2+b;}while(a>0);

51.下面程序段的运行结果是:______________________

x=2; do{printf(“*”); x-;}while(!x==0);

52.下面程序段的运行结果是:_____________________

I=1; a=0; s=1; do {a=a+s*I;s=-s;I++;}while(!x<=10); printf(“a=a%d”,a);

53.当运行以下程序段时,从键盘输入1 2 3 4 5 -1,则下面程序的行结果是______ int k=0,n; do{scanf(“%d”,&nn);k+=n;}while(n!=-1); printf(“k=%d n=%d=n”,kn); 54.下面程序段的运行结果:_____________

int I,x,y; I=x=y=0

do{ ++I; if(I%2!=0) {x=x+I; I++;} y=y+I++; }while(I<=7); printf(“x=%d,y=%d\\n”,x,y);

55.下面程序段的运行结果是______________________ int a,b,I; a=1; b=3; I=1; do{ printf(\

a=(b-a)*2+b; b=(a-b)*2+a; if(I++%2==0) printf(\

}while(b<100);

56.当运行以下程序,从键盘输入-1 0,则下面程序的运行结果是__________ main()

{ int a,b,m,n; m=n=1;

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

do{ if(a>0){m=2*n;b++;} else {n=m+n;a+=2;b++;} }while(a==b); printf(“m=%dn=%d”,m,n); }

58.下面程序段的运行结果是( )

for(a=1;I=-1;-1<=I<1;I++) { a++; printf(“-”,a); } printf(“-”,I);

59.若for循环体用以下形式表示:for(表达式1;表达式2;表达式3)循环体语句 则执行语句for(I=0;I<3;I++) printf(“*”);时,

表达式1执行(___)次,表达式3执行(____)次。

60.下面程序的功能是计算1-3+5-7+?-99+100的值,请填空。 main()

{ int I,t=1,s=0;

for(I=1;I<=101;I+=2) {________; s=s+t; _________;} printf(“%d\\n”,s);

}

61.下面程序的运行结果是___________ main()

{ int I,t,sum=0;

for(t=I=1;I<=10;)

{ sum+=t; ++I; if(I%3==0) t=-I; else t=I; } printf(“sum=%d”,sum);

}

62.下面程序的运行结果是____________ main()

{ int I;

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

switch (I%2)

{ case 0: I++; printf(“#”); break;

case 1: I+=2; printf(“#”) default: printf(“\\n”); }

}

63.下面程序的运行结果是______________ main() { int I,j=4;

for(I=j;I<=2*j;I++) switch(I%j) { case 0:

case 1: printf(“*”); break;

case 2: printf(“#”); }

}

64.若从键盘输入65 14,则下面程序的运行结果是_____________ main()

{ int m,n;

printf(“Enter m,n:”); scanf(“%d%d”,&m,&n);

while(m!=n) { while(m>n) m-=n; while(n>m) n-=m; } printf(“m=%d\\n”,m);

}

65.下面程序的运行结果是____________ main()

{ int y,a; y=2;a=1;

while(y-!=-1) { do {a*=y; a++;}while(y--); }

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

}

66.下面程序的运行结果是_____________ main() { int I.j;

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

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

{ if(I==0‖j==0‖I==3‖j==5) printf(“ ”);

else printf(“ “); }

printf(“\\n”); }

}

67.下面程序的运行结果是______________ #include main() { int I,j;

for(I=4;I>=4;I--)

{ for(j=1;j<=I;j++)putchar(?#?);.

for(j=1;j<=4-I;j++)putchar(?*?); putchar(?\\n?); }

}

69.下面程序段的运行结果是_____________ I=1;s=3;

do{ s+=I++; if(s%7==0) continue; else ++I;} while(s<15); printf(“%d”,I);

70.下面程序的运行结果是_______________ main()

{ int I=1;

while(I<=15) if(++I%3!=2) continue; else printf(“%d”,I) ; printf(“n\\”);

}

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

{ int I,j,k=19;

while(I=k-1)

{ k-=3;

if (k%5==0) { I++; continue; } else if (k<5) break; I++; }

Printf(“I=%d,k=%d\\n”,I,k);

}

72.下面程序的运行结果是______________ main()

{ int a=10 , y =0 ;

do{ a+=2; y+=a; if (y>50) break; }while(a=14); printf(“a=%d y=%d”,a,y); }

48.以下程序的功能是________________

main()

{ int num[10]={10,1,-20,-203,-21,2-2,-2,11,-21}; int sum=0,I;

for(j=0;j<4;j++) { if (numm[I]>0) sum=num[I]+sum; } printf(“sum=m”,sum); }

49.先面程序的运行结果是:___________ main()

{ int I,j,row,col,min;

int a[3][4]={{1,2,3,4},{9,8,7,6},{-1,-2,0,5}}; min=a[0][0]; row=col=0; for(I=0;I<3;I++)

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

if (min

}

50.下面程序的运行结果是:______________________ main()

{ int a[6][6],I,J;

for(I=1;j<6;j++) for(j=1;j<6;j++)

a[I][J]=(I / j) * ( j / I ); for(I=1;I<6;I++)

{ for(j=1;j<6;j++) printf(\

printf(\}

}

51.字符串 \的长度是________________

52.下面的程序运行结果是:__________________________ char ch[]=\ int a,s=0;

for(a=0;ch[a]>='0'&&ch[a]<='9';a++) s=10*s+ch[a]-'0' printf(\

53.下面的程序段将输出computer,填空: char c[]=\for(I=0;___________________;I++)

{_______________________; Printf(\

54.下面程序段的运行结果是:______________________ char x[ ]=\ int I=0;

while(x[++I]!='\\0') if(x[I-1]=='t') printf(\55.下面程序的功能是在三个字符串中找出最小的.填空: #include

#include main()

{ char s[20],st[3][20]; int I;

for(I=0;I<3;I++) gets(str[I]); strcpy(s,__________);

if(strcmp(str[2],s)<0) strcpy(s,str[2]); printf(\}

56.下面程序的运行结果是_____________ #include

main()

{ int I; char a[]=\Time\ b[]=\

for(I=0;a[I])!='\\0&&b[I]!='\\0';I++)

if(a[I]==b[I])

if(a[I]>='a'&&a[I]<='z') printf(\else printf(\else printf(\

}

57.下面程序的运行结果是______________ #include main()

{ char a [2][6]={\ int i,j,len[2];

for(I=0;I<2;I++) { for(j=0;j<6;j++)

if(a[I][j])=='\\0') {len[I]=j; break;} printf(\}

}

58.下面程序的运行结果是__________________ #include

main()

{ int I,r; char sl(80)=\ char s2[80]=\

for(I=r=0; sl[I]!='\\0' && s2[I]!='\\0'; I++)

if(sl[I]==s2[I]) I++; else {r=sl[I]; break;} printf(\;

}

59.下面程序的运行结果是______________ #include #define LEN 4 main()

{ int j,c;

char n[2][LEN+1]={\

for(j=LEN-1;j>=0:j--) {c=n[0][j]+n[l][j]-2*'0'; n[0][j]=c+'0';} for(j=0;j<=1;j++) puts(n[j]);

}

60.下面程序的运行结果是:_________________________________ #include

main()

{ int I=5; char c[6]=\

do {c[I]=c[I-1];} while(-I>0); puts(c); }

61.当运行以下程序时,从键盘输入 AabD,则下面程序的运行结果是_______ #include main()

{ char s[80]; int I=0;

gets(s);

while(s[I]!='\\0')

{ if(s[I]<='z'&&s[I]>='a') s[I]='z'+'a'-s[I];

I++; } puts(s);

}

62.下面程序的运行结果是____________ #include main()

{ char s[]=\ int k; char c;

for(k=l;(c=s[k])!='\\0';k++)

{ switch(c)

{ case 'A':putchar('%');continue;

case 'B':++k;break; default:putchar('*');

case 'C':putchar('&');continue; }

putchar('#'); } }

函数练习题

1.以下正确的说法是( )

A.用户若需调用标准库函数,调用前必须重新定义

B.系统根本不允许用户重新定义标准库函数

C.用户可以重新定义标准库函数,若如此,该函数失去原有含义

D.对所有标准库函数,调用前不必用预编译命令将该函数的头文件包含到用户源文件中 2.函数首部的正确形式是( )

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.以下正确的函数形式是( ) 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; retun z;}

D.double fun(int x,int y)

{double z;

z=x+y; return z;}

4.以下正确的说法是( )在C语言中:

A.实参和与其对应的形参各占用独立的存储单元 B.实参和与其对应的形参共占用一个存储单元

C.只有当实参和与其对应的形参同名时才共占用存储单元 D.开参是虚拟的,不占用存储单元

5.若调用一个函数,且此函数中没有return语句,则正确的说法是( )该函数: A.没有返回值 B.返回若干个系统默认值 C.能返回一个用户所希望的函数值 D.返回一个确定的值 6.以下说法不正确的是( )C语言规定:

A.实参可以是常量、变量或表达式 B.形参可以是常量、变量或表达式 C.实参可以为任意类型 D.形参应与其对应的实参类型一致 7.以下说法正确的是( )

A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式

C.如果函数值的类型与返回值类型不一致,以函数值类型为准 D.如果形参与实参的类型不一致以实参类型为准

8.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( ) A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回给实参 D.由用户指定传递方式 9.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )

A.float型 B.int型 C.long型 D.double型 10.C语言规定,函数返回值的类型是由( )

A.return语句中的表达式类型所决定 B.调用该函数时的主调函数类型所决定 C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数类型所决定 11.下面函数调用语句含有实参的个数为( ) A. 1 B.2 C.4 D.5 12.以下错误的描述是( )函数调用可以

A. 出现在执行语句中 B.出现在一个表达式中 C. 做为一个函数的实参 D.做为一个函数的形参 13.以下正确的描述是( )在C语言程序中 A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D.函数的定义和调用均可以嵌套

14.已有以下数组定义和f函数调用的语句,则在f函数的说明中,对形参数组array的错误定义方式为( )int a[3][4]; f(a);

A.f(int array[][6]) B.f(int array[3][]) C.f(int array[][4]) D.f(int array[2][5]

15.若使用一维数组名作函数实参,则以下正确的说法是( ) A.必须在主调函数中说明此数组的大小 B.实参数组类型与形参数组类型可以不匹配 C.在被调函数中,不需要考虑形参数组的大小 D.实参数组名与形参数组名必须一致

16.以下正确的说法是( )如果在一个函数中的复合语句中定义了一个变量,则该变量 A.只在该复合语句中有效 B.在该函数中有效 C.在本程序范围内均有效 D.为非法变量 17.以下不正确的说法为( )

A.在不同函数中可以使用相同名字的变量 B.形式参数是局部变量

C.在函数内定义的变量只在函数范围内有效

D.在函数内的复合语句中定义的变量在本函数范围内有效

18.在C语言中,一个函数一般由两个部分组成,它们是_________和_________

19.下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是_____________,改正后应是_____________ void add(float a,float b) {float c; c=a+b; return c;}

20.以下程式序的运行结果是_____________ main()

{ int I=2,x=5,j=7;

fun(j,6);

printf(“I=%d;j=%d;x=%d\\n”,I,j,x); }

fun(int I,int j)

{ int x=7;

printf(“I=%d;j=%d;x=%d\\n”,I,j,x); }

21.以下程序的运行结果是_____________ main()

{ increment();

increment();

increment(); }

increment() { int x=0;

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

}

22.以下程序的运行结果是_____________ main()

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

c=max(a,b);printf(“max is %d\\n”,c); }

2.执行以下程序后,a的值为( )b的值为( ) main()

{ int a,b,k=4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

b=(-*p1)/(*p2)+7;

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

}

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

A.5 B.6 C.7 D.10

3.下面程序应能对两个整型变量的值进行交换以下正确的说法是( ) main()

{ int a=10,b=20;

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

swap(&a,&b);

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

}

swap(int p,int q)

{ int t; t=p; p=q; q=t; } A.程序完全正确

B.程序有错,只要将语句swap(&a,&b);中的参数改成a,b即可

C.程序有错,只要将swap()函数中的形参p和q 以及t均定义为指针(执行语句不变)即可 D.以上说法都不对

4.有四组对指针变量进行操作的语句,以下判断正确的选项是( ) (1) int p,q; q=p; int a,*p,*q; p=q=&a; (2) int a,*p,*q; q=&a; p=*q; int a=20,*p; p=a;

(3) int a=b=0,*p; p=&a; b=*p; int a=20,*p,*q=&a; p=q; (4) int a=20,*p,*q=&a; p=q; int p,*q; p=q; A.正确(1) 不正确(2)(3)(4) B.正确(1)(4) 不正确(2)(3) C.正确(3) 不正确(1)(2)(4) D.以上结论都不正确

5.以下程序中调用scanf 函数给变量a输入值的方法是错误的,其错误原因是( ) main() { int*p, a ;

p=&a;

printf(“input a:”); scanf(“%d”,*p); ??

}

A.*p表示的是指针变量p的地址

B.*p表示的是变量a的值,而不是变量a的地址

C.*p表示的是指针变量p的值

D.*p只能用来说明p是一个指针变量

6.已有定义int k=2; int *ptr1=&k, *ptr2=&k;下面不能正确执行赋值语句的是( )

A. k=*ptr1+*ptr2; B.ptr2=k; C.ptr1=ptr2; D. k=*ptr1*(*ptr2); 7.变量的指针,其含义是指该变量的( )

A.值 B.地址 C.名 D.一个标志

8.若有语句int *point , a=4和point=&a;下面均代表地址的一组选项是( ) A. a, point, *&a B.&*a, &a, *point C. &point, *point, &a D.&a, &*point, point 9.若有说明:int *p,m=5,n;以下正确的程序段是( )

A. p=&n; scanf(“%d”,&p); B. p=&n; scanf(“%d”,*p); C. scanf(“%d”,&n); *p=n; D. p=&n; *p=m;

10.若有说明:int *p1,*p2,m=5,n;以下不正确的赋值语句的选项是( )

A. p1=&m; p2=&p1; B.p1=&m; p2=&n; *p1=*p2; C. p1=&m; p2=p1; D.p1=&m; p2=p1;

11已有变量定义和函数调用语句: int a=25; print_value(&a);下面函数的正确输出结果是( ) void print_value(int *x) {printf(“%d\\n”,++*x);}

A. 23 B. 24 C. 25 D. 26 12.下面判断正确的是( )

A. char *a=”china”; 等价于 char *a; *a=”china”; B. char str[10]={“china”}; 等价于 char str[10]; C. char *s=”china”; 等价于 char str[10]

D. char c[4]=”abc”, d[4]=”abc” 等价于 char c[4]=b[4]=”abc”;

13.设char*s=”\\ta\\017bc”;则指针变量s指向的字符串所占的字节数是 ( ) A.9 B.5 C.6 D.7 14.下面能正确进行字符串赋值的操作的是( )

A. char s[5]={“ABCDE”}; B. char s[5]={?A?,?B?,?C?,?D?,?E?,}; C. char*s; s=”ABCDE”; D.chars;scanf(“%s”,s); 15.下面程序段的运行结果是( )

char *s=”abcde”; s+=2; printf(“%d”,s);

A.cde B.字符?c? C.字符?c?的地址 D.无确定结果 16.设有以下程序段:char s[]=”china”; char*p; p=s; 则下列叙述正确的是( ) A.s和p完全相同

B.数组s中的内容和指针变量p中的内容相等 C.s数组长度和p所指向的字符串长度相等 D.*p与s[0]相等 17.以下正确的程序段是( )

A.char str[20]; scanf(“%s”,&str); B.char *p; scanf(“%s”,p);

C.char str[20];Scanf(“%s”,&str[2]); D.char str[20], *p=str; scanf(“%s”,p[2]); 18.下面程序段的运行结果是( ) char str[]=”ABC”, *p=str; printf(“%d\\n”,*(p+3));

A. 67 B. 0 C.字符?C?的地址 D.字符?C? 19.下面程序段运行结果是( ) char a[]=”language”,*p; p=a;

while(*p!=?u?) { pirntf(“%c”,*p-32); p++; }

A. LANGUAGE B. language C. LANG D. language 20.下面说明不正确的是( )

A.char a[10]=”china”; B.char a[10], *p=a; p=”china”; C.char *a; a=”china”; D.char a[10], *p; p=a=”china”; 21. 若有说明语句: char a[]=”It is mine”; char *p=”It is mine”; 则以下不正确的叙述是( ) A.a+1表示的是字符t的地址

B.p指向另外的字符串时,字符串的长度不受限制 C.p变量中存放的地址值可以改变 D.a中只能存放10个字符

22.若已定义char s[10];则在下面表达式中不 表示s[1]的地址是( ) A.s+1 B.s++ C.&s[0]+1 D. &s[1] 23.下面程序段的运行结果是( )

char s[6]; s=”abcd” printf(“\\”%s\\”\\n”,s);

A.”abcd” B.”abcd” C。\\”abcd\\” D编译出错

24.当运行以下程序时,从键盘输入Happy! ,则下面的程序运行结果是( ) #include #include main()

{ char str [10], *p=str;

gest(p); printf(“%d\\n”,stre(p)); }

stre(char str[ ] ) { int num=0;

while(*(str+num)!=?0?) num++; return(num);

}

A.7 B.6 C.5 D.10 25.下面程序的运行结果是( ) #include void delch(char *s) { int I , j ; char *a;

a=s;

for(I=0,j=0;a[I]!=?\\0?;I++)

if(a[I]>=?0?&&a[I]<=?9?) { s[j]=a[I]; j++; } s[j]=?\\0?; }

main()

{ char *item=”a34bc”;

delch(item); printf(\

}

A.abc B.34 C.a34 D.a34bc

26.下面程序运行结果是( )

#include #include main()

{ char*s1=”AbDeG”; char *s2=”ABdEg”;

s1+=2; s2+=2;

printf(“%d\\n”,strcmp(sl,s2));

}

A.正数 B.负数 C.零 D.不确定的值 27.下面和序的运行结果是( ) #include #incude

main()

{ char* p1,*p2,str[50]=”abc”;

p1=”abc”; p2=”abc”;

strcpy(str+1,strcat(p1,p2)); printf(“%s\\n”,str);

}

A.abcabcabc B.bcabcabc C.aabcabc D.cabcabc 28.若有以下定义int a[5],*p=a; 则对a数组元素的正确引用是

A.*&a[5] B.a+2 C.*(p+5) D.*(a+2)

29.若有定义:int a[2][3];则对a数组的第I行,第j列元素值的正确引用是( ) A.*(*a+I)+j) B.(a+I)[j] C*(a+I+j) D.*(a+I)+j

30.若有以下定义和语句int a[2][3], (*P)[3]; p=a;则对a数组的地址的正确引用为( ) A.*(p+2) B.p[2] C.p[1]+1 D.(p+1)+2

31.若有以下定义和语句int a[2][3],(*p)[3]; p=a;则对a数组元素的正确引用为( ) A.(p+1)[0] B.*(*(p+2)+1) C.*(p[1]+1) D.p[1]+2 32.若有定义:int a[5];则a数组中首元素地址可以表示为( ) A.&a B.a+1 C.a D.&a[1] 33.若有定义: int(*p)[4]; 则标识符p是( ) A.是一个指向整形变量的指针 B.是一个指针数组名

C.是一个指针,它指向一个含有四个整形元素的一维数组 D.定义不合法

34.若有以下定义和赋值语句,则以s数组的第I行第j列元素地址的合法引用为( ) int s[2][3]={0}, (*p)[3]; p=s;

A.*(*p+I)+j) B.*(p[I]+j) C.(p+I)+j D.(*(p+I))[j] 35.以下与int *q[5];等价的定义语句是( )

A.int q[5]; B.int *q; C.int *(q[5]); D.int (*q)[5]; 36.设有以下程序段:

char str[4][10]={“frist”,”second”,”third”,”forurth”},*strp[4]; int n; for(n=0;n<4;n++) strp[n]=str[n];

若k为int型变量且0<=k<4,则对字符串的不正确引用是( ) A. strp B. str[k] C.strp[k] D.*strp

37.若有以下定义int a[10],*p=a; 则*(p+5)表示( )

A.元素a[5]的地址 B.元素a[5]的值 C.元素a[6]的地址 D.元素a[6]的值 38.以下选项中,对指针变量p的不正确操作是( )

A.int a[5],*p; p=&a; B.int a[5],*p; p=a;

C.int a[5]; int *p=a; D.int a[5]; int*p1,*p2=a; *p1=*p2;

39.若有以下定义int a[5],*p=a; 且0<=I<5,则对a数组元素的非法引用是( ) A.a[1] B.*(a+1) C.*(p+1) D.*(&a+I)

40.若有以下定义int x[10]={0,1,2,3,4,5,6,7,8,9},*p1; 则数值不为3的表达式是( ) A.x[3] B.p1=x+3,*p1++ C.p1=x+2,*(p1++) D.p1=x+2,*++p1 41.阅读以下程序:

main()

{ int a[10]={2,4,6,8,10,12,14,16,18,20},*p;

p=a; printf(“%x\\n”,p); printf(“%x\\n”,p+9);

}

若第一个printf语句输出的是ffca,则第二个printf语句输出的是( ) A.ffdd B.ffdc C.ffde D.ffcd

42.设有以下定义: char *cc[2]={“1234”,”5678”}; 则正确的叙述是( ) A.cc数组的两个元素中各自存放了字符串”1234”和”5678”的首地址

B.cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 C.cc是指针变量,它指向含有两个数组元素的字符型一维数组 D.cc数组元素的值分别是”1234”和”5678”

43.若有以下定义int x[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int(*p)[3]=x; 则能够正确表示数组元素x[1][2]的表达式是( )

A *((*p+1)[2]) B (*p+1)+2 C *(*p+5) D *(*p+1)+2) 44.下面程序的运行结果是( ) main()

{ int x[5]={2,4,6,8,10},*p,**pp;

p=x; pp=&p;

printf(“%d”,*(p+1)); printf(“=\\n”,**pp); }

A 4 4 B 2 4 C 2 2 D, 4 6

45.若有说明:char *language[]={“fortran”,”basic”,”pascal”,”java”,”c”}; 则表达式language[1]>*language[3]比较的是( )

A.字符f和字符p B.字符串basic和字符串java

C.字符b和字符j D.字符串fortran和字符串pascal 46.若有说明:char *language[]={“fortran”,”basic”,”pascal”,”java”,”c”}; 则language[2]的值是( )

A.一个字符 B.一个地址 C.一个字符串 D.一个不定直

47. 若有说明:char *language[]={“fortran”,”basic”,”pascal”,”java”,”c”}; 则以下不正确的是( )

A.language+2表示字符串”pascal”的首地址

B.language[2]的值是字母p

C.language是一个字符行指针数组,它包含5个元素每个元素都是一个指向字符串变量的指针

本文来源:https://www.bwwdw.com/article/2n13.html

Top