2023年C语言期末考试题目.pdf

上传人:无*** 文档编号:96242840 上传时间:2023-10-03 格式:PDF 页数:16 大小:1.46MB
返回 下载 相关 举报
2023年C语言期末考试题目.pdf_第1页
第1页 / 共16页
2023年C语言期末考试题目.pdf_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《2023年C语言期末考试题目.pdf》由会员分享,可在线阅读,更多相关《2023年C语言期末考试题目.pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、指 针一、单项选择题1.已知:inta,*y=&a;则 下 列 函 数 调 用 中 错 误 的 是。A)scanf(%d,&a);B)scanf(%d,y);C)printf(%d,a);D)printf(%d,y);2.说明语句int(*p)();的含义是。A)p是一个指向一维数组的指针变量B)p是指针变量,指向一个整型数据C)p是一个指向函数的指针,该函数的返回值是一个整型D)以上都不对3.设有说明int(*p)4;其中的标记符p是。A)4个指向整型变量的指针变量B)指向4个整型变量的函数指针C)一个指向具有4个整型元素的一维数组的指针D)具有4个指向整型变量的指针元素的一维指针数组4.已

2、知:char s10,*p=s,则在下列语句中,错误的语句是。A)p=s+5;B)s=p+s;C)s=p4;D)*p=sO;5.已知:char s100;inti;则 引 用 数 组 元 素 的 错 误 的 形 式 是。A)si+10 B)*(s+i)C)*(i+s)D)*(s+)+i)6.已知:char s6,*ps=s;则 对 的 的 赋 值 语 句 是。A)s=12345;B)*s=12345;C)ps=12345;D)*ps=12345;7.已 知:char a310=BeiJing,ShangHai,TianJin,*pa=a;不能对的显示字符串ShangHai”的语句是。A)pri

3、ntf(%s,a+l);C)printf(%s,*a+l);B)printf(%s,*(a+1);D)printf(%s,&al01);8.已知:inta43=1,2,3,4,5,6,7,8,9,10,11,12;int(*ptr)3=a,*p=a0;则以下可以对的表达数组元素al的表达式是。A)*(*(a+l)+2)B)*(*(p+5)C)(*ptr+l)+2 D)*(ptr+l)9.已知:int a=1,2,3,4,5,6,7,8,9,10/1,12,*p=a;则值为 3 的表达式是A)p+=2,*(p+)B)p+=2,*+p C)p+=2,*p+D)p+=2,+*p1 0.已知:int

4、a=1,2,3,4,y,*p=a;则执行语句y=(*+p)-;之后,数组a 各元素的值变为。A)0,1,3,4 B)1,1,3,4 C)1,2,2,4 D)1,2,3,3变量y 的值是。A)1 B)2 C)3 D)411.已知:inta=l,3,5,7,y*p=a;为使变量y 的值为3,下 列 语 句 对 的 的 是。A)y=+*p+;B)y=+(*p+);C)y=(+*p)+;D)y=(*+p)+;12.已知:int x=1,3,5,7,9,11,*ptr=x;则 可 以 对 的 引 用 数 组 元 素 的 语 句 是。A)x B)*(ptr)C)xf6 D)*(ptr)13.函数的功能是互

5、换变量x 和 y 中的值,且通过对的调用返回互换的结果。能对的执行此功能的函数是A)funa(int*x,int*y)B)funb(int x,int y)int t;p=x;*x=*y;*y=*p;t=x;x=y;y=t;C)func(int*x,int*y)D)func(int*x,int*y)*x=*y;*y=*x;*x=*x+*y;*y=*x-*y;)14.有定义如下:struct sk int a;float b;data,*p;假 如 p=&data;则对于结构变量data的成员a 的对的引用是。A)(*).data.a B)(*p).a C)p-data.a D)p.data.a

6、15.已知:struct st int n;struct st*next;);static struct st a3=l,&al,3,&a2,5,&a0,*p;假如下述语句的显示是2,则对p 的赋值是 oprintf(%d,+(p-next-n);A)p=&a0;B)p=&al;C)p=&a2;D)p=&a3;16.已知:struct person char name10;int age;class10=LiMing,29,ZhangHong,21,WangFang,22;下述表达式中,值为72的一个是 oA)classO-age+classl-age+class2-ageB)classl.n

7、ame5C)personl.name5D)clase-name517.已知:struct int i;char c;float a;test;则 sizeof(test)的值是。A)4 B)5 C)6 D)718.已知:union int i;char c;float a;test;则 sizeof(test)的值是。A)4 B)5 C)6 D)719.已知:union u_type int i;char ch;float a;temp;现在执行“temp.i=266;printf(”d”,temp.ch)”的结果是。A)266 B)256 C)10 D)120.若有以下程序段:struct

