主函數框架以下。其做用是輸入5個整數,並定義了一個變量aver準備存儲平均值。其中橫線處應是一個函數調用語句。數組
int main()框架
{函數
int a[5],i,aver;spa
for(i=0;i<=4;i++) 指針
scanf("%d",&a[i]);ip
____________; //此處只填寫一條函數調用語句,不按要求作得0分。字符串
printf("%d",aver);get
return 0;string
}io
編寫一個被調函數void X(......)供主函數調用,其功能是:計算平均值並存儲到主函數定義的aver之中。
注意:
一、提交代碼時,主函數也應一併提交
二、主函數所缺代碼請自行填補,只填寫一條調用語句,不得增長其餘代碼,也不容許改變程序結構,不然得0分
輸入5個整數
求平均值(保留整數,不四捨五入)
{
int i,sum=0;
for(i=0;i<5;i++)
{
sum+=*(p++);
}
*aver=sum/5;
}
int main()
{
int a[5],i,aver;
for(i=0;i<=4;i++)
scanf("%d",&a[i]);
X(&aver,a);
printf("%d",aver);
return 0;
}
鍵盤輸入10個數據存入數組,調用被調函數使數組各元素的值翻番(被調函數完成),而後主函數輸出翻番後的數據
輸入10個數據
輸出處理後的數據,每一個數據佔5個字符的寬度
#include<stdio.h>
void db(int *p)
{
int i;
for(i=0;i<=9;i++)
p[i]=p[i]*2;//*p=*(p++)*2;
}
int main()
{
int a[10],i;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
db(a);
for(i=0;i<=9;i++)
printf("%5d",a[i]);
return 0;
}
鍵盤輸入10個整數,由被調函數找出最大、最小值並分別交換到數組的最前、最後,而後在主函數中輸出交換後的數組內容。
注意:是被調函數交換位置,不是主函數
輸入10個數
輸出交換後的全部數據
方法一//有誤?
#include<stdio.h>
#include<string.h>
void X(int *p)
{
int temp,i;
int max,m,min,n;
max=min=p[0];
m=0;n=0;
for(i=1;i<10;i++)
{
if(p[i]>max)
{
max=p[i];
m=i;
}
if(p[i]<min)
{
min=p[i];
n=i;
}
}
if(m>n)
{
temp=p[n];
p[n]=p[m];
p[m]=temp;
}
if(m==0&&n==9)
{
;
}
if(m==9&&n==0)
{
temp=p[n];
p[n]=p[m];
p[m]=temp;
}
if(m>0&&m<9&&n==9)
{
temp=p[m];
p[m]=p[0];
p[0]=temp;
}
if(m==0&&n>0&&n<9)
{
temp=p[n];
p[n]=p[9];
p[9]=temp;
}
if(m>0&&m<9&&n>0&&n<9)
{
temp=p[m];
p[m]=p[0];
p[0]=temp;
temp=p[n];
p[n]=p[9];
p[9]=temp;
}
if(n==0&&m>0&&m<9)
{
temp=p[m];
p[m]=p[9];
p[9]=temp;
temp=p[0];
p[0]=p[9];
p[9]=temp;
}
if(m==9&&n>0&&n<9)
{
temp=p[n];
p[n]=p[0];
p[0]=temp;
temp=p[0];
p[0]=p[9];
p[9]=temp;
}
}
int main()
{
int a[10],i;
for(i=0;i<10;i#include<stdio.h>
#include<string.h>
void X(int *p)
{
int temp,i;
int max,m,min,n;
max=min=p[0];
m=0;n=0;
for(i=1;i<10;i++)
{
if(p[i]>max)
{
max=p[i];
m=i;
}
if(p[i]<min)
{
min=p[i];
n=i;
}
}
if(m==0&&n==9)
{
;
}
if(m==9&&n==0)
{
temp=*(p+n);
*(p+n)=*(p+m);
*(p+m)=temp;
}
if(m>0&&m<9&&n==9)
{
temp=*(p+m);
*(p+m)=*(p);
*(p)=temp;
}
if(m==0&&n>0&&n<9)
{
temp=*(p+n);
*(p+n)=*(p+9);
*(p+9)=temp;
}
if(m>0&&m<9&&n>0&&n<9)
{
temp=*(p+m);
*(p+m)=*(p);
*(p)=temp;
temp=*(p+n);
*(p+n)=*(p+9);
*(p+9)=temp;
}
if(n==0&&m>0&&m<9)
{
temp=p[m];
p[m]=p[9];
p[9]=temp;
temp=p[0];
p[0]=p[9];
p[9]=temp;
}
if(m==9&&n>0&&n<9)
{
temp=p[n];
p[n]=p[0];
p[0]=temp;
temp=p[0];
p[0]=p[9];
p[9]=temp;
}
}
int main()
{
int a[10],i;
for(i=0;i<10;i++)
{
scanf("%d",a+i);
}
X(a);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
++)
{
scanf("%d",&a[i]);
}
X(a);
for(i=0;i<9;i++)
{
printf("%d ",a[i]);
}
if(i=9)
printf("%d",a[i]);
return 0;
}
方法二
#include<stdio.h>
#include<string.h>
void X(int *p)
{
int temp,i;
int max,m,min,n;
max=min=p[0];
m=0;n=0;
for(i=1;i<10;i++)
{
if(p[i]>max)
{
max=p[i];
m=i;
}
if(p[i]<min)
{
min=p[i];
n=i;
}
}
if(m==0&&n==9)
{
;
}
if(m==9&&n==0)
{
temp=*(p+n);
*(p+n)=*(p+m);
*(p+m)=temp;
}
if(m>0&&m<9&&n==9)
{
temp=*(p+m);
*(p+m)=*(p);
*(p)=temp;
}
if(m==0&&n>0&&n<9)
{
temp=*(p+n);
*(p+n)=*(p+9);
*(p+9)=temp;
}
if(m>0&&m<9&&n>0&&n<9)
{
temp=*(p+m);
*(p+m)=*(p);
*(p)=temp;
temp=*(p+n);
*(p+n)=*(p+9);
*(p+9)=temp;
}
if(n==0&&m>0&&m<9)
{
temp=p[m];
p[m]=p[9];
p[9]=temp;
temp=p[0];
p[0]=p[9];
p[9]=temp;
}
if(m==9&&n>0&&n<9)
{
temp=p[n];
p[n]=p[0];
p[0]=temp;
temp=p[0];
p[0]=p[9];
p[9]=temp;
}
}
int main()
{
int a[10],i;
for(i=0;i<10;i++)
{
scanf("%d",a+i);
}
X(a);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
主函數中輸入一個字符串(不超過80個字符),由被調函數將其逆序存放。主函數輸出逆序以後的字符串。
輸入一個字符串
輸出逆序以後的字符串
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char z[81],n;
gets(z);
n=strlen(z);
for(i=n-1;i>=0;i--)
{
printf("%c",z[i]);
}
}
鍵盤輸入一行英文句子(不超過80字符),調用函數使其中的元音字母變成大寫,而後主函數輸出。用指針操做。
輸入英文句子一行
輸出變化後的句子
#include<stdio.h>
#include<string.h>
/*
void f(int *p,int n)
{
int i;
for(i=0;i<n;i++)
{
if(p[i]=='a'||p[i]=='e'||p[i]=='o'||p[i]=='i'||p[i]=='u')
{
p[i]-=32;
}
}
}
*/
int main()
{
char a[81];
int n,i;
gets(a);
n=strlen(a);
for(i=0;i<n;i++)
{
if(a[i]=='a'||a[i]=='e'||a[i]=='o'||a[i]=='i'||a[i]=='u')
{
a[i]-=32;
}
}
//f(a,n);
puts(a);
//printf("%d",n);
}
鍵盤輸入不超過80個字符,由被調函數統計其中大寫字母和空格的個數,由主函數輸出結果,程序框架以下:
#include <stdio.h>
/********************************/
/* */
/* 此處缺乏sub函數的定義 */
/* */
/********************************/
int main()
{
___________; //此處缺乏字符數組的定義
int sum1, sum2;
________; //此處缺乏一條語句,該語句用來輸入字符串
sub(_____________); //此處缺乏參數
printf("%d,%d", sum1, sum2);
return 0;
}
上面的程序缺乏4處代碼,請將4處所缺代碼按順序分別填寫到題目下方的4個文本框中提交,其餘代碼不須要提交
輸入字符串,不超過80個字符
輸出大寫字母和空格的個數
#include <stdio.h>
void sub(char *p,int *m,int *n)
{
int a=0,b=0;
while(*p!='\0')
{
if(*p>=65&&*p<=90)
{
a++;
}
if(*p==' ')
{
b++;
}
p++;
}
*m=a;
*n=b;
}
int main()
{
char a[100];
int sum1, sum2;
gets(a);
sub(a,&sum1,&sum2);
printf("%d,%d\n", sum1, sum2);
return 0;
}