省考免费班Word文件下载.docx
- 文档编号:7001257
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:39
- 大小:51.59KB
省考免费班Word文件下载.docx
《省考免费班Word文件下载.docx》由会员分享,可在线阅读,更多相关《省考免费班Word文件下载.docx(39页珍藏版)》请在冰点文库上搜索。
%s"
"
0x2"
);
●选择结构
4、已知有声明”inta=3,b=4,c=5;
”,以下表达式中值为0的是()(09年秋24)
A.a&
&
bB.a<
=bC.a||b&
cD.!
(!
c||1)
6、已知有声明”longx,y;
”,若要求编写一段程序实现“当x大于等于0时y取值1,否则y取值-1”,则以下程序段中错误的是()(09年秋26)
A.if(x>
=0)y=1;
elsey=-1;
B.y=x>
=0?
1:
-1;
C.switch()D.switch(x-abs(x))
{casex>
=0:
y=1;
break;
{case0:
default:
y=-1;
default:
}}
1x>
0
23.以下选项中,不能表示函数sign(x)=0x=0功能的表达式是__________。
(09年春23)
-1x<
A.s=(x>
0)?
1:
(x<
-1:
0B.s=x<
0?
-1:
(x>
0?
0)
C.s=x<
(x==0?
0:
1)D.s=x>
x==0?
-1
●循环结构
●数组
26.已知有声明“chars[20]=”hello”;
”,在程序运行过程中,若要想使数组s中的内容修改为”Good”,则以下语句中能够实现此功能的是()(10年春26)
A.s=”Good’;
B.s[20]=”Good”;
C.strcat(s,”Good”);
D.strcpy(s,”Good”);
7、已知有声明”intm[]={5,4,3,2,1},i=0;
”,下列对m数组元素的引用中,错误的是()(09年秋27)
A.m[++i]B.m[5]C.m[2*2]D.m[m[4]]
8、已知有声明”chars[80];
”,若需要将键盘输入的一个不含空格的字符串保存到s数组中,则下列语句中正确的是()(09年秋28)
A.scanf(“%s”,s);
B.scanf(“%s”,s[0]);
C.s=gets();
D.s=getchar();
27.设有声明“intp[10]={1,2},i=0;
”,以下语句中与“p[i]=p[i+1],i++;
”等价的是__________。
(09年春27)
A.p[i]=p[i++];
B.p[++i]=p[i];
C.p[++i]=p[i+1];
D.i++,p[i-1]=p[i];
●函数
21.C语言规定,在一个源程序中main函数的位置()(10年春21)
A.必须在最开始B.必须在在最后
C.必须在预处理命令的后面D.可以在其他函数之前或之后
1、以下叙述中正确的是()(09年秋21)
A.C语言系统以函数为单位编译源程序
B.main函数必须放在程序开始
C.用户定义的函数可以被一个或多个函数调用任意多次
D.在一个函数体内可以定义另外一个函数
9、若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是()(09年秋29)
A.实参和其对应的形参占用同一个存储单元
B.形参不占用存储单元
C.同名的实参和形参占用同一存储单元
D.形参和实参占用不同的存储单元
25.以下函数定义中正确的是__________。
(09年春25)
A.doublefun(doublex,doubley){}
B.doublefun(doublex;
doubley){}
C.doublefun(doublex,doubley);
{}
D.doublefun(doublex,y){}
26.若需要通过调用f函数得到一个数的平方值,以下f函数定义中不能实现该功能的是__________。
(09年春26)
A.voidf(double*a){*a=(*a)*(*a);
}
B.voidf(doublea,double*b){*b=a*a;
}
C.voidf(doublea,doubleb){b=a*a;
D.doublef(doublea){returna*a;
●递归
●预处理
22.设有定义和声明如下:
(09年春22)
#defined2
intx=5;
floaty=3.83;
charc='
d'
;
以下表达式中有语法错误的是__________。
A.x++B.y++C.c++D.d++
●指针
24.设指针变量占2个字节的内存空间,若有声明“char*p=”123”;
intc;
”,则执行语句“c=sizeof(p);
”后,c的值为()(10年春24)
A.1B.2C.3D.4
●指针数组
27.已知有声明“inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
”,若需要引用值为12的数组元素,则下列选项中错误的是()(10年春27)
A.*(a+2)+3B.*(*(a+2)+3)C.*(a[2]+3)D.a[2][3]
10、已知有声明”inti,a[10],*p=a;
”,现需要将1~10保存到a[0]~a[9]中,以下程序段中不能实现这一功能的是()(09年秋30)
A.for(i=0;
i<
10;
i++)a[i]=i+1;
B.for(i=0;
i++)p[i]=i+1;
C.i=1;
while(p<
a+10)*p++=i++;
D.i=1;
a+10)*a++=i++;
28.已知有声明“chara[]="
Itismine"
*p="
”,下列叙述中错误的是__________。
(09年春28)
A.strcpy(a,"
yes"
)和strcpy(p,"
)都是正确的
B.a="
和p="
都是正确的
C.*a等于*p
D.sizeof(a)不等于sizeof(p)
29.已知有声明“inta[3][3]={0},*p1=a[1],(*p2)[3]=a;
”,以下表达式中与“a[1][1]=1”不等价的表达式是__________。
(09年春29)
A.*(p1+1)=1B.p1[1][1]=1
C.*(*(p2+1)+1)=1D.p2[1][1]=1
●指针函数
●结构体
30.设有结构定义及变量声明如下:
(09年春30)
structproduct
{charcode[5];
floatprice;
}y[4]={"
100"
100};
以下表达式中错误的是__________。
A.(*y).code[0]='
2'
B.y[0].code[0]='
;
C.y->
price=10;
D.(*y)->
●位运算
●文件
30.下列叙述中,正确的是()(10年春30)
A.C语言中的文件是流式文件,因此只能顺序存取文件中的数据。
B.调用fopen函数时若用“r”或“r+”模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在。
C.当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第1个数据。
D.无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖。
填空题
1.数学式
所对应的C语言表达式为pow(x,
(1))。
1.0/3(10年春1)
2.已知有声明“charch=’g’;
”,则表达式ch=ch-‘a’+’A’的值为字符
(2)的编码。
G(10年春2)
3.在C语言系统中,如果一个变量能正确存储的数据范围为整数-32768~32767,则该变量在内存中占(3)个字节。
2(10年春3)
1、C语言中有!
、&
、||三个逻辑运算符,其中优先级高于算术运算符的是。
!
(09年秋1)
3、数学表达式
所对应的C语言表达式为。
(09年秋3)sqrt(abs(x))!
=(4*a)/(b*c)
2.若有声明“intx;
”且sizeof(x)的值为2,则当x值为__________时“x+1>
x”为假。
32767(09年春2)
3.若有声明“floaty=3.14619;
intx;
”,则计算表达式“x=y*100+0.5,y=x/100.0”后y的值是__________。
3.15(09年春3)
●顺序结构
5.已知有声明和语句“inta;
scanf(“a=%d”,&
a);
”,欲从键盘上输入数据使a中的值为3,则正确的输入应是(5)。
a=2(10年春5)
7.以下程序运行时输出到屏幕的结果是(7)。
2,1(10年春7)
#include<
stdio.h>
voidmain()
{inta=1,b=2;
a+=b;
b=a-b;
a-=b;
printf(“%d,%d\n”,a,b);
2、若有声明”intr=2;
”,则执行语句”printf(“%d”,sizeof(2*3.14*r));
”时输出。
8(09年秋2)
7、以下程序运算时输出到屏幕的结果是。
2(09年秋7)
#include<
voidmain()
{inti=1,m=0;
switch(i)
{case1:
case2:
m++;
case3:
}
printf(“%d”,m);
解析:
本题switch中没有break,所以当i=1,case1,2,3依次执行,m初值为0,自增两次,值为2
6.以下程序运行时输出结果是__________。
2356(09年春6)
{intk=5,n=0;
while(k>
{switch(k)
{case1:
n+=1;
k--;
break;
n=0;
case4:
n+=2;
printf("
%3d"
n);
12、以下程序运算时输出到屏幕的结果中第一行是,第二行是。
(09年秋12)
{inta[3][3]={{3,8,12},{4,7,10},{2,5,11}},i,j,k,t;
for(j=0;
j<
3;
j++)
for(k=0;
k<
2;
k++)
for(i=0;
2-k;
i++)
if(a[i][j]>
a[i+1][j])
t=a[i][j],a[i][j]=a[i+1][j],a[i+1][j]=t;
{for(j=0;
printf(“%3d”,a[i][j]);
printf(“\n”);
2510
4812
11以下程序运行时输出到屏幕的结果第二行是(13)11,第四行是(14)1331。
(10年春11)
#defineN6
{inti,j,a[N+1][N+1];
for(i=1;
=N;
{a[i][i]=1;
a[i][1]=1;
for(i=3;
for(j=2;
i;
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;
{for(j=1;
=i;
printf(“%4d”,a[i][j]);
9.以下程序运行时输出结果中第一行是__________,第三行是__________。
(09年春9)
第一行33333
第三行33
#defineN5
{staticchara[N][N];
inti,j,t,start=0,end=N-1;
charstr[]="
123"
ch;
for(t=0;
t<
=N/2;
t++)
{ch=str[t];
for(i=j=start;
end;
i++)a[i][j]=ch;
for(j=start;
j++)a[i][j]=ch;
for(i=end;
i>
start;
i--)a[i][j]=ch;
for(j=end;
j>
j--)a[i][j]=ch;
if(start==end)a[start][end]=ch;
N;
{for(j=0;
%c"
a[i][j]);
\n"
5、声明局部变量时若缺省存储类别,该变量的存储类别是。
auto(09年秋5)
1.在一个C语言源程序中,必不可少的是__________。
主函数(09年春1)
8.以下程序运行时输出到屏幕的结果为(8)。
131112(10年春8)
voidswap(inta,intb)
{intt;
if(a>
b)t=a,a=b,b=t;
{intx=13,y=11,z=12;
if(x>
y)swap(x,y);
z)swap(x,z);
if(y>
z)swap(y,z);
printf(“%d\t%d\t%d\n”,x,y,z);
9.以下程序运行时输出到屏幕的结果第一行是(9)5,第二行是(10)7,第三行是(11)8。
(10年春9)
intg(intx,inty)
{returnx+y;
intf(intx,inty)
{
staticintx=2;
if(y>
2)
{x=x*x;
y=x;
elsey=x+1;
returnx+y;
{inta=3;
printf(“%d\n”,g(a,2));
printf(“%d\n”,f(a,3));
printf(“%d\n”,f(a,2));
8.以下程序运行时输出结果是__________。
7(09年春8)
intf(intx,inty)
{returnx+y;
{doublea=5.5,b=2.5;
f(a,b));
10、以下程序运算时输出到屏幕的结果是。
(09年秋10)
longf(intn)
{staticlongs;
if(n==1)returns=2;
elsereturn++s;
{longi,sum=0;
4;
i++)sum+=f(i);
printf(“%ld”,sum);
本题考点static,s为静态局部变量,函数调用结束后不消失保留原值,第一次f
(1),s值为2,第二次f
(2),s=3,第三次f(3),s=3,sum=2+3+4=9
16、以下程序在3~50范围内验证:
大于等于3的两个相邻素数的平方之间至少有4个素数。
例如,3和5是相邻素数,32~52之间有素数11、13、17、19、23。
试完善程序以达到要求的功能。
(09年秋16)
stdlib.h>
math.h>
intprime(intn)
{inti;
for(i=2;
=sqrt(n);
if(n%i==0)return0;
return1;
{inti,j,k=0,m,n,c,a[30]={0};
50;
if(prime(i))a[k++]=i;
k-1;
{m=a[i]*a[i];
n=a[i+1]*a[i+1];
c=0;
for(j=m+1;
n;
if(prime(j))c++;
if(c>
=4)
printf(“\n%d*%d-%d*%d:
%d”,a[i],a[i],a[i+1],a[i+1],c);
else{printf(“Error”);
exit(0);
10.以下程序运行时输出到屏幕的结果是(12)。
221(10年春10)
voidfun(intm,intn)
{if(m>
=n)
printf(“%d”,m);
else
fun(m+1,n);
{fun(1,2);
9、以下程序运算时输出到屏幕的结果是。
(09年秋9)
intfun(int*x,intn)
{if(n==0)returnx[0];
elsereturnx[0]+fun(x+1,n-1);
{inta[]={1,2,3,4,5,6,7};
printf(“%d\n”,fun(a,2));
本题为递归,解决递归分两步递推+回推
递推:
fun(a,2)
a[0]+fun(a+1,1)
a[1]+fun(a+1+1,0)注意此时指针的地址不a,而是a+1,返回的是a[1]+fun(a+1+1,0)而不是a[0]+fun(a+1+1,0),当n=0时fun(a+1+1,0)值为a[2],再依次回推a[2]+a[1]+a[0]=6
6.以下程序运行时输出到屏幕的结果为(6)。
10(10年春6)
#defineMAX(A,B)A>
B?
2*A:
2*B
{inta=1,b=2,c=3,d=4,t;
t=MAX(a+b,c+d);
printf(“%d\n”,t);
11、以下程序运算时输出到屏幕的结果中第一行是,第二行是。
(09年秋11)
#definef(x,y)y=x*x
voidg(intx,inty)
{y=x*x;
{inta=2,b=0,c=2,d=0;
f(a,b);
g(c,d);
printf(“%d\n%d”,b,d);
4
0
f(a,b)为宏替换,b值为4,g(c,d)为函数调用,但是函数中没有返回值,所以d保持原值0
4.执行以下程序段中的语句“k=M*M+1;
”后k的值是__________。
6(09年春4)
#defineN2
#defineMN+1
k=M*M+1;
4、若有以下声明:
(09年秋4)
char*p=”%d,%d\n”;
inta=1,b=2;
则执行语句”printf(p,a,b);
1,2
4.已知有声明“inta[3][2]={{1,2},{3,4},{5,6}},*p=a[0];
”,则执行语句“printf(“%d\n”,*(p+4));
”后的输出结果为(4)。
5(10年春4)
13、以下程序运算时输出到屏幕的结果是。
(09年秋13)
string.h>
{inti=0,n=0;
chars[80],*p;
strcpy(s,”Itisabook.”);
for(p=s;
*p!
=’\0’;
p++
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 免费