8、dent int n;int*m;);int a=l,b=2,c=3;struct dent s3=101,&a,102,&b,103,&c;struct dent*p=s;则以下表达式中值为2 的是 oA)(p+)-m B)*(p+)-m C)(*p).m D)*(+p)m21.若有以下说明语句,则对结构变量pup中sex域的对的引用是struct pupil char name20;int sex;pup,*p;p=&pup;A)p.pup.sex B)p-pup.sex C)(*p).pup.sex D)(*p).sex22.以下对结构变量stul中成员age的非法引用是。struct

9、student int age;int num;stul,*p;p=&stul;A)stu 1.ageB)student.ageC)p-ageD)(*p).age23.若有以下定义和语句:union data int i;char c;float f;a;int n;则以下语句对的的是 oA)a=5;B)a=2,a,1.2;C)printf(,%dn,a);D)n=a;24.已知:struct sk int a;int age;date,*p;假如要使指针p 指向data中的成员a,对 的 的 赋 值 语 句 是。A)p=(struct sk*)&data.a;B)p=(struct sk*)

10、data.a;C)p=&data.a;D)*p=data.a;25.已知 enum week sun,mon,tue,wed,thu,fri,satday;则对的的赋值语句是A)sun=0;B)san=day;C)sun=mon;D)day=sun;26.已知 enum color red,yellow=2,blue,white,blackjren;执行下述语句的输出结果是printf(,%d,ren=white);A)0 B)1 C)3 D)427.已知enum namezhao=1 ,qian,sun,liman;执行下述程序段后的输出是.man=O;switch(man)case 0:p

11、rintf(nPeoplenn);case 1:printf(nMannn);case 2:printf(Womann);default:printf(nErrornn);)A)People B)Man C)Woman D)Error28.下述关于枚举类型名的定义中,对的的是 oA)enem a=one,two,three;B)enem a one=9,two=-1,three;C)enem a=oneVtwo0,three;D)enem a one1 1,two,three;29.C语言中标准输入文献stdin是指 oA)键盘 B)显示器 C)鼠标 D)硬盘30.要打开一个已存在的非空文献f

12、ile”用于修改,选择对的的语句A)fp=fopen(file,r);B)fp=fopen(file,a+);C)fp=fopen(file,w);D fp=fopen(file,r+);31.当顺利执行了文献关闭操作时,fclose函 数 的 返 回 值 是。A)-l B)TRUE C)0 D)132.fscanf函 数 的 对 的 调 用 形 式 是。A)fscanf(文献指针,格式字符串,输出列表);B)fscanf(格式字符串,输出列表,文献指针);C)fscanf(格式字符串,文献指针,输出列表);D)fscanf(文献指针,格式字符串,输入列表);33.使用fgetc函数,则打开文

13、献的方式必须是 0A)只写B)追加C)读或读/写D)参考答案B和C都对的34.已知宏定义#define N 3#define Y(n)(N+l)*n)执行语句z=2*(N+Y(5+l);后,变量z的值是 oA)42 B)48 C)52 D)犯错35.已知宏定义#define SQ(x)x*x,执行语句printf(%d/0/SQ(3);后的输出结果是A)1 B)3 C)9 D)1036.下面程序的输出结果是 ovoid main()int a=l,2,3,4,5,6);int*p;p=a;printf(%d,*p);printf(%d,*(+p);printf(%d,*+p);printf(%

14、d,*(p-);p+=3;printf(%d%d,*p,*(a+3);)A)1 2 3 3 5 4 B)1 2 3 4 5 60 12 2 3 4 5 D)1 2 3 4 4 537.下面程序的输出结果是 ovoid main()int a34=1,2,3,4,5,6,7,8,9,10,11,12);int*p=a;p+=6;printf(%d,*p);/*/printf(%d,*(*(a+6);/*/printf(%d,*(al+=2);/*/printf(%d,*(&a00+6);/*/)A)7 7 7 7 B)句语法错误 C)句语法错误 D)句语法错误38.下面程序的输出结果是 o#de

15、fine FMT%Xn#include m ain()static int a 4=1,2,3,4,5,6,7,8,9,10,11,12;printf(FMT,a22);/*/printf(FMT,*(*(a+l)+l);/*/)A)9 B)11 C)A D)B A)6 B)7 C)8 D)前面三个参考答案均是错误的39.下面程序的输出结果是 o#include void main()int a=l,2,3,4,5);int x,y,*p;p=&a0;x=*(p+2);y=*(p+4);printf(n%d,%d,%dn,*p,x,y);A)1,3,5 B)1,2,3 C)1,2,4 D)1,

