填空题下列给定程序的功能是:从键盘输入若干行字符串(每行不超过80个字符),写入文件myfile4.txt中,用-1作字符串输入结束的标志,然后将文件的内容显示在屏幕上。文件的读写分别由函数ReadText和WriteText实现。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意
:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void WriteText(FILE *);
void ReadText(FILE *);
main()
{FILE *fp;
if((fp=fopen("myfile4.txt","w"))==NULL)
{printf("open fail!!/n");
exit(0);}
WriteText(fp);
fclose(fp);
if((fp=fopen("myfile4.txt","r"))==NULL)
{printf("open fail!!/n");
exit(0);}
ReadText(fp);
fclose(fp);
}
/********found********/
void WriteText(FILE______)
{char str[81];
printf("/nEnter string with -1 to end: /n");
gets(str);
while(strcmp(str,"-1")!=0){
/********found********/
fputs(______,fw);fputs("/n",fw);
gets(str);
}
{
void EeadText(FILE *fr)
{char str[81];
ptintf("/nRead file and output to screen: /n");
fgets(str,81,fr);
while(!feof(fr)){
/********found********/
printf("%s", ______);
fgets(str,81,fr);
}
}
填空题给定程序中,函数fun的功能是:将形参n中各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。
例如,输入一个整数:27638496,函数返回值为:64862。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
unsigned long fun(unsigned long n)
{ unsigned long x=0; int t;
while(n)
{ t=n%10;
/**********found**********/
if(t%2==
________
)
/**********found**********/
x=
________
+t;
/**********found**********/
n=
________
;
}
return x;
}
main()
{ unsigned long n=-1;
while(n>99999999‖n<0)
{ printf("Please input(0<n<100000000):");
scanf("%ld",}
printf("/nThe result is:%ld/n",fun(n));
}
填空题设函数findbig已定义为求3个数中的最大值,以下程序将利用函数指针调用findbig函数。请填空。
main()
{ int findbig(int,int,int);
int(*f)(),x,y,z,big;
f={{U}} 【15】 {{/U}}。
scanf("%d %d %d",
big=(*f)(x,y,z);
printf("big=%d/n",big);
}
填空题N个有序整数数列已放在一维数组中,给定的下列程序中,函数fun()的功能是:利用折半查找法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回“Not be found!”。 折半查找法的基本算法是:每次查找前先确定数组中待确定的范围:low和high(low<high),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中,直到low>high,查找结束。 [注意] 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 [试题源程序] #include <stdio.h> #define N 10 int fun(int a[],int m) int low=0, high=N-1, mid; while(low<=high) mid= (1) ; if(m<a[mid]) high= (2) ; eise if(m>a[mid]) low=mid+1; else return(mid); (3) (-1); main() int i, a[N]=(-3, 4, 7, 9, 13, 24, 67, 89, 100, 180), k, m; printf("a数组中的数据如下: "); for(i=0; i<N; i++); printf("%d", a[i]); printf("Enter m: "); scanf("%d", &m); k=fun(a, m); if(k>=0) printf("m=%d, index=%d/n", m, k)); else printf("Not be found/n");
填空题以下程序的输出结果是 【10】 。 #include <stdio.h> void swap(int *a, int *b) int *t; t=a; a=b; b=t; main() int i=3,j=5,*p=&i,*q=&j; swap(p,q); printf("%d %d/n",*p,*q);
填空题若有以下程序: int f(int x,int y) return (y-x)*x; main() int a=3,b=4,c=5,d; d=f(f(3,4),f(3,5)); printf("%d/n",d); 执行后的输出结果是 【6】 。
填空题面向刑象的模型中,最基本的概念是对象和 【4】 。
填空题有以下程序:
#include <stdio.h>
main()
{ int t=1,i=5;
for(;i>=0;i--) t*=i;
printf("%d/n",t);
}
执行后的输出结果是{{U}} 【8】 {{/U}}。
填空题以下程序运行后的输出结果是______。
#include<stdio.h>
void fun()
{ static int a;
a+=2; printf("%d", a);
}
main()
{ int cc;
for(cc=1; cc<=4; cc++)fun();
printf("/n");
}
填空题str是一个由数字和字母字符组成的字符串,由变量num传入字符串长度。请补充函数proc(),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返同数组bb的长度。
例如,str="abc3de987fg621",结果为:3987621。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#define M 80
int bb[M];
int proc(char str[],int bb[],int num)
{
int i,n=0;
for(i=0;i<num;i++)
{
if(______)
{
bb[n]=______;
n++;
}
}
return ______;
}
void main()
{
char str[M];
int num=0,n,i;
printf("Enter a string:/n");
gets(str);
while(str[num])
num++;
n=proc(str,bb,num);
printf("/nbb=");
for(i=0;i<n;i++)
printf("%d",bb[i]);
}
填空题执行以下程序后,输出#号的个数是{{U}} 【10】 {{/U}}。
#include <studio.h>
main()
{int i,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
填空题以下程序的输出是{{U}} 【7】 {{/U}}。
main()
{
char str1[]=How do you do",*p=strl;
strcpy(str1+strlen(str1)/2"es she");
pfinff("%s/n",p1);
}
填空题若有如下定义,则该数组的第一维大小为______。
int b[][4]={1,2,3,4,5,6,7,8,9);
填空题有以下定义和语句,则sizeof(a)的值是{{U}} 【13】 {{/U}},而sizeof(a.share)的值是{{U}} 【14】 {{/U}}。
struct date
{ int day;
int mouth;
int year;
union {int share1;
float share2;
}share;
}a;
填空题以下条件表达式可计算:1+|a|的值,请填空。
a>=0?{{U}} [6] {{/U}}:{{U}} [7] {{/U}}
填空题己定义char ch='$';int i=l,j;,执行j=!ch &&i i++以后,i的值为{{U}} 【11】 {{/U}}。
填空题下列给定的程序中,函数hn()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。 请改正函数fun()中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <stdio.h> #include <math.h> void fun(int a, int *b, int *c) int i,j,d,y; for (i=3;i<=a/2;i=i+2) /*************found**************/ y=0; for (j=2;j<=sqrt((double)i);j++) if (i%j==0) y=0; if (y==1) /*************found**************/ d=i-a; for (j-2;j<=sqrt((double)d); j++) if (d%j==0) y=0; if (y=-1) *b=i; *c=d; main () int a,b,c; do printf("/nInput a: "); scanf ("%d", while (a%2); fun (a, printf ("/n/n%d=%d+%d/n", a,b,c);
填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。
例如:a所指变量中的学号、姓名和三门课的成绩依次是:10001、"ZhangSan"、95、80、88,则修改后输出b中的数据应为:10002、"LiSi"、95、80、88。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
#include<string.h>
struct student{
long sno;
char name[10];
float score[3];
};
void fun(struct student a)
{struct student b;int i;
/**********found**********/
b=______;
b.sno=10002;
/**********found**********/
strcpy(______,"LiSi");
printf("/nThe data after modified:/n");
printf("/nNo:%ld Name:%s/nScores:",b.sno,b.name);
/**********found**********/
for(i=0;i<3;i++)printf("%6.2f",b.______);
printf("/n");
}
main()
{struct student s={10001,"ZhangSan",95,80,88};
int i;
printf("/n/nThe original data:/n");
printf("/nNo:%ld Name:%s/nScores:",s.sno,s.name);
for(i=0;i<3;i++)printf("%6.2f",s.score[i]);
printf("/n");
fun(s);
}
填空题请补充main()函数,该函数的功能是:打印出1~10000中满足个位数字的立方等于其本身的所有的数。
本题的结果为:1 64 125 216 729
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
void main()
int i,k;
system("CLS");
for(i=1;i<10000;i++)
{
k=______;
if(______)
printf("%4d",i);
}
}
填空题请补充函数fun(),该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回"yes!”,否则返回“no!”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> #include <conlo.h> char *fun(int n) int g,s,b; g=n%l0; s=n/10%10; b= 【1】 ; if((g+b)==s) return 【2】 ; else return 【3】 ; main() int num=0; clrscr(); printf("******Input data*******/n"); scanf("%d",&num); printf("/n/n/n"); printf("******The result*******/n"); printf("/n/n/n%s",fun(num));
