C语言程序设计练习题1及答案 下载本文

int word=0,max=0; while(*p!='.') {

while((*p<='z')&&(*p>='a')||(*p<='Z')&&(*p>='A')) { ① ; p++; } if(② ) max=word; ③ ; p++; }

return max; }

void main() {

char str[80]; gets(str);

printf(\}

3. 下面程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。主函数中输出和值。

# include # define M 2 # define N 4

void SumColumMin(int a[M][N],int *sum) {

int i,j,k,s=0; for(i=0;i

k=0;

for(j=0;j

if(a[k][i]>a[j][i]) k=j; s+=① ; } ② =s; }

void main() {

int x[M][N]={3,2,5,1,4,1,8,3},s; SumColumMin(③ ); printf(\}

4. 以下程序采用直接选择法对数组a中的10个数进行降序排列,然后按每行5个数的格式输出。

# include void main() {

int i,j,k,t,a[10]={1,4,3,5,7,9,2,0,6,8}; for(j=0;j<9;j++) {

k=j;

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

if(*(a+i)>① ) k=i; }

t=a[j]; *(a+j)=② ; *(a+k)=t; }

for(i=0;i<10;i++)

printf( (i%5) ? \③ , *(a+i) ); printf(\}

5. 以下程序的功能是计算下列级数之和

s=1+x+x2/2!+x3/3!+…+xn/n! double sum(int x,int n) { int i;

double a,b,s;

a=1.0;b=1.0;s=1.0; for(i=1;i

void main() {

int x,n;double s;

scanf(\ ③ ; printf(\}

6. 下面invert函数实现数组元素值的逆置,即a[0],a[9]互换,a[1],a[8]互换,以此类推。

请填空。

# include void main()

{ void invert(int *s,int num);

int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; for(i=0;i<10;i++) printf(\ printf(\ invert(a,n-1); for(i=0;i<10;i++) printf(\ printf(\}

void invert(int *s,int num) { int *t,k; t=s+num; while(① ) {

k=*s;*s=*t;*t=k; ② ; ③ ; } }

7. 下面程序的功能是在数组中同时查找最大元素下标和最小元素下标,分别存放在main函数的变量max和min中,请填空。

# include

void fun(int *a,int n,int *max,int *min) { int i;

*max=*min=0; for(i=1;i

if(*(a+i)>*(a+*max)) ① ; else if(*(a+i)<*(a+min)) ② ; return; }

void main()

{ int a[10]={3,15,2,26,9,28,7,1,4,12}; int max,min; ③ ;

printf(\}

程序输出为: max=5,min=7

8. 下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符

串c中。即字符串c为:abcdefghijklmnpq

# include # include void main()

{ char a[]=\ char b[]=\ char c[80],*p; int i=0,j=0,k=0;

while(a[i]!='\\0'&&b[j]!='\\0') { if(a[i]

c[k]='\\0'; if(③ )p=b+j; else p=a+i; strcat(c,p); puts(c); }

9. 以下程序可把输入的十进制数以十六进制的形式输出。 # include void main() {

char b[17]=\ int c[64],d,i=0,base=16; long n;

scanf(\ do{

c[i]=① ; i++;

n=n/base; }while(n!=0); for(i--; i>=0; --i) {

d=② ; printf(\③ ); }

printf(\ }

10. 以下程序能统计并输出1至100之间所有能被3整除但不能被7整除的所有正整数。 # include # define M 100

void fun( int m, int *p, int *t) {