二级c语言经典练习带答案.docx
- 文档编号:2956490
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:30
- 大小:21.88KB
二级c语言经典练习带答案.docx
《二级c语言经典练习带答案.docx》由会员分享,可在线阅读,更多相关《二级c语言经典练习带答案.docx(30页珍藏版)》请在冰豆网上搜索。
二级c语言经典练习带答案
考研程序设计复习题
1.
以下程序的输出结果是______。
main()
{inta=0;
a+=(a=8);
printf("%d\n",a);
}
答案:
16
知识点:
赋值表达式
2.
若有定义:
inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______。
c=(a-=(b-5));
c=(a%11)+(b=3);
答案:
3
知识点:
赋值表达式
3.
以下程序运行后的了输出结果是______。
main()
{inta=1,b=2,c=3;
if(c=a)printf("%d\n",c);
elseprintf("%d\n",b);
}
答案:
1
知识点:
赋值表达式
4.
若有语句
inti=-19,j=i%4;
printf("%d\n",j);
则输出结果是______。
答案:
-3
知识点:
算术表达式
5.
设有以下程序:
main()
{intn1,n2;
scanf("%d",&n2);
while(n2!
=0);
{n1=n2%10
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为______。
答案:
8921
知识点:
算术表达式
6.
下面程序的输出是______。
unsignedfun6(unsignednum)
{unsignedk=1;
do{
k*=num%10;
num/=10;
}while(num);
return(k);}
main()
{unsignedn=26;
printf("%d\n",fun6(n));
}
答案:
12
知识点:
算术表达式
7.
设y是int型变量,请写出判断y为奇数的关系表达式______。
答案:
y%2
知识点:
算术表达式
8.
下列程序的输出结果是16.00,请填空。
main()
{inta=9,b=2
floatx=______,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
答案:
6.6
知识点:
算术表达式
9.
以下程序运行后的输出结果是______。
main()
{intx=0210;printf("%X\n",x);
}
答案:
88
知识点:
整型数据
10.
以下程序的功能是:
将无符号八进制数字构成的字符串转换为十进制整数。
例如,输入的字符串为:
556,则输出十进制整数366。
请填空。
#include
main()
{char*p,s[6];
intn;
p=s;
gets(p);
n=*p-'0';
while(______!
='\0')n=n*8+*p-'0';
printf("%d\n",n);
}
答案:
*(++p)~*++p
知识点:
整型数据
11.
以下程序的输出结果是______。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=a);
}
答案:
0
知识点:
整型数据
12.
下面程序的输出是______。
main()
{intx=2;
while(x--);
printf("%d\n",x);}
答案:
-1
知识点:
自加、自减运算符和逗号运算符
13.
以下程序输出的最后一个值是______。
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<=5;i++)printf("%d\n",ff(i));
}
答案:
120
知识点:
局部变量及其作用域和生存期
14.
以下程序的输出结果是______。
fun(intn,int*s)
{intf1,f2;
if(n==1||n==2)*s=1;
else
{fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
}
main()
{intx;
fun(6,&x);
printf("%d\n",x);
}
答案:
8
知识点:
函数的递归调用
15.
以下程序运行后的输出结果是______。
intf(inta[],intn)
{if(n>=1)returnf(a,n-1)+a[n-1];
elsereturn0;
}
main()
{intaa[5]={1,2,3,4,5},s;
s=f(aa,5);printf(“%d\n”,s);
}
答案:
15
知识点:
函数的递归调用
16.
下面程序的运行结果是:
______。
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
else
if(n>=2){m=fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
答案:
11
知识点:
函数的递归调用
17.
以下程序的输出结果是______。
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;
}
答案:
7
知识点:
函数的递归调用
18.
下面程序的运行结果是:
______。
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
}
main()
{intaa[3]={1,2,3},s;
s=f(&aa[0],3);printf("%d\n",s);
}
答案:
6
知识点:
函数的递归调用
19.
以下程序的输出结果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n")
}
答案:
246
知识点:
函数的调用
20.
设函数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
知识点:
函数的调用
21.
若有以下程序
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
知识点:
函数的调用
22.
有以下程序
intsub(intn){return(n/10+n%10);}
main()
{intx,y;
scanf(“%d”,&x);
y=sub(sub(sub(x)));
printf(“%d\n”,y);
}
若运行时输入:
1234<回车>,程序的输出结果是______。
答案:
10
知识点:
函数的调用
23.
以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。
voidfun(int*x,int*y)
{……}
main()
{inta=10,b=20;
______;
p=fun;p(&a,&b);
……
}
答案:
void(*p)()~void(*p)(int*,int*)
知识点:
函数的调用
24.
请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
______(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?
a:
b);}
答案:
doublemax~externdoublemax
知识点:
函数的定义和返回值
25.
以下程序运行后输出结果是______。
#include
char*ss(char*s)
{char*p,t;
p=s+1;t=*s;
while(*p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]=”abcdefgh”;
p=ss(str);
printf(“%s\n”,p);
}
答案:
bcdefgha
知识点:
函数的定义和返回值
26.
下面程序的运行结果是:
______。
#include
intf(inta[],intn)
{
if(n>1)
returna[0]+f(a+1,n-1);
else
returna[0];
}
main()
{
intaa[10]={1,2,3,4,5,6,7,8,9,10},s;
s=f(aa+2,4);printf("%d\n",s);
}
答案:
18
知识点:
函数之间对一维数组和数组元素的引用
27.
以下程序的输出结果是______。
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
知识点:
二维数组的定义和二维数组元素的引用
28.
以下程序中,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 _
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 经典 练习 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)