广州大学2020-2021学年第1学期《C语言程序设计》期末考试试卷(A卷)及标准答案.docx

上传人(卖家):奋斗的小小 文档编号:5351670 上传时间:2023-03-27 格式:DOCX 页数:13 大小:31.38KB
下载 相关 举报
广州大学2020-2021学年第1学期《C语言程序设计》期末考试试卷(A卷)及标准答案.docx_第1页
第1页 / 共13页
广州大学2020-2021学年第1学期《C语言程序设计》期末考试试卷(A卷)及标准答案.docx_第2页
第2页 / 共13页
广州大学2020-2021学年第1学期《C语言程序设计》期末考试试卷(A卷)及标准答案.docx_第3页
第3页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、广州大学20202021学年第1学期C语言程序设计考试试卷(A卷)考试范围:C语言程序设计;满分:100分;考试时间:120分钟院/系:_专业:_姓名:_ 考号:_题号一二三四总分得分注意事项:1答题前填写好自己的姓名、班级、考号等信息2请将答案正确填写在答题卡上第I卷(选择题)评卷人得分一、选择题(共20题,每题2分,共40分。下列每小题的四个选项中,有一项是最符合题意的,错选、多选或未选均无分)1若有定义:char*ps=aa,bb,cc,dd;,则以下叙述正确的是()。Aps是字符串aaB*ps是字符串aa的首地址Cps是字符串aa的首地址D*ps是字符串aa2有以下程序#include

2、void fun(char *c,int d) c=c+1; d=d+1; printf(%c,%c,*c,d);main() char b=a,a=A; fun(&b,a); printf(%c,%cn,b,a);程序运行后的输出结果是()。Ab,B,b,ABb,B,B,ACa,B,B,aDa,B,a,B3有以下程序:#includemain() int s = 1,2,3,4,5,6, *ps,k; for(k=0;k3;k+) ps=s; printf(%d,*(ps+1); 程序的运行结果是()。A246B135C123D4564有以下程序#include void f(int *q)

3、 int i=0; for(;i5;i+)(*q)+;main() int a=1,2,3,4,5,i; f(a); for(i=0;i5;i+) printf(%d,a);程序运行后的输出结果是()。A2,2,3,4,5,B6,2,3,4,5,C1,2,3,4,5,D2,3,4,5,6,5已定义以下函数int fun(int*p) return *p;fun函数返回值是()。A一个整数B不确定的值C形参p中存放的值D形参p的地址值6以下叙述中错误的是()。A当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULLB函数可以返回地址值C改变函数形参的值,不会改变对应实参的值D可以给指

4、针变量赋一个整数作为地址值7设有如下函数定义:int fun(int k) if(k1) return 0; else if(k=1) return 1; else return fun(k-1)+1;若执行调用语句:n=fun(3);,则函数fun()总共被调用的次数是()。A2B3C4D58有以下程序#include int f(int n) int t=0,a=5; if(n/2) int a=6; t+=a+; else int a=7; t+=a+; return t+a+;main() int s=0,i=0; for(;i2;i+) s+=f(i); printf(%dn,s);

5、程序运行后的输出结果是()。A24B28C32D369以下不能对文件进行输出的库函数是()。AfwriteBfputsCfpoutDfprintf10字符数组a和b中存储了两个字符串,判断字符串a和b是否相等,应当使用的是()。Aif(strcmp(a,b)=0)Bif(strcpy(a,b)Cif(a=b)Dif(a=b)11有以下程序#includemain() int a = 1,2,3,4,5, b = 0,2,1,3,0, i, s=0; for(i=0;i5;i+) s=s+a; printf(%dn,s);程序运行后的输出结果是()。A6B10C11D1512有以下程序:#inc

6、lude void fun(int a,int n) int i; for(i=0;in;i+) if(i % 3=0) a-=n; else a+=n; main() int c=6,7,8,9,10,i; fun(c,5); for(i=0;i5;i+)printf(%d,c); printf(n);程序运行后的输出结果是()。A1,12,13,4,15,B10,9,8,7,6,C1,7,13,9,15,D10,12,8,4,6,13若有以下程序#include main() int a=-2,b=0; while(a+) +b; printf(%d,%dn,a,b);则程序的输出结果是(

7、)。A1,2B0,2C1,3D2,314若有以下程序#include main() int s=0,n; for(n=0;n4;n+) switch(n) default:s+=4; case 1:s+=1;break; case 2:s+=2;break; case 3:s+=3; printf(%dn,s);则程序的输出结果是()。A13B10C11D1515执行以下程序段后,w的值为()。int w=A,x=14,y=15;w=(x|y)&(wa);A-1BNULLC1D016有以下程序段#includemain() int j; float y; char name; scanf(%2

8、d%f%s,&j,&y,name);当执行上述程序段,从键盘上输入55566 7777123后,y的值为()。A566.0B55566.0C7777.0D566777.017若有定义语句double x,y,*px,*py;执行了px=&x;py=&y;之后,输入语句正确的是()。Ascanf(%f%f,x,y);Bscanf(%f%f&x,&y);Cscanf(%1f%1e,px,py);Dscanf(%1f%1f,x,y);18以下选项中关于程序模块化的叙述错误的是()。A把程序分成若干相对独立的模块,可便于编码和调试B把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C可采用

9、自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序19有以下程序:#include typedef struct stu char name; char gender; int score; STU;void f(STU a, STU *b) *b = a; printf(%s,%c,%d, b-name, b-gender, b-score);main() STU a=Zhao, m, 290, b=Qian, f, 350; f(a,&b); printf(%s,%c,%dn, b.name, b.gender,

10、 b.score);程序运行后的输出结果是()。AZhao,m,290,Qian,f,350BQian,m,290,Zhao,m,290CQian,f,350,Qian,f,350DZhao,m,290,Zhao,m,29020有以下程序:#include#includemain( ) char w, a = abcdef, ghijkl, mnopq, rstuv, wxyz.; int i; for(i=0;i5;i+) w=a)-1; w=0; puts(w);Aflqv.BagmrwCekpuyDflqvz第II卷(非选择题)评卷人得分二、填空题(共3题,每题8分,共24分)21下面程

11、序的功能是从键盘输入一个字符串,然后反序输出输入的字符串。#include struct node char data;struct node *link;*head;main() char ch;struct node *p;head = NULL;while( ch=getchar()!=n ) p = (struct node *)malloc(sizeof(struct node);p-data = ch;p-link = ;head = ; ;while( p!=NULL ) printf(%c , p-data);p = p-link;22有以下程序段:s=1.0;for(k=1;

12、k=n;k+)s=s+1.0/(k*(k+1);printf(%fn,s);填空完成下述程序,使之与上述程序的功能完全相同。s=0.0; ;k=0; do s=s+d; ;d=1.0/(k*(k+1);while( );printf(%fn,s);23下面程序的功能是从键盘上输入两个字符串,对两个字符串分别排序;然后将它们合并,合并后的字符串按ASCII码值从小到大排序,并删去相同的字符。#include strmerge(a,b,c) /* 将已排好序的字符串a、b合并到c */char *a,*b,*c; char t,*w;w=c;while( *a!= 0 *b!=0 ) t= ?*a

13、+:*b*a ? *b+ : ( ); /* 将*a、*b的小者存入t */if( *w 0 ) *w=t;else if( t *w) *+w=t; /* 将与*w不相同的t存入w */while( *a != 0 ) /* 以下将a或b中剩下的字符存入w */if( *a != *w ) *+w=*a+;else a+;while( *b != 0)if( *b != *w ) *+w=*b+;else b+;*+w = ;strsort( char *s ) /* 将字符串s中的字符排序 */ int i,j,n;char t,*w; ;for( n=0;*w != 0; )w+;for

14、( i=0;in-1;i+ )for( j=i+1;jsj ) main( ) char s1100,s2100,s3200;printf(nPlease Input First String:);scanf(%s,s1);printf(nPlease Input Second String:);scanf(%s,s2);strsort(s1);strsort(s2); = 0;strmerge(s1,s2,s3);printf(nResult:%s,s3);评卷人得分三、改错题(共1题,每题16分,共16分)24请根据以下各小题的要求设计C应用程序(包括界面和代码)。下列给定的程序中,函数f

15、un的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中。例如,输入的数为55 12 34,输出结果应当是:a=55.0,b=34.0,c=12.0。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序如下:#include #include void fun(float p,float q,float *s) float *k; k = (float *)malloc(sizeof(float); if(*p*q) /*found*/ k=*p;p=q;*q=k; /*found*/ if(*s*p) /*found*

16、/ k=*s; s=p; *p=k; if(*q*s) /*found*/ k=*q; q=s; *s=k; free(k);main() float a,b,c; printf(Input a b c: ); scanf(%f%f%f,&a,&b,&c); printf(a = %4.1f, b = %4.1f, c = %4.1fnn,a,b,c); fun(&a,&b,&c); printf(a = %4.1f, b = %4.1f, c = %4.1fnn,a,b,c);评卷人得分四、设计题(共1题,每题20分,共20分)25请根据以下要求设计C应用程序。请编写函数fun,它的功能是:

17、统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d中,把10至19岁年龄段的人数放在d中,把20至29岁年龄段的人数放在d中,其余依次类推,把100岁(含100岁)以上年龄的人数放在d中。结果在主函数中输出。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序如下:#include #define N 50#define M 11void fun(int a, int b) double rnd() static int t=29,c=217,m=1024,

18、r=0; r= (r*t+c)%m; return (double) r/m);main () int age,i,d; for(i=0; i N; i+) age = (int)(115*rnd (); printf (The original data : n); for(i=0; i N; i+) printf(i+1)%10 = 0? %4dn:%4d,age); printf(nn); fun(age,d); for(i=0; i 10; i+) printf(%4d-%4d :%4dn, i*10,i*10+9,d); printf(Over 100 : %4dn,d);【标准答案

19、】第I卷(选择题)一、选择题(共20题,每题2分,共40分。下列每小题的四个选项中,有一项是最符合题意的,错选、多选或未选均无分)1C2A 3A4B5A 6D7B8A 9C10A11C12A13A14C15C16A17C18C19D20A第II卷(非选择题)二、填空题(共3题,每题8分,共24分)21 head p p=head22 d=1 k+ k=n23 & *a*b *a+, *b+ = != 0 w=s n+ t=si;si=sj;sj=t; s30三、改错题(共1题,每题16分,共16分)24(1)错误:k=*p;p=q;*q=k;正确:*k=*p;* p=*q;q=k;(2)错误:

20、if(*s*p) (3)错误:k=*s;s=p;*p=k;正确:*k=*8;s=p;p=k;(4)错误:k=*q;q=s;*s=k;正确:*k=*q;q=s;s=k;四、设计题(共1题,每题20分,共20分)25void fun(int a, int b) int i,j; for (j=0; jM;j+) b=0; for (i=0; iN;i+) switch (a/10) case 0:b+; break; case 1:b+; break; case 2:b+; break; case 3:b+; break; case 4:b+; break; case 5:b+; break; case 6:b+; break; case 7:b+; break; case 8:b+; break; case 9:b+; break; default:b+; break; 第 13 页 共 13 页

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 各类题库
版权提示 | 免责声明

1,本文(广州大学2020-2021学年第1学期《C语言程序设计》期末考试试卷(A卷)及标准答案.docx)为本站会员(奋斗的小小)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|