四、简答题(本大题共4小题,每小题3分,共12分)
36.简述字符常量与字符串常量的差异。
37.在C语言的if语句中,用作条件判断的“表达式”可以是什么类型的表达式?
38.用字符串指针变量处理字符串与用字符数组处理字符串有何不同?
36.简述fread函数的作用,其使用格式如下:
fread(stu,size,n,fp);
其中fp为文件指针,size为字节数,n为整数,stu为内存地址。五、阅读分析题(本大题共7小题,每小题4分,共28分)
40.阅读下列程序并写出运行结果。
#include ”stdio.h”
#include ”string.h”
main()
{ char str[]=”department”,*p=s;
printf(”the length of srt is %d”,strlen(p));
prinft(”n%s”,p);
}
41.阅读下列程序并写出运行结果。
main()
{ int i=3, b;
b=(i--)+(i--)+(i--);
printf(”%d,%dn”,b,i);
}
42.阅读下列程序,并回答问题。
main()
{int s=0, k;
for(k=4;k>=0;k--)
{ switch(k)
{ case 1:
case 4: s++;break;
case 0:
case 2: break;
case 3: s+=2;break;
}
}
printf(”s=%dn”,s);
}
试回答switch语句共执行多少次并写出运行结果。
43.阅读下列程序并写出运行结果。
main()
{ int y[2][3]={5,4,6,7,8,9};
int m[2],k,j;
for (k=0;k<2;k++){
m[k]=y[k][0];
for(j=1;j<3;j++)
if(y[k][j] }
k=0;
printf(”%dn”,m[k]);
}
第44题、第45题请参阅下面程序,并回答相关问题:
main()
{int i,j,x=0;
for(i=0;i<2;i++)
{x++;
for (j=0;j<=3;j++)
{ if(j%2) continue;
x++;}
x++;}
printf(”x=%dn”,x);}
44.if(j%2) continue;语句的作用是什么?continue语句执行了多少次?
45.程序输出结果是多少?
46.设指向单向链表的头结点指针head是一个全局指针变量,且有如下程序:
void display( )
{ struct food *p=head;
while (p!=NULL)
{ printf(”%sn”, p→name);
printf(”%dn”, p→product);
p=p→next;
}
}
设程序已经提供了关于food结构体的全部信息,试写出结构体food的定义。
六、程序设计题(本大题共2小题,第47题8分,第48题12分,共20分)
47.对下面的3行3列的二维整型数组x:
int x[3][3]={1,2,3,4,5,6,7,8,9};
编程求每一行中元素的累加和并输出之。
48.从键盘输入一些字符,逐个把它们送到磁盘上并统计这些字符的个数,直到输入一个“#”为止。设磁盘ASCII码文件名为ab.txt。