安徽大学c语言试卷_第1页
安徽大学c语言试卷_第2页
安徽大学c语言试卷_第3页
安徽大学c语言试卷_第4页
安徽大学c语言试卷_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安徽大学20 -20 学年第 学期C语言程序设计期末考试试卷(A卷120分钟)年级 院系专业 姓名 学号 座位号 题号一二三四五六七八得分得分得分一. 单项选择题:(每题2分,共40分)下列各题A)、B)、C)、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=

2、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

3、=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

4、 )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 M

5、ULT1(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;

6、 )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 类型 )返回值无法确定 )返回值

7、为 int 类型 )没有返回值实参和和形参之间的数据传送是_。 )地址传送 )实参传给形参,再由形参传给实参 )值传送 )由用户指定传送方式以下程序的输出结果是_。 char *s=”ABCD”, *p; for( p=s; *p ; p+) printf(%sn, p); )ABCD )A )D )ABCDBCDBCABCCDCBABDDAA下列程序段的输出是_。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

8、); )3 )4 )6 )9得分二. 填空题:(每空1分,共20分)请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。 语言有 、 、 、 和 五种常量。 程序的变量不仅要事先 ,而且还必须 后才能使用。 语言在给出逻辑运算结果时,以 代表“真”,以 代表“假”;在判断一个量是否为“真”时,以 代表“假”,以 代表“真”。 语言规定只有 数组和 数组才能初始化;这种数组不赋初值,系统会对所有数组元素自动赋以 值。 对两个指针变量进行关系运算的条件是 ,其结果表示 。 一个文件是一个 或 ,它把数据看成是 ,对文件的存取是以 为单位。得分三. 程序设计题(每空2分,共40分)阅读下列程序

9、,在横线上填入适当的内容使程序完整。请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。下列程序是求Fibonacci数列:1,1,2,3,5,8的前40个数,要求每行输出个数。 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= ; 下列程序是求一个矩阵中值最小元素。 min_value( ) int i,j,k,min; =array00; for(i=0;i3;i+) for(j=0;j4;j+) if( )

10、 min= ; ; main() static int a34= 1,2,3,4,5,6,7,8,9 ; printf(min value is %dn,min_value( ); 下列程序的功能是:将字符串复制到字符串中。 void copy_string(char *from, ) ; for(;*from; ) ; *to= ; main() char *a=I am a boy!; char *b=This is a test!; ; printf(a=%sa=%sn,a,b); 4有一个班,个学生,各学四门棵。下列程序的功能是:查找有一门以上课程不及格的学生,打印出他们的全部课程的成

11、绩。 main() ; static float score34=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;jn;j+) flag=0; for(i=0;i4;i+) if( ) flag=1; if( ) printf(No.%d is failn,j+i); for(i=0; ;i+) printf(%5.1f , ); printf(n); 参考答案:一. 单项选择题:(每题2分,共40分)CBDBB CBCBD CABBB B

12、CCAC二. 填空题:(每题2分,共20分)1常数2 字符3 字符串4、转义序列5符号常量6定义 7 赋值8 1 9 010 非0 11 012 static 13 extern14 015指向同一数组16位置的前后17字节流18二进制流 19一连串的字符20字符(字节) 三. 程序归纳题(每题2分,共40分)1 20 2 i%5=0 3 f1+f2 4 f1+f2 5 int array34 6 min 7 minarrayij 8 arrayij 9 return min 10 a 11 char *to 12 from+,to+ 13 *to=*from 14 0 15 copy_str

13、ing(a,b)16 void search( float (*p)4, int n) 17 pji60 18 flag=1 19 idata.aD) (*p).data.a10. 以二进制只读方式打开一个已有的文本文件file1,正确调用fopen函数的方式是_。)FILE *fp;)FILE *fp;fp=fopen(file1,rb);fp=fopen(file1,r+);)FILE *fp;)FILE *fp;fp=fopen(file1,r);fp=fopen(file1,rb+);得分二. 填空题:(每空1分,共20分)请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。 程

