1若有表达式(a)?(--x):(++y),则其中与a等价的表达式是 A) a= =1 B) a= =0 C)a!=1 D) a!=0 2有以下程序段 int x,y,z; x=10; y=50; z=30; if(x>y)x=y,y=z;z=x; printf(“x=%d y=%d z=%d \\n”,x,y,z); 程序的输出结果是 A) x=10 y=50 z=10 B) x=10 y=50 z=30 C) x=10 y=30 z=10 D) x=50 y=30 z=50 3下面的函数调用语句中func函数的实参个数是 f(f2(u1,u2),(u3,u4),(u6,max(u7,u8))); A)3 B) 4 C)5 D)8 4 以下叙述中错误的是 A) 用户定义的函数中可以没有return语句 B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值 C)用户定义的函数中若没有return语句,则应当定义函数为void类型 D)函数的return语句中可以没有表达 6有以下程序 #include void fun( int a, int b) { int t; t=a; a=b; b=t; } main() { int c[10]={11,12,13,14,15,16,17,18,19,20}, i; for(i=0;i<10;i+=2) fun(c[i], c[i+1]); for(i=0;i<10;i++) printf("%d," ,c[i]); printf("\\n"); } 程序的运行结果是 A)11,12,13,14,15,16,17,18,19,20 B)12,11,14,13,16,15,18,17,20,19 C)20,19,18,17,16,15,14,13,12,11 D)20,11,12,13,14,15,16,17,18,19 8有以下程序 main() { int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=p; p=q;q=r; printf("%d,%d,%d,%d\\n",*p,"q,a,b); } 程序运行后的输出结果是 A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,7 9 .s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是( A)if(s1>s2) S; B)if(strcmp(s1,s2)) S; C)if(strcmp(s2,s1)>0) S; D)if(strcmp(s1,s2)>0) S; 10设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是( ) A)for(i=0;i<6;i++) printf("%2d",*(p++)); B)for(i=0;i<6;i++) printf("%2d",*(p+i)); C)for(i=0;i<6;i++) printf("%2d",*p++); D)for(i=0;i<6;i++) printf("%2d",(*p)++); 11 在C程序中,main()的位置_______。 A 必须作为第一个函数 B必须作为最后一个函数 C 可以任意 D 必须放在它所调用的函数之后 12 若有定义语句:float x,y,*px,*py,执行了px=&x, py=&y;之后,正确的输入语句是 A)scanf(“%f%f”,x,y); B) scanf(“%f%f”,&x,&y); C) scanf(“%lf%le”,px,py); D) scanf(“%lf%lf”,x,y); 13以下是while语句的基本形式: while(表达式) 语句; 其中“表达式” A)必须是逻辑表达式 B)必须是关系表达式 C)必须是逻辑表达式或关系表达式 D)可以是任意合法的表达式 14 下列标识符中,合法的标识符是( ) A) -abc1 B) 1abc C _abc1 D for 15有以下程序 #include Main() { int a=1,b=2,c=3,d=0; if(a= =1 &&b++= =2) if(b!=2 || c--!=3) printf(“%d,%d,%d\\n”,a,b,c); else printf(“%d,%d,%d\\n”,a,b,c); else printf(“%d,%d,%d\\n”,a,b,c); } 程序运行后的输出结果是 A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1 16以下函数按每行10个输出数组中的数据 void fun( int *w,int n) { int i; for(i=0;i printf(“%d”,*w); w++; } printf(“\\n”); } 下划线处应填入的语句是 A)if(i/10==0)print(“\\n”); B) if(i/10==0)continue; C) if(i%10==0)print(“\\n”); D) if(i%10==0)continue; 17 以下所列的C语言常量中,错误的是( ) A) 0xFF B) 1.2e0.5 C) 2L D) ’\\72’ 18 若用一维数组名作为函数的实际参数,传递给形式参数的是( ) A 数组第一个元素的值 B 数组元素的个数 C 数组的首地址 D数组中全部元素的值 19计算机能直接执行的程序是( ) A)源程序 B)目标程序 C)汇编程序 D)可执行程序 20若有以下定义 int x[20],*pt=x; 则对x数组元素的正确应用是 A)*&x[20] B)*(x+3) C)*(pt+20) D)pt+3 21若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式aA)1 B)2 C)3 D)4 22有以下程序 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\\n",j); } 程序运行后的输出结果是______。 A)42 B)45 C)56 D)60 23以下能正确定义一维数组的选项是______。 A)int a[5]={0,1,2,3,4,5}; B)char a[]={0,1,2,3,4,5}; C)char a={'A','B','C'}; D)int a[5]="0123"; 24已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是______。 A)数组a和b的长度相同 B)a数组长度小于b数组长度 C)a数组长度大于b数组长度 D)上述说法都不对 25有以下程序 main( ) { char k; int i; for(i=1;i<3;i++) { scanf(“%c”,&k); switch(k) { case ‘0’: printf(“another\\n ”); case ‘1’: printf(“number\\n ”); } } } 程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是 A) another B) another C) another D) number number number number another number 26若程序中定义了以下函数 double myadd(double a,double b) { return (a+b) ;} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错 误的说明是 A) double myadd(double a,b) ; B) double myadd(double,double); C) double myadd(double b,double a) ; D) double myadd(double x,double y); 27有以下程序 int f(int b[][4]) { int i,j,s=0; for(j=0;j<4;j++) i=3-j; s+=b[i][j]; } return s; } main( ) { int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf("%d\\n",f(a)); } 执行后的输出结果是( ) A)12 B)11 C)18 D)17 28有以下程序 main( ) { char *p[10]={"abc printf("%d\\n",strlen(p[4])); } 执行后输出结果是( ) A) 3 B) 2 C) 4 D) 6 29 以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。 main() /* Beginning */ { int r; float s; scanf("%d",&r); s=*p*r*r; printf("s=%f\\n",s); } 出错的原因是( ) A)注释语句书写位置错误 B)存放圆半径的变量r不应该定义为整型 C)输出语句中格式描述符非法 D)计算圆面积的赋值语句中使用了非法变量 30下列描述不正确的是( ) A)带参数的宏定义和函数只是定义形式不同,而实质上是一样的 B)双引号包含方式说明被包含的文件是用户自定义的 C)宏替换的实质是字符替代 D)宏替换不占用计算机运行时间 |