C语言程序复习题及参考答案 下载本文

}

ave=

printf(\

7.以下程序从终端读入数据到数组中,统计其中偶数的个数,并计算它们之和及平均值。 main()

{ int i,a[20],count;float ave,sum; sum=0.0;count=0;ave=0;

for(i=0;i<20;i++) scanf(\ for(i=0;i<20;i++) { if( ) { count++;

sum+= ; } }

ave=

printf(\ }

8.下面程序的功能是将字符串a中的下标为奇数的元素由小到大排序,其他元素不变,请填空。

main()

{ char a[]=\ for(i=1;i<7;i+=2)

for(j=i+2;j<8; ) if( )

{t=a[i];a[i]=a[j];a[j]=t;} puts(a); }

9.对排序数列进行折半查找问题:

#include #include #define N 19 int main()

{int a[N]={2,5,6,7,8,13,15,17,19,21,23,25,26,27,28,35,41,52,63}; int mid,top,bot,x; top=0;bot=N-1;

printf(“请输入要找的元素:”); scanf(“%d”,&x); while(top<=bot)

{ ; if(x==mid)

{printf(“\\n找到的元素%d是:a[-]\\n”,x,mid);

exit(0); }

第 47 页 共 88 页

else if(x>mid) ___________________; else ____________________;

}

printf(“没有找到该元素!\\n”); return 0;

}

10、以下程序中函数f的功能是:在数组x的n个数(假定n个数互不相同)中找出最大数,将最大的数放在下标最大的元素中,请填空。(本题4分) #include void f(int x[ ],int n) { int maxi, max, ,i,temp; max= x[0]; maxi =0; for(i=1;i

{if(x[i]>max) {max=x[i]; maxi=i;} }

temp=x[maxi]; x[maxi]= ________; _ _______=temp; //最大值与最后一个数的对换

11、以下程序的功能是:为数组a中所有的元素输入数据,请填空。(本题4分) main(){

int a[10],i=0;

while(i<10)sacnf(“%d”, ________)}

五、编程题:

1. 实现用选择法对n个整数的排序,按从小到大的顺序。 2.利用冒泡排序的方法,实现对10个整数的升序排列。

3.有n个整数,使其前面各数顺序向后移动m(m<=n)个位置,最后的m个数变成最前面的m个数,且移动的元素之间的相对位置不变。

4.从键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这10个数中找到x,则打印“Found!”;如果找不到,则打印“Not found!”。

5. 编程实现:输入4行5列的矩阵,输出其中最大的那个元素的值,以及其所在的行号和列号。

6. 编写一个程序,将一个3*4的矩阵转置。 7.求一个3*3矩阵的对角线元素之和。

8. 编程实现:输入一行文字,求出其中大写字母、小写字母、空格、数字及其他字符各有多少。

9. 编写一程序,将两个字符串连接起来,要求不用strcat函数。 10.设计一个候选人得票统计程序。设有3个候选人,他们的姓名分别是:Li、Zhang、Wang。

编程输入得票的候选人的名字,要求最后统计出得票结果。

11.有一行文字,要求删去其中某个字符,此行文字和要删除的字符均由键盘输入。 12.有一篇短文,共有3行文字,每行最多有80个字符。要求统计出其中英文大写字母、小写字母、数字、空格及其他字符各有多少个。

13.译密码。为使电文保密,往往按照一定规律将其转换成密码,收报人再按约定的规律将

其译回原文。一种明文向密文转换的规则是:将字母A变成F,a变成f,即变成其后

第 48 页 共 88 页