资源描述
《C语言程序设计》模拟试题五
一、 填空题(40分)
1.计算机软件分为 和 ;C语言适合编写 .
2.十进制数35=( )2 =( )8 =( )16
3.已知一个数[X]补=11111001,求[X]原= 及X= .
4.设x=2.5,a=7,y=4.7.求下列算术表达式的值.
x+a%3*(int)(x+y)%2/3= .
5.将算式|3-exln(1+Y)|写成C语言表达式 .
6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为:
.
7.用C语句写出累加器 、累乘器 、计数器 .
8.上机操作时,CTRL+F9键的功能是 ,F2键的功能是 ALT+F5键的功能是 .
9.下列程序段对应的数学表达式是
int t,n,s=0;
scanf(“%d”,&n);
for(i=1;i<=n;i++)
{ t=1;
for(j=1;j<=i;j++)
t=t*j;
s=s+t;}
10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空.
main()
{int a[10]={25,57,48,38,12,92,88,48,16,25};
int i,x;
scanf(“%d”,&X);
for(i=0;i<10;i++)
if (x==a[i])
{printf(“Found!The index:%d\n”a[i]);(1) ;}
if (2) printf(“Can not found!”);
}
二、单选题(15分)
1.一个C程序的执行是从 .
A. 本程序的main()函数开始,到main函数结束.
B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束.
C. 本程序的main()函数开始,到本程序文件的最后一个函数结束.
D. 本程序文件的第一个函数开始,到本程序main函数结束.
2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式为 .
main()
{ int a,b,c;
输入语句;
printf(“%c%c%c”,a,b,c);
}
输入形式:A B C
输出形式:ABC
A.scanf(“%c%c%c”,&a,&b,&c);
B.scanf(“%c,%c,%c”,&a,&b,&c);
C.scanf(“%c %c %c”,&a,&b,&c);
D.scanf(“%c%c”,&a,&b);
3.给出下列程序的运行结果 .
main()
{int i,j,k,x=0;
for(i=2;i<=5;i++)
for(j=7;j>=3;j-=2)
for(k=4;k<=11;k+=4)
x++;
printf(“x=%d”,x);}
A.x=64 B. x=36 C.x=60 D. x=24
4.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值为 .
x=(i=4,j=16,k=32)
A. 4 B. 16 C.32 D.52
5.以下不正确if语句形式是 .
A.if ( x>y && x!=y );
B.if ( x = = y ) x + = y;
C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y);
D.if (x<y) { x++; y++ ;}
三、改错题(14分)
1.从键盘输入20个整数,将大于-5与小于+5的数以2倍形式输出.
main()
{int x,i,y;
for(i=1,i<=10,i++)
scanf(“%d”,x);
if (-5<x<5) printf(“%d”,y=2x);
}
2.求1-2+3-4+5-6+…-100的和.
main()
{int n,f,i=0;
-1=f;
do
s=s+f*i;
i++;
f=-f;
while(i>=100)
printf(“%d”;s);
}
四、给出下列程序的运行结果(15分)
1. main()
{int a,b,c,s,w,t;
s = w = t = 0;
a= -1; b= 3; c= 5;
if (c>0) s=a+b;
if (a<=0)
{ if (b>0)
if (c<=0) w=a-b;
}
else if (c>0) w=a-b;
else t=c;
printf(“%d %d %d”,s,w,t);
}
2. #include <stdio.h>
main()
{ int i=5;
char a[6]=“abcd”;
do
{ a[i]=a[i-1];
--i;
}
while(i>0);
puts(a);
}
3. main()
{ int i,a[50];
for(i=1;i<=10;i++)
{i=i*i;a[i]=i;
printf(“%d ”,a[i]); }
}
五、按给出的程序功能,在空格处,填写正确的程序语句,使程序完整。(每空1分,共6分)
1.下面程序的作用是将以下给出的字符按其格式读入数组ss中,然后输出行、列号之和为3的数组元素,请在____处填入正确内容。
A a f
c B d
e b c
g f D
main()
{ static char ss[4][3]={‘A',‘a',‘f',‘c',‘B',‘d',‘e',‘b',‘C',‘g',‘f',‘D'};
int x,y,z;
for(x=0; ;x++)
for(y=0; ;y++)
{z=x+y; if( )
printf(“%c\n”,ss[x][y]);
}
}
2.以下函数的功能是删除字符串s中的所有数字字符。请填空。
void dele(char *s)
{ int n=0,i;
for(i= ,s[i];i++)
if( )
s[n++]=s[i];
s[n]= ;
}
六、编写程序(10分)
1.用递归方式求n!
2.输入20个数,去掉两个最高分,两个最低分,输出其余数的平均值.
试题五参考答案
一.填空题
1.系统软件 应用软件 系统软件
2.100011 43 23
3.10000111 -7
4.2.5
5.abs(3-exp(x)*ln(1+y))
6.a=5,b=︺︺︺9
7.s=0;s=s+x; p=1;p=p*x; n=0;n=n+1;
8.运行程序 保存程序 查看运行结果
9.s=1!+2!+…n!
10.break i>=10
二.单选题
1.A 2.C 3.D 4.C 5.C
三.改错题
1.
main()
{int x,i,y;
for(i=1;i<=20;i++)
{
scanf(“%d”,&x);
if(x>-5 && x<5) printf(“%d”,y=2*x);
}
}
2.
main()
{int n,f,i=0,s=0;
f=-1;
do
{
s=s+f*i;
i++;
f=-f;
}while(i<=100);
printf(“%d”,s);
}
四.给出下列程序的运行结果
1.2 0 0
2.Aabcd
3.1 4 25
五.按给出的程序功能,在空格处,填写正确的程序语句,使程序完整。
1.
main()
{ static char ss[4][3]={‘A',‘a',‘f',‘c',‘B',‘d',‘e',‘b',‘C',‘g',‘f',‘D'};
int x,y,z;
for(x=0; x<4 ;x++)
for(y=0; y<3 ;y++)
{z=x+y; if( z==3 )
printf(“%c\n”,ss[x][y]);
}
}
2.
void dele(char *s)
{ int n=0,i;
for(i= 1 ,s[i];i++)
if( !(s[i]>‘0’$$s[i]<‘9’) )
s[n++]=s[i];
s[n]= ‘\0’ ;
}
六.编写程序
1.
int digui(int n)
{
int s;
if(n==1)
s=1;
else
s=n*digui(n-1);
return(s);
}
main()
{
int n;
scanf("%d",&n);
printf("%d\n",digui(n));
}
2.
main()
{
int i,j;
float a[20],temp,s=0;
for(i=0;i<20;i++)
scanf("%f",&a[i]);
for(i=0;i<19;i++)
for(j=i+1;j<20;j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for(i=2;i<18;i++)
s+=a[i];
printf("%f",s/16);
}
展开阅读全文