填空题若有定义:int a[4][4]={{1,2,3,4},{0},{4,6,8,10},<1,3,5,7}},则初始化后,a[2][2]得到的初值是______。
填空题以下函数用来求出两整数之和,并通过形参将结果传回,请填空。 void func(int x,int y, 【13】 z) *z=x+y;
填空题若有定义:int a=4,b=5,c=6;然后顺序执行下列语句后,变量b中的值是______。c=(a-=(b-5));c=(a%3)+(b=1);
填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
请在程序的下划线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 5
typedef struct student{
long sno;
char name[10];
float score[3];
}STU;
void fun(char*filename,STU n)
(FILE*fp;
/**********found**********/
fp=fopen(______,"rb+");
/**********found**********/
fseek(______,-(long)sizeof(STU),SEEK_END);
/**********found**********/
fwrite(
fclose(fp);
}
main()
(STU t[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"FangFang",90,82,87},{10005,"ZhangSan",95,80,88}};
STU n={10006,"ZhaoSi",55,70,68},ss[N];
inti,j; FILE*fp;
fp=fopen("student.dat","wb");
fwrite(t,sizeof(STU),N,fp);
fclose(fp);
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
printf("/nThe original data:/n/n");
for(j=0; j<N; j++)
{printf("/nNo:%ld Name:%-8s Scores:",ss[j]. sno,ss[j].name);
for(i=0;i<3;i++)
printf("%6.2f"ss[j].score[i]);
printf("/n");
}
fun("student.dat",n);
printf("/nThe data after modifing:/n/n");
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
for (j=0; j<N;j++)
{printf("/nNo:%ld Name:%-8s Scores:",ss[j]. sno,ss[j].name);
for(i=0; i<3;i++)
printf(“%6.2f“. ss[j].score[i];
printf(:/n");
}
}
填空题下列程序的输出结果是______。 #include<stdio.h> int(int x,int y,int cp,int dp) cp=x*x+y*y; dp=x*x-y*y; main() int a=1,b=8,c=7,d=9; t(a,b,c,d); printf("%d%d/n",c,d);
填空题先有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:
#include<stdio.h>
#include "myfun.c"
main()
{ fun(); printf"/n");}
myfun.c 文件如下:
void fun()
{ char s[80],c; int n=0;
while((c=getchar())!='/n') s[n++]=c;
n-;
while(n>=O) printf("%c",s[n-]);
}
当编译连接通过后,运行程序T18时,输入Thank!则输出结果是:{{U}} [11] {{/U}}。
填空题若已经定义int a=25,b=14,c=19;,以下三目运算符(?:)所构成的语句的执行结果是{{U}} 【9】 {{/U}}。
a++<=2&&b--<=2&&c++? printf("***
a=%d,b=%d,c=%d/n",a,b,C) :printf("a=%d,b=%d,c=%d/n",a,b,C) ;
填空题文件操作步骤通常是:打开、操作和______。
填空题程序通过定义学生结构体变量,存储学生的学号、姓名和三门课的成绩。函数fun的功能是:将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。
例如,若传给形参a的数据中学号、姓名和三门课的成绩依次是:10001、“ZhangSan”、95、80、88,修改后的数据应为:10002、“LiSi”、96、81、89。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
struct student{
long sno;
char name[10];
float score[3];
};
/**********found**********/
______ fun(struct student a)
{int i;
a.sno=10002;
/**********found**********/
strcpy(______, "LiSi");
/**********found**********/
for(i=0; i<3; i++)______+=1;
return a;
}
main()
{struct student s=[10001, "ZhangSan", 95, 80, 88}, t;
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");
t=fun(s);
printf("/nThe data after modified:/n");
printf("/nNo:%ld Name:%s/nScores:", t.sno, t.name);
for(i=0; i<3; i++)
printf("%6.2f", t.score[i]);
printf("/n");
}
填空题函数count(head)统计链表的结点个数,head为表头指针,阅读程序,要求将整个if语句改成while循环控制结构,其形式为 【9】 。 #include<stdio.h> int count(NODE*head) int n=0; if(head!=NULL) do n++; head=head->next; while(head!=NULL); return n;
填空题以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回。请填空。(设N已定义)
int fun(int x[N]){
int i, k=0;
for(i=0; i<N; i++)
if(x[i]<x[k]) k=______;
return x[k];
}
填空题有以下程序
#include<stdio.h>
main()
{int x,y;
scarf("%2d%1d",&x,&y);printf("%d/n",x+y);
}
程序运行时输入:1234567,程序的运行结果是{{U}} (7) {{/U}}。
填空题阅读下面语句,则程序的执行结果是______。 #include "stdio.h" main() int a=-1,b=1,k; if(++a<0)&&!(b--<=0)) printf("%d,%d/n",a,b); else printf("%d,%d/n",b,a);
填空题以下程序是用递归方法求数组中的最大值及其下标值。请填空。 #define M 10 void findmax(int *a,int n,int i,int *pk) if(i<n) if(a[i]>a[ *pk]) 【15】 ; findmax(a,n,i+1,i++)scanf("%d" ,a+i); findmax(a,M,0,&n); printf(" The maxinum is:%d/n" ,a[n]); printf(" It's index is;%d/n" ,n);
填空题以下程序的输出结果是______。
#include<string.h>
main()
{char a[]={'/1','/2','/3','/4','/0'};
printf("% d % d/n",sizeof(a),strlen(a));
}
填空题在计算机中,字符的比较是对它们的______进行比较。
填空题以下程序运行后的输出结果是______。int f(int a[], int n) if (n >= 1) return f(a, n-1)+a[n-1]; else return 0;main() int aa[5]=1,2,3,4,5, s; s=f(aa, 5); printf("%d\n", s);
填空题下列程序中的数组a包括10个整数元素,分别将前项和后项之和存入数组b,并按每行4个元素输出数组bo请填空。 #include<stdio.h> main() int a[10],b[10],i; for(i=0;i<10;i++) scanf("%d", for(i=0;i<9;i++) ______; for(i=0;i<9;i++) if(i%4==0)printf("/n"); printf("%3d",b[i]);
填空题阅读下面程序,则程序的执行结果为 【9】 。 #include"stdio.h" main() int a=30,b=20,z; z=fun(a+b,a-b); printf("%d/n",z); fun(int a,int b) int z; z=a/b; return z;
填空题以下函数creat用来建立一个带头结点的单向链表,新产生的结点是插在链表头的末尾。单向链表的头指针作为函数值返回。请填空。 # include<stdio.h> struct list char data; struct list * next; ; struct list * creat; struct list * h,* p,* q; char ch; h=( 【18】 )malloc ( sizeof(struct list)); p=q=h; ch=getchar(); while(ch!='?') p=( 【19】)mallco(sizeof(struct list)); p->data=ch; q->next=p; q=p; ch=getchar(); p->next='/0'; 【20】;
