C语言复习题分析和总结.docx
一、填空 共17题(共计60分)
第1题(2.0分)
运行以下程序时,输出结果是【1】
longfit(intn)
{if(n2)return(fit(n-1)+fit(n-2));elsereturn(3);}
main()
{printf(%ld\n,fit(4));}
第2题(2.0分)
以下程序运行后的输出结果是【1】.
#includestring.h
voidmain()
{charch[]=abc,x[3][4];inti;
for(i=0;i3;i++)strcpy(x[i],ch);
for(i=0;i3;i++)printf(%s,x[i][i]);
printf(\n);
}
第3题(2.0分)
下列程序的输出结果是【1】
#includestring.h
main()
{charb[30];
strcpy(b[0],CH);
strcpy(b[1],DEF);
strcpy(b[2],ABC);
printf(%s\n,b);
}
第4题(2.0分)
运行以下程序时,输出结果是【1】
#includestdio.hintb;
intfun(inta)
{ staticintc=2;return((++a)+(++b)+(++c));
}
voidmain()
{ inti,a=1;for(i=0;i2;i++)
printf(%5d,fun(a));
}
第5题(2.0分)
在函数内部声明局部变量时缺省了存储类型,则该变量存储类型是【1】.
第6题(2.0分)
有以下定义和语句
structdate
{ intday;
intmonth;
intyear;
union
{ intshare1;
floatshare2;
}share;
}a;
则sizeof(a)的值是【1】.
第7题(2.0分)
以下程序的运行结果是【1】
main()
{ inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};
inti;
int(*p)[4]=a;printf(a[2][3]=%d\n,i,j,*(*(p+i)+j));
}
第8题(2.0分)
以下程序的运行结果是【1】
voidswap(int**r,int**s)
{ int*t;t=*r;
*r=*s;
*s=t;
}
main()
{ inta=1,b=2,*p,*q;p=a;
q=b;swap(p,q);
printf(%d,%d\n,*p,*q);
}
第9题(4.0分)
以下程序运行时,输出结果的第一行是【1】,第二行是【2】.
#includestdio.h
voidf(int*x,inty)
{ *x=y+1;y=*x+2;}
main()
{ inta=2,b=2;
f(a,b);
printf(%d\n%d,a,b);
}
第10题(4.0分)
设有以下main函数
main(intargc,char*argv[])
{ while(argc1)
{ ++argv;
printf(%s\n,*argv);
--argc;
}
}
经过编译、连接后得到可执行文件名为c1.exe,
若在系统的命令状态下输入命令行:c1nanjingxiaozhuangcollege回车,
则在第一行输出【1】,第三行输出【2】.
第11题(4.0分)
请填空以使程序完整。有一个m*n的矩阵,以下程序的功能是求出其中值最大的元素的值,以及相应得行号和列号。
#defineM
4
#defineNmain()
{
3
inti,j,row=0,colum=0,max;
inta[M][N]={{1,23,3},{4,8,6},{17,6,1},{0,11,17}};
【1】;for(i=0;i=3;i++)
for(j=0;j=2;j++)if(【2】)
{
max=a[i][j];row=i;colum=j;
}
printf(max=%d,row%d,colum=%d\n,max,row,colum);
}
第12题(4.0分)
以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数.例如,输入的字
符串为:556,则输出十进制整数366.请填空.
#includestring.h
main()
{chars[6];
intn,i=0;
gets(s);
n= 【1】 -0;
while( 【2】 !=\0