安徽大学C语言期末试卷(含答案),DOC

安徽大学 C语言程序设计期末试题

一. 单项选择题:(每题2分,共20分)

1.执行程序: int a; printf(\后,a的值是______。

A)60

B)20

C)15

D)10

2.程序段:int x=023; printf(\的输出是______。

A)19

B)18

C)23

D)22 3.程序段:static char s[10]={'C','h','i','n','a'}; printf(\的输出是______。

A)6

B)5

C)11

D)10 4.若fun( int x) { printf(“%d\\n”,x);}, 则fun_______。

A)返回值为 void 类型 C)返回值为 int 类型

B)返回值类型无法确定 D)没有返回值

5. 有宏定义:#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=21 6.程序段char s[]=\ p=s;执行后,*(p+5)的值是______。 A)'o' B)'\\0' C)'o'的地址 D)不确定的值 7. 程序段:char *s=”ABCD”, *p; for( p=s; *p ; p++) printf(\的输出是______。

A)ABCD BCD CD D B)A

B C D

C)D

C B A

D)ABCD

ABC AB A

8. 若定义:int (*p)[3]; 则标识符p______。

A)定义不合法。 B)是一个指针数组名,每个元素是一个指向整型变量的指针。 C)是一个指针,它指向一个具有三个元素的一维数组。 D)是一个指向整型变量的指针。

9. 定义: struct sk {int a; float b;} data,*p; 且 p=&data; 则正确引用成员a的方式是 ______。

A) p.data.a

B) (*p).a

C) p->data.a

D) (*p).data.a

10. 以二进制只读方式打开一个已有的文本文件file1,正确调用fopen函数的方式是______。

A)FILE *fp;

B)FILE *fp;

fp=fopen(\D)FILE *fp;

fp=fopen(\

fp=fopen(\C)FILE *fp;

fp=fopen(\

二. 填空题:(每空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 {int y, m, d;} today, *pdata; 则为today分配内存 ____ 字节,为pdata分配内存 ____ 字节。 9.C语言文件按数据的存放形式可分为________文件和_________文件。 10. C语言文件是一个________序列,这类文件称为_________文件。 三. 程序归纳题(每题2分,共10分) 得分 得分 阅读下列函数,总结其主要功能填在答题卡相应的横线上。答在试卷上不得分。 1. int fun1 (char *str){ char *ptr=str; while(*ptr++); return ptr-str-1; } 2. double fun2(double x, double y, double z){ return x>(y>z?y:z)?x:(y>z?y:z); } 3. void funs3( int num[], int size ){ int i=0, tmp; while( i

{ if (*ps>='a'&&*ps<='z') a1++; else if (*ps>='0'&&*ps<='9') a2++; p++; }

printf(\ }

四. 程序分析题(每题2分,共10分)

阅读程序,将其运行结果填在答题卡相应题目的横线上。答在试卷上不得分。 1. #include \ void main() {

static int a[]={1,2,3,4,5,6},*p; p=a; *(p+3)+=2;

printf(\ } 2. #include \ void main() { int x=1; { int x=2;

{ int x=3; printf(\ } printf(\ } printf(\ } 3. #include #include void sort( char **str, int n){ char *tmp; int i,j; for( i=0; i0) tmp=str[j], str[j]=str[j+1], str[j+1]=tmp; } void main() { 得分 char **ps,*str[3]={ \,\,\; int i;

ps=str; sort(ps,3); for(i=0; i<3; i++) printf(\ } 4. #include int leap_year(int year){ return year%4==0 && year0!=0 || year@0==0; } void main(){ int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31 }, days,i; struct date { int year; int month; int day;

}mdate={2008,5,1}; if(leap_year(mdate.year))

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4