版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业C语言程序设计试题库一、选择题(共250个,每题2分)1、一个c语言程序的执行是从( ) A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束2、一个c语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子函数组成3、以下选项中是正确的整型常量是( )A
2、、12 B、 -20 C、 1,000 D、 4 5 64、以下选项中正确的实型常量是( )A、0 B、 3. 1415 C、 0.329*102 D、.8715、以下选项中不合法的实型常量是( )A、 2.607E-1 B、0.8103*12 C、-77.77 D、456e-26、以下选项中不合法的字符串是( )A、abc B、”1212” C、 “0” D、” ”7、下面正确的字符常量是( )A、”c” B、 C、 w D、 8、以下选项中不合法的用户标识符是( )A、 abc.c B、file C、Main D、PRINTF9、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一
3、个字符( )A、必须为字母 B、 必须为下划线 C、必须为字母或下划线 D、可以是字母、数字和下划线中任意一种字符10、以下选项中不合法的用户标识符是 ( )A、_123 B、 printf C、 A$ D、 Dim11、c语言中运算对象必须是整型的运算符是( )A、% B、 / C、 ! D、 * 12、可在C程序中用作用户标识符的一组标识符是( )A、nt B、 as-b3 C、 Fir D、 2cdefine -123 _bc DOWORD if name SIG13、若变量已正确定义并赋值,符合C语言语法的表达式是( )A、 a=a+7; B、a=7+b+c,a+ C、 int(12.
4、3%4) D、 a=a+7=c+b14、若a,b,c,d都是int类型变量且初值为0,以下选项中不正确的赋值语句是( )A、a=b=c=100; B、d+; C、c+b; D、d=(c=22)-(b+);15、若x、i、j和k都是int变量,则计算下面表达式后,x的值是( )x=(i=4,j=16,k=32)A、4 B、16 C、32 D、 5216、假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是( )A、7 B、8 C、 6 D、 217、若有代数表达式a2.b2,则正确的c语言表达式是( )A、a*b B、pow(a,2).pow(b,2) C、a*a.b*b D、(
5、a*a)*(b*b)18、若有代数表达式,则不正确的c语言表达式是( )A、a/b/c*e*3 B、3*a*e /b/c C、3*a*e /b*c D、a*e/c /b *319、 若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为( )。A、1.4 B、1 C、2.0 D、220、char型数据在内存中的存储形式是( )A、补码 B、反码 C、原码 D、ASCII码21、设变量a是整型,f是实型,i是双精度,则表达式10+a+i*f值的数据类型为( ) A、int B、float C、double D、不确定22、 若有定义:int a=7;flaot x=2.5
6、,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。A、2. B、2. C、3. D、0.23、 若变量a是int类型,并执行了语句:a=A+1.6;则正确的叙述是( )。A、a的值是字符C B、a的值是浮点型 C、不允许字符型和浮点型相加 D、a的值是字符A的ASCII值加上124.、以下选项中合法的字符常量是( )。 A、“B” B、 010 C、68 D、D25、以下选项中不是C语句的是( )A、int i;i+;printf(“%dn”,i); B、;C、 a=5,c=10 D、 ;26、以下合法的C语言赋值语句是( )A、a=b=58 B、 k=int(a+b
7、) C、 a=58, b=58 D、 -i;27、以下程序的输出结果是( )A、0 B、1 C、3 D、不确定的值main ()int x=10,y=3;printf(“%dn”,y=x/y);28、设c语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为( ) A、0255 B、032767 C、065535 D、029、若变量已正确定义为int类型,要给a、b、c输入数据,以下正确的输入语句是( )A、read(a,b,c);B、scanf(“%d%d%d”a,b,c);scanf(“%D%D%D”,&a,&b,&c);D、scanf(“%d%d%d”
8、,&a,&b,&c);30、若变量已正确定义为float类型,要通过赋值语句scanf(“%f%f%f”,&a,&b,&c)给A赋值10,B赋予22,C,赋予33,以下不正确的输入形式是( )10 B、10.0,22.0,33.0 C、10.0 D、10 2222 22.0 33.0 33 3331、设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为( ) A、float B、 char C、int D、 double32、若变量已正确定义,要将a和b中的数进行交换,下面选项中不正确的是( ) A、a=a+b,b=a-b,a=a-b; B
9、、t=a,a=b,b=t; C、a=t;t=b;b=a; D、t=b;b=a;a=t;33、若变量已正确定义,以下程序段的输出结果是( )A、输出格式说明与输出项不匹配,输出无定值 B、5. C、5. D、5.x=5.16894;printf(“%fn”,(int)(x*1000+0.5)/(float)1000);34、若有以下程序段,c3的值是( )A、0 B、1/2 C、0.5 D、1int c1=1,c2=2,c3;c3=c1/c2;35、若有以下程序段,其输出结果是( )0,0,-10 B、0,0,5 C、-10,3,-10 D、3,3,-10int a=0,b=0,c=0;c=(a
10、-=a-5),(a=b,b+3);printf(“%d,%d,%dn”,a,b,c);36、若已知变量的类型说明如下:int k,a,b; unsinged 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)37、以下程序的输出结果是( )A、a=%2, b=%f B、a=2,b=5 C、a=%d,b=%d D、a=%d,b=%dmain() int a=2,b=3; printf(“a=%d,b=%dn”,a,b); 38、 若int 类型占两个字节,
11、则以下程序段的输出是( )A、 1,-1 B、 1,32767 C、 1,32768 D、 1,65535int a=-1;printf(“%d,%un”,a,a);39、下列运算符中优先级最高的运算符是( )A、! B、% C、-= D、&40、下列运算符中优先级最低运算符是( )A、| B、!= C、= D、+41、为表示关系 xyz, 应使用的C语言表达式是( )A、 (x=y)&(y=z) B、(x=y)AND(y=z)C、 (x=y=z) D、(x=y)&(y=z)42、若有以下定义,则能使值为3的表达式是( ) int k=7,x=12;A、x%=k-k%5) B、x%=(k%=5
12、) C、 x%=(k-k%5) D、(x%=k)-(k%=5) 43、 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)&(n=cd)运算后,n的值为( )。 A、0 B、1 C、2 D、344、 假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(wx)?w:x;m=(my)?m:y;m=(mz)?m:z;则该程序运行后,m的值是( )。 A、4 B、3 C、1 D、245、以下程序的输出是( )A、0 B、1 C、2 D、3main() int a=2,b=-1,c=2;
13、if(ba) ;if(b0) c=0;printf(“%dn”,c); 46、设a,b 和c 都是int 型变量,且 a=3,b=4,c=5;则以下的表达式中,值为0的表达式是( )A、 a&b B、 a=b C、 a|b+c&b-c D、 !(ab)&!c|1)47、以下程序的输出是( )A、0 B、1 C、2 D、3main() int a=2,b=-1,c=2; if(ab)if(b0) c=0;else c+=1;printf(“%dn”,c);48、以下程序的输出是( )A、1 B、2 C、3 D、4main() int w=4,x=3,y=2,z=1; printf(“%dn”,(
14、wx?w:zy) 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=2050、以下程序的运行结果是( )main( )int m=5;if(m+5)printf(“%dn”,m);else printf(“%dn”,m-); A、4 B、5 C、6 D、751、若执行以下程序时从键盘上输入3和4,则输出结果是( )A、14 B、16 C、18 D、20 main() int a,b,s;scanf(“%d%d”,&a,&b);s=a;if(ab) s=b;s*=s;printf(“%dn”,
15、s);52、运行以下程序,输出( )A、* B、&C、#& D、有语法错误不能通过编译 main() int k=-3;if(k=0)printf(“*n”);else printf(“&n”);53、以下程序的输出结果是 ( ) main() int x=2,y=-1,z=2; if(xy) if(yy); B、if(x=y)&(x!=0) x+=y ; C、if(xy)x+;y+; D、if(x!=y) scanf(“%d”,&x);else scanf(“%d”,&y);56、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( ) if(ab) if(ad)x=1; el
16、se if(ac) if(bd) x=2; else x=3; else x=6; else x=7;A、1 B、2 C、3 D、657、以下程序段,int k=10;while(k=0)k=k+1;则下面描述中正确的是( )。A、while循环执行10次 B、循环是无限循环C、循环体语句一次也不执行 D、循环体语句执行一次58. 以下程序中,while循环的循环次数是( )。 main() int i=0; while(i10) if(i1) break; i+; A、1 B、10 C、6 D、死循环,不能确定次数59、以下程序中,while循环的循环次数是( )。 main() int i
17、=0; while(i10) if(i1) contimue; if(i=5) break; i+; A、1 B、10 C、6 D、死循环,不能确定次数60、若执行以下程序时从键盘上输入9,则输出结果是 ( ) A、 11 B、 10 C、 9 D、 8 main() int n; scanf(%d,&n); if(n+10) printf(%dn,n); else printf(%dn,n-); 61、有以下程序段( ) int k=0 while(k= =1)k+; while 循环执行的次数是 A、 无限次 B、 有语法错,不能执行 C、 一次也不执行 D、 执行1次62、对于下面,两个
18、循环语句,( )是正确的描述。 while(1) ; for( ; ; ) ;A、都是无限循环 B、是无限循环,错误C、循环一次,错误 D、皆错误63、语句while(!E);中的表达式!E等价于( ) A、E=0 B、E!=1 C、E!=0 D、E=164、下面程序段运行结果是( ) x=y=0;while(x15) y+,x=x+(+y); pirntf(“%d,%d”,y,x); A、20,7 B、6,12 C、20,8 D、8,2065、设有以下程序段 int x=0,s=0;while(! x!=0) s+=+x;printf(“%d”,s); 则( ) A、运行程序段后输出0 B、
19、运行程序段后输出1 C、程序段中的控制表达式是非法的 D、程序段执行无限次66、下面程序段的运行结果是( ) int n=0; while(n+=2); printf(“%d”,n); A、2 B、3 C、4 D、有语法错误67、下面程序的运行结果是( ) #include main( ) int num=0; while(num=2) num+;printf(“%d ”,num); A、1 B、1 2 C、1 2 3 D、1 2 3 468、c语言中while和do-while循环的主要区别是( ) A、do-while的循环体至少无条件执行一次 B、while的循环控制条件比do-whil
20、e的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句69、下面有关for循环的正确描述是( ) A、for循环只是能用于循环次数已经确定的情况B、for循环是先执行循环体语句,后判断表达式C、在for循环中,不能用break语句跳出循环体D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来70、对for(表达式1; ;表达式3)可以理解为( ) A、for(表达式1;0;表达式3) B、for(表达式1;表达式1;表达式3C、for(表达式1;1;表达式3) D、for(表达式1;表达式3;表达式3)71、若i为整型变量,
21、则以下循环执行次数是( ) for(i=2;i=0;) printf(“%d”,i-); A、无限次 B、0次 C、1次 D、2次72、下面程序的运行结果是( )#include main( ) int y=10; do y-; while(-y); printf(“%dn”,y-); A、-1 B、1 C、8 D、073、下面程序的运行结果是( )#include main( ) int a=1,b=10; do b-=a;a+; while(b-0); printf(“a=%d,b=%dn”,a,b); A、a=3,b=11 B、a=2,b=8 C、a=1,b=-1 D、a=4,b=974
22、、下面程序段的运行结果是( )for(y=1;y100)break; B、for(;)C、int k=0; do+k; while(k=0); D、int s=36;while(s);-s;76、以下程序段输出结果是( )A、 9 B、1 C、11 D、10int k, j, s;for (k=2;k6;k+,k+) s=1; for(j=k; j6;j+) s+=j;printf(“%dn”,s);77、以下程序段输出结果是( )A、12 B、15 C、20 D、25int i, j,m=0;for (i=1;i=15;i+=4) for(j=3;j7) n-; printf(“%dn”,n
23、); 79、以下程序段输出结果是( )A、 1 B、3 0 C、1 2 D、死循环int x=3;do printf(“%3d” , x-=2);while(!(-x);80、以下程序段输出结果是( )A、15 B、14 C、不确定 D、0main() int i, sum; for(i=1;i0;y-) if(y%3=0) printf (“%d”,-y) ;continue; 82、若x是int型变量,以下程序段的输出结果是( )A、 *3 B、#3 C、#3 D、*3#4#4 *4 *4#5 *5*5 #5for(x=3; x6;x+)printf (x%2)?(“*%d”):(“#%d
24、n”),x);83、以下程序的输出结果是( )A、*#*#*#$ B、#*#*#*$ C、*#*#$ D、#*#*$main() int i; for(i=1; i=5; i+) if (i%2) printf(“*”); else continue; printf(“#”);printf(“$n”);84、 以下叙述不正确的是( )A、do-while语句构成的循环不能用其他语句构成的循环来代替。B、do-while语句构成的循环只能用break语句退出。C、用do-while语句构成循环时,只有在while后的表达式为非零时结束循环。D、用do-while语句构成循环时,只有在while后
25、的表达式为零时结束循环85、C语言中的简单数据类型有( ) A、 整型、实型、逻辑型 B、 整型、实型、字符型 C、 整型、字符型、逻辑型 D、 整型、实型、逻辑型、字符型86、C语言中,字符(char)型数据在微机内存中的存储形式是( ) A、 反码 B、 补码 C、 EBCDIC码 D、 ASCII码87、设有定义语句char a=72;,则变量a( ) A、 包含1个字符 B、 包含2个字符 C、 包含3个字符 D、 包含4个字符 88、C语言中不合法的字符常量是( ) A、xff B、65 C、& D、028 89、C语言中不合法的字符串常量是( ) A、“121” B、y= C、 “
26、nn” D、“ABCDx6d”90、判断char型变量c是否为大写字母的最简单且正确的表达式是:( ) A、A=c=A)&(c=Z) C、(A=c) D、 ( c=A)&(c=A&xb) c=1;else if(a=b) c=0;else c=-1;return(c); 96、以下程序的输出结果使( )A、0 B、1 C、6 D、无定值fun( int a, int b, int c) c=a*b; main() int c;fun(2,3,c);printf(“%dn”,c); 97、以下程序的输出结果是( )A、5. B、3. C、4. D、8.25double f(n) int i; d
27、ouble s;s=1.0;for(i=1; i=n; i+) s+=1.0/i;return s; main() int i,m=3; float a=0.0;for(i=0;im;i+) a+=f(i);printf(“%fn”,a); 98、以下程序的输出结果是( )A、因变量无定义输出不定值 B、0 C、-1 D、1#include “stdio.h”main() printf(“%dn”,NULL) ;99、以下程序的输出结果是A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7void sub(int x, int y, int *z) *z=y-x
28、;main() int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(“%d,%d,%dn”,a,b,c); 100、以下程序的输出结果是( )A、4 B、6 C、8 D、10main() int k=2, m=4, n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm) printf(“%dn”,n); 101、以下程序的输出结果是( )A、 4,3 B、2,3 C、 3,4 D、 3,2 void fun (float *a, float *b) float w ;*a= *a+*a;w=*a;
29、 *a=*b; *b=w; main() float x=2.0, y=3.0;float *px=&x, *py=&y;fun(px,py);printf(“%2.0f,%2.0fn”,x,y);102、以下程序的输出结果是( )A、 9. B、 1. C、 8. D、 10.void sub (float x, float *y, float *z) *y= *y-1.0;*z= *z+x;main() float a=2.5,b=9.0 , *pa, *pb;pa=&a; pb=&b;sub (b-a, pa , pa);printf (“%fn”, a);103、在c语言中,引用数组元
30、素时,其数组下标的数据类型允许是( ) A、整型常量 B、整型表达式 C、整型常量或整型表达式 D、任何类型的表达式 104、以下对一维整型数组a的正确说明是( ) A、int a(10); B、int n;scanf(“%d”,&n);int an; C、int n=10,an; D、#define SIZE 10 int SIZE; 105、以下能对一维数组a进行正确初始化的语句是( )。A、int a10=(0,0,0,0,0); B、int a 10=; C、int a=10,12,56; D、int a=10*1;106、以下对二维数组a的正确说明是( )。A、int a3; B、f
31、loat a (3,4); C、double a14; D、float a(3)(4);107、若有说明:int a34;则对a数组元素的正确引用是 ( ) 。A、a24 B、a1,3 C、a1+10 D、a(2)(1)108、若有说明:int a34;则对a数组元素的非法引用是( )。A、a02*1 B、a13 C、a4-20 D、a04109、以下能对二维数组a进行正确初始化的语句是( )。A、int a2=1,0,1,5,2,3; B、int a3=1,2,3,4,5,6;C、int a24=1,2,3,4,56; D、int a3=1,0,1,1,1;110、以下不能对二维数组a进行正
32、确初始化的语句是( )。A、int a23=0; B、int a3=1,2,0; C、int a23=1,2,3,4,5,6; D、int a3=1,2,3,4,5,6;111、 若有说明:int a34=0;则下面正确的叙述是( )。A、只有元素a00可得到初值0 B、数组a中每个元素均可得到初值0C、数组a中各元素都可得到初值,但不一定为0 D、此说明语句不正确112、 若有说明:int a4=0,0;则下面不正确的叙述是( )。A、数组a的每个元素都可得到初值0 B、二维数组a的第一维大小为1 C、因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1 D、只有元素a00
33、和a01可得到初值0,其余元素均得不到初值0113、若二维数组a有m列,则计算任一元素aij在数组中位置的公式为( )。(假设a00位于数组的第一个位置上。)A、i*m+j B、j*m+I C、i*m+j-1 D、i*m+j+1114、对以下说明语句的正确理解是( )。int a10=6,7,8,9,10;A、将5个初值依次赋给a1至a5 B、将5个初值依次赋给a0至a4 C、将5个初值依次赋给a6至a10 D、因为数组长度与初值的个数不相同,所以此语句不正确115、若有说明:int a3=1,2,3,4,5,6,7;则a数组第一维的大小是( )。A、2 B、3 C、4 D、无确定值116、定
34、义如下变量和数组:int k;int a33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是( )。for (k=0;ks2) B、if(strcmp(s1,s2) C、if(srtcmp(s2,s1)0) D、if(strcmp(s1,s2)0)125、下述对C语言字符数组的描述中错误的是( )。A、字符数组可以存放字符串 B、字符数组的字符串可以整体输入、输出 C、可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D、不可以用关系运算符对字符数组中的字符串进行比较126、以下正确的说法是( )。建立函数的目的之一是A、提高程序的执行效率 B、提高程序的可读性 C、减少程序
35、的篇幅 D、减少程序文件所占内存127、以下正确的说法是( )。A、用户若需调用标准库函数,调用前必须重新定义 B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C、系统根本不允许用户重新定义标准库函数 D、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调128、以下正确的函数定义形式是( )。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);129、以下正确的函数形式是( )。A、d
36、ouble 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;130、以下正确的说法是( )。在C语言中A、实参和与其对应的形参各占用独立的存储单元 B、实参和与其对应的形参共占用一个存储单元 C、只有当实参和与其对应的形参同名时才共占用存储单元 D、形参是虚拟的,不占用存储单元131、以下不正确的说法是( )。C语言规定A、实参可
37、以是常量、变量或表达式 B、形参可以是常量、变量或表达式 C、实参可以为任意类型 D、形参应与其对应的实参类型一致132、以下正确的说法是( )。A、定义函数时,形参的类型说明可以放在函数体内 B、return后边的值不能为表达式 C、如果函数值的类型与返回值类型不一致,以函数值类型为准 D、如果形参与实参的类型不一致,以实参类型为准133、 C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )。A、float型 B、int型 C、long型 D、double型134、 C语言规定,函数返回值的类型是由( )。A、return语句中的表达式类型所决定 B、调用该函数时的主调函数类型所决
38、定 C、调用该函数时系统临时决定 D、在定义该函数时所指定的函数类型所决定135、下面函数调用语句含有实参的个数为( )。Func(exp1,exp2),(exp3,exp4,exp5);A、1 B、2 C、4 D、5136、以下错误的描述是( )。函数调用可以A、出现在执行语句中 B、出现在一个表达式中 C、做为一个函数的实参 D、做为一个函数的形参137、以下正确的描述是( )。在C语言程序中A、函数的定义可以嵌套,但函数的调用不可以嵌套 B、函数的定义不可以嵌套,但函数的调用可以嵌套 C、函数的定义和函数的调用均不可以嵌套 D、函数的定义和函数的调用均可以嵌套138、若用数组名作为函数调
39、用的实参,传递给形参的是( )。A、数组的首地址 B、数组第一个元素的值 C、数组中全部元素的值 D、数组元素的个数139、 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参的说明中,对形参数组array的错误定义方式为 ( ) int a34; f(a);A、f(int array 6) B、f(int array3 )C、f(int array 4) D、f(int array25)140、 若使用一维数组名作参数,则以下正确的说发是 ( ) A、必须在主调函数中说明此数组的大小 B、实参数组类型与形参数组类型可以不匹配C、在被调函数中,不需要考虑形参数组的大小 D、实参数组名
40、与形参名必须一致141、 以下正确的说法是( ) 如果在一个函数中的复合语句中定义了一个变量,则该变量 A、只在复合语句中有效 B、在该函数中有效 C、在本程序范围内均有效 D、为非法变量142、以下不正确的说法是( ) A、在不同的函数中可以使用相同名字的变量 B、形式参数是局部变量 C、在函数内定义的变量只能在本函数范围内使用 D、在函数内的复合语句中定义的变量在本函数范围内有效143、 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ) A、自动(auto)B、静态(static)C、外部(extern)D、寄存器(register)144、 以下程序的运行结果是( ) sub
41、(int x,int y,int *z)*z=y-x; main() int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(“%4d,%4d,%4dn”,a,b,c); A、5, 2, 3 B、-5,-12,-7 C、-5,-12,-17 D、5,-2,-7145、 以下程序能对两个整型变量的值进行交换。以下正确的说法是( ) main() int a=10,b=20; printf(“(1)a=%d,b=%dn”,a,b); swap(&a,&b); printf(“(2)a=%d,b=%dn”,a,b); swap( int p,int
42、 q) int t; t=p;p=q;q=t;A、该程序完全正确 B、该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可 C、该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针变量即可。 D、以上说法都不正确146、 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( ) main() int *p,*q,a,b; p=&a;printf(“input a:”); scanf(“%d”,*p); A、*p表示的是指针变量p的地址 B、*p表示的是变量a的值,而不是变量a的地址 C、*p表示的是指针变量p的值 D、*p只能用来说明p是一个
43、指针变量 147、 已有定义 int k=2;int *prt1,*prt2;且prt1和prt2均已指向变量k,下面不能正确执行的赋值语句是( ) A、k=*prt1+*prt2 B、prt2=k; C、prt1=prt2; D、k=*prt1*(*prt2);148、 若有说明: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;149、 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( )
44、A、c=*p1+*p2; B、p2=c; C、p1=p2; D、c=*p1*(*p2)150、 下面判断正确的是( )A、char *a=”china”;等价于char *a;*a=”china”;B、char str10=“china”;等价于char str10;str=”china”;C、char *a=”china”;等价于char *s;s=”china”;D、char c4=”abc”,d4=”abc”;等价于char c4=d4=”abc”;151、 下面能正确进行的字符串赋值操作的是( ) A、char s5=“ABCDE”;B、char s5=A,B,C,D,E; C、cha
45、r *s;s=”ABCDE”; D、char *s;scanf(“%s”,s);152、 若有以下定义,则对a数组元素的正确因用是( ) int a5,*p=a;A、*&a5 B、a+2 C、*(p+5) D、*(a+2)153、 若有定义:int a23;则对a数组的第i行第j列元素值得正确引用为( ) A、*(*(a+i)+j) B、(a+i)j C、*(a+i+j) D、*(a+i)+j154、 若有以下定义和语句,则对a数组元素地址的正确引用为( ) int a23,(*p)3; p=a;A、*(p+2) B、p2 C、p1+1 D、(p+1)+2155、 以下与int *q5;等价的
46、定义语句是( ) A、int q5; B、int *q; C、int *(q5) D、int (*q)5156、 若有定义int a=2,4,6,8,10,12,14,16,18,20,22,24,*q4,k;则下面程序段的输出是( ) for(k=0;k4;k+) qk=&ak*3; printf(“%dn”,q30); A、8 B、16 C、20 D、输出项不合法,结果不确定157、 语句int (*prt)();的含义是( ) A、prt是指向一维数组的指针变量 B、prt是指向int型数据的指针变量C、prt是指向函数的指针,该函数返回一个int型数据D、prt是一个函数名,该函数的返
47、回值是指向int型数据的指针158、库函数strcpy用以复制字符串。若有以下定义和语句:char str1=”string”,str28,*str3,*str4=”string”;则对库函数strcpy的不正确调用是( )A、 strcpy(str1,”HELLO1”); B、 strcpy(str2,”HELLO2”);C、 strcpy(str3,”HEELO3”); D、 strcpy(str4,”HELLO4”);159、若已定义:int a=0,1,2,3,4,5,6,7,8,9,*p=a,i;其中0=i=9,则对a数组元素的引用不正确的是( )A、ap-a B、 *(&ai) C
48、、pi D、*(*(a+i)160、以下程序段给数组所有元素输入数据,应在下划线处填入的是A、a+(i+) B、 &ai+1 C、a+i D、&a+i main()int a10, i=0;while(i10)scanf(“%d”,_):161、以下程序的输出结果是( )A、3 B、4 C、1 D、2main() int a10=1,2,3,4,5,6,7,8,9,10, *p=a;printf(“%dn”,*(p+2) );162、以下程序的输出结果是( )A、不确定的值 B、3 C、2 D、 1main() int n2=0,i,j,k=2;for(i=0; ik ; i+)for(j=0
49、; jk; j+) nj=ni+1;printf(“%dn”,nk);163、以下程序的输出结果是 ( )A、 17 B、 18 C、 19 D、 20main() int a=2,4,6,8,10, y=1, x,*p;p=&a1;for(x=0; x3; x+) y+=*(p+x);printf(“%dn”,y); 164、以下程序的输出结果是( )A、 6 B、8 C、 4 D、2main() int a=2,4,6,8, *p=a, i;for(i=0; i4; i+) ai=*p+;printf(“%dn”,a2);165、以下程序的输出结果是( )A、 720 B、120 C、24
50、 D、6f(int b ,int n)int i,r=1; for(i=0;i=n;i+) r=r*bi;return r;main()int x, a =2,3,4,5,6,7,8,9;x=f(a,3);printf(“%dn”,x);166、以下程序中若第一个printf语句输出的是194,则第二个printf语句的输出结果是( )A、212 B、204 C、1a4 D、1a6main()int a=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(%xn,p);printf(%xn,p+9);167、以下程序的输出结果是 ( )A、 4 4 B、2 2 C、2 4 D、
51、4 6main()int a5=2,4,6,8,10,*p,*k;p=a; k=&p;printf(%d ,*(p+);printf(%dn,*k);168、当运行以下程序时输入三行,每行都是在第一列上开始,代表回车键;abcdef则程序的输出结果是 ( )A、abcdef B、 a C、a D、ab b b c cd cdefdef#include stdio.h#define N 6main()char cN;int i=0;for(i=0;iN;i+)ci=getchar();for(i=0;iN;i+)putchar(ci);169、若有定义和语句: int c45, (*cp)5;
52、cp=c;则对c数组元素的引用正确的是( )A、 cp+1 B、*(cp+3) C、*(cp+1)+3 D、*(*cp+2)170、若已定义:int a43=1,2,3,4,5,6,7,8,9,10,11,12,(*prt)3=a,*p=a0;则能够正确表示数组元素a12的表达式是( )A、 *(*prt+1)2) B、*(*(p+5) C、(*prt+1)+2 D、*(*(a+1)+2)171、若有定义和语句:int a43=1,2,3,4,5,6,7,8,9,10,11,12,(*prt)3=a,*p4, i;则不能正确表示a数组元素的表达式是( )A、a43 B、p00 C、prt22
53、D、(*(p+1)1172、以下程序的输出结果是( )A、 23 B、 26 C、33 D、36main()int aa33=2,4,6,i,*p=&aa00; for(i=0;i2; i+) if(i=0)aaii+1=*p+1;else +p;printf(%d,*p);printf(n);173、以下程序的输出结果是( )A、 60 B、68 C、99 D、108main()int a34=1,3,5,7,9,11,13,15,17,19,21,23; int (*p)4=a,i,j,k=0; for(i=0;i3;i+) for(j=0;j2;j+)k+=*(*(p+i)+j); pr
54、intf(%dn,k);174、以下程序的输出结果是( )A、 1,5,9, B、1,4,7, C、3,5,7, D、3,6,9,main()int i,x33=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) printf(%d,xi2-i);175、若有定义语句int (*p)M; 其中的标识符p是( )A、M个指向整型变量的的指针B、指向M个变量的函数指针C、一个行指针,它指向具有M个整型元素的一维数组指针D、具有M个指针元素的一维指针数组,每个元素都只能指向整型量176、以下能正确进行字符串赋值、赋初值的语句组是( )A、 char s5=a,e,i,o,u;B、 c
55、har *s; s=”good!”;C、 char s5=”good!”;D、 char s5; s=”good”;177、以下程序段的输出结果是( )char str =”ABCD”,*p=str;printf(“%dn”,*(p+4);A、 68 B、 0 C、 字符D的地址 D、不确定的值178、以下程序段的输出结果是( )printf(“%dn”,strlen(“ATSn0121”);A、 11 B、 10 C、 9 D、 8 179、当运行以下程序是输入OPEN THE DOORCR代表ENTER键),则输出结果是( ) A、Open tHE door B、open the door
56、 C、 OPEN THE DOOR D、Open The Door #include “stdio.h”char fun(char* c) if(*c=A) *c-=A-a; return *c;main() char s81; *p=s;gets(s);while(*p) p=fun(p); putchar (*p); p+;putchar(n);180、以下程序的输出结果是( )A、GFEDCBA B、AGADAGA C、AGAAGAG D、GAGGAGA#include “stdio.h”#include “string.h”void fun(char *w,int m)char s,*
57、p1,*p2;p1=w; p2=w+m-1;while(p1p2)s=*p1+; *p1= *p2-; *p2=s; main() char a =”ABCDEFG”; fun(a,strlen(a); puts(a);181、以下程序的输出结果是( )A、ABCD B、 AC、 DD、 ABCD BCD B C ABCCD C B ABD D A Amain() char s =”ABCD”, *p;for(p=s; ps+4;p+) printf(“%sn”,p); 182、设有如下定义Char *aa2=“abcd”,”ABCD”;则以下叙述中正确的是( )A、aa数组元素中的值分别是字
58、符串”abcd” 和”ABCD”B、aa是指针变量,它指向含有两个数组元素的字符型一维数组C、aa数组的两个元素分别存放的是含有四个字符的一维数组的首地址D、aa数组的两个元素中各自存放了字符a和A的地址183、以下程序的输出结果是( )A、6385 B、69825 C、63825 D、main()char ch25=“6937”,”8254”,*p2; int i,j,s=0;for(i=0; i2; i+) pi=chi;for(i=0;i0&pij=9; j+=2)s=10*s+pij-0;printf(“%dn”,s);184、以上程序的输出结果是( )A、 ABCDEFGHIJKL
59、B、 ABCD C、ABCDEFGHIJKLMNOP D、 AEIMmain() char *alpha6=“ABCD”,”EFGH”,”IJKL”,”MNOP”,”QRST”,”UVWX”;char *p;int i;p=alpha;for(i=0;iy?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; printf(%d,%d,%dn,e,f,g); A、4,3,7 B、3,4,7
60、 C、5,2,7 D、2,5,7 192、已有定义:char a=xyz,b=x,y,z;, 以下叙述中正确的是 ( ) A、数组a和b的长度相同 B、a数组长度小于b数组长度 C、a数组长度大于b数组长度 D、上述说法都不对 193、有以下程序运行后的输出结果是( ) void f(int *x,int *y)int t;t=*x;*x=*y;*y=t; main() int a8=1,2,3,4,5,6,7,8,i,*p,*q; p=a;q=&a7; while(pq) f(p,q);p+;q-; for(i=0;i8;i+) printf(%d,ai); A、8,2,3,4,5,6,7,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《工业园区培训》课件
- 《社会矛盾研究方法》课件
- 《基础检测》课件
- 危重病人的护理基础常规
- 电子频率计 课程设计
- 电子跑表系统课程设计
- 电子秒表微机课程设计
- 电子白板课程设计
- 电子电工仿真课程设计
- 电子琴单片机课程设计
- 吃苦作文700字记叙文-高中吃苦作文五篇精选
- MBTI十六种性格全报告分析
- 脑出血治疗新策略及其理论依据
- 爱立信bsc操作维护手册
- 音乐律动活动《欢乐满山谷》
- GB/T 30276-2020信息安全技术网络安全漏洞管理规范
- GB/T 16494-2013化学试剂二甲苯
- 【课件】高考新题型读后续写:母爱读后续写
- 《 组合数》示范公开课教学课件【高中数学北师大】
- 多媒体制作流程图
- 2023年宁夏报业传媒集团有限公司招聘笔试模拟试题及答案解析
评论
0/150
提交评论