内容发布更新时间 : 2024/11/2 22:25:27星期一 下面是文章的全部内容请认真阅读。
共计131道试题 一、程序填空 (共131题)
Turbo C(共131试题)
3)./*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:已定义一个含有30个元素的数组s,函数fun1的功能是按
顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序
每五个元素求一个平均值, 并将该值存放在数组w中。
-------------------------------------------------------*/ float s[30],w[6]; fun1(float s[]) { int k,i;
for(k=2,i=0;i<30;i++) {
/***********SPACE***********/ ________________ ; k+=2; } }
fun2(float s[],float w[]) {
float sum=; int k,i;
for(k=0,i=0;i<30;i++) {
sum+=s[i];
/***********SPACE***********/ ________________; {
w[k]=sum/5;
/***********SPACE***********/ ________________ ; k++; } } } main() { int i; fun1(s);
/***********SPACE***********/
________________; for(i=0;i<30;i++) {
if(i%5==0) printf(\ printf(\ }
printf(\ for(i=0;i<6;i++) printf(\ } 答案:
【1】 s[i]=k 或 s[i]=(i+1)*2 【2】 if( ( i + 1 )%5 == 0 ) 或 if( ( i + 1 )/5*5 ==i+1) 【3】 sum=0 或 sum= 【4】 fun2(s,w)
4)./*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:下面的程序是求1!+3!+5!+……+n!的和。 -------------------------------------------------------*/ main() {
long int f,s; int i,j,n;
/***********SPACE***********/
________________; scanf(\
/***********SPACE***********/
for(i=1;i<=n; ________________) { f=1;
/***********SPACE***********/ for(j=1;
________________;j++) /***********SPACE***********/
________________;
s=s+f; }
printf(\ } 答案: 【1】 s=0
【2】 i+=2 或 i=i+2 或 i++,i++ 【3】 j<=i 或 i>=j 或 jj 【4】 f= f * j
5)./*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:将一个字符串中下标为m的字符开始的全部字符复制成为另 一个字符串。
-------------------------------------------------------*/ #include<>
void strcopy(char *str1,char *str2,int m) {
char *p1,*p2;
/***********SPACE***********/ ________________; p2=str2; while(*p1)
/***********SPACE***********/ ________________;
/***********SPACE***********/ ________________; } main() { int i,m;
char str1[80],str2[80]; gets(str1); scanf(\
/***********SPACE***********/ ________________; puts(str1);puts(str2); } 答案:
【1】 p1= str1 + m
【2】 *p2++=*p1++ 或 *(p2++)=*(p1++) 或 *p2=*p1,p2++,p1++ 或 *p2=*p1++,p2++ 或 *p2++=*p1,p1++
【3】 *p2='\\0' 或 *p2=0 或 *p2=NULL
【4】 strcopy(str1,str2,m)
6)./*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:以下程序是用选择法对10个整数按升序排序。
-------------------------------------------------------*/
/***********SPACE***********/ ________________ main() {
int i,j,k,t,a[N]; for(i=0;i<=N-1;i++) scanf(\ for(i=0;i /***********SPACE***********/ ________________; /***********SPACE***********/ for(j=i+1; ________________;j++) if(a[j] /***********SPACE***********/ if(________________) { t=a[i]; a[i]=a[k]; a[k]=t; } } printf(\ for(i=0;i<=N-1;i++) printf(\ printf(\ } 答案: 【1】 #define N 10 【2】 k=i 【3】 j 7)./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:从键盘上输入一个字符串, 将该字符串升序排列后输出到 文件中,然后从该文件读出字符串并显示出来。 -------------------------------------------------------*/ #include<> #include<> #include<> main() { FILE *fp; char t,str[100],str1[100]; int n,i,j; if((fp=fopen(\) { printf(\open this file.\\n\ exit(0); } printf(\gets(str); /***********SPACE***********/ ________________; /***********SPACE***********/ for(i=0; ________________ ;i++) for(j=0;j if(________________) { t=str[j]; str[j]=str[j+1]; str[j+1]=t; } /***********SPACE***********/ ________________; fclose(fp); fp=fopen(\ fgets(str1,100,fp); printf(\ fclose(fp); } 答案: 【1】 n=strlen(str) 或 for(n=0;str[n]!='\\0';n++) 或 for(n=0;str[n];n++) 或 for(n=0;str[n]!=0;n++) 【2】 i 【3】 str[j]>str[ j + 1 ] 或 str[ j + 1 ] 4 】 fputs(str,fp) 或 fprintf(fp,\或 fprintf(fp,\ 8)./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出 其和。 -------------------------------------------------------*/ #include <> #include <> main() { int i,n,sum; sum=0; /***********SPACE***********/ ________________; /***********SPACE***********/ for(i=1; ________________ ;i++) /***********SPACE***********/ if(________________) if(i%2==0) { sum=sum+i; n++; printf(\ /***********SPACE***********/ if(________________) printf(\ } printf(\ } 答案: 【1】 n=0 【2】 i<=300 或 i<300 或 300>=i 或 300>i 【3】 i%7 == 0 || i == 0 或 !(i%7)||!(i) 或 !(i)||!(i%7) 或 !(i%7&&i) 【4】 n%5 == 0 或 !(n%5) 或 n/5*5==n 9)./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:以下程序的功能如(图1)。 -------------------------------------------------------*/ #include <> main() { int f; /***********SPACE***********/ ________________; float t,pi; t=1;pi=t;f=1;n=; /***********SPACE***********/ while(________________ ) { n=n+2; /***********SPACE***********/ ________________; t=f/n; pi=pi+t; } /***********SPACE***********/ ________________; printf(\ } 答案: 【1】 float n 或 duoble n 【2】 fabs(t)>=1e-6 或 fabs(t)>= 或 1e-6<=fabs(t) 或 <=fabs(t) 【3】 f=-f 或 f=-1*f 或 f=f*(-1) 或 f=f*-1 或 f=(-1)*f 【4】 pi= pi * 4 或 pi*=4 (图1) 11)./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:求100-999之间的水仙花数 说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。 例如:153=1^3+5^3+3^3)。 -------------------------------------------------------*/ int fun(int n) { int i,j,k,m; m=n; /***********SPACE***********/ ________________; for(i=1;i<4;i++) { /***********SPACE***********/ ________________; m=(m-j)/10; k=k+j*j*j; } if(k==n) /***********SPACE***********/ ________________; else return(0);} main() { int i; for(i=100;i<1000;i++) /***********SPACE***********/ if(________________==1) printf(\ } 答案: 【1】 k=0 【2】 j=m 或 j=m-m/10*10 或 j=m-10*(m/10) 【3】 return(1) 【4】 fun(i) (图1) 12)./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:产生并输出如下形式的方阵。 1 2 2 2 2 2 1 3 1 2 2 2 1 4 3 3 1 2 1 4 4 3 3 3 1 4 4 4 3 3 1 5 1 4 4 3 1 5 5 5 1 4 1 5 5 5 5 5 1 -------------------------------------------------------*/ main() { int a[7][7]; int i,j; for (i=0;i<7;i++) for (j=0;j<7;j++) { /***********SPACE***********/ if (________________) a[i][j]=1; /***********SPACE***********/ else if (i for (i=0;i<7;i++) { for (j=0;j<7;j++) printf(\ /***********SPACE***********/ ________________; } } 答案: 【1】 i == j || i + j == 6 【2】 a[i][j]=2 【3】 i 13)./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:产生并输出杨辉三角的前七行。 1 1 1 1 2 1 1 3 3 1