考研程序设计复习题
1.
以下程序的输出结果是______。
main()
{ int a=0;
a+=(a=8);
printf("%d\n",a);
}
答案:16
知识点:赋值表达式
2.
若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______。
c=(a-=(b-5));
c=(a % 11)+(b=3);
答案:3
知识点:赋值表达式
3.
以下程序运行后的了输出结果是______。
main()
{ int a=1,b=2,c=3;
if(c=a) printf("%d\n",c);
else printf("%d\n",b);
}
答案:1
知识点:赋值表达式
4.
若有语句
int i=-19, j=i%4;
printf("%d\n",j);
则输出结果是______。
答案:-3
知识点:算术表达式
5.
设有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0);
{ n1=n2 % 10
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为______。
答案:8921
知识点:算术表达式
6.
下面程序的输出是______。
unsigned fun6( unsigned num)
{ unsigned k=1;
do {
k*=num%10;
num/=10;
}while(num);
return(k);}
main()
{ unsigned n=26;
printf("%d\n", fun6(n));
}
答案:12
知识点:算术表达式
7.
设y 是int型变量,请写出判断y为奇数的关系表达式______。
答案:y%2
知识点:算术表达式
8.
下列程序的输出结果是16.00,请填空 。
main()
{ int a=9,b=2
float x=______,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
答案:6.6
知识点:算术表达式
9.
以下程序运行后的输出结果是______。
main()
{int x =0210; printf("%X\n",x);
}
答案:88
知识点:整型数据
10.
以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如,输入的字符串为:556,则输出十进制整数366。请填空。
#include <stdio.h>
main()
{ char *p,s[6];
int n;
p=s;
gets(p);
n=*p-'0';
while(______!='\0')n=n*8+*p-'0';
printf("%d \n",n);
}
答案:*(++p)~*++p
知识点:整型数据
11.
以下程序的输出结果是______。
main()
{ unsigned short a=65536; int b;
printf("%d \n",b=a);
}
答案:0
知识点:整型数据
12.
下面程序的输出是______。
main()
{ int x=2;
while(x--);
printf("%d\n", x);}
答案:-1
知识点:自加、自减运算符和逗号运算符
13.
以下程序输出的最后一个值是______。
int ff(int n)
{ static int f=1;
f=f*n;
return f;
}
main()
{ int i;
for(i=1;i<=5;i++) printf("%d\n",ff(i));
}
答案:120
知识点:局部变量及其作用域和生存期
14.
以下程序的输出结果是______。
fun(int n,int *s)
printf输出格式 unsigned short { int f1,f2;
if(n==1||n==2) *s=1;
else
{ fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
}
main()
{ int x;
fun(6,&x);
printf("%d\n",x);
}
答案:8
知识点:函数的递归调用
15.
以下程序运行后的输出结果是______。
int f (int a[ ],int n)
{ if (n>=1)return f(a,n-1)+a[n-1];
else return 0;
}
main()
{ int aa[5]={1,2,3,4,5},s;
s=f(aa,5); printf(“%d\n”,s);
}
答案:15
知识点:函数的递归调用
16.
下面程序的运行结果是:______。
fun(int t[],int n)
{int i,m;
if(n==1) return t[0];
else
if(n>=2){m=fun(t,n-1); return m;}
}
main()
{int a[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
答案:11
知识点:函数的递归调用
17.
以下程序的输出结果是______。
main()
{ int x=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int *a,int n,int k)
{ if(k<=n) sub(a,n/2,2*k);
*a+=k;
}
答案:7
知识点:函数的递归调用
18.
下面程序的运行结果是:______。
int f(int a[],int n)
{ if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main()
{ int aa[3]={1,2,3},s;
s=f(&aa[0],3); printf("%d\n",s);
}
答案:6
知识点:函数的递归调用
19.
以下程序的输出结果是______。
void fun()
{ static int a=0;
a+=2; printf("%d",a);
}
main()
{ int cc;
for(cc=1;cc<4;cc++) fun();
printf("\n")
}
答案:246
知识点:函数的调用
20.
设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。
main()
{ int findbig(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.
若有以下程序
int f(int x,int y)
{ return(y-x)*x; }
main()
{ int a=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行后输出结果是______。
答案:9
知识点:函数的调用
22.
有以下程序
int sub(int n) {return (n/10+n%10);}
main()
{int x,y;
scanf (“%d”,&x);
y=sub(sub(sub(x)));
printf(“%d\n”,y);
}
若运行时输入:1234<回车>,程序的输出结果是______。
答案:10
知识点:函数的调用
23.
以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。
void fun(int *x, int *y)
{ …… }
main()
{ int a=10,b=20;
______;
p=fun; p(&a,&b);
……
}
答案:void (*p)()~void (*p)(int*,int*)
知识点:函数的调用
24.
请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
______(double,double);
main()
{double x,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
double max(double a,double b)
{ return(a>b ? a:b);}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论