16、4,54 0.下面程序的输出结果是 ovoid ive(x,n)int x,n;int t,*p;p=x+n-1 ;while(xp)t=*x;*x+=*p;*p-=t;)return;)void main()int i,a=l,2,3,4,5,6,7,8,9,0);ive(a,10);for(i=0;i10;i+)printf(n%d n,ai);printf(nnn);)A)1 2 3 4 5 6 7 8 9 0 B)0 9 8 7 6 5 4 3 2 10 1 3 5 7 9 2 4 6 8 0 D)0 8 6 4 2 9 7 5 3 14 1.下 面 程 序 的 输 出 结 果 是。#

17、include string.hfun(char*w,int n)char t,*sl,*s2;sl=w;s2=w+n-1 ;while(sl s2)t=*sl+;*sl=*s2-;*s2=t;)void main()static char*p=1234567;fun(p,strlen(p);printf(%s,p);)A)7654321 B)1717171C)7171717 D)171171742.下面程序的输出结果是 o#include char*p=nabcdefghijklm nopq;void m ain()int i=0;while(*p+!=,e,);printf(n%cnn,*

18、p);)A)c B)d C)e D)f43.下面程序的输出结果是 o#include f(int x,int y)return(y-x);)void m ain()int a=5,b=6,c;int f(),(*g)()=f;printf(%dn,(*g)(a,b);)A)1 B)2 C)3 D)前面三个参考答案均是错误的44.下面程序的输出结果是 o#include void m ain()int a=l,*p,*pp;pp=&p;p=&a;a+;printf(u%d,%d,%dn,a,*p,*pp);A)2,1,1 B)2,1,2 C)2,2,2 D)程序有错误45.下面程序的输出结果是_

19、 _ _。void main()(char*alpha7=“ABCD”JEFGH”JIJK L”HMNOP”,“QRST”JUVW X”J YZ”;char*p;int i;p=alpha;for(i=0;i4;i+)printf(”c”,*(pi);printf(nnn);)A)AEIM B)BFJN C)ABCD D)DHLP46.以 下 程 序 的 输 出 结 果 是A)15 B)100 C)10 D)150#define MIN(x,y)(x)(y)?(x):(y)void main()int i,j,k;i=10:j=15;k=10*MIN(i,j);printf(%dn,k);47

20、.以 下 程 序 的 输 出 结 果 是A)11.10 B)12.00 C)21.10 D)1.10void fun(float*p 1,float*p2,float*s)s=(float*)calloc(1 ,sizeof(float);*s=*p1+*p2+;)void main()float a2=l.l,2.2,b2=10.0,20.0),*s=a;fun(a,b,s);printf(%5.2fn,*s);)48.以 下 程 序 的 输 出 结 果 是A)5,2,3B)-5,-12,-7 C)-5,-12,-7 D)5,-2,-7void sub(int x,int y,int*z)*

21、z=y-x;void main()int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(H%d,%d,%dn,a,b,c);)二、程序完善题1.下面程序的功能是实现数组元素中值的逆转。#include void main()int i,n=10,a10=1,2,3,4,5,6,7,8,9,10;invert(a,n-l);for(i=0;iwp);for(i=*n;i=p;i-);wp=x;+*n;3.以下程序的功能是:读入一行字符(如:a、y、z),按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾(如下图),然后再按输入的相反

22、顺序输出,并释放所有结点。zaA#include void main()struct node char info;struct node*link;*top,*p;char c;top二NULL;while(c=getchar()Q)p=(struct node*)malloc(sizeof(struct node);p-infb=c;p-Iink=top;top=p;)while(top)_重_;top=top-link;putchar(p-info);free(p);)三、编程题1.编写函数,通过指针将一个字符串反向。2.编写一个函数insert(sl,s2,ch),实现在字符串s i 中的指定字符ch位置处插入字符串s2。3.运用结构:struct complx int real;int im;;编写求两个复数之积的函数cm ult,并运用该函数求下列复数之积:(3+4i)X(5+6i)(2)(10+20i)X(30+40i)4.编写成绩排序程序。按学生的序号输入学生的成绩,按照分数由高到低的顺序输出学生的名次、该名次的分数、相同名次的人数和学号;同名次的学号输出在同一行中,一行最多输出 10个学号。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