安徽二级C语言程序设计笔试样题1文档格式.docx
《安徽二级C语言程序设计笔试样题1文档格式.docx》由会员分享,可在线阅读,更多相关《安徽二级C语言程序设计笔试样题1文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
D.当输入数据时,必须指明变量地址,
scanf(“%f”,&
15.设x和y均为int型变量,则语句:
x+=y;
y=x-y;
x-=y;
的功能是_D_
A.把x和y按从大到小排列B.把x和y按从小到大排列
C.无确定结果D.交换x和y中的值
__D___
以下程序的输出结果是16.
main()
{
inta=12,b=12;
printf(“%d,%d\n”--a,++b);
}
A.1010B.1212C.1110D.1113
17.以下程序运行后,输出结果是__C____
{char*s="abcd";
s+=2;
printf("_x001D_\n",s)
A.cdeB.字符c的ASCII码C.字符c的地址D.出错
18.以下程序的输出结果是_C___
{intm=5;
if(m++>
5)printf("%d\n",m);
elseprintf("%d\n",m--)
A.7B.6C.5D.4
19.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为__B__
if(a<
b)
if(c<
d)x=1;
elseif(a<
c)
if(b<
d)x=2;
elsex=3;
elsex=6;
elsex=7;
A.1B.2C.3D.6
_B___
,则输出为>
回车ABCdef<
在执行以下程序时,如果从键盘输入:
20.
#include<
stdio.h>
{charch;
while((ch=getchar())!
='\n')
{if(ch>
='A'&
&
ch<
='
Z'
)ch=ch+32;
elseif(ch>
a'
z'
)ch=ch-32
printf(“%c”,ch);
printf(“\n”);
A.ABCdefB.abcDEFC.abcD.DEF
21.下面能正确进行字符串赋值操作的语句是__A__
A.chars[5]={“\ABCDE”}B.chars[5]={‘A'
'
B'
C'
D'
E'
};
C.char*s;
s={“ABCDEF”};
D.char*s;
scanf(“%s”,s);
22.当执行以下程序段时,描述正确的选项是__A__
x=-1;
do{x=x*x;
}while(!
x);
A.循环题将再执行一次B.循环题将执行两次
C.循环题将执行无限次D.系统提示有语法错误
23.执行以下程序后,输出结果是___D
main()
{inty=10;
do{y--;
}while(--y);
printf(“%d\n”,y--);
A.-1B.1C.8D.0
24.在下列选项中,没有构成死循环的程序是__C_
A.inti=100;
B.for(;
;
);
while
(1)
{i=i&
100+1;
if(i>
100)break;
}
C.intk=1000;
D.ints=36;
do{++k;
}while(k<
=1000);
while(s);
--s;
25.执行语句:
for(i=1;
i++<
4;
后,变量i的值是__C__
A.3B.4C.5D.不定
26.以下程序运行后,如果从键盘输入ABCDE<
回车>
,则输出结果为______
string.h>
func(charstr[])
{intnum=0;
while(*(str+num)!
\0'
)num++;
return(num);
{charstr[10],*p=str;
gets(p);
printf(“%d\n”,func(p));
A.8B.7C.6D.5
___回车>
,则输出结果为运行以下程序后,如果从键盘输入27.china<
{intv1=0,v2=0;
charch;
)while((ch=getchar())!
\n'
switch(ch)
:
a'
‘{case
case'
h'
default:
v1++;
v2++;
case'
'
0}
v1,v2);
printf(“%d,%d\n”}
A.2,0B.5,0C.5,5D.2,5
28.若以下程序所生成的可执行文件名为fiel.exe,当打入以下命令执行该程序时,程序的输出结果是_____
FILE1CHINABEIJINGSHANGHAI
main(intargc,char*argv[])
{while(argc-->
0)
{++argv;
printf(“%s”,*argv);
A.CHINABEIJINGSHANGHAIB.FILE1CHINABEIJING
D.FCBC.CBS
____29.下面程序的运行结果是main()
”{charch[7]={“65ab21inti,s=0;
i+=2)9'
for(i=0;
ch[i]>
0'
ch[i]<
=;
0'
s=10*s+ch[i]-‘,s);
”printf(“%d\n}
D.62B.6521C.6A.12ab56
30.运行下面的程序,如果从键盘输入:
ab<
回车>
>
c<
回车def<
____则输出结果为#include<
#defineN6
{charc[N];
inti=0;
for(;
i<
N;
c[i]=getchar(),i++);
for(i=0;
i<
i++)putchar(c[i]);
”\n“printf(
A.aB.aC.abD.abcdef
bbc
dcd
ed
f
31.以下程序运行后,输出结果是_____
ss(char*s)
{char*p=s;
while(*p)p++;
return(p-s);
{char*a=“abded”;
inti;
i=ss(a);
printf(“%d\n”,i);
____以下程序运行后输出结果是32.#include<
func(inta,intb)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
{intk=4,m=1,p;
p);
“%d”p=func(k,m);
printf(,p);
%d”p=func(k,m);
printf(“}
D.8,8
C.8,17B.8,16A.8,15
33.以下程序运行后,输出结果是____
#definePT5.5
#defineS(x)PT*x*x
{inta=1,b=2;
printf(“%4.1f\n”,S(a+b));
A.49.5B.9.5C.22.0D.45.0
34.以下程序运行后,输出结果是___
{staticchara[]=”ABCDEFGH”,b[]=”abCDefGh”;
char*p1,*p2;
intk;
p1=a;
p2=b;
for(k=0;
k<
=7;
k++)
if(*(p1+k)==*(p2+k))printf(“%c”,*(p1+k));
A.ABCDEFGB.CDGC.abcdefghD.abCDefGh
35.以下程序执行后,a的值是_____.
{inta,k=4,m=6,*p1=&
k,*p2=&
m;
a=p1==&
printf(“%d,\n”,a);
A.4B.1C.0D运行时出错,a无定值
36.以下程序运行后,输出结果是______
intd=1;
fun(intp)
{intd=5;
d+=p++;
d);
“%d”printf(}
{inta=3;
fun(a);
d+=a++;
D.44C.95A.84B.99
____,输出结果是37.以下程序运行后main()
},*p[2];
825”693”,”{charch[2][5]={“inti,j,s=0;
2;
i++)p[i]=ch[i];
i++)
j+=2)'
p[i][j]<
9for(j=0;
p[i][j]>
0;
'
s=10*s+p[i][j]-‘0
s);
”printf(“%d\n}
D.693825C.33B.22A.6385
_____,输出结果为38.若有以下程序段int**pp,*p,a=10;
p=&
a;
pp=&
p;
**pp);
”printf(“%d
D.pp的地址的地址C.aB.pA.10的地址
所指的结点插q分别指向图中所示的结点,则不能将p,q39.若已建立以下的链表结构,指针_____入到链表末尾的一组语句为next
Data
NULL
b
ac
q
p
A.q->
next=NULL;
p=p->
next;
p->
next=q;
B.p=p->
q->
next=p->
p->
C.p=p->
next=p;
D.p=(*p).next;
(*q).next=(*p).next;
(*p).next=q;
40.以读写的方式打开一个已有的文件filel,下面有关fopen函数正确的调用方式为_____
A.FILE*fp;
fp=fopen(“filel”,”r”);
B.FILE*fp;
fp=fopen(“filel”,”r+”);
C.FILE*fp;
fp=fopen(“filel”,”rb”);
D.FILE*fp;
fp=fopen(“filel”,”rb+”);
二.填空题
1.设有变量定义:
inta=5,b=4;
则表达式(--a>
b++)?
--a;
b++的值为____
2.某C编译系统规定,int型数据占2字节,则定义:
structnode{intx;
longy;
}z;
后,sizeof(z)=_____
3.设有变量定义:
inta[10]={1,2,3,4,5,6,7};
int*p=a;
则表达式*++p的值为_____
下列程序用于计算4.
23i/i!
+….的近似值。
/2!
+x/3!
…s=1+x+x.+x#include<
math.h>
{inti=0;
floats,t=1.0,x;
scanf(“”,&
x);
s=t=1.0;
while(fabs(t)>
1.0e-5){i++;
t=____;
s+=t;
printf(“s=%f\n”,s);
5.下面程序用于将输入的三个数从小到大排序输出。
voidmain()
{inta,b,c,x,y;
scanf(“%d%d%d”,&
a,&
b,&
c);
if(_____)
{x=a;
y=b;
else{x=b;
y=a;
}if(______)
x=c;
else
if(y>
c)y=c;
printf(“%d,%d,%d”,y,a+b+c-x-y,x);
6.以下程序将输入的一行字符串中的字母全部变成大写输出。
#include<
{charstr[255];
while((str[i++]=getchar())!
str[i-1]='
str[i]!
if(str[i]>
str[i]<
)
str[i]=(________);
printf(“\n%s\n”,str);
7.程序运行后,输出4,16,256。
test()
{_______x=2;
x=x*x;
printf(“%d”,x);
main(){test();
test();
test();
8.函数trans()实现对给定的十进制整数d(d>
=0),译成s(2<
=s<
=16)进制表示形式的字符串。
chartrans(unsignedintd,ints)
{chardigits[]=”0123456789ABCDEF”;
charbuf[17];
inti=16;
if(s<
2||s>
16)return(0);
buf[i]='
do
buf[--i]=digits[d%s];
();
}while();
printf(“%s”,&
buf[i]);
main(){ints,d;
scanf(“%d,%d”,&
s,&
d);
printf(“M=”,d);
trans(d,s);
printf(“%d\n”,s);
三.阅读下列程序,写出结果;
[程序1]
{inti,x;
scanf(“%d”,&
for(i=2;
x%i;
i++);
printf(“%d\n”,i==x);
运行后,从键盘输入3,运行结果为:
;
()从键盘输入4,运行结果为:
(;
2][程序main(){inti;
for(i=1;
6;
$printf({if(i%2)“”elsecontinue;
);
“printf(#”}
&
\n”“printf(}
(运行结果为:
)3]
程序[
{intn[3],i,j,k;
for(i=0;
3;
i++)n[i]=0;
k=2;
k;
for(j=0;
j<
=k;
j++)
n[j]=n[i]+1;
printf(“%d\n”,n[k]);
运行结果为:
()
[程序4]
longf(intn)
{longs;
if((n==1)||(n==2))
s=2;
elses=n+f(n-1);
returns;
main(){longx;
x=f(4);
printf(“%d\n”,x);
[程序5]
main(){intm,n,i;
m=5;
n=7;
i=1;
{if((i%m==0)&
(i%n==0)){printf(“%d\n”,i);
break;
i++;
}while(i!
=0);
四.编程题
1、找出1~100之间的全部“同构数”。
所谓“同构数”是指一个数,他出现在他的平方数的右端。
如6的平方是36,6就是同构数。
。
、编程实现二维数组()的转置(即行列互换)2.
、按下述递归定义编写一个计算幂级数递归函数。
3n=0
1=
nxn-1x*
x