安徽大学2008 -20 09学年第1学期《C语言程序设计》期末考试试卷(A卷120分钟)年级院系专业姓名学号座位号一. 单项选择题:(每题2分,共40分)下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确选项填在答题卡相应题目的横线上。
答在试卷上不得分。
1.下面程序段执行后,a的值是______。
int a;printf("%d \n", (a=3*5, a*4, a+5) );A)60 B)20 C)15 D)102.下列程序段的输出是______。
int x=023;printf("%d \n", --x );A)19 B)18 C)23 D)223.执行下列语句后,a的值是______。
int a=8;a+=a-=a*a;A)-240 B)64 C)112 D)-1124.执行下列语句后,输出的值是______。
int x=6;printf("%d,%d,%d\n",x,x++,--x);A)5,5,5 B)6,5,5 C)7,6,5 D)5,6,55.指出下列程序段所表示的逻辑关系是______。
if(a<b){if(c==d)x=1;}elsex=2;A)若a<b且c=d,则x=1;若a>=b且c!=d,则x=2。
B)若a<b且c=d,则x=1;若a>=b,则x=2。
C)若a<b且c=d,则x=1;若a<b且c!=d,则x=2。
D)若a<b且c=d,则x=1;若c!=d,则x=2。
6.下列程序段的执行结果是______。
int i,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,4 B)7,5 C)10,6 D)14,77.下列程序的执行结果是______。
#include "stdio.h"#include "string.h"main(){static char s[10]={'C','h','i','n','a'};printf("%d\n",strlen(s));}A)6 B)5 C)11 D)108.函数的数据类型是______决定的。
A)调用该函数时临时B)调用函数的实参C)return语句的表达式类型D)函数的形参9.执行下列程序段后,*(p+5)的值是______。
static char s[]="Hello";char *p;p=s;A)'o' B)'\0' C)'o'的地址D)不确定的值10.以下程序的输出结果是______。
#include "stdio.h"main(){static int a[]={1,2,3,4,5,6},*p;p=a; *(p+3)+=2;printf("%d,%d\n",*p,*(p+3));}A)0,5 B)1,5 C)0,6 D)1,611.在以下定义中,标识符P______。
int (*p)[3];A)定义不合法。
B)是一个指针数组名,每个元素是一个指向整型变量的指针。
C)是一个指针,它指向一个具有三个元素的一维数组。
D)是一个指向整型变量的指针。
12.sizeof(int)是______。
A)一个整型表达式B)一个不合法的表达式C)一种函数调用D)一条语句13.有宏定义:#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的值是______。
A)y=65,z=65 B)y=21,z=65 C)y=65,z=21 D)y=21,z=2114.设有程序段:union MYTYPE { long x; int y[4]; char z[6];}them;main(){ printf(“%d\n”,sizeof(them)); }则程序的输出结果是______。
A)18 B)6 C)8 D)415.以读写方式打开一个已有的文本文件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. 设有如下定义: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.a17.若fun( int x) { 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)ABCD B)A C)D D)ABCDBCD B C ABCCD C B ABD D A A20.下列程序段的输出是______。
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( “%d\n”, n);}A)3 B)4 C)6 D)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() {long int f1,f2; int i;f1=1 ; f2=1;for(i=1;i<= ⑴ ;i++) {printf("%12ld %12ld ",f1,f2); if( ⑵ ) printf("\n"); f1= ⑶ ; f2= ⑷ ; } }2.下列程序是求一个3×4矩阵中值最小元素。
min_value( ⑸ ) { int i,j,k,min;⑹ =array[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++)if( ⑺ ) min= ⑻ ; ⑼ ; }main(){ static int a[3][4]={ 1,2,3,4,5,6,7,8,9 };printf("min value is %d\n",min_value( ⑽ ));}3.下列程序的功能是:将字符串a复制到字符串b中。
void copy_string(char *from, ⑾ );{for(;*from; ⑿ )⒀ ;*to= ⒁ ;}main(){ char *a="I am a boy!";char *b="This is a test!";⒂ ;printf("a=%s\a=%s\n",a,b);}4.有一个班,3个学生,各学四门棵。
下列程序的功能是:查找有一门以上课程不及格的学生,打印出他们的全部课程的成绩。
main(){ ⒃ ;static float score[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};search(score,3);}void search( float (*p)[4], int n);{ int i,j,flag;for(j=0;j<n;j++){ flag=0;for(i=0;i<4;i++)if( ⒄ ) flag=1;if( ⒅ ){ printf("No.%d is fail\n",j+i);for(i=0; ⒆ ;i++)printf("%5.1f ", ⒇ );printf("\n");}}}参考答案:一. 单项选择题:(每题2分,共40分)CBDBB CBCBD CABBB BCCAC二. 填空题:(每题2分,共20分)1常数 2 字符 3 字符串4、转义序列5符号常量6定义7 赋值8 1 9 0 10 非011 0 12 static 13 extern 14 0 15指向同一数16位置的前后17字节流18二进制流19一连串的字符20字符(字节三. 程序归纳题(每题2分,共40分)1 202 i%5==03 f1+f24 f1+f25 int array[3][4]6 min7 min<array[i][j] 8 array[i][j]9 return min 10 a11 char *to 12 from++,to++13 *to=*from 14 ‘\0’15 copy_string(a,b) 16 void search( float (*p)[4], int n)17 p[j][i]<60 18 flag==119 i<4 20 p[j][i]安徽大学2008-2009学年第学期《C语言程序设计》期末考试试卷(B卷120分钟)年级院系专业姓名学号座位号一. 单项选择题:(每题2分,共20分)确的,请将正确选项填在答题卡相应题目的横线上。