内容发布更新时间 : 2025/3/24 7:29:40星期一 下面是文章的全部内容请认真阅读。
共计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