C语言期末复习填空题部分(含答案)
期末复习填空题部分
一、填空题
1 设x为int型变量,写出描述“x是偶数与y是奇数”的表达式是x%2==0 && y%2==1 。
2 以下程序的输出结果是-27 。
#include<>
void main()
{ char c;
c=0345;
printf("%d\n",c);
}
3 设有语句int a=3;,则执行了语句a+=a-=a*a后,变量a的值是-12 。
4 若float x;以下程序段的输出结果是
x=;
printf("%f\n",(int)(x*1000+/(float)1000);
5 下面的程序运行时从键盘上输入90<回车>,程序的输出结果是a=123,b=,c=789。
#include<>
void main()
{
int a;
float b,c;
scanf("%3d%3f%3f",&a,&b,&c);
printf("a=%d,b=%.1f,c=%.0f",a,b,c);
}
6 若输入字符串:abcdefg<回车>,则以下while循环体将执行0 次。
while((ch=getchar())=='g') printf("*");
7 下面程序的输出结果是_67,D__。
main()
{ char ch1,ch2;
ch1='A'+'5'-'3'; ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
8 执行下面的语句:printf("%d\n",(a=3*5,a*4,a+5));,输出是20 。
9 下列程序的输出结果是3,2 -1 。
main()
{ int x=0,y=5,z=3;
while(z-->0 && ++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
10 下列程序的输出结果是54 。
#include<>
void main()
{
int s=0,i=1;
for(;i<10;i++,s+=i);
printf("%d\n",s);
}
11 若int类型变量占两个字节,定义int x[15]={0,2,4};,则数组x在内存中所占的字节数是30 。
12 下列程序的输出结果是852 。
main()
{ int i,a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d\n",a[2],a[5],a[8]);
}
13 下列程序运行的结果是6 。
main()
{ char ch[7]="65ab21"; int i,s=0;
for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0';
printf("%d\n",s);
}
14 运行下面程序,其输出结果是15,35 。
#include <>
int x,y;
one()
{ int a,b;
a=25,b=10;
x=a-b;y=a+b;
}
main()
{ int a,b;
a=9,b=5;
x=a+b;y=a-b;
one();
printf("%d,%d\n",x,y):
}
15 运行下面程序,其输出结果是321 。
#include <>
main()
{ void printd()
int n=123;
printd(n);
}
void printd(int n)
{ int i;
if(n<0) { n=-n; putchar('-'); }
putchar(n%10+'0');
if((i=n/10)!=0) printd(i);
}
16 以下程序的输出结果是abb 。
#include<>
void main()
{ char ch[]="abc",x[3][3]; int i;
for(i=0;i<3;i++) strcpy(x[i],ch);
for(i=0;i<3;i++) printf("%s",&x[i][i]);
printf("\n");
}
17 运行下面程序,从键盘输入三个字符ab#,其输出是ab##ba 。
#include <>
void recursion()
{ char c;
c=getchar();
putchar(c);
if(c!='#') recursion();
putchar(c);
}
void main()
{ void recursion();
recursion();
}
18 以下程序的输出结果是__55__。
#define M 5
#define N M+M
main()
{ int k;
k=N*N*5; printf("%d\n",k);
}
19 以下程序的输出结果是12 15 。
#include <>
void swap(int *a, int *b)
{ int *t;
t=a; a=b; b=t;
}
void main()
{ int i=12, j=15, *p=&i, *q=&j;
swap(p,q);
printf("%d %d\n", *p,*q);
}
20 以下程序的输出结果是 15 12 。
#include <>
void swap(int *a, int *b)
{ int t ;
t=*a; *a=*b; *b=t;
}
void main()
{ int i=12, j=15, *p=&i, *q=&j;
swap(p,q);
printf("%d %d\n", *p,*q);
}
二、程序填空题
1 下列程序的输出结果是,请填空。
main()
{ int a=9,b=2;
float x= 6 .6【1】 ,y=,z;
z=a/2+b*x/y+1/2;
printf("%\n",z);
}
2 下列程序是求 的值。 #include ""
main()
{ int i=2; float sum=1;;
while( i<=50 【1】 )
{ sum=sum+i; i+2 【2】 ; }
printf("sum=%f\n", sum 【3】 );
}
3 以下程序的功能是从键盘输入若干个学生的成绩,统计最高成绩和最低成绩,当输入为50
141211++++Λ
负数时,结束输入。请填空使程序完整。
#include<>
void main()
{
float x,max,min;
scanf("%f",&x);
max=min= x 【1】;
do{ if(x>max) max=x;
if(x scanf("%f",&x); } while( x>=o【3】); printf("%f,%f",max,min); } 4 以下程序的功能是:从键盘上输入若干个学生的成绩(用输入负数结束输入),统计出平均成绩,并输出低于平均分的学生成绩。请填空。 #include "" main() { int n=0,i; float x[1000],sum=,ave,a; printf("Enter mark:\n"); scanf("%f",&a); while(a>= && n<1000) { sum+=a 【1】; x[n]= a 【2】; n++; scanf("%f",&a); } ave= sum/n 【3】; print("Output:\n"); printf("ave=%f\n",ave); for(i=0;i } 5 以下程序,数组a中存放一个递增数列。输入一个整数,并将它插入到数组a中,使之仍为一个递增数列。请填空。 #include<> void main() { int a[【1】11]={1,10,20,30,40,50,60,70,80,90},x,i,p; scanf("%d",&x); for(i=0,p=10;i<10;i++)