安徽大学C语言期末试卷(含答案) .pdf
安徽⼤学C语⾔期末试卷(含答案)
安徽⼤学C语⾔程序设计期末试题
⼀.单项选择题:(每题2分,共20分)
1.执⾏程序:inta;printf(%d\n,(a=3*5,a*4,a+5));后,a的值是______。
A)60B)20C)15D)10
2.程序段:intx=023;printf(%d\n,--x);的输出是______。
A)19B)18C)23D)22
3.程序段:staticchars[10]={C,h,i,n,a};printf(%d\n,strlen(s));的输出是______。
A)6B)5C)11D)10
4.若fun(intx){printf(“%d\n”,x);},则fun_______。
A)返回值为void类型B)返回值类型⽆法确定
C)返回值为int类型D)没有返回值
5.有宏定义:#defineMULT1(a,b)a*b
#defineMULT2(a,b)(a)*(b)
且引⽤宏:y=MULT1(3+2,5+8);z=MULT2(3+2,5+8);则y和z的值是______。
A)y=65,z=65B)y=21,z=65C)y=65,z=21D)y=21,z=21
6.程序段chars[]=Hello,*p;p=s;执⾏后,*(p+5)的值是______。
A)oB)\0C)o的地址D)不确定的值
7.程序段:char*s=”ABCD”,*p;for(p=s;*p;p++)printf(%s\n,p);的输出是______。
A)ABCDB)AC)DD)ABCD
BCDBCABC
CDCBAB
DDAA
8.若定义:int(*p)[3];则标识符p______。
A)定义不合法。
B)是⼀个指针数组名,每个元素是⼀个指向整型变量的指针。
C)是⼀个指针,它指向⼀个具有三个元素的⼀维数组。
D)是⼀个指向整型变量的指针。
9.定义:structsk{inta;floatb;}data,*p;且p=data则正确引⽤成员a的⽅式是______。
A)p.data.aB)(*p).aC)p-data.aD)(*p).data.a
10.以⼆进制只读⽅式打开⼀个已有的⽂本⽂件file1,正确调⽤fopen函数的⽅式是______。
A)FILE*fp;B)FILE*fp;
fp=fopen(file1,rb);fp=fopen(file1,r+);
C)FILE*fp;D)FILE*fp;
fp=fopen(file1,r);fp=fopen(file1,rb+);
⼆.填空题:(每空1分,共20分)
请将正确答案填在答题卡相应题⽬的横线上。答在试卷上不得分。
1.C程序⼀个函数的定义由__________和____________两部分组成。2.C语⾔的整型变量可分为基本型、短整型、
________和________。3.C语⾔在判断⼀个量是否为“真”时,以____代表“假”,以____代表“真”。4.C语⾔中的break
语句只能⽤于______和______语句。
5.对________和________型数组不赋初值,系统会对所有元素⾃动赋以0值。
6.C语⾔中“⽂件包含”是通过____________命令完成的,⽽符号常量是通过____________
命令定义的。
7.对于数组x[5][5],*(x+2)+3表⽰__________,*(x[3]+2)表⽰__________。8.若定义:struct{inty,
m,d;}today,*pdata;则为today分配内存____字节,为pdata分
配内存____字节。
9.C语⾔⽂件按数据的存放形式可分为________⽂件和_________⽂件。10.C语⾔⽂件是⼀个________序列,这类
⽂件称为_________⽂件。
三.程序归纳题(每题2分,共10分)
阅读下列函数,总结其主要功能填在答题卡相应的横线上。答在试卷上不得分。1.intfun1(char*str){char*ptr=str;
while(*ptr++);returnptr-str-1;}2.doublefun2(doublex,doubley,doublez){returnx(yz?y:z)?x:(yz?y:z);}
3.voidfuns3(intnum[],intsize){inti=0,t