学年c语言期末卷子.docx
- 文档编号:24085516
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:18
- 大小:23.20KB
学年c语言期末卷子.docx
《学年c语言期末卷子.docx》由会员分享,可在线阅读,更多相关《学年c语言期末卷子.docx(18页珍藏版)》请在冰豆网上搜索。
学年c语言期末卷子
第1学期
《C语言程序设计》期末考试试卷(A卷120分钟)
年级院系专业姓名学号座位号
一.单项选择题:
(每题2分,共40分)
下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确选项填在答题卡相应题目的横线上。
答在试卷上不得分。
1.下面程序段执行后,a的值是______。
inta;
printf("%d\n",(a=3*5,a*4,a+5));
A)60B)20C)15D)10
2.下列程序段的输出是______。
intx=023;
printf("%d\n",--x);
A)19B)18C)23D)22
3.执行下列语句后,a的值是______。
inta=8;
a+=a-=a*a;
A)-240B)64C)112D)-112
4.执行下列语句后,输出的值是______。
intx=6;
printf("%d,%d,%d\n",x,x++,--x);
A)5,5,5B)6,5,5C)7,6,5D)5,6,5
5.指出下列程序段所表示的逻辑关系是______。
if(a
{
if(c==d)
x=1;
}
else
x=2;
A)若a=b且c!
=d,则x=2。
B)若a=b,则x=2。
C)若a
=d,则x=2。
D)若a
=d,则x=2。
6.下列程序段的执行结果是______。
inti,x;
for(i=1,x=1;i<=20;i++)
{
if(x>=10)break;
if(x%2==1)
{
x+=5;
continue;
}
x-=3;
}printf("%d,%d\n",x,i);
A)6,4B)7,5C)10,6D)14,7
7.下列程序的执行结果是______。
#include"stdio.h"
#include"string.h"
main()
{
staticchars[10]={'C','h','i','n','a'};
printf("%d\n",strlen(s));
}
A)6B)5C)11D)10
8.函数的数据类型是______决定的。
A)调用该函数时临时B)调用函数的实参
C)return语句的表达式类型D)函数的形参
9.执行下列程序段后,*(p+5)的值是______。
staticchars[]="Hello";
char*p;
p=s;
A)'o'B)'\0'C)'o'的地址D)不确定的值
10.以下程序的输出结果是______。
#include"stdio.h"
main()
{
staticinta[]={1,2,3,4,5,6},*p;
p=a;*(p+3)+=2;
printf("%d,%d\n",*p,*(p+3));
}
A)0,5B)1,5C)0,6D)1,6
11.在以下定义中,标识符P______。
int(*p)[3];
A)定义不合法。
B)是一个指针数组名,每个元素是一个指向整型变量的指针。
C)是一个指针,它指向一个具有三个元素的一维数组。
D)是一个指向整型变量的指针。
12.sizeof(int)是______。
A)一个整型表达式B)一个不合法的表达式
C)一种函数调用D)一条语句
13.有宏定义:
#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
14.设有程序段:
unionMYTYPE{longx;inty[4];charz[6];}them;
main(){printf(“%d\n”,sizeof(them));}
则程序的输出结果是______。
A)18B)6C)8D)4
15.以读写方式打开一个已有的文本文件file1,下面fopen函数正确的调用方式
是______。
A)FILE*fp;B)FILE*fp;
fp=fopen("file1","r");fp=fopen("file1","r+");
C)FILE*fp;D)FILE*fp;
fp=fopen("file1","rb");fp=fopen("file1","rb+");
16.设有如下定义:
structsk{inta;floatb;}data,*p;
且p=&data;则对data中a域的正确引用是().
A)(*p).data.aB)(*p).aC)p->data.aD)p.data.a
17.若fun(intx){printf(“%d\n”,x);},则fun_______。
A)返回值为void类型B)返回值无法确定
C)返回值为int类型D)没有返回值
18.实参和和形参之间的数据传送是_______。
A)地址传送B)实参传给形参,再由形参传给实参
C)值传送D)由用户指定传送方式
19.以下程序的输出结果是______。
char*s=”ABCD”,*p;
for(p=s;*p;p++)
printf("%s\n",p);
A)ABCDB)AC)DD)ABCD
BCDBCABC
CDCBAB
DDAA
20.下列程序段的输出是______。
intfun(intx)
{
staticinta=3;
a+=x;
returna;
}
voidmain(void)
{
intk=2,m=1,n;
n=fun(k);
n=fun(m);
printf(“%d\n”,n);
}
A)3B)4C)6D)9
得分
二.填空题:
(每空1分,共20分)。
1.C语言有⑴、⑵、⑶、⑷和⑸五种常量。
2.C程序的变量不仅要事先⑹,而且还必须⑺后才能使用。
3.C语言在给出逻辑运算结果时,以⑻代表“真”,以⑼代表“假”;在判断一个量是否为“真”时,以⑽代表“假”,以⑾代表“真”。
4.C语言规定只有⑿数组和⒀数组才能初始化;这种数组不赋初值,系统会对所有数组元素自动赋以⒁值。
5.对两个指针变量进行关系运算的条件是⒂,其结果表示⒃。
6.一个C文件是一个⒄或⒅,它把数据看成是⒆,对文件的存取是以⒇为单位。
得分
三.程序设计题(每空2分,共40分)
阅读下列程序,在横线上填入适当的内容使程序完整。
请将正确答案填在答题卡相应题目的横线上。
答在试卷上不得分。
1.下列程序是求Fibonacci数列:
1,1,2,3,5,8……的前40个数,要求每行输出4个数。
main()
{
longintf1,f2;
inti;
f1=1;f2=1;
for(i=1;i<=⑴;i++)
{
printf("%12ld%12ld",f1,f2);
if(⑵)printf("\n");
f1=⑶;
f2=⑷;
}
}
2.下列程序是求一个3×4矩阵中值最小元素。
min_value(⑸)
{inti,j,k,min;
⑹=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(⑺)min=⑻;
⑼;
}
main()
{staticinta[3][4]={1,2,3,4,5,6,7,8,9};
printf("minvalueis%d\n",min_value(⑽));
}
3.下列程序的功能是:
将字符串a复制到字符串b中。
voidcopy_string(char*from,⑾)
;
{
for(;*from;⑿)
⒀;
*to=⒁;
}
main()
{char*a="Iamaboy!
";
char*b="Thisisatest!
";
⒂;
printf("a=%s\a=%s\n",a,b);
}
4.有一个班,3个学生,各学四门棵。
下列程序的功能是:
查找有一门以上课程不及格的学生,打印出他们的全部课程的成绩。
main()
{⒃;
staticfloatscore[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
search(score,3);
}
voidsearch(float(*p)[4],intn)
;
{inti,j,flag;
for(j=0;j {flag=0; for(i=0;i<4;i++) if(⒄)flag=1; if(⒅) {printf("No.%disfail\n",j+i); for(i=0;⒆;i++) printf("%5.1f",⒇); printf("\n"); } } } 参考答案: 一.单项选择题: (每题2分,共40分) CBDBBCBCBDCABBBBCCAC 二.填空题: (每题2分,共20分) 1常数2字符3字符串4、转义序列5符号常量 6定义7赋值819010非0 11012static13extern14015指向同一数组 16位置的前后17字节流18二进制流19一连串的字符20字符(字节) 三.程序归纳题(每题2分,共40分) 1202i%5==0 3f1+f24f1+f2 5intarray[3][4]6min 7min 9returnmin10a 11char*to12from++,to++ 13*to=*from14‘\0’ 15copy_string(a,b)16voidsearch(float(*p)[4],intn) 17p[j][i]<6018flag==1 19i<420p[j][i] 安徽大学2008-2009学年第学期 《C语言程序设计》期末考试试卷(B卷120分钟) 年级院系专业姓名学号座位号 得分 一.单项选择题: (每题2分,共20分) 下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确选项填在答题卡相应题目的横线上。 答在试卷上不得分。 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)'o'B)'\0'C)'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分) 请将正确答案填在答题卡相应题目的横线上。 答在试卷上不得分。 7.C程序一个函数的定义由__________和____________两部分组成。 8.C语言的整型变量可分为基本型、短整型、________和________。 9.C语言在判断一个量是否为“真”时,以____代表“假”,以____代表“真”。 10.C语言中的break语句只能用于______和______语句。 11.对________和________型数组不赋初值,系统会对所有元素自动赋以0值。 12.C语言中“文件包含”是通过____________命令完成的,而符号常量是通过____________命令定义的。 13.对于数组x[5][5],*(x+2)+3表示__________,*(x[3]+2)表示__________。 14.若定义: struct{inty,m,d;}today,*pdata;则为today分配内存____字节,为pdata分配内存____字节。 15.C语言文件按数据的存放形式可分为________文件和_________文件。 16.C语言文件是一个________序列,这类文件称为_________文件。 得分 三.程序归纳题(每题2分,共10分) 阅读下列函数,总结其主要功能填在答题卡相应的横线上。 答在试卷上不得分。 1.intfun1(char*str){char*ptr=str; while(*ptr++);returnptr-str-1;} 2.doublefun2(doublex,doubley,doublez){ returnx>(y>z? y: z)? x: (y>z? y: z);} 3.voidfuns3(intnum[],intsize){inti=0,tmp; while(i 4.voidfun4(char*f,char*t) {for(;*f! ='\0';f++,t++)*t=*f;*t='\0';} 5.voidfun5(char*ps){inta1=0,a2=0; while(*ps! ='\0') {if(*ps>='a'&&*ps<='z')a1++; elseif(*ps>='0'&&*ps<='9')a2++; p++;} printf("%d,%d\n",a1,a2);} 得分 四.程序分析题(每题2分,共10分) 阅读程序,将其运行结果填在答题卡相应题目的横线上。 答在试卷上不得分。 1.#include"stdio.h" voidmain(){ staticinta[]={1,2,3,4,5,6},*p; p=a;*(p+3)+=2; printf("%d,%d\n",*p,*(p+3));} 2.#include"stdio.h" voidmain(){intx=1; {intx=2; {intx=3;printf("%2d",x);} printf("%2d",x);} printf("%2d",x);} 3.#include #include voidsort(char**str,intn){ char*tmp;inti,j; for(i=0;i for(j=0;j if(strcmp(str[j],str[j+1])>0) tmp=str[j],str[j]=str[j+1],str[j+1]=tmp;} voidmain(){ char**ps,*str[3]={"BOOK","COMPUTER","CHINA"}; inti; ps=str;sort(ps,3); for(i=0;i<3;i++)printf("%d%s",i+1,str[i]);} 4.#include intleap_year(intyear){ returnyear%4==0&&year%100! =0||year%400==0;} voidmain(){ intmonth_day[]={31,28,31,30,31,30,31,31,30,31,30,31},days,i; structdate{ intyear; intmonth; intday; }mdate={2008,5,1}; if(leap_year(mdate.year)) month_day[1]++; for(i=1,days=mdate.day;i days+=month_day[i-1]; printf("%d-%disthe%dthdayin%d", mdate.month,mdate.day,days,mdate.year);} 5.#include voidadd(int*x,int*y,intn){ while(n--)*x+++=*y++;} voidmain(){ inti=5;staticints1[]={2,1,0,3,2},s2[5]; add(s2,s1,5); while(i--)printf("%2d",s2[i]);} 得分 五.程序设计题(每题10分,共40分) 阅读下列程序,在指定位置上填入适当的内容使程序完整。 请勿改动其它内容。 请将正确答案填在答题卡上。 答在试卷上不得分。 1.函数insert将一个指定的单精度数按递减规律插入数组num中,注: 数组num中已有12个按照递减顺序排好序的单精度数。 voidinsert(floatnum[13],floatnew) {inti=11; /***answerbegin***/ …… /***answerend***/} 2.编写函数mycmp实现库函数strcmp的功能: 两个字符串的比较。 intmycmp(char*p1,char*p2) {/***answerbegin***/ …… /***answerend***/} 3.设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。 #include structperson {charname[20]; intcount; }leader[3]={“Li”,0,“Zhang”,0,”Wang“,0}; main() {inti,j;charleader_name[20]; for(i=1;i<=10;i++) {/***answerbegin***/ …… /***answerend***/} for(i=0;i<3;i++) printf("%5s: %d\n",leader[i].name,leader[i].count); } 4.从键盘上输入一个字符串,将其中的小写字母转换成大写字母,然后输出到名为“test”的文本文件中保存。 输入字符串以“! ”结束。 #include voidmain() { inti;charstr[80];FILE*fp; if((fp=fopen("test","w"))==NULL) {printf("cannotopenfile\n"); exit(0);} printf("Inputastring(endwith! ): "); gets(str); /***answerbegin***/ …… /***answerend***/ } 参考答案: 一.单项选择题: (每题2分,共20分) CBBCBBACBA 二.填空题: (每题2分,共20分) 1函数说明2函数体3长整型4无符号型50 6非07switch8循环9extern10static 11#include12#define13&x[2][3]14x[3][2]156 16217文本18二进制19字符(字节)20流式 三.程序归
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学年 语言 期末 卷子