则表达式(b)的值为2。
A)arr[0][l].chB)arr[0][l].iC)arr[0][0].iD)arr[0][2].i
二、判断题
1、条件运算符的结合方向是“自左向右”(x)。
2、switch语句中每一,个case的常量表达式的值必须互不相同(V)0
3、循环语句中循环体允许包含一个以上的语句,可以不以复合语句形式出现(x)。
4、构成C程序的源文件之间以及函数与函数之间,相互位置可以任意(J)o
5、C程序中的函数不能嵌套定义,但可嵌套调用(V)。
6、从变量的作用域角度来分,可以分为全局变量和局部变量(V)。
7、从终端输入一个字符串给字符数组,该字符串两端不必用双引号括起来(V)。
8、若有说明:
inta[][4]={0,0};,则只有a[0][0]和a[0][叮可得到初值0,其余元素均得不到初值0
)o
9、利用指针和结构类型不能构成更复杂的数据结构(x)。
10、共用体类型可以出现在结构体类型定义中(V)o
11>当一个case语句末包含break语句时,执行完该case语句后跳出switch结构(丿)。
12、宏定义屮的标识符可以用大写字母,也可以用小写字母(x)。
13、do-while语句构成的循坏,当while语句中的表达式的值为非零时结束循环(x)。
14、用“%”作求余运算时,该运算符两侧均应为整型数据(V)。
15、一个逗号表达式可以与另一个表达式组成一个新的逗号表达式(J)o
三、写出程序的运行结果
if(cif(aif(b1、#include
main()
{inta=l,b=3,c=5,d=4;if(a
elsex=3;elsex=6;
elsex=7;printf(“x=%d",x);
}
2、#include
main()
{intk,j,m;
fdr(k=5;k>=l;k--){m=0;
for(j=k,jv=5;j++)
m+=k*j;
}
printf(um=%dW\m);
3、//include
main()
{unionExa
{struct
{inta;
intb;
}out;
intc;
intd;
}e;
e.c=l;e.d=2;
c.out.a=c・c*c.cl;
e.out.b=e.c+e・d;
printf(M%d%d",e.out.a,e.out.b);
}
4、#include“stdio.W
main()
{inta[]={l,2,3,4},ij,s=0;
j=l;for(i=3;i>=0;i-){s=s+a[i]*j;
j=j*10;}
printf(6
5、include,,stdio.h,'
#include"string.h"
main()
{chars1[]='*somthings";
chars2[]="tcstM;
chars3[]=ngoodu;
printf("%s\n",strcat(strcpy(sl,s2),s3));}
四、程序填空
1、下面程序输出100到200之I、可的素数,每行输出10个素数,请将缺省语句填上,使算法完整。
^include“math.h''
main()
{intm,k,i,n=0;
for(m=101;m<=200;m=m+2)
{if(_Q_)printfC4\n?
);
k=sqrt(m);
for(i=2,i<=k;i++)
if()break;
if(i>=k+l){printfC%cT,m);n=n+l;}
}
}
2、一个函数days,实现求某月某日是该年的第多少天。
由主函数将年、月、日传递给days函数,计算后将日数传回主函数输出,请将缺省语句填上,使算法完整。
structy_m_d
{intyear;
intmonth;
intday;
}date;
main()
{intdays(int?
int,int);
inti,day_sum;
printf(44inputyear,month,day:
95);
scanf(“%d,%d,%d”,&date.yeai;&date.month,&date.day);
day_sum=days(
(1));
printf{44\n%d/%disthe%dthdayin%d?
\date.month,date.day,day_sum,date.year);}
days(intyear,intmonth,intday)
{intday_sum,i;
intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
②
for(i=l;iday_sum+=day_tab[i];
day_sum+=day;
if((year%4=0&&year%100!
=0||year%4==0)&&month>=3)retuni(day_sum);
}
五、程序设计题
1,学生的记录由学号和成绩组成,N名学生的数据己在主函数中放入结构体数组s中,请编写函数fun,它的功能是:
把分数最低的学生数据放在h所指的数组中,注意:
分数最低的学生可能不止一个,函数返回分数最低的学生的人数。
#dcfincN16
typedefstruct
{charnum[10J;
ints;
}STREC;
intfun(STREC*a,STREC*b)
main()
{STRECs[N]={{“GA05",85},{“GA03",76},{“GA02",69},{“GA04",85},
{“GAOV\91},{“GA07",72},{“GA08",64},{“GA06",87},
{“GAO15”,85},{“GAO13”,96},{“GAO12,64},{“GAO14”,91},{“GAO1V\91},{“GAO17”,64},{“GAO18”,64},{“GAO16”,72};
STRECh[N];
inti,n;
n=fun(s,h);
printf("The%dlowestscore:
\n,,,n);
fbr(i=O;iprintf(t4%d%4d\n,,,h[I].num,h[I].s);
printf(“\n”);
}
2、从键盘输入一-批字符(回车键结束),存入一个磁盘文件abc.txt中
参考答案:
一、单项选择题
1、D2、D3、A4、D5、D
6、C7、C8、B
9、010、D
main()
{FILE*fp;
charch;
m=fopen("abc.txt”,''w'');ch=getchar();
while(ch!
=,\n,)
{fputc(fp,ch);ch=gctchar();
}
fclose(fp);
11、A
12、A
13、B
14、C
15、B
二、判断题
1、(x
)2、(
V
)3、(x
)4、(7
6、(V
)7、(
7)8、(P
)9、(x
11、(7)
12.(
X)
13、(x
)14、(7
三、写出程序的运行结果
1、答案是:
x=2
2、答案是:
m=15
3、答案是:
48
)5、(Q)
)10、(V)
15、(P)
四、程序填空
1、答案是:
®n%10==0②m%i==0
2、答案是:
©date.year,date.month,date.day
②day_sum=0;
③day_sum+=l;
五、程序设计题
1、参考答案:
STRECfun(STREC*a,char*b)
{staticSTRECh={“,l};intk;
fbr(k=0;kif(!
strcmp(a[k].num,b))
{h=a[k];
break;
}
returnh;
}
2、参考答案:
复习C: