《安徽大学C语言程序设计期末考试试题B.pdf》由会员分享,可在线阅读,更多相关《安徽大学C语言程序设计期末考试试题B.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、安徽大学安徽大学 C C 语言程序设计期末考试试题语言程序设计期末考试试题 B B安徽大学安徽大学 20 -2020 -20学年第学年第学期学期C C 语言程序设计期末考试试卷(语言程序设计期末考试试卷(B B 卷卷 120120 分钟)分钟)年级年级院系专业院系专业姓名姓名学号学号座位号座位号题号得分一二三四五得分一一.单项选择题:(每题单项选择题:(每题 2 2 分,共分,共 2020 分)分)得分下列各题下列各题 A)A)、B)B)、C)C)、D)D)四个选项中只有一个是正确的四个选项中只有一个是正确的,请将正确选项填请将正确选项填在答题卡相应题目的横线上。答在试卷上不得分。在答题卡相应
2、题目的横线上。答在试卷上不得分。执行程序执行程序:int a;:int a;printf(%d n,(a=3*5,a*4,a+5);后,后,a a的值是的值是_。)6060)2020)1515)1010程序段:程序段:int x=023;printf(%d n,-x);int x=023;printf(%d n,-x);的输出是的输出是_。)1919)1818)2323)22223程序段:程序段:static char s10=C,h,i,n,a;printf(%dn,strlen(s);的输出输出是_。)6 6)5 5)1111)10104 4若若 fun(int x)printf(“%df
3、un(int x)printf(“%d n”,x);,n”,x);,则则 fun_fun_。)返回值为)返回值为 void void 类型类型)返回值类型无法确定)返回值类型无法确定)返回值为)返回值为 int int 类型类型)没有返回值)没有返回值5.5.有宏定义:有宏定义:#define MULT1(a,b)a*b#define MULT1(a,b)a*b#define MULT2(a,b)(a)*(b)#define MULT2(a,b)(a)*(b)且引用宏:且引用宏:y=MULT1(3+2,5+8);z=MULT2(3+2,5+8);y=MULT1(3+2,5+8);z=MULT2
4、(3+2,5+8);则则 y y 和和 z z 的值是的值是_。)y=65,z=65)y=21,z=65)y=65,z=21)y=21,z=216 程序段 char s=Hello,*p;p=s;执行后,*(p+5)的值是_。)oo)00)oo的地址的地址)不确定的值)不确定的值7.7.程序段:程序段:char*s=”ABCD”,*p;for(p=s;*p;p+)printf(%sn,p);的输出是的输出是_。)ABCDABCD)A A)D D)ABCDABCD BCD B C ABC BCD B C ABC CD C B AB CD C B AB D D A A D D A A8.8.若定义
5、:若定义:int(*p)3;int(*p)3;则标识符则标识符 p_p_。)定义不合法。)定义不合法。)是一个指针数组名,每个元素是一个指向整型变量的指针。)是一个指针数组名,每个元素是一个指向整型变量的指针。)是一个指针,它指向一个具有三个元素的一维数组。)是一个指针,它指向一个具有三个元素的一维数组。)是一个指向整型变量的指针。)是一个指向整型变量的指针。9.9.定义定义:struct sk int a;float b;data,*p;:struct sk int a;float b;data,*p;且且 p=&data;p=&data;则正确引用成员则正确引用成员 a a的方式是的方式是
6、 _ _。A)p.data.a B)(*p).a C)p-data.a D)A)p.data.a B)(*p).a C)p-data.a D)(*p).data.a(*p).data.a10.10.以二进制只读方式打开一个已有的文本文件以二进制只读方式打开一个已有的文本文件 file1file1,正确调用正确调用 fopenfopen 函数的函数的方式是方式是_。)FILE*fp;FILE*fp;)FILE*fp;FILE*fp;fp=fopen(file1,rb);fp=fopen(file1,r+);fp=fopen(file1,rb);fp=fopen(file1,r+);)FILE*f
7、p;FILE*fp;)FILE*fp;FILE*fp;fp=fopen(file1,r);fp=fopen(file1,rb+);fp=fopen(file1,r);fp=fopen(file1,rb+);得分二二.填空题:(每空填空题:(每空 1 1 分,共分,共 2020 分)分)请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。请将正确答案填在答题卡相应题目的横线上。答在试卷上不得分。程序一个函数的定义由程序一个函数的定义由_和和_两部分组成。两部分组成。语言的整型变量可分为基本型、短整型、语言的整型变量可分为基本型、短整型、_和和_。语言在判断一个量是否为“真”时,以语言在判断
8、一个量是否为“真”时,以_代表“假”,以代表“假”,以_代表代表“真”。“真”。语言中的语言中的 breakbreak 语句只能用于语句只能用于_和和_语句。语句。对对_和和_型数组不赋初值,型数组不赋初值,系统会对所有元素自动赋以系统会对所有元素自动赋以 0 0 值。值。语言中“文件包含”语言中“文件包含”是通过是通过_命令完成的,而符号常量是通命令完成的,而符号常量是通过过_命令定义的。命令定义的。对于数组对于数组 ,()表示,()表示_,(,()表示)表示_。若定义:若定义:struct int y,m,d;today,*pdata;struct int y,m,d;today,*pda
9、ta;则为则为 todaytoday 分配内存分配内存_ 字节,为字节,为 pdatapdata 分配内存分配内存 _ _ 字节。字节。语言文件按数据的存放形式可分为语言文件按数据的存放形式可分为_文件和文件和_文件。文件。语言文件是一个语言文件是一个_序列,这类文件称为序列,这类文件称为_文件。文件。三三.程序归纳题(每题程序归纳题(每题 2 2 分,共分,共 1010 分)分)得分阅读下列函数,总结其主要功能填在答题卡相应的横线上。答在试卷上不阅读下列函数,总结其主要功能填在答题卡相应的横线上。答在试卷上不得分。得分。1.int fun1(char*str)char*ptr=str;1.i
10、nt fun1(char*str)char*ptr=str;while(*ptr+);return ptr-str-1;while(*ptr+);return ptr-str-1;2.double fun2(double x,double y,double z)2.double fun2(double x,double y,double z)return x(yz?y:z)?x:(yz?y:z);return x(yz?y:z)?x:(yz?y:z);3.void funs3(int num,int size)int i=0,tmp;3.void funs3(int num,int size)
11、int i=0,tmp;while(isize/2)while(i=a&*ps=a&*ps=0&*ps=0&*ps=9)a2+;p+;p+;printf(%d,%d n,a1,a2);printf(%d,%d n,a1,a2);四四.程序分析题(每题程序分析题(每题 2 2 分,共分,共 1010 分)分)得分阅读程序,将其运行结果填在答题卡相应题目的横线上。答在试卷上不得阅读程序,将其运行结果填在答题卡相应题目的横线上。答在试卷上不得分。分。1.#include stdio.h1.#include stdio.h void main()void main()static int a=1,2,
12、3,4,5,6,*p;static int a=1,2,3,4,5,6,*p;p=a;*(p+3)+=2;p=a;*(p+3)+=2;printf(%d,%dn,*p,*(p+3);printf(%d,%dn,*p,*(p+3);2.#include stdio.h2.#include stdio.h void main()int x=1;void main()int x=1;int x=2;int x=2;int x=3;printf(%2d,x);int x=3;printf(%2d,x);printf(%2d,x);printf(%2d,x);printf(%2d,x);printf(%
13、2d,x);3.#include 3.#include#include#include void sort(char*str,int n)void sort(char*str,int n)char*tmp;int i,j;char*tmp;int i,j;for(i=0;in-1;i+)for(i=0;in-1;i+)for(j=0;jn-i-1;j+)for(j=0;j0)if(strcmp(strj,strj+1)0)tmp=strj,strj=strj+1,strj+1=tmp;tmp=strj,strj=strj+1,strj+1=tmp;void main()void main()c
14、har*ps,*str3=BOOK char*ps,*str3=BOOK,COMPUTERCOMPUTER,CHINACHINA;int i;int i;ps=str;sort(ps,3);ps=str;sort(ps,3);for(i=0;i3;i+)printf(%d%s,i+1,stri);for(i=0;i3;i+)printf(%d%s,i+1,stri);4.#include 4.#include int leap_year(int year)int leap_year(int year)return year%4=0&year%100!=0|year%400=0;return y
15、ear%4=0&year%100!=0|year%400=0;void main()void main()int month_day=31,28,31,30,31,30,31,31,30,31,30,31,int month_day=31,28,31,30,31,30,31,31,30,31,30,31,days,i;days,i;struct date struct date int year;int year;int month;int month;int day;int day;mdate=2008,5,1;mdate=2008,5,1;if(leap_year(mdate.year)i
16、f(leap_year(mdate.year)month_day1+;month_day1+;for(i=1,days=mdate.day;imdate.month;i+)for(i=1,days=mdate.day;imdate.month;i+)days+=month_dayi-1;days+=month_dayi-1;printf(%d-%d is the%dth day in%d,printf(%d-%d is the%dth day in%d,mdate.month,mdate.day,days,mdate.year);mdate.month,mdate.day,days,mdate
17、.year);5.#include 5.#include void add(int*x,int*y,int n)void add(int*x,int*y,int n)while(n-)*x+=*y+;while(n-)*x+=*y+;void main()void main()int i=5;static int s1=2,1,0,3,2,s25;int i=5;static int s1=2,1,0,3,2,s25;add(s2,s1,5);add(s2,s1,5);while(i-)printf(%2d,s2i);while(i-)printf(%2d,s2i);五五.程序设计题(每题程序
18、设计题(每题 1010 分,共分,共 4040 分)分)得分阅读下列程序,在指定位置上填入适当的内容使程序完整。请勿改动其它阅读下列程序,在指定位置上填入适当的内容使程序完整。请勿改动其它内容。请将正确答案填在答题卡上。答在试卷上不得分。内容。请将正确答案填在答题卡上。答在试卷上不得分。1.1.函数函数 insertinsert 将一个指定的单精度数按递减规律插入数组将一个指定的单精度数按递减规律插入数组 numnum 中,注:数组中,注:数组numnum 中已有中已有 1212 个按照递减顺序排好序的单精度数。个按照递减顺序排好序的单精度数。void insert(float num13,v
19、oid insert(float num13,float new)float new)int i=11;int i=11;/*answer begin*/*answer end*/编写函数编写函数 mycmpmycmp 实现库函数实现库函数 strcmpstrcmp 的功能:两个字符串的比较。的功能:两个字符串的比较。int mycmp(char*p1,char*p2)int mycmp(char*p1,char*p2)/*answer begin*/*answer end*/3 3设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得设有三个候选人,每次输入一个得票的候选人的名字
20、,要求最后输出各人得票结果。票结果。#include#include struct personstruct person char name20;char name20;int count;int count;leader3=“Li”,0,“Zhang”,0,”Wang“,0;leader3=“Li”,0,“Zhang”,0,”Wang“,0;main()main()int i,j;char leader_name20;int i,j;char leader_name20;for(i=1;i=10;i+)for(i=1;i=10;i+)/*answer begin*/*answer end*
21、/for(i=0;for(i=0;i3;i+)i3;i+)printf(%5s:%dn,leaderi.name,leaderi.count);printf(%5s:%dn,leaderi.name,leaderi.count);4.4.从键盘上输入一个字符串,将其中的小写字母转换成大写字母,然后输出到从键盘上输入一个字符串,将其中的小写字母转换成大写字母,然后输出到名为“名为“testtest”的文本文件中保存。输入字符串以“!”结束。”的文本文件中保存。输入字符串以“!”结束。#include#include void main()void main()int i;char str80;F
22、ILE*fp;int i;char str80;FILE*fp;if(fp=fopen(test,w)=NULL)if(fp=fopen(test,w)=NULL)printf(cannot open filen);printf(cannot open filen);exit(0);exit(0);printf(Input a string(end with!):);printf(Input a string(end with!):);gets(str);gets(str);/*answer begin*/*answer end*/参考答案参考答案一一.单项选择题:(每题单项选择题:(每题 2
23、 2 分,共分,共 2020 分)分)CBBCB BACBA二二.填空题:(每题填空题:(每题 2 2 分,共分,共 2020 分)分)1 函数说明 2 函数体 3 长整型 4 无符号型 5 06非 0 7 switch 8 循环 9 extern 10staticstatic11#include 12#define 13&x23 14 x32 15 616 2 17 文本 18 二进制 19 字符(字节)20 流式三三.程序归纳题(每题程序归纳题(每题 2 2 分,共分,共 1010 分)分)1 求字符串长度2 求 3 个 double 型数中的大数3 翻转整型数组4 复制字符串5 统计指定
24、字符串中小写字母、数字的个数四四.程序分析题(每题程序分析题(每题 2 2 分,共分,共 1010 分)分)1 1,6 2 3 213 1 BOOK 2 CHINA 3 COMPUTER 4 5-1 is the 122thday in 20085 2 3 0 1 2注:标点符号错误不另扣分五五.程序设计题(每题程序设计题(每题 1010 分,共分,共 4040 分)分)1 1num12=new;num12=new;存储新值:存储新值:2 2 分分 while(i=0&datai=0&datai datai+1)datai+1)循环至插入点:循环至插入点:2 2 分分 复合语句:复合语句:1
25、1 分分 new=numi+1;new=numi+1;暂存新值:暂存新值:1 1 分分 numi+1=numi;numi+1=numi;更新旧值:更新旧值:2 2 分分 numi=new;numi=new;更新新值:更新新值:1 1 分分 i-;i-;循环计数:循环计数:1 1 分分 2 while(*p1&*p2&*p1=*p2)while(*p1&*p2&*p1=*p2)依次比较两个字符串直至其结束:依次比较两个字符串直至其结束:6 6分分p1+,p2+;p1+,p2+;更新位置指示:更新位置指示:2 2 分分 return*p1-*p2;return*p1-*p2;返回差值:返回差值:2
26、 2 分分3 3 scanf(%s,leader_name);scanf(%s,leader_name);唱票:唱票:2 2 分分 for(j=0;j3;j+)for(j=0;j=a&stri=a&stri=z)判断是否是小写字母:判断是否是小写字母:2 2 分分 stri-=32;stri-=32;转换为大写字母:转换为大写字母:2 2 分分 printf(Writting%s into file test,str);printf(Writting%s into file test,str);fputs(str,fp);fputs(str,fp);将字符串存储到文件中:将字符串存储到文件中:2 2 分分 fclose(fp);fclose(fp);关闭文件:关闭文件:2 2 分分