c语言程序填空题(共9页).docx
精选优质文档-倾情为你奉上程序填空题1下述程序是一个选择排序程序,请填完整空缺部分。Void select _sort (int p , int n ) int i, j, k, temp; for ( i =0 ;i<n-1; i + ) k = i; for ( j=i+1 ; j<n ; j+) if ( pj<pk) k=j; if (k!=i) temp= pk; pk=pi;pi=temp; main() int i,a20; for (i =0; i<20; i+) scanf (“%d”,&ai); select_sort(a,20); for ( i = 0;i<20; i+) printf (“%dt”,ai;printf (“n”); 2下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。# include <stdio.h>main() int a, b, c , i; a = c = 0 ; for(i=0;i<=10;i+=2) a + = i ; b=i+1 ; c += b ; printf ( “ 偶数之和= %d n “, a ) ; printf ( “ 奇数之和= %d n “, c 11 ); 3下面程序的功能是:输出100 以内 能被 3 整除且个位数为 6 的所有整数,请填空:main() int i , j ; for ( i = 0 ;i<10; i + + ) j = i * 10 + 6 ; if ( j%3!=0 ) continue ; printf ( “ %d” , j ) ; 4程序读入20个整数,统计非负数的个数,并计算非负数之和。 #include “stdio.h” main() int I,a20,s,count;_s=count=0_;for(I=0;I<20;I+) scanf(“%d”,_&ai_);for(I=0;I<20;I+) if(aI<0) continue; s+=aI; count+printf(“s=%dt count=%dn”,s,count);5下面的程序用以分别求出数组两条对角线上的各元素之和。 #include “stdio.h” main() int a33=1,2,3,4,5,6,7,8,9; int sum1,sum2,k,j; sum1=sum2=0; for(k=0;k<3;k+) sum1+=aii; for(k=0;k<3;k+) for(j=2;j>=0;j-) if(_(i+j)=2_) sum2+=akj; printf(“sum1=%dtsum2=%dn”,sum1,sum2);6已知整型数组w中的元素已经由小到大排序,函数fun用以将整数x插入到数组w中,要求插入后的数组元素依然有序。其中n所指的存储单元中存放着数组元素的个数。 void fun(int *w, int x, int *n) int k,p=0; w*n=x; while(x>wp) _p+_; for(k=*n;k>p;k-) wk=_wk-1_; _wp=x_; +*n; 7函数strlen用于确定一个给定字符串str的长度(不包括0)。 strlen(char *str) int num=0; while(*str+!=0) +num; return(_num_); 8已知第一个学生的年龄为10岁,第二个学生年比第一个学生的年龄大2岁,以此类推,以下程序用于计算学生年龄,请补充完整。 #include “stdio.h” age(int n) int c; if(n= =1) c=10; else c=_age(n-1)+2_; return( c ) ; main() int n=5; printf(“age:%dn”,age(n); 9以下是一个求字符串长度的函数的递归算法,请补充完整(不包括0) int strlen(char * str) if(*str=0) return(0); else return(_1+strlen(str+1)_);10. 以下程序将用户从键盘上随机输入的30个学生的学号、姓名、数学成绩、计算机成绩及总分写入数据文件score.txt中,假设30个学生的学号从130连续。输入时不必按学号顺序进行,程序自动按学号顺序将输入的数据写入文件。请在程序中的空白处填入一条语句或一个表达式。 # include <stdio.h> FILE *fp; Main( ) struct st int number; char name20; float math; float computer; float total; student; int i,j; if( (fp=fopen(“score.txt”,”w”)=null ) printf(“file open errorn”); exit(1); for(i=0;i<30;i+) scanf(“%d,%20s,%f,%f”,&student.number, student.name ,&student.math,&puter); student.total=student.math+puter; j=student.number-1; fseek(fp,j* sizeof(student),0); if(fwrite(&student, sizeof(student), 1, fp)!=1) printf(“write file errorn”); fclose(fp); 11下面的程序用来统计文件中字符的个数,请填空。 #include <stdio.h> main() FILE *fp; long num=0; if( fp=fopen("fname.dat","r")=NULL) printf( "Can"t open file! n"); exit(0); while(!feof(fp) fgetc(fp); num+; printf("num=%dn", num); fclose(fp); 12. 【程序说明】将从键盘输入的三个整数,按从小到大的顺序输出。【程序】#include <stdio.h>int main()int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p; scanf("%d%d%d", pa,pb,pc); if(*pa>*pb) p=pa; pa=pb; pb=p; if(*pa>*pc) p=pa; pa=pc; pc=p; if(*pb>*pc) p=pb; pb=pc; pc=p; printf("%d <= %d <= %dn", *pa,*pb,*pc); return 0;专心-专注-专业