C语言填空题精选.docx
《C语言填空题精选.docx》由会员分享,可在线阅读,更多相关《C语言填空题精选.docx(24页珍藏版)》请在冰豆网上搜索。
C语言填空题精选
1.以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
请填空。
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:
");scanf("%lf",&x);
y1=fun(__x+8);
y2=fun(_sin(x));
printf("y1=%1f,y2=%1f\n",y1,y2);
}
2.执行以下程序时输入1234567则输出结果是_1234。
#include
main()
{inta=1,b;
scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
}
3.若有以下程序
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));printf("%d\n",d);
}
执行后输出结果是__9。
4.以下程序的输出结果是_ACE。
#include
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
5.下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。
请填空。
fun(intx,intb[])
{intk=0,r;
do
{r=x%___2___;
b[k++]=r;
x/=___2___;
}while(x);
}
6.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空main()
{inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",__);
fro(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=_;
}
}
printf("sum=%d,count=%d\n",sum,count);}
&a[i]
a[i]
7.以下程序运行后的输出结果是___220.000000main()
{charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf("%d%f\n",n,x);
}
8.以下程序中,for循环体执行的次数是_4#defineN2#defineMN+1#defineKM+1*M/2main()
{inti;for(i=1;i{...}
}
9.以下程序运行后的输出结果是__135715。
main()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
9.下列程序中字符串中各单词之间有一个空格,则程序的输出结果是she。
#include
main()
{charstr1[]="Howdoyoudo",*p1=str1;strcpy(str1+strlen(str1)/2,"esshe");printf("%s\n",p1);
}
10.以下程序的输出结果是___261___。
main(){inta=177;
printf("%o\n",a);
}
11.下面程序的运行结果是:
__100010。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d%d\n",i1,i2);
}
12.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:
是_1B。
__Howdoes
B33<回车>,则输出结果
#includemain()
{chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,b);
}
13.以下程序运行后的输出结果是_17。
main()
{intx=15;
while(x>10&&x<50)
{x++;
if(x/3){x++;break;}
elsecontinue;
}
printf("%d\n",x);
}
14.函数sstrcmp()的功能是对两个字符串进行比较。
当s所指字符串和t所指字符相等时,返
回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。
请填空。
#include
intsstrcmp(char*s,char*t)
{while(*s&&*t&&*s==_*t)
{s++;t++;}
return__*s-*t;
}
15.以下程序的输出结果是___7___。
main()
{intx=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int*a,intn,intk)
{if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
16.以下程序段用于构成一个简单的单向链表,填空。
structSTRU
{intx,y;
floatrate;
__structSTRU*—p;
}a,b;
a.x=O;a.y=O;a.rate=O;a.p=&b;
b.x=O;b.y=O;b.rate=O;b.p=NULL;
17.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。
请填
空。
intisprime(inta)
{inti;
for(i=2;iv=a/2;i++)
if(a%i==0)_return0_—;
__return1;
}
18.设有如下程序:
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!
=0)
{n仁n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为_8921_一。
19.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。
请填空。
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
for(i=0;i{x=ar[i][0];
for(j=0;j=x;
}
}
br[i]
20.已知字符A的ASCII码为65,以下程序运行后的输出结果是__67G_。
main()
{chara,b;
a='A'+'5'-'3:
b=a+'6'-'2:
printf("%d%c\n",a,b);
}
21.以下程序的功能是:
求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。
请
填空。
main()
{intx[10],a[9],i;
for(i=0;i<10;i++)scanf("%d",&x[i]);
for(;i<10;i++)
a[i-1]=x[i]+;
for(i=0;i<9;i++)printf("%d",a[i]);
printf("\n");
}
i=1x[i-1]
22.函数mycmp(char*s,char*t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t返回正值,当s请填空。
mycmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}
return();
}
*S-*t
23.有以下程序
main()
{intn=0,m=1,x=2;
if(!
n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
执行后输出的结果是_-4____。
24.设有定义:
floatx=123.4567;,则执行以下语句后的输出结果是
___123.460000___。
printf("%f\n"(int)(x*100+0.5)/100.0);
25.以下程序中,函数SumColumMi的功能是:
求出M亍N列二维数组每列元素中的最小值,并计算它们的和值。
和值通过形参传回主函数输出。
请填空。
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
{inti,j,k,s=0;
for(i=0;i{k=0;
for(j=1;jif(a[k][i]>a[j][i])k=j;
s+=;
}
=s;
}
main()
{intx[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin();
printf("%d\n",s);
}
a[k][i]*sumx,&s
26.已知字符A的ASCII码值为65,以下语句的输出结果是。
charch='B';
printf("%c%d\n",ch,ch);
B66
27.设函数findbig已定义为求3个数中的最大值。
以下程序将利用函数指针调用findbig函数
请填空。
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=;
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
findbig
28.下面程序的输出是。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n",k);
}
12
29.以下函数fun用于求两个整数a和b的最大公约数。
fun(a,b)
inta,b;
{inti,j,m,n;
if(a>b)
{m=a;a=b;;}
i=a;j=b;
while((n=)!
=0)
{j=i;i=;}
return(i);
}
故本题答案为:
b=m和j%i和n。
30.以下程序中,select函数的功能是:
在N亍M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。
#defineN3
#defineM3
select(inta[N][M],int*n)
{inti,j,row=0,colum=0;
for(i=0;ifor(j=0;iif(a[i][j]>a[row][colum]){row=i;colum=j;}
*n=;
return();
}
main()
{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf("max=%d,line=%d\n",max,n);
}
rowa[row][colum]
31.以下sum!
数的功能是计算下列级数之和。
S=1+x+xA2/2!
+xA3/3!
+…+xAn/n!
请给函数中的各变量正确赋初值。
doublesum(doublex,intn)
{inti;
doublea,b,s;
for(i=1;iv=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
a=1.0,b=1.0,s=1.0
32以下函数的功能是:
求x的y次方,请填空。
doublefun(doublex,inty)
{inti;
doublez;
for(i=1,z=x;ireturn乙
}
x
33.以下程序的输出结果是。
main()
{inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1];
printf("%d\n",s);
}
30
34.以下程序的输出结果是。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{inti=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
16
35.设有以下程序:
main()
{inta,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
执行该程序后,a的值为,b的值为
07
36.
b所指二维数组的b所指二维数组中的
以下函数rotate的功能是:
将a所指N行N列的二维数组中的最后一行放到第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,其他数据不变。
#defineN4
voidrotate(inta[][N],intb[][N])
{inti,j;
for(i=0;i{b[i][N-1]=;
=a[N-1][i];}
}
a[0][i]b[i][0]
37有以下程序:
#include
main()
{charc;
while((c=getchar())!
='?
')putchar(--c);
}
程序运行时,如果从键盘输入:
Y?
N?
/,则输出结果为。
x
38.以上程序运行后的输出结果是。
main()
{inti=10,j=0;
do
{j=j+i;i--;}
while(i>2);
printf("%d\n",j);
}
52
39.若有如下结构体说明:
structSTRU
{inta,b;charc:
doubled;
structSTRU*p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
t[20]
structSTRU
41.以下程序的输出结果是。
voidfun()
staticinta=0;
a+=2;
printf("%d",a);
}
main()
{
intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
246
42.以下程序运行后的输出结果是。
#include
main()
{charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
}
.abcbcc
43.以下程序的输出结果是。
#defineMAX(x,y)(x)>(y)?
(x):
(y)
main()
{
inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
7
44.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为。
3
45.以下程序的功能是调用函数fun计算:
m=1-2+3-4+…+9-10,并输出结果。
请填空intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
{m+=i*f;
f=;
}returnm;
}
main()
{printf("m=%d\n",);}
-ffun(10)
46.若有程序
main()
{inti,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求给i赋10,给j赋20,则应该从键盘输入。
I=10,j=20
47.语句;X++;、++X;、X=X+1;、X=1+X,执行后都使变量x中的
值增1,请写出一条同一功能的赋值语句(不得与列举的相同)。
X+=1
48.下面的函数strcat(str1,str2)实现将字符串str2拼接到字符串str1后面的功能。
请填空
使之完整。
char*strcat(str1,str2)
char*str1,*str2;
{char*t=str1;
while()str1++;
while();
return(t);}
*str1!
=NULL和*str1++=*str2++
49.以下程序的输出结果是。
main()
{char*p="abcdefgh",*r;
long*q;
q=(long*)p;
q++;
r=(char*)q;
printf("%s\n",r);
}
efgh
50.以下程序运行后的输出结果是。
main()
{chara[]="Language",b[]="Programe";
char*p1,*p2;intk;
p1=a;p2=b;for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
gae
51.以下程序的功能是输出如下形式的方阵:
13141516
9101112
5678
1234请填空。
main(){inti,j,x;
for(j=4;j;j--)
{for(i=1;i<=4;i++)
{x=(j-1)*4+
printf("%4d",x);
}
printf("\n");
}
}
>=1
■
i
52.下列程序的输出结果是
intt(intx,inty,intcp,intdp){cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
56
53.若有语句
inti=-19,j=i%4;
printf("%d\n",j);
则输出的结果是。
54.有以下程序
intsub(intn){return(n/10+n%10);}
main()
{intx,y;
scanf("%d",&x);
y=sub(sub(sub(x)));
printf("%d\n",y);
}
若运行时输入:
1234<回车>,程序的输出结果是。
10
55.下面程序的运行结果是:
。
typedefunionstudent{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{STUa[5];
printf("%d\n",sizeof(a));
}
80
56.以下程序通过函数SunFur和f(x),x=0到10,这里f(x)=xA2+1,由F函数实现,请填空main()
{printf("Thesun=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+F();
returns;
}
F(intx)
{return();}
Xx*x+1
57.以下程序运行后的输出结果是。
main()
{intp=30;
printf("%d\n",(p/3>0?
p/10:
p%3));
}
3
58.以下程序运行后的输出结果是。
main()
{inta=3,b=4,c=5,t=99;if(b}
4599
59.以下程序运行后的输出结果是。
main()
{inta,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);printf("%d%d%d\n",a,b,c);
}
10200
60.以下程序的功能是:
将输入的正整数按逆序输出。
例如:
若输入135则输出531。
请填空
#include
main()
{intn,s;
printf("Enteranumber:
");scanf("%d",&n);
printf("Output:
");
do
{s=n%10;printf("%d",s);;}
while(n!
=0);
printf("\n");
}
.n/=10
61.以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列
图形。
例如,输入整数5时(注意:
n不得大于10),程序运行结果如下:
ABCDE
FGHI
JKL
MN