C语言基础练习题(含答案) 下载本文

内容发布更新时间 : 2024/11/16 12:00:08星期一 下面是文章的全部内容请认真阅读。

·46·

void main( ) {

float a[20],pjz=0,s,t; int i,k; for(i=0;i<20;i++) pjz+=a[i]; s=fabs(a[0]-pjz); for(i=1;i<20;i++) if(fabs(a[i]-pjz)

s=fabs(a[i]-pjz); t=a[i]; } }

-------------------------------------------------------------------------------- for(i=0;i<20;i++) scanf(“%f”,&a[i]); pjz/=20; printf(“%f,%f\\n”,piz,t);

(2) 以下程序以每行 10个数据的形式输出 a 数组,请填空。 void main( ) {

int a[50],i;

printf(\输入50个整数:\

for(i=0; i<50; i++) scanf( \for(i=1; i<=50; i++) {

if( _________ ) printf( \printf( \} } &a[i]

·47·

i==0 a[i-1]

(3) 下面程序的功能是输出数组 s 中最大元素的下标,请填空。 void main( ) { int k, p;

int s[ ]={1,-9,7,2,-10,3}; for(p=0,k=p; p<6; p++) if(s[p]>s[k]) _____; printf(\} k=p

(4) 这个程序输入了20个数存放在一个数组中,并且输出其中最大者与最小者、20个数的和及它们的平均值。请填空。 void main() {

char array_____ ;

int max,min,average,sum; int i;

for(i=0;i<_____;i++) {

printf(\请输入第%d个数:\scanf(\}

max=array[0];

·48·

min=array[0];

for(i=0;i<=_____;i++) {

if(maxarray[i]) __________ sum=________; }

average =_________;

printf(\个数中最大值是%d,\printf(\最小值是%d,\printf(\和是%d,\

printf(\平均值是%d.\\n\} [20] 20 &array[i] 19

max=array[i]; min=array[i]; sum+array[i] sum/20

·49·

5. 阅读程序,分析程序的功能。

(1)

#include #include void main( ) {

char s[80]; int i ;

for(i=0; i<80; i++) {

s[i]=getchar( ); if(s[i]=='\\n') break; }

s[i]='\\0'; i=0;

while(s[i]) putchar(s[i++]); putchar(?\\n?); }

从键盘输入一个字符串,并逐一输出 (2)

#include #include void main( ) {

char str[10][80], c[80]; int i;

·50·

for(i=0; i<10; i++) gets(str[i]); strcpy(c, str[0]) ;

for(i=1; i<10; i++) if(strlen(c)

printf( \}

从键盘输入若干字符串,找到其中最长的一个输出及它的长度 (3)

#include #include void main( ) {

char a[10][80], c[80]; int i, j, k;

for(i=0; i<10; i++) gets(a[i]); for(i=0; i<9; i++) { k=i ;

for(j=i+1; j<10; j++)

if(strcmp (a [j], a[k])<0) k=j; if(k!=i )

{strcpy(c,a[i]) ; strcpy(a[i], a[k]); strcpy(a[k],c);} // 字符串交换 }

for(i=0; i<10; i++) puts (a[i]); }