14、序一个函数的定义由_和_两部分组成。 语言的整型变量可分为基本型、短整型、_和_。 语言在判断一个量是否为“真”时,以_代表“假”,以_代表“真”。 语言中的break语句只能用于_和_语句。 对_和_型数组不赋初值,系统会对所有元素自动赋以0值。 语言中“文件包含”是通过_命令完成的,而符号常量是通过_命令定义的。 对于数组,()表示_,()表示_。 若定义:struct int y, m, d; today, *pdata; 则为today分配内存 _ 字节,为pdata分配内存 _ 字节。 语言文件按数据的存放形式可分为_文件和_文件。 语言文件是一个_序列,这类文件称为_文件。得分三.

15、 程序归纳题(每题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(yz?y:z)?x:(yz?y:z); 3. void funs3( int num, int size ) int i=0, tmp;while( i=a&*ps=0&*ps=9) a2+; p+; printf(%d,%d n,a1, a2)

16、; 得分四. 程序分析题(每题2分,共10分)阅读程序,将其运行结果填在答题卡相应题目的横线上。答在试卷上不得分。1. #include stdio.h void main() static int a=1,2,3,4,5,6,*p; p=a; *(p+3)+=2; printf(%d,%dn,*p,*(p+3); 2. #include stdio.h void main() int x=1; int x=2; int x=3; printf(%2d,x); printf(%2d,x); printf(%2d,x); 3. #include #include void sort( char

17、*str, int n) char *tmp; int i,j; for( i=0; in-1; i+ ) for( j=0; j0) tmp=strj, strj=strj+1, strj+1=tmp; void main() char *ps,*str3= BOOK,COMPUTER,CHINA; int i; ps=str; sort(ps,3); for(i=0; i3; i+) printf(%d %s ,i+1, stri); 4. #include int leap_year(int year) return year%4=0 & year%100!=0 | year%400=0

18、; 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) month_day1+; for(i=1,days=mdate.day;imdate.month;i+) days+=month_dayi-1; printf(%d-%d is the %dth day in %d,mdate.month,mdate.day,days,mdate.ye

19、ar); 5. #include void add( int *x, int *y, int n) while(n-) *x+ += *y+; void main() int i=5; static int s1=2, 1, 0, 3, 2, s25; add(s2, s1, 5); while(i-) printf(%2d, s2i); 得分五. 程序设计题(每题10分,共40分)阅读下列程序,在指定位置上填入适当的内容使程序完整。请勿改动其它内容。请将正确答案填在答题卡上。答在试卷上不得分。1.函数insert将一个指定的单精度数按递减规律插入数组num中,注:数组num中已有12个按照递

20、减顺序排好序的单精度数。void insert( float num13, float new ) int i=11;/*answer begin*/*answer end*/ 编写函数mycmp实现库函数strcmp的功能:两个字符串的比较。int mycmp(char *p1,char *p2) /*answer begin*/*answer end*/ 3设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。#include struct person char name20; int count;leader3=“Li”,0,“Zhang”,0,”Wang“,0;

21、main() int i,j; char leader_name20; for(i=1;i=10;i+) /*answer begin*/ /*answer end*/ for(i=0; i3;i+) printf(%5s:%dn,,leaderi.count);4. 从键盘上输入一个字符串,将其中的小写字母转换成大写字母,然后输出到名为“test”的文本文件中保存。输入字符串以“!”结束。#include void main() int i; char str80; FILE *fp; if( (fp=fopen(test,w)=NULL) printf(cannot open filen); exit(0); printf(Input a string(end with !):); gets(str); /*answer begin*/ /*answer end*/参考答案:一. 单项选择题:(每题2分,共20分)CBBCB BACBA二. 填空题:(每题2分,共20分)1函数说明2函数体3长整型4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论