版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
期末考试模拟练习题(5)一、单选题(共40题,40分)1、以下for语句构成的循环执行了______次.#include<stdio.h>#defineN2#defineMN+1#defineNUM(M+1)*M/2main(){inti,n=0;for(i=1;i<=NUM;i++){n++;}printf("%d\n",n);}A、5B、6C、8D、9正确答案:C解析:2、有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序运行后的输出结果是______.A、运行后报错B、66C、611D、510正确答案:A2/26解析:3、函数调用:strcat(strcpy(str1,str2),str3)的功能是()A、将串str1复制到串str2中后再连接到串str3之后B、将串str1连接到串str2之后再复制到串str3之后C、将串str2连接到串str1之后再将串str1复制到串str3中D、将串str2复制到串str1中后再将串str3连接到串str1之后正确答案:D解析:4、以下程序中,while循环的循环次数是______main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}A、1B、4C、6D、死循环,不能确定次数正确答案:D解析:5、函数已声明,以下程序的输出结果是______.fun(intk){if(k>0)fun(k-1);printf("%d",k);}main(){intw=5;fun(w);printf("\n");}3/26A、54321B、012345C、12345D、543210正确答案:B解析:6、设有以下函数;f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中调用该函数,则输出结果是______.main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n",f(a));}A、789B、7911C、71013D、777正确答案:A解析:7、不能把字符串:Hello!赋给数组b的语句是______.A、charb[10]={'H','e','l','l','0','!'};4/26B、charb[10];b={'H','e','l','l','0','!'};C、charb[10];strcpy(b,"Hello!");D、charb[10]="Hello!";正确答案:B解析:8、有以下程序#include<stdio.h>intmain(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);return0;}程序运行后的输出结果是()A、3B、6C、9D、2正确答案:B解析:9、有以下程序#include<stdio.h>intmain(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);return0;}程序运行后的输出结果是______.5/26A、16B、10C、8D、6正确答案:B解析:10、执行下列语句后变量x和y的值是().y=10;x=y++;A、x=10,y=10B、x=11,y=11C、x=10,y=11D、x=11,y=10正确答案:C解析:11、以下for循环的执行次数是()for(i=1,j=3;(j<6)||(i>3);i++)printf("*");A、3B、无限次C、不定D、6次正确答案:B解析:12、有以下程序main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",c);}执行后的输出结果是()A、1B、26/26C、3D、4正确答案:C解析:13、以下选项中,不能正确赋值的是______.A、chars1[10];s1="chest";B、chars2[]={'C','t','e','s','t'};C、chars3[20]="Chest";D、chars4[40]="";正确答案:A解析:14、有以下程序voidpoint(char*p){p+=3;}voidmain(){charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);}程序运行后的输出结果是()A、aB、bC、cD、d正确答案:A解析:15、下列4个关于C语言的结论中错误的是().A、可以用dowhile语句实现的循环一定可以用while语句实现B、可以用for语句实现的循环一定可以用while语句实现C、可以用while语句实现的循环一定可以用for语句实现D、do-while语句与while语句的区别仅是关键字"while"出现的位置不同正确答案:D7/26解析:16、若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是_____.A、scanf("%d",a,b,c);B、scanf("%d%d%d",a,b,c);C、scanf("%d",p);D、scanf("%d",&p);正确答案:C解析:17、若已定义x和y为double类型,则表达式:x=1,y=x+3/2;的值是______.A、1B、2C、2.0D、2.5正确答案:C解析:18、Whatvaluestrcmp()functionreturnswhentwostringsarethesame?A、0B、2C、1D、-1正确答案:A解析:19、main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序运行后的输出结果是______.8/26A、11B、19C、13D、20正确答案:B解析:20、下列描述中不正确的是_____.A、字符型数组中可以存放字符串B、可以对字符串进行整体输入、输出C、可以对整型数组进行整体输入、输出D、不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值正确答案:C解析:21、函数已声明,以下程序的输出结果是______.#include<stdio.h>intfunc(inta,intb);intmain(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);return0;}intfunc(inta,intb){intm=0,i=2;i+=m+1;m=i+a+b;return(m);}A、8,17B、8,16C、8,20D、8,89/26正确答案:D解析:22、structSTRU{intb;charc:doubled;}ss;structSTRU*p1,*p2;p1=ss;p2=ss;下列说法中正确的是____________A、p1,p2是整型数据B、p1是结构体指向整型数据的指针C、p2存储的是字符数据D、p2是指向结构体变量的指针正确答案:D解析:23、设有如下定义:structss{charname[10];intage;charsex;}std[3],*p=std;下面各输入语句中错误的是______.A、scanf("%d",&(*p).age);B、scanf("%s",&);C、scanf("%c",&std[0].sex);D、scanf("%c",&(p->sex));正确答案:B解析:24、阅读以下函数#include<stdio.h>#include<string.h>main(){chars[20]="abc",t[20]="xyz";strcat(t,s);printf("%d\n",strlen(t));}输出结果为______.A、3B、5C、6D、20正确答案:C解析:25、下面程序段的运行结果是().char*s="abcde";s+=2;printf("%d",s);A、"cde"B、c'C、c'所对应的地址D、无结果正确答案:C解析:26、以下程序的输出结果是______.main(){intx[2][2]={4,3,2,1},*p=&x[0][0];printf("%d",*(p+1));}A、1B、2C、3D、4正确答案:C解析:27、若有定义:inta[2][3];,以下选项中对a数组元素正确引用的是______.11/26A、a[2][0]B、a[2][3]C、a[0][3]D、a[0][1]正确答案:D解析:28、break能用于()语句中.A、switch语句B、for语句C、switch语句和循环语句D、所有语句中正确答案:C解析:29、有以下程序,其中k的初值为八进制数k=011;则执行printf("%d\n",k++);程序运行后的输出结果是().A、12B、11C、10D、9正确答案:D解析:30、若有以下的说明:structperson{charname[20];intage;charsex;}a={"lining",20,'m'},*p=&a;则对字符串lining的引用方式不正确的是A、(*p).nameB、C、D、p->name正确答案:B12/26解析:31、inta[10];合法的数组元素的最大下标值为().A、10B、9C、1D、0正确答案:B解析:32、能够完成字符串拼接的函数是______A、strcpy()B、strlen()C、strcmp()D、strcat()正确答案:D解析:33、已有定义:inti,a[10],*p;,则合法的赋值语句是A、p=100;B、p=a[5];C、p=a[2]+2;D、p=a+2;正确答案:D解析:34、若有定义:doublex[]={0,2.3,4.5};则数组x存放的元素个数是_____.A、不确定B、1C、2D、3正确答案:D解析:13/2635、以下对二维数组a的正确说明是().A、inta[3][];B、floata(3,4);C、doublea[3][4];D、floata(3)(4);正确答案:C解析:36、以下程序的输出结果是______.main(){intx[2][2]={4,3,2,1},*p=&x[0][0];printf("%d",((*p)+1));}A、1B、2C、4D、5正确答案:D解析:37、C语言结构体类型变量在程序执行期间A、所有成员一直驻留在内存中B、只有一个成员驻留在内存中C、部分成员驻留在内存中D、没有成员驻留在内存中正确答案:A解析:38、设有以下语句structTT{charb;intc[2];}UU[10];则下面叙述中正确的是______.A、可以用UU定义结构体变量14/26B、上述语句完成了整型数组的定义C、TT是数组名D、所声明的结构体数组共有10个数组元素.正确答案:D解析:39、以下能对二维数组a进行正确初始化的语句是().A、inta[2][]={{1,0,1},{5,2,3}};B、inta[][3]={{1,2,3},{4,5,6}};C、inta[2][4]={{1,2,3},{4,5},{6}};D、inta[][2]={{1,0,1}{},{1,1}};正确答案:B解析:40、以下数组定义中不正确的是______.A、inta[2][3];B、intb[][3]={0,1,2};C、intc[100][100]={0};D、intd[3][]={{1,2},{1,2,3},{1,2,3,4}};正确答案:D解析:二、填空题(共6题,30分)1、/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:编写函数fun求1000以内所有8的倍数之和。------------------------------------------------------*/#include<stdio.h>#defineN1000intfun(intm){/**********FOUND**********/ints=0;i;/**********FOUND**********/15/26for(i=1;i>N;i++)/**********FOUND**********/if(i/m==0)s+=i;returns;}voidmain(){intsum;sum=fun(8);printf("%d以内所有%d的倍数之和为:%d\n",N,8,sum);}正确答案:第1空:ints=0,i;;ints=0;inti;第2空:for(i=1;i<N;i++)第3空:if(i%m==0)解析:2、/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。例如:输入圆的半径值:19.527输出为:s=598.950017。------------------------------------------------------*/#include<stdio.h>/**********FOUND**********/16/26doublefun(r){doubles;/**********FOUND**********/s=1/2*3.14159*r*r;/**********FOUND**********/returnr;}voidmain(){floatx;printf("Enterx:");scanf("%f",&x);printf("s=%f\n",fun(x));}正确答案:第1空:floatfun(floatr);doublefun(floatr);doublefun(doubler)第2空:s=1.0/2*3.14159*r*r;;s=1/2.0*3.14159*r*r;;s=0.5*3.14159*r*r;;s=(double)1/2*3.14159*r*r;;s=1/(double)2*3.14159*r*r;第3空:returns;解析:3、/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值17/26小于等于0.0001。π111—=1-—+—-—+...4357------------------------------------------------------*/#include<stdio.h>#include<math.h>voidfun(){inti=1;floats=0.0,t=1.0,p=1;/**********FOUND**********/while(fabs(t)<=1e-4){/**********FOUND**********/s=t;p=-p;/**********FOUND**********/i=i+1;t=p/i;}/**********FOUND**********/printf("pi=%d\n",s*4);}voidmain(){fun();}正确答案:第1空:while(fabs(t)>=1e-4);while(0.0001<=fabs(t));while(1e-4<fabs(t));while(fabs(t)>0.0001);while(fabs(t)>1e-4);while(0.0001<fabs(t));while(1e-4<=fabs(t));while(fabs(t)>=0.0001)第2空:s=s+t;;s+=t;;s=t+s;18/26第3空:i=i+2;;i+=2;第4空:printf("pi=%f\n",s*4);解析:4、/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:求100以内(包括100)的偶数之和.------------------------------------------------------*/#include<stdio.h>voidmain(){/**********FOUND**********/inti,sum=1;/**********FOUND**********/for(i=2;i<=100;i+=1)sum+=i;/**********FOUND**********/printf("Sum=%d\n";sum);}正确答案:第1空:inti,sum=0;第2空:for(i=2;i<=100;i+=2);for(i=2;i<=100;i=i+2)19/26第3空:printf("Sum=%d\n",sum);解析:5、/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:求出以下分数序列的前n项之和。和值通过函数值返回main函数。2/1+3/2+5/3+8/5+13/8+21/13……例如:若n=5,则应输出:8.391667。------------------------------------------------------*/#include<conio.h>#include<stdio.h>/**********FOUND**********/fun(intn){inta,b,c,k;doubles;s=0.0;a=2;b=1;for(k=1;k<=n;k++){/**********FOUND**********/s=(double)a/b;c=a;a=a+b;b=c;}/**********FOUND**********/returnc;}voidmain(){intn=5;printf("\nThevalueoffunctionis:%lf\n",fun(n));}正确答案:第1空:doublefun(intn)第2空:s=s+(double)a/b;;s+=(double)a/b;;s+=a/(double)b;;s=s+a/(double)b;第3空:returns;解析:6、/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:编写函数fun计算下列分段函数的值:x*x+xx<0且x≠-3f(x)=x*x+5x0≤x<10且x≠2及x≠3x*x+x-1其它------------------------------------------------------*/#include<stdio.h>doublefun(floatx){/**********FOUND**********/doubley/**********FOUND**********/if(x<0||x!=-3.0)y=x*x+x;elseif(x>=0&&x<10.0&&x!=2.0&&x!=3.0)y=x*x+5*x;elsey=x*x+x-1;/**********FOUND**********/returnx;}voidmain(){21/26doublef;floatx;printf("inputx=");scanf("%f",&x);f=fun(x);printf("x=%f,f(x)=%f\n",x,f);}正确答案:第1空:doubley;第2空:if(x<0&&x!=-3.0)第3空:returny;;return(y);解析:三、简答题(共3题,30分)1、编写一函数。功能:求给定正整数n以内的素数之积。(n<28)答题要求:写出完整代码,并截图,以“附件”形式上传。#include<stdio.h>longfun(intn){/**********Program**********//*********
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年基坑施工安全培训模拟试题(含答案)
- 2026年手术室常用药模拟试题及答案
- 2026年一级建造师市政工程模拟试题及答案
- 2026年中国医大康复医学模拟试题带答案
- 2026年药品生产培训模拟试题及答案
- 2026年公司小微信贷员理论知识考核试卷(含答案)
- 2026年史前先秦美术模拟试题及答案
- 2026年健康咨询师职业资格考试心理疾病诊断备考试题(含答案)
- 2026年找到目击者模拟试题带答案
- 2026年沭阳中专护理模拟试卷及参考答案
- 2026年铁电存储器行业洞察报告及未来五至十年发展趋势报告
- 2025年安徽省安庆市高一物理上册期中考试试卷及答案
- 2026年个人年度健康体检报告解读与建议
- 非标自动化合同范本
- 化工类高级工程师答辩公共题
- 危化品道路运输安全培训课件
- 幼儿园小班数学活动《水果在哪里》课件
- 砖厂安全培训课件
- 【蓝豚医陪】蓝豚医陪陪诊服务发展研究报告
- 【山东省人工智能协会】家庭大脑白皮书2025-智慧生活空间全链路场景体验重塑
- 生鲜供货合同范本5篇
评论
0/150
提交评论