安徽大学C语言程序设计期末考试试题A.pdf
安徽大学安徽大学 C C 语言程序设计期末考试试题语言程序设计期末考试试题 A A安徽大学安徽大学 20 -2020 -20学年第学年第学期学期C C 语言程序设计期末考试试卷(语言程序设计期末考试试卷(A A 卷卷 120120 分钟)分钟)年级年级院系专业院系专业姓名姓名学号学号座位号座位号题号得分一二三得分得分一一.单项选择题:(每题单项选择题:(每题 2 2 分,共分,共 4040 分)分)下列各题下列各题 A)A)、B)B)、C)C)、D)D)四个选项中只有一个是正确的四个选项中只有一个是正确的,请将正确选项填请将正确选项填在答题卡相应题目的横线上。答在试卷上不得分。在答题卡相应题目的横线上。答在试卷上不得分。下面程序段执行后,a 的值是_。int a;printf(%d n,(a=3*5,a*4,a+5);)60)20)15)10下列程序段的输出是_。int x=023;printf(%d n,-x);)19)18)23)22执行下列语句后,的值是_。int a=8;a+=a-=a*a;)-240)64)112)-112执行下列语句后,输出的值是_。int x=6;printf(%d,%d,%dn,x,x+,-x);)5,5,5)6,5,5)7,6,5)5,6,5指出下列程序段所表示的逻辑关系是_。if(ab)if(c=d)x=1;else x=2;)若 a=b 且 c!=d,则 x=2。)若 a=b,则 x=2。)若 ab 且 c=d,则 x=1;若 ab 且 c!=d,则 x=2。)若 ab 且 c=d,则 x=1;若 c!=d,则 x=2。下列程序段的执行结果是_。int i,x;for(i=1,x=1;i=10)break;if(x%2=1)x+=5;continue;x-=3;printf(%d,%dn,x,i);)6,4)7,5)10,6)14,7下列程序的执行结果是_。#include stdio.h#include string.h main()static char s10=C,h,i,n,a;printf(%dn,strlen(s);)6)5)11)10函数的数据类型是_决定的。)调用该函数时临时)调用函数的实参)return 语句的表达式类型)函数的形参执行下列程序段后,*(p+5)的值是_。static char s=Hello;char*p;p=s;)o)0)o的地址)不确定的值以下程序的输出结果是_。#include stdio.h main()static int a=1,2,3,4,5,6,*p;p=a;*(p+3)+=2;printf(%d,%dn,*p,*(p+3);)0,5)1,5)0,6)1,6在以下定义中,标识符_。int(*p)3;)定义不合法。)是一个指针数组名,每个元素是一个指向整型变量的指针。)是一个指针,它指向一个具有三个元素的一维数组。)是一个指向整型变量的指针。sizeof(int)是_。)一个整型表达式)一个不合法的表达式)一种函数调用)一条语句有宏定义:#define MULT1(a,b)a*b#define MULT2(a,b)(a)*(b)在后面的程序中有宏引用:y=MULT1(3+2,5+8);z=MULT2(3+2,5+8);则 y 和 z 的值是_。)y=65,z=65)y=21,z=65)y=65,z=21)y=21,z=21设有程序段:union MYTYPE long x;int y4;char z6;them;main()printf(“%dn”,sizeof(them);则程序的输出结果是_。)18)6)8)4以读写方式打开一个已有的文本文件file1,下面fopen 函数正确的调用方式是_。)FILE*fp;)FILE*fp;fp=fopen(file1,r);fp=fopen(file1,r+);)FILE*fp;)FILE*fp;fp=fopen(file1,rb);fp=fopen(file1,rb+);.设有如下定义:struct sk int a;float b;data,*p;且 p=&data;则对 data 中 a 域的正确引用是().A)(*p).data.a B)(*p).a C)p-data.a D)p.data.a若 fun(int x)printf(“%dn”,x);,则 fun_。)返回值为 void 类型)返回值无法确定)返回值为 int 类型)没有返回值实参和和形参之间的数据传送是_。)地址传送)实参传给形参,再由形参传给实参)值传送)由用户指定传送方式以下程序的输出结果是_。char*s=”ABCD”,*p;for(p=s;*p;p+)printf(%sn,p);)ABCD)A)D)ABCD BCD B C ABC CD C B AB D D A A下列程序段的输出是_。int fun(int x)static int a=3;a+=x;return a;void main(void)int k=2,m=1,n;n=fun(k);n=fun(m);printf(“%dn”,n);)3)4)6)9得分二二.填空题:(每空填空题:(每空 1 1 分,共分,共 2020 分)分)请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。语言有语言有、和和五五种常量。种常量。程序的变量不仅要事先程序的变量不仅要事先,而且还必须而且还必须后才能使用。后才能使用。语言在给出逻辑运算结果时,语言在给出逻辑运算结果时,以以代表代表“真”“真”,以以代代表“假”;在判断一个量是否为“真”时,以表“假”;在判断一个量是否为“真”时,以代表“假”,代表“假”,以以代表“真”。代表“真”。语言规定只有语言规定只有数组和数组和数组才能初始化;这种数组数组才能初始化;这种数组不赋初值,系统会对所有数组元素自动赋以不赋初值,系统会对所有数组元素自动赋以值。值。对两个指针变量进行关系运算的条件是对两个指针变量进行关系运算的条件是,其结果表,其结果表示示。一个文件是一个一个文件是一个或或,它把数据看成是它把数据看成是,对文件的存取是以对文件的存取是以为单位。为单位。三三.程序设计题(每空程序设计题(每空 2 2 分,共分,共 4040 分)分)得分阅读下列程序,在横线上填入适当的内容使程序完整。请将正确答案填在阅读下列程序,在横线上填入适当的内容使程序完整。请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。答题卡相应题目的横线上。答在试卷上不得分。下列程序是求下列程序是求 FibonacciFibonacci 数列:数列:1,1,2,3,5,81,1,2,3,5,8的前的前 4040 个数,要求每行个数,要求每行输出个数。输出个数。main()main()long int f1,f2;long int f1,f2;int i;int i;f1=1;f2=1;f1=1;f2=1;for(i=1;i=for(i=1;i=;i+);i+)printf(%12ld%12ld,f1,f2);printf(%12ld%12ld,f1,f2);if(if()printf(n);)printf(n);f1=f1=;f2=f2=;下列程序是求一个矩阵中值最小元素。下列程序是求一个矩阵中值最小元素。min_value(min_value()int i,j,k,min;int i,j,k,min;=array00;=array00;for(i=0;i3;i+)for(i=0;i3;i+)for(j=0;j4;j+)for(j=0;j4;j+)if(if()min=min=;main()main()staticstatic intint a34=a34=1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9;printf(min valueprintf(min valueis%dn,min_value(is%dn,min_value(););下列程序的功能是:将字符串复制到字符串中。下列程序的功能是:将字符串复制到字符串中。void copy_string(char*from,void copy_string(char*from,);for(;*from;for(;*from;);*to=*to=;main()main()char*a=I am a boy!;char*a=I am a boy!;char*b=This is a test!;char*b=This is a test!;printf(a=%sa=%sn,a,b);printf(a=%sa=%sn,a,b);4 4有一个班,个学生,各学四门棵。下列程序的功能是:查找有一门以上课有一个班,个学生,各学四门棵。下列程序的功能是:查找有一门以上课程不及格的学生,打印出他们的全部课程的成绩。程不及格的学生,打印出他们的全部课程的成绩。main()main();static floatstatic floatscore34=1,2,3,4,5,6,7,8,9,10,11,12;score34=1,2,3,4,5,6,7,8,9,10,11,12;search(score,3);search(score,3);void search(float(*p)4,int n)void search(float(*p)4,int n);failn,j+i);failn,j+i);i+);i+););int i,j,flag;int i,j,flag;for(j=0;jn;j+)for(j=0;jn;j+)flag=0;flag=0;for(i=0;i4;i+)for(i=0;i4;i+)if(if()flag=1;)flag=1;if(if()printf(No.%d is printf(No.%d isfor(i=0;for(i=0;printf(%5.1fprintf(%5.1f,printf(n);printf(n);参考答案参考答案一一.单项选择题:(每题单项选择题:(每题 2 2 分,共分,共 4040 分)分)CBDBB CBCBD CABBB BCCAC CBDBB CBCBD CABBB BCCAC二二.填空题:(每题填空题:(每题 2 2 分,共分,共 2020 分)分)1 1、常数常数2 2、字符字符3 3、字符串字符串4 4、转义序列、转义序列5 5、符号常量符号常量6 6、定义定义7 7、赋值赋值8 8、1 19 9、0 01010、非非 0 01111、0 01212、staticstatic1313、externextern1414、0 01515、指向同一数组指向同一数组1616、位置的前后位置的前后1717、字节流字节流1818、二进制流二进制流1919、一连串的字符一连串的字符2020、字符(字节)字符(字节)三三.程序归纳题(每题程序归纳题(每题 2 2 分,共分,共 4040 分)分)1 1、20202 2、i%5=0i%5=03 3、f1+f2f1+f24 4、f1+f2f1+f25 5、intintarray34array346 6、minmin7 7、minarrayijminarrayij8 8、arrayijarrayij9 9、returnreturnminmin1010、a a1111、charchar*to*to1212、from+,to+from+,to+1313、1414、1515、1616、1717、1818、*to=*from*to=*from 00copy_string(a,b)copy_string(a,b)void search(float(*p)4,int n)void search(float(*p)4,int n)pji60pji60flag=1flag=11919、2020、i4i4pjipji