4.执行下述程序将输出3到100之间的所有素数。请填空。 #include
int i,j;
for (i=3;i<=100;i++) {
for (j=2;j<=i-1;j++) if (________) break; if (j==i)
printf(\ }
printf(\ }
5.执行下述程序的输出结果是____________。 #include
int i=3,j=2;
char *a=\
printf(\ }
6.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同的字符的ASCII代码值之差。例如:若输入的两个字符串分别为“aacdefg\和“abceef\则将输出-1。但若两个字符串相同,则将输出0。请填空。 #include
char s1[100],s2[100]; int i,sub;
printf(\ gets(s1);
printf(\ gets(s2); i=0;
while ((s1[i]==s2[i])&&(s1[i]!='\\0')) i++;
sub=_________________; printf(\ }
7.执行下述程序的输出结果是_____________。 #include
static char a[]=\ char *ptr==a; while (*ptr) {
printf(\ prt++; }
printf(\ }
8.以下函数func的功能是:累加n个数组元素的值,将和值放入x所指的存储单元中。请填空。
func(int b[],int n,int *x) {
int k,sun=0;
for (k=0;k ______________; } 10.执行下述程序的输出结果是________________。 #include int ast(int x,int y,int *cp,int dp) { *cp=x+y; | dp=x-y; } main() { int a=4,b=3,c=6,d=5; ast(a,b,&c,d); printf(\ } 12.以下函数min的功能是:查找带有头结点的单向链表中结点数据域的最小值,并 作为函数值返回。链表结构如下图所示 请填空。 struct node { int data; struct node *next; }; int min(struct node *first) { struct node *p; int m=0; p=first->next; m=pg>data; for (p=p->next;p!=NULL;p=__________) if (m>p->data) m=p->data; return (m); } 13.执行下述程序时,程序员由键盘输入一个文本文件名,然后输入一串字符(以字符 “#”作为输入结束标志),将它们写入到该文本文件中形成一行,然后再将字符个数 (不包含“#”符)再写入该文本文件的下一行。请填空。 #include FILE *fp; char、ch,fname[30]; int count=0; printf(\ scanf(\ if ((fp=fopen(fname,\ { printf(\ exit(0); } printf(\ while ((ch=getchar())!='#') { fputc(ch,fp); _____________; } fprintf(fp,\ fclose(fp); } 14.磁盘文件按文件中数据格式分类可以分成文本文件和_____________。 15.设有下述枚举类型定义和枚举变量说明 enum days { MON,TUE,WED,THU,FRI,SAT,SUN }; enum days today,dayaftertomorrow; 设已知today的值,表示今天是星期几,求dayaftertomorrow的值,即后天又是星期 几。比如,若today的值是WED,则dayaftertomorrow的值应是FRI;若today的值是 SAT,则dayaftertomorrow的值应是MON。请填写表示后天是星期几的表达式。 dayaftertomorrow=______________________。 三、程序分析题(每题5分,共30分) 1.阅读下述程序 #include void mat (int aa[][M],int n) { int i,j; for (j=0;j for (j=0;jMn-1;j++) aa[i][j]=aa[i-1][j+1]; aa[i][n-1]=aa[i-1][0]; } } main() { int i,j,k,a[M][M]; printf(\ scanf(\ mat(a,k); printf(\ for (i=0;i for (j=0;j printf(\ printf(\ } } 若当运行程序时有如下之交互信息 Enter k(1= 2.阅读下述程序 #include int i,j,k,u; int a[N]; for (i=0;i for (k=i-1;k>=j;k--) a[k+1]=a[k]; a[j]=u; } for (i=0;i printf(\ if ((i+1)%5==0) printf(\ } } 在执行该程序时,设输入 2 74 30 17 101 81 96 35 28 19 请写出输出结果。 3.阅读程序,写出执行本程序的输出结果。 #include char *stradd(char *s,char *t,int flag); main() { strtic char s[80]=\ stradd(s,t,0); printf(\ stradd(s,t,1); printf(\} char *stradd(char *s,char *t,int flag) { char *ptr,*ptr1;