c语言习题(带答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择
1若有表达式(a)(--x):(++y),则其中与a等价的表达式是
A)a==1B)a==0C)a!=1D)a!=0
2有以下程序段
intx,y,z;
x=10;y=50;z=30;
if(x>y)x=y,y=z;z=x;
printf(“x=%dy=%dz=%d\n”,x,y,z);
程序的输出结果是
A)x=10y=50z=10B)x=10y=50z=30
C)x=10y=30z=10D)x=50y=30z=50
3下面的函数调用语句中func函数的实参个数是
f(f2(u1,u2),(u3,u4),(u6,max(u7,u8)));
A)3B)4C)5D)8
4 以下叙述中错误的是
A)用户定义的函数中可以没有return语句
B)用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值C)用户定义的函数中若没有return语句,则应当定义函数为void类型
D)函数的return语句中可以没有表达
6有以下程序
#include<>
voidfun(inta,intb)
{intt;
t=a;a=b;b=t;
}
main()
{intc[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 若有定义语句:floatx,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()
{inta=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);
elseprintf(“%d,%d,%d\n”,a,b,c);
elseprintf(“%d,%d,%d\n”,a,b,c);
}
程序运行后的输出结果是
A)1,2,3B)1,3,2C)1,3,3D)3,2,1
16以下函数按每行10个输出数组中的数据
voidfun(int*w,intn)
{inti;
for(i=0;i<n;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) 0.5 C 2L D) ’\72’
18 若用一维数组名作为函数的实际参数,传递给形式参数的是()
A 数组第一个元素的值
B 数组元素的个数
C数组的首地址D数组中全部元素的值
19计算机能直接执行的程序是()
A)源程序B)目标程序C)汇编程序D)可执行程序
20若有以下定义
intx[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。

则条件表达式a<ba:c<dc:d的值是______。

A)1B)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","aabdfg","dcdbe","abbd","cd"};
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)宏替换不占用计算机运行时间。

相关文档
最新文档