内容发布更新时间 : 2024/11/20 4:52:25星期一 下面是文章的全部内容请认真阅读。
int i,num;
for(i=1;str[i]!=(○1 ?\\0? );i++) {
if(str[i]!=(○2 ? ?) && str[i-1]==(○3? ?)) }
printf(“num=%d”,num);
折半查找法:设数组长度为n,则将输入的数m与a[n/2]比较,若ma[n/2],则将a[n/2+1]到a[n]的数继续折半进行查找。
8. 程序功能:有10个数按升序放在一个数组中,输入一个数,要求用折半查找该数是数组中的第几个元素,如果该数不在数组中,打印出“NO”。#include “stdio.h” void main() {
int a[10]={12,32,45,62,71,76,80,85,90,95}; int num,bott,top,mid; scanf(\ bott = 0, top = 9; while(bott小于等于top) { mid=(bott+top)/2; if( num == a[mid])
{printf(\ else if( num 小于 a[mid])
else bott=mid+1; } if(
num++;
11
第四章 函数
程序填空题
F1下列程序的功能是:将一个数字字符串转换为一个整数。例如,有字符串“-1234567”程序将它转换为整数-1234567。 #include
if(p[i]=='+'||p[i]=='-') i=1; else i=0;
while(p[i]!='\\0') {
num = sign*num; return(num); }
void main() { char s[9]; long n;
printf(\ gets(s); n=fs(s);
printf(\}
F2下列给定程序中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序 #include
void fun(int a[],int n) { int i,j,t,p;
for (j=0;j {p=j; for (;i 12 if (a[p]>a[i]) ; t=a[p];a[p]=a[j];a[j]=t; } } main() { int a[N]={9,6,8,3,-1},i,m=5; printf(\排序前的数据:\for (i=0;i printf(\fun(a,m); printf(\排序后的数据:\for (i=0;i F3.下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如,若输入8名学生的成绩: 80.5 60 72 90.5 98 51.5 88 64 则低于平均分的学生人数为4(平均分为:75)。 #include int fun (float *s,int n,float *aver) {float ave,t=0.0; int count=0,k,i; for (k=0;k for (i=0;i if (s[i] main() {float s[30],aver; int m,i; printf(\ printf(\ for (i=0;i printf(\ 13 printf(\) N4.下列程序用递归算法实现,输入任意一个整数,然后按从高到低输出各个位上的数字。 #include long int n; void func(long); scanf(\ void func( long m ) { if(m>=10) R5下面函数的功能是从键盘输入一组小写字母,并保存在字符数组str 中。通过fun()函数把字符数组str中ASCII码为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入”abcdefg”,输出“AbCdEfG”。 vodi fun(char s[]) { int i; for(_i = 0; s[i] != '\\0' ;i++) { if(s[i]>=’a’<&&>s[i]<=’z’) s[i] =s[i]<-> 32; } } F6.以下函数返回数组s中最大元素的下标,数组中元素的个数由t传入。 Findmax(int s[],int t) { int m,n; for(n=0,m=n;n F7、下面程序的功能是:主函数调用了sub函数,实现在3行4列的二维数组中,找出每一行上的最小值,请填空。 14 void sub(int b[3][4]) {int i,j,t,min; for(i=0;i<3;i++) {t=0; for(j=1;j<4;j++) if(b[i][j]< b[i][t]>) t=j; printf(“i=%d,min=%d\\n”,i,); } } main() {int a[3][4]={1,7,5,4,9,10,8,15,43,24,25,17}; sub(a); } F8、以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。 #define N 3 #define M 3 select(int a[N][M],int *n) { int i,j,row=1,colum=1; for(i=0; i if(a[i][j]>a[row][colum]) { row=i; colum=j; } *n= return ; } main() { int a[N][M]={9,11,23,6,1,15,9,17,20},max,n; max=select(a,&n); printf(“max=%d,line=%d\\n”,max,n); } R9、mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。 int mystrlen(char *str) { int i; for(i=0; str[i]'\\0';i++); return(); } F10、下面的程序通过函数average 计算数组中各元素的平均值,请填空。 float average(int *pa,int n) { int i; float avg=0.0; for(i=0;i 15