资源描述
程序填空
==================================================
平时练习题
实验二
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:任意输入三个实型数,在自定义函数qiuhe中求它们的和值,
在主函数中输出和值
-------------------------------------------------------*/
#include "stdio.h"
double qiuhe(double x,double y,double z);
main()
{
double a,b,c;
printf("Enter a,b,c:");
scanf("%lf,%lf,%lf",&a,&b,&c);
/***********FILL***********/
printf("和值=%.2f\n",_____);
}
/***********FILL***********/
double qiuhe(double x,_____,double z)
{
double sum;
/***********FILL***********/
_____;
return sum;
}
答案:
位置 1:
qiuhe(a,b,c)
位置 2:
double y
位置 3:
sum=x+y+z 【或】 sum=x+z+y 【或】 sum=y+x+z 【或】 sum=y+z+x 【或】 sum=z+x+y
实验三
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:将一个数组中的元素按逆序存放。
-------------------------------------------------------*/
#include <stdio.h>
#define N 7
main ()
{
static int a[N]={12,9,16,5,7,2,1},k,s;
printf("\n the origanal array:\n");
for (k=0;k<N;k++)
printf("%4d",a[k]);
/**********FILL**********/
for (k=0;k<N/2; _____)
{
s=a[k];
/**********FILL**********/
_____
/**********FILL**********/
_____
}
printf("\n the changed array:\n");
for (k=0;k<N;k++)
/**********FILL**********/
_____ ("%4d",a[k]);
}
答案:
位置 1:
k++ 【或】 k=k+1 【或】 k=1+k 【或】 k+=1 【或】 ++k
位置 2:
a[k]=a[N-k-1] 【或】 a[k]=a[N-1-k] 【或】 a[k]=a[6-k] 【或】 *(a+k)=*(a+N-k-1) 【或】 *(a+k)=*(a+N-1-k] 【或】 a[k]=a[-1+N-k] 【或】 a[k]=a[-1-k+N] 【或】 a[k]=a[-k-1+N] 【或】 a[k]=a[-k+N-1] 【或】 a[6-k]=s
位置 3:
a[N-k-1]=s 【或】 a[N-1-k]=s 【或】 a[6-k]=s 【或】 *(a+N-k-1)=s 【或】 *(a+N-1-k)=s 【或】 *(N+a-k-1)=s 【或】 *(N+a-1-k)=s 【或】 *(a-k+N-1)=s 【或】 *(a-k-1+N)=s 【或】 *(a-1+N-k)=s 【或】 *(a-1-k+N)=s 【或】 *(N-k+a-1)=s 【或】 *(N-k-1+a)=s 【或】 *(N-1+a-k)=s 【或】 *(N-1-k+a)=s
位置 4:
printf
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:给出二维数组a[3][3]={{1,2,4},{6,1,5},{8,0,0}},
计算各行元素的最小值,并存入一个一维数组中。
-------------------------------------------------------*/
#include<stdio.h>
void fun(int m[][3],int n[ ])
{ int i,j,min;
for(i=0;i<3;i++)
/**********FILL************/
{ _____;
/**********FILL************/
for(_____;j<3;j++)
if( min>m[i][j])min=m[i][j];
/**********FILL************/
_____;
}}
main()
{int i,a[3][3]={{1,2,4},{6,1,5},{8,0,0}},b[3]={0};
fun(a,b);
for(i=0;i<3;i++)
printf("%6d", b[i]);}
答案:
位置 1:
min=m[i][0]
位置 2:
j=1 【或】 j=0
位置 3:
n[i]=min
综合一
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输入两个字符串,将第二个字符串拷贝到第一个字符串。
-------------------------------------------------------*/
#include <stdio.h>
#include "stdio.h"
/**********FILL************/
void fun(char a[], _____)
{
int i;
for(i=0;b[i]!=0;i++)a[i]=b[i];
/**********FILL************/
_____;}
main()
{
char s[100], t[100];
printf("\nPlease enter string S:");
scanf("%s%s", s,t);
fun(s,t);
/**********FILL************/
printf("\nThe result is : _____\n",s);
}
答案:
位置 1:
char b[] 【或】 char b[100]
位置 2:
a[i]='\0' 【或】 a[i]=0
位置 3:
%s
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输出结果为:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
-------------------------------------------------------*/
#include <stdio.h>
main()
{
/***********FILL***********/
int i,j,_____;
char space=' ';
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
/***********FILL***********/
printf("%1c",_____);
/***********FILL***********/
for(k=1;k<_____;k++)
printf("%2c",'*');
/***********FILL***********/
printf("_____");
}
}
答案:
位置 1:
k
位置 2:
space 【或】 ' '
位置 3:
=5 【或】 6
位置 4:
\n
综合二
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:输出Fibonacci数列前20项中,下标为偶数的元素之和。
已知前两项的值分别为1,1。从第三项开始后一项是前两项之和。
-------------------------------------------------------*/
#include "stdio.h"
main()
{ /***********FILL***********/
long _____[20]={1,1},i,sum=0;
/***********FILL***********/
for(i=2;i<=19;_____)
/***********FILL***********/
f[i]=_____;
for(i=0;i<=19;i++)
/***********FILL***********/
if(_____)
sum+=f[i];
printf("sum=%ld\n",sum);
}
答案:
位置 1:
f
位置 2:
i++ 【或】 ++i 【或】 i=i+1 【或】 i+=1 【或】 i=1+i
位置 3:
f[i-1]+f[i-2] 【或】 f[i-2]+f[i-1]
位置 4:
i%2==0 【或】 i%2!=1 【或】 !(i%2)
题号:6415
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:以下程序的功能是:对输入的一行字符(以回车结束)中的
数字字符按它们的字面值进行累加,输出此累加和。
例如:输入的一行字符是:ab34dh8u,输出值应当是15。
-------------------------------------------------------*/
#include "stdio.h"
int it(char pp)
{int flag=0;
/**********FILL************/
if(pp>='0'&&pp<='9') _____;
return flag;}
main()
{ char ch;
int a=0;
/**********FILL************/
while((ch=getchar())!=_____)
if(it(ch)==1)
/**********FILL************/
a=a+_____;
printf("a=%d\nn",a);}
答案:
位置 1:
flag=1
位置 2:
'\n'
位置 3:
ch-48 【或】 ch-'0'
综合三
/*-------------------------------------------------------
【程序填空】
--------------------------------------------------------
功能:将一个字符串中下标为m的字符开始的全部字符复制成为另
一个字符串。
-------------------------------------------------------*/
#include<stdio.h>
void strcopy(char *str1,char *str2,int m)
{
char *p1,*p2;
/**********FILL**********/
_____
p2=str2;
while(*p1)
/**********FILL**********/
_____
/**********FILL**********/
_____
}
main()
{
int m;
char str1[80],str2[80];
gets(str1);
scanf("%d",&m);
/**********FILL**********/
_____
puts(str1);puts(str2);
}
答案:
位置 1:
p1=str1+m 【或】 p1=m+str1
位置 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)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:将s所指字符串的正序和反序进行连接,形成一个新串放在t
所指的数组中。
例如:当s串为"ABCD"时,则t串的内容应为"ABCDDCBA"。
-------------------------------------------------------*/
#include <conio.h>
#include <stdio.h>
#include <string.h>
void fun (char s[], char t[])
{
int i, d;
/***********FILL***********/
d = _____;
/***********FILL***********/
for (i = 0; i<d; _____)
t[i] = s[i];
for (i = 0; i<d; i++)
/***********FILL***********/
t[_____] = s[d-1-i];
/***********FILL***********/
t[_____] ='\0';
}
main()
{
char s[100], t[100];
printf("\nPlease enter string S:"); scanf("%s", s);
fun(s, t);
printf("\nThe result is: %s\n", t);
}
答案:
位置 1:
strlen(s)
位置 2:
i++ 【或】 ++i 【或】 i=i+1 【或】 i+=1
位置 3:
d+i 【或】 i+d
位置 4:
2*d 【或】 d*2 【或】 i+d 【或】 d+i 【或】 d+d
期末模拟题
第一练
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:从键盘上输入两个复数的实部与虚部,求出并输出它们的
和、差、积、商。
-------------------------------------------------------*/
#include<stdio.h>
void main()
{
float a,b,c,d,e,f;
printf("输入第一个复数的实部与虚部:");
scanf("%f, %f",&a,&b);
printf("输入第二个复数的实部与虚部:");
scanf("%f, %f",&c,&d);
/**********FILL**********/
_____;
f=b+d;
printf("相加后复数:实部:%f,虚部:%f\n",e,f);
e=a*c-b*d;
/**********FILL**********/
_____;
printf("相乘后复数:实部:%f,虚部:%f\n",e,f);
e=(a*c+b*d)/(c*c+d*d);
/**********FILL**********/
_____;
printf("相除后复数:实部:%f,虚部:%f\n",e,f);
【空1】
_____;
【参考答案】
e=a+c
e=c+a
【空2】
_____;
【参考答案】
f=a*d+b*c
f=a*d+b*c
f=a*d+b*c
【空3】
_____;
【参考答案】
f=(b*c-a*d)/(c*c+d*d)
f=(b*c-a*d)/(c*c+d*d)
f=(b*c-a*d)/(c*c+d*d)
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:将十进制数转换成十六进制数。
-------------------------------------------------------*/
#include "stdio.h"
#include "string.h"
main ()
{
int a,i;
char s[20];
printf("input a integer:\n");
scanf("%d",&a);
c10_16(s,a);
/**********FILL**********/
for(_____;i>=0;i--)
printf("%c",s[i]);
printf("\n");
}
c10_16(char p[],int b)
{
int j,i=0;
/**********FILL**********/
while (_____)
{
j=b%16;
if(j>=0&&j<=9)
/**********FILL**********/
_____;
else p[i]=j+55;
b=b/16;
i++;
}
/**********FILL**********/
_____;
}
【空1】
for(_____;i>=0;i--)
【参考答案】
i=strlen(s)-1
i=-1+strlen(s)
【空2】
while (_____)
【参考答案】
b>0
0<b
b!=0
0!=b
b
【空3】
_____;
【参考答案】
p[i]=j+'0'
p[i]=j+48
*(p+i)=j+'0'
*(p+i)=j+48
【空4】
_____;
【参考答案】
p[i]='\0'
p[i]=0
p[i]=NULL
*(p+i)='\0'
*(p+i)=0
*(p+i)=NULL
第二练
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
主函数的功能是:分别求出一批非零整数中的偶数、奇数的平均值,输入时用零作
为结束输入的标记。
-------------------------------------------------------*/
main()
{
int x,i=0,j=0;
float s1=0,s2=0,av1,av2;
scanf("%d",&x);
while(x!=0)
{
if(x%2==0) {s1=s1+x;i++;}
else
{
s2=s2+x;
/**********FILL**********/
_____;
}
/**********FILL**********/
_____;
}
if(i!=0)
av1=s1/i;
else
av1=0;
if(j!=0)
/**********FILL**********/
_____ ;
else
av2=0;
printf("oushujunzhi:%7.2f,jishujunzhi:%7.2f\n",av1,av2);
}
【空1】
_____;
【参考答案】
j++
j=j+1
【空2】
_____;
【参考答案】
scanf("%d",&x)
【空3】
_____ ;
【参考答案】
av2=s2/j
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
主函数的功能是:分别求出一批非零整数中的偶数、奇数的平均值,输入时用零作
为结束输入的标记。
-------------------------------------------------------*/
main()
{
int x,i=0,j=0;
float s1=0,s2=0,av1,av2;
scanf("%d",&x);
while(x!=0)
{
if(x%2==0) {s1=s1+x;i++;}
else
{
s2=s2+x;
/**********FILL**********/
_____;
}
/**********FILL**********/
_____;
}
if(i!=0)
av1=s1/i;
else
av1=0;
if(j!=0)
/**********FILL**********/
_____ ;
else
av2=0;
printf("oushujunzhi:%7.2f,jishujunzhi:%7.2f\n",av1,av2);
}
【空1】
_____;
【参考答案】
j++
j=j+1
【空2】
_____;
【参考答案】
scanf("%d",&x)
【空3】
_____ ;
【参考答案】
av2=s2/j
第三练
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:是将两个字符串连接为一个字符串,不许使用库函数strcat
-------------------------------------------------------*/
#include "stdio.h"
#include "string.h"
JOIN(char *s1,char *s2)
{
int i,j;
j=strlen(s1);
/**********FILL**********/
for (i=0; _____'\0';i++)
/**********FILL**********/
_____;
/**********FILL**********/
s1[i+j]= _____ ;
}
main ( )
{
char str1[80],str2[40];
int i,j,k;
gets(str1);gets(str2);
puts(str1);puts(str2);
JOIN(str1,str2);
puts(str1);
}
【空1】
for (i=0; _____'\0';i++)
【参考答案】
s2[i]!=
*(s2+i)!=
【空2】
_____;
【参考答案】
s1[i+j]=s2[i]
【空3】
s1[i+j]= _____ ;
【参考答案】
'\0'
0
NULL
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:是将两个字符串连接为一个字符串,不许使用库函数strcat。
------------------------------------------------------*/
#include "stdio.h"
#include "string.h"
JOIN(char *s1,char *s2)
{
int i,j;
j=strlen(s1);
/**********FILL**********/
for (i=0; _____'\0';i++)
/**********FILL**********/
_____;
/**********FILL**********/
s1[i+j]= _____ ;
}
main ( )
{
char str1[80],str2[40];
int i,j,k;
gets(str1);gets(str2);
puts(str1);puts(str2);
JOIN(str1,str2);
puts(str1);
}
【空1】
_____
【参考答案】
j=strlen(s1)
for(j=0;s1[j]!='10';j++);
for(j=0;s1[j];j++);
【空2】
for (i=0; _____'\0';i++)
【参考答案】
s2[i]!=
*(s2+i)!=
*(i+s2)!=
【空3】
s1[i+j]= _____;
【参考答案】
'\0'
NULL
0
【空4】
_____
【参考答案】
JOIN(str1,str2)
展开阅读全文