安徽省二级C语言程序设计笔试样题1Word下载.docx
《安徽省二级C语言程序设计笔试样题1Word下载.docx》由会员分享,可在线阅读,更多相关《安徽省二级C语言程序设计笔试样题1Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
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中的值
16.以下程序的输出结果是__D___
main()
{
inta=12,b=12;
printf(“%d,%d\n”--a,++b);
}
A.1010B.1212C.1110D.1113
17.以下程序运行后,输出结果是__C____
{char*s="abcd";
s+=2;
printf("%1d\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
20.在执行以下程序时,如果从键盘输入:
ABCdef<
回车>
,则输出为_B___
#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;
=’\n’)
switch(ch)
{case‘a’:
case’h’:
default:
v1++;
case’0’:
v2++;
printf(“%d,%d\n”,v1,v2);
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
C.CBSD.FCB
29.下面程序的运行结果是____
{charch[7]={“65ab21”};
inti,s=0;
for(i=0;
ch[i]>
=’0’&
ch[i]<
=’9’;
i+=2)
s=10*s+ch[i]-‘0’;
printf(“%d\n”,s);
A.12ab56B.6521C.6D.62
30.运行下面的程序,如果从键盘输入:
ab<
c<
def<
则输出结果为____
#defineN6
{charc[N];
inti=0;
for(;
i<
N;
c[i]=getchar(),i++);
for(i=0;
i<
i++)putchar(c[i]);
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.以下程序运行后输出结果是____
func(inta,intb)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
{intk=4,m=1,p;
p=func(k,m);
printf(“%d”,p);
A.8,15B.8,16C.8,17D.8,8
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++;
printf(“%d”,d);
{inta=3;
fun(a);
d+=a++;
A.84B.99C.95D.44
37.以下程序运行后,输出结果是____
{charch[2][5]={“693”,”825”},*p[2];
inti,j,s=0;
2;
i++)p[i]=ch[i];
i++)
for(j=0;
p[i][j]>
p[i][j]<
j+=2)
s=10*s+p[i][j]-‘0’;
printf(“%d\n”,s);
A.6385B.22C.33D.693825
38.若有以下程序段,输出结果为_____
int**pp,*p,a=10;
p=&
a;
pp=&
p;
printf(“%d”,**pp);
A.10B.p的地址C.a的地址D.pp的地址
39.若已建立以下的链表结构,指针p,q分别指向图中所示的结点,则不能将q所指的结点插入到链表末尾的一组语句为_____
Data
next
NULL
q
p
b
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.下列程序用于计算
s=1+x+x2/2!
+x3/3!
….+xi/i!
+….的近似值。
math.h>
{inti=0;
floats,t=1.0,x;
scanf(“%1f”,&
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>
y=c;
printf(“%d,%d,%d”,y,a+b+c-x-y,x);
6.以下程序将输入的一行字符串中的字母全部变成大写输出。
#include<
{charstr[255];
while((str[i++]=getchar())!
=’\n’);
str[i-1]=’\0’;
str[i]!
=’\0’;
if(str[i]>
str[i]<
=’z’)
str[i]=(________);
printf(“\n%s\n”,str);
7.程序运行后,输出4,16,256。
test()
{_______x=2;
x=x*x;
printf(“%d”,x);
{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]=’\0’;
do
buf[--i]=digits[d%s];
();
}while();
printf(“%s”,&
buf[i]);
{ints,d;
scanf(“%d,%d”,&
s,&
d);
printf(“%4d=”,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]
{inti;
for(i=1;
6;
{if(i%2)printf(“$”);
elsecontinue;
printf(“#”);
printf(“&
\n”);
运行结果为:
()
[程序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;
{longx;
x=f(4);
printf(“%d\n”,x);
[程序5]
{intm,n,i;
m=5;
n=7;
i=1;
do
{if((i%m==0)&
(i%n==0))
{printf(“%d\n”,i);
break;
i++;
}while(i!
=0);
四.编程题
1、找出1~100之间的全部“同构数”。
所谓“同构数”是指一个数,他出现在他的平方数的右端。
如6的平方是36,6就是同构数。
2、编程实现二维数组()的转置(即行列互换)。
3、按下述递归定义编写一个计算幂级数递归函数。
xn