【程序2.1说明】
已知一个排好序的数组,现输入一个数,要求按原来的顺序规律,将它插入到数组中。
【程序2.1】
#include <stdioh>
#define N 100
void main( )
float a[N+l],x;
int i,p;
printf("输入已经排好序的数列: ");
for(i=0; i<N; i++)
scanf(%f",&a[i]);
printf("输入要插入的数:");
scanf("%f",&x);
for(i=0,p=N; i<N; i++)
if(x<a[i])
(1)
break;
for(i=N-1; i>=p; i--)
(2)
(3)
for(i=0; i<=N; i++)
prinff("%f/t",a[i]);
【程序2.2说明】
本程序用变量count统计文件中字符的个数。
【程序2.2】
#include <stdio.h>
#include <stdlib.h>
void main( )
FILE *fp;
long count=0;
if((fp=fopen("letter.txt","r"))==NULL)
printf("can not open file/n");
exit(0);
while(!feof(fp))
(4)
count++;
printf("count=%d/n",count);
(5)
(1)p=i (2)a[i+1]=a[i]; (3)a[p]=x;
(4)fgetc(fp); (5)fclose(fp);
【程序2.1说明】
已知一个排好序的数组,现输入一个数,要求按原来的顺序规律,将它插入到数组中。
【程序2.1】
#include <stdioh>
#define N 100
void main( )
{
float a[N+l],x;
int i,p;
printf("输入已经排好序的数列: ");
for(i=0; i<N; i++)
scanf(%f",&a[i]);
printf("输入要插入的数:");
scanf("%f",&x);
for(i=0,p=N; i<N; i++)
if(x<a[i])
{
(1)
break;
}
for(i=N-1; i>=p; i--)
(2)
(3)
for(i=0; i<=N; i++)
prinff("%f/t",a[i]);
}
【程序2.2说明】
本程序用变量count统计文件中字符的个数。
【程序2.2】
#include <stdio.h>
#include <stdlib.h>
void main( )
{
FILE *fp;
long count=0;
if((fp=fopen("letter.txt","r"))==NULL)
{
printf("can not open file/n");
exit(0);
}
while(!feof(fp))
{
(4)
count++;
}
printf("count=%d/n",count);
(5)
}
已知数据文件IN.DAT中存有300个四位数,并已调用读函数readDat( )把这些数存入数组a中,请编制一个函数jsValue( ),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。最后main( )函数调用写函数writeDat( )把结果cnt、pjz1、pjz2输出到OUT.DAT文件。
例如,7153,7+1=5+3,则该数满足条件,参加计算平均值pjz1,且个数cnt=cnt+1。
8129,8+1!=2+9,则该数不满足条件,参加计算平均值pjz2。
注意:部分源程序存在文件PROG1.C文件中。程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。请勿改动数据文件IN.DAT中的任何数据、主函数main( )、读函数readDat( )和写函数writeDat( )的内容。
[试题程序]
#include
int a[300],cnt=0;
double pjz1=0.0,pjz2=0.0;
void readDat( );
void writeDat( );
void jsValue( )
void main( )
readDat( );
jsValue( );
writeDat( );
printf("cnt=%d/n满足条件的平均值pzj1=%7.2lf/n不满足条件的平均值pzj2=%7.2lf/n",cnt,pjz1,pjz2);
void readDat( )
FILE *fp;
int i;
fp=fopen("in.dat","r");
for(i=0;i<300;i++)
fscanf(fp,“%d,”,&a[i]);
fclose(fp);
void writeDat( )
FILE *fp;
fp=fopen(“outldat”,“w”);
fprintf(fP,“%d/n%7.2lf/n%7.2lf/n",cnt,pjz1,pjz2);
fclose(fp);
void jsValue()
{inf i; /*定义变量*/
int a1,a2,a3,a4;
for(i=0;i<300;i++)
{a1=a[i]%10; /*数位分解*/
a2=a[i]%100/10;
a3=a[i]%1000/100;
a4=a[i]/1000;
if(a4+a3=a2+a1) /*判断条件*/
{pjz1+=a[i];
cnt++;
}
else pjz2+=a[i];
}
pjz1/=cnt; /*求平均值*/
pjz2/=(300-cnt);
}
当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行______次。
#include<stdioh>
main( )
char ch;
while((ch=getchar( ))==’0’)printf("#");
下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。
#include<stdioh>
main( )
int a[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(i;0;i<9;i++)
if(i%4==0)primf("/n");
printf("%3d",b[i];
b[i]=a[i]+a[i+1]
以下叙述中正确的是( )。
A:调用printf函数时,必须要有输出项 B:使用putchar函数时,必须在之前包含头文件stdioh C:在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D:调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCⅡ码
当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行______次。
#include<stdioh>
main( )
char ch;
while((ch=getchar( ))==’0’)printf("#");
下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组b。请填空。
#include<stdioh>
main( )
{int a[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(i;0;i<9;i++)
{if(i%4==0)primf("/n");
printf("%3d",b[i];
}
}
b[i]=a[i]+a[i+1]