一、写程序结果
1、
#include <stdio.h>
main()
{
char a=55;
a=~a&055;
printf("%x,%o",a,a);
}
运行结果是____________________。
2、
#include <stdio.h>
#define test(x,y) x+y
main()
{
float c;
c=2*test(3.2,5.4)/2;
printf("%6.1f",c);
}
运行结果是____________________。
3、
#include <stdio.h>
void fun()
{
int x=1;
static int y=1;
printf("%d%d",++x,y++);
}
main()
{
int i;
for(i=0; i<2; i++)
fun();
}
运行结果是____________________。
4、
#include <stdio.h>
main()
{
int a=12,b=0,x=0;
do
{
b+=2;
a-=2+b;
x++;
}
while(a>=0);
printf("%d",x);
}
运行结果是____________________。
5、
#include <stdio.h>
main()
{
int n=132,i=1,j,k,b[10];
while(n!=0)
{
j=n%6;
b[i]=j;
n=n/6;
i=i+1;
}
for(k=i-1; k>0; k--)
printf("%d",b[k]);
}
运行结果是____________________。
二、程序填空
1、
任意输入坐标平面上一点(x,y),求该点到原点(0,0)间的距离。
#include <stdio.h>
#include <math.h>
#include <malloc.h>
__________ 1 __________ node
{
float x;
float y;
} node;
main()
{
node *p;
p=__________ 2 __________;
scanf("%f,%f",&p->x,&p->y);
printf("%5.1f",sqrt(p->x*p->x+p->y*p->y));
__________ 3 __________;
}
2、
下列给定程序中,函数fun()的功能是:从n个字符串中找出最长的那个串,并将其地址作为函数值返回。
#include <string.h>
#include <stdio.h>
#define n 4
#define m 50
char *fun(char(*q)[m])
{
int i;
char *p;
__________ 4 __________;
for(i=0; i<n; i++)
if(strlen(p)<strlen(*q++))
__________ 5 __________;
return p;
}
main()
{
char str[n][m]={"pingpong","basketball","field hockey","softball"};
char *longest;
int i;
longest=fun(str);
printf("\nthe longest string:\n");
puts(longest);
}
三、改错
1、
下列程序的功能是求分数序列: 89/55,-55/34,34/21,-21/13,13/8……的前8项之和。程序中有2处错误,请标记并改正。
#include <stdio.h>
main()
{
int i,flag=1;
float a=144,b=89,s=0,t;
for(i=1; i<=8; i++)
{
s=s+a/b;
flag=-flag;
t=b;
a=a-b;
a=t;
}
printf("%5.1f",s);
}
2、
下列程序的功能是采用简单插入的排序方法,随机产生10个整数,按从小到大的顺序排列。在程序中有2处错误,请标记并改正。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
main()
{
int i,j,a[11];
for(i=1; i<11; i++)
a[i]=rand();
for(i=2; i<11; i++)
{
a[0]=a[i];
for(j=i-1; j>=1; j--)
if(a[0]<a[j])
a[j-1]=a[j];
else
continue;
a[j+1]=a[0];
}
for(i=1; i<11; i++)
printf("%d ",a[i]);
}
四、程序设计题
1、
有一辆在高速公路上行驶的汽车,司机在某一时刻看到里程表显示的数值为95859公里(95859为回文数,回文数是指正读反读均一样的数),7小时后,里程表上又出现了一个回文数。编程求出此回文数和汽车时速?(注:高速公路限速60公里以上,汽车的里程表为5位数)
五、程序方向
(一)、程序填空
下列程序定义了3×3的二维数组,并在主函数中自动赋值;函数fun的功能是使二维数组的上三角元素的值全部置0。
调用函数前 调用函数后
1 2 3 1 0 0
2 4 6 2 4 0
3 6 9 3 6 9
#include <stdio.h>
__________ 1 __________
main()
{
int a[3][3],i,j;
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
__________ 2 __________=i*j;
fun(3,a);
printf("the result:\n");
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
void fun(int n,int a[3][3])
{
int i,j;
for(i=0; i<n-1; i++)
for(j=i+1; j<__________ 3 __________; j++)
a[i][j]=0;
}
(二)、程序设计
弦数是指平方值等于某两个正整数平方之和的正整数,如:32+42=52,因此5为弦数。编程输出10到100之间的所有弦数及弦数的数量。
参考答案:
一、写程序结果
1、 8,10 2、 □□□9.1 3、 2122
4、 3 5、 340
注:□代表空格
二、程序填空
1、 typedef struct 2、 (node *)malloc(sizeof(node)) 3、free(p)
4、 p=(*q); 5、 p=*(q-1);
三、改错
1、 L8 s=s+flag*b/(a-b);//s=s+a/b;
2、 L11 b=a-b;//a=a-b;
3、 L14 a[j+1]=a[j];//a[j-1]=a[j];
4、 L16 break;//continue;
四、程序设计题
1、参考代码
#include <stdio.h>
main()
{
int i,j,a[11];
int v=61,s,s1=95859;
while(1)
{
s=s1+7*v;
if(s/10000==s%10)
if(s/1000%10==s/10%10)
break;
v++;
}
printf("回文数:%d 汽车时速:%d",s,v);
}
五、程序方向
(一)、程序填空
1、 void fun(int n,int a[3][3]); 2、 a[i-1][j-1] 3、 n
(二)、程序设计
参考代码
#include <stdio.h>
#include <math.h>
main()
{
int i=1,j,k,x=0;
for(i=1;i<100;i++)
for(j=i+1;j<100;j++)
{
k=sqrt(i*i+j*j);
if(k*k==i*i+j*j && k>=10 && k<=100)
printf("\n%d %d*%d=%d*%d+%d*%d",++x,k,k,i,i,j,j);
}
}