2024年C语言考试题库_第1页
2024年C语言考试题库_第2页
2024年C语言考试题库_第3页
2024年C语言考试题库_第4页
2024年C语言考试题库_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

试卷題型及分值比例:选择題 10個題×2=20填空題 5個空×2=10讀程序題 8個空×3=24补写程序題5小題计12個空,共46分 總计:28小題、100分、120分钟考核范围:数据类型、三大构造、数组(不含6.5节)、函数(不含7.5-7.7节)、指针(不含8.5节)、构造体(9.1节)试題考核點及难度如下:(從如下題库中选題,试題會变数,但难度不变)壹、选择題1、如下說法中不對的的是(C)A、C語言程序中必须有壹种main()函数,從main()函数的第壹条語句開始执行B、非主函数都是在执行主函数時,通過函数调用或嵌套调用而执行C、C語言程序中的main()函数必须放在程序的開始位置D、C語言程序總是在main()函数的最终壹条語句結束2、下列各项中,属于C語言程序中語句的是(B)A、a=b+c B、a=2; C、/*programme*/ D、#include<stdio.h>3、C語言中用于构造化程序设计的3种基本构造是(A)A、次序构造,选择构造,循环构造 B、递归构造,循环构造,转移构造C、嵌套构造,递归构造,次序构造 D、循环构造,转移构造,次序构造4、如下选项中不属于C語言的数据类型的是(D)A、signedshortint B、unsignedlongintC、unsignedint D、longshort5、下面有关for循环的對的描述是(A)A、for循环的循环体語句中,可以包括多条語句,但必须用花括号括起来B、for循环是先执行循环体語句,後判断体現式C、在for循环中,不能用break語句跳出循环体D、for循环只能用于循环次数已經确定的状况6、如下說法中不對的的是(C)A、C語句必须以分号結束B、复合語句在語法上被看作壹条語句C、空語句出目前任何位置都不會影响程序运行D、赋值体現式末尾加分号就构成赋值語句7、下面可以作為C語言顾客標识符的壹组是(B)A、voiddefineWOR B、a3_b3_123IFC、for-abccase D、2a D0sizeof8、下列各选项中,可以作為合法的赋值語句的是(C)A、a=2,b=5 B、a=b=c=5C、a++; D、a=int(b)9、如下描述對的的是(C)A、goto語句只能用于退出多层循环B、switch語句中不能出現continue語句C、只能用continue語句来终止本次循环D、在循环中break語句不能独立出現10、在C語言中,引用数组元素時,其数组下標的数据类型容許是(C)A、整型常量 B、整型体現式C、整型常量或整型体現式 D、任何类型的体現式11、C語言规定,函数返回值的类型是(D)A、return語句中的体現式类型 B、调用该函数時的主调函数类型C、调用该函数時由系统临時指定 D、在定义函数時所指定的函数类型12、如下對壹维整型数组a的對的阐明是(D)A、inta(10); B、intn=10,a[n];C、intn; D、#defineSIZE10;scanf(“%d”,&n); inta[SIZE]; inta[n];13、如下對的的函数定义是(D)A、doublefun(intx,inty) B、doublefun(intx,y) {z=x+y;returnz;} {intz;returnz;}C、fun(x,y) D、doublefun(intx,inty) {intx,y;doublez; {doublez=0;z=x+y;returnz;} returnz;} 14、假定有如下变量定义:intk=7,x=12;,则能使值為3的体現式是(A)A、(x%=k)-(k%=5) B、x%=(k-k%5)C、x%=k-k%5 D、x%=(k%=5)15、已經有定义:inti,a[10],*p;,则合法的赋值語句是(C)A、p=100 B、p=a[5]C、p=a+2 D、p=a[2]+216、已經有語句:inta[]={1,2,3,4,5},*p,i;p=a;且0i<5,则下列选项中對数组元素地址的對的表达是(B)A、&(a+i) B、&p[i]C、&p D、a++17、若有語句:int*point,a=4;和point=&a;,则下面各选项中均代表地址的壹项是(D)A、a,point,*&a B、&*a,&a,*pointC、*&point,*point,&a D、&a,&*point,point18、已經有語句:charstr[]=“Hello”,*p;p=str;,则执行完上述語句後,*(p+5)的值是(B)A、‘o’ B、‘/0’C、‘o’的地址 D、不确定的值19、對二维数组a進行對的初始化對的的是(B)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[][]={{1,0,1},{},{1,1}};20、设fun()函数的定义形式為:voidfun(charch,floatx){…} 则下列對函数fun的调用語句中,對的的是(C) A、fun(“abc”,3.0); B、t=fun(‘D’,16.5); C、fun(‘65’,2.8); D、fun(32,32);21、若变量a是int类型,并执行了語句:a=‘A'+1;,则對的的论述是(D)A、a的值是字符C B、a的值是浮點型C、不容許字符型和浮點型相加D、a的值是字符‘A’的ASCII值加上1。22、若有如下定义:chara;intb;floatc;doubled;则体現式a*b+d-c值的类型為(D)A、float B、int C、char D、double23、x、y、z被定义為int型变量,若從键盘給x、y、z输入数据,對的的输入語句是(B)A、inputx,y,z; B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z); D、read("%d%d%d",&x,&y,&z);24、下列說法中對的的是(B)A、在switch語句中壹定要使用break語句B、在switch語句中不壹定要使用break語句C、break語句是switch語句的壹部分D、break只能用于switch語句中25、在C語言中,只有在使用時才占用内存單元的变量,其存储类型是(A) A、auto和register B、extern和register C、auto和static D、static和register26、下面不能對的计算代数式值的C語言体現式是(A) A、1/3*sin(1/2)*sin(1/2) B、sin(0.5)*sin(0.5)/3 C、pow(sin(0.5),2)/3 D、1/3.0*pow(sin(1.0/2),227、有下列程序: voidmain(){ inta=1,b=3,c=5,*p; int*p1=&a,*p2=&b,*p3=&c; *p=*p1*(*p2); printf(“%d\n”,*p);} 执行後的输出成果是(C) A、1 B、2 C、3 D、428、有下列程序: voidmain() {inti,x[][3]={1,3,5,7,9,11,13,15,17}; for(i=0;i<3;i++) printf(“%d”,x[i][2-i]);} 程序执行後的输出成果是(A) A、5913 B、1395 C、1371 D、591729、设变量a、b、c、d和y都已對的定义并赋值。若有下列if語句: if(a<b) if(c==d) y=0; else y=1; 该語句所示的含义是(C) A、 B、C、 D、30、有下列程序: voidmain() {inti,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);} 程序执行後的输出成果是(B) A、753 B、357 C、369 D、751二、填空題1、若有定义語句:chars[10]=”1234567\0\0”,则strlen(s)的值是【1】72、有如下程序:#include<stdio.h>voidmain() { intx=1,y=2,z=3; if(x>y) if(y<z) printf(“%d”,++z); else printf(“%d”,++y); printf(“%d\n”,x++);}该程序执行後,x=【2】13、若整型变量a和b中的值分别為7和8,规定按如下格式输出a和b的值:a=7b=8請完毕该输出語句:printf(“【3】a=%d\nb=%d”,a,b);4、设有定义語句:inta[][3]={{0},{1},{2}};,则数组元素a[1][2]=【4】05、设有阐明:structDATE{intyear;intmonth;intday;};若定义d為上述构造体类型变量,并同步為其组员year、month、day依次赋初值為、10、1,则该定义語句应當為【5】structDATEd={,10,1};6、若已定义:floatx[10]={2.1,4.2,6.3};,则数组x在内在中占【6】40個字节数7、体現式(int)((double)(5/2)+2.5)的值是【7】48、已經有語句:inta[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];,则*(p[0]+1)所代表的数组元素是【8】a[1][1]9、若有如下函数调用語句:fun(a+b,(x,y),fun(n+k,d,(a,b)));则在此函数调用語句中有【9】3個实参10、下列程序的功能是:求出数组x中各相邻两個元素的和依次寄存到a数组中,然後输出。請填空。 voidmain() {intx[10],a[9],i; for(i=0;i<10;i++)scanf(“%d”,&x[i]); for(【10】i=1;i<10;i++) a[i-1]=x[i]+【11】x[i-1]; for(i=0;i<9;i++) printf(“%d”,a[i]);printf(“\n”);}11、已知数字字符0的ASCII值為48,则运行下列程序的输出成果為【12】2,2 main() {chara=’1’,b=’2’;printf(“%c,”,b++);prittf(“%d\n”,b-a);}12、下列程序的输出成果是【13】4,3,7 intf1(intx,inty){returnx>y?x:y;} intf2(intx,inty){returnx>y?y:x;} main() { inta=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf(“%d,%d,%d\n”,e,f,g);}13、下列程序的输出成果是【14】45main() { intp[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2)j+=p[i]; printf(“%d\n”,j)}14、如下程序的输出成果是【15】1 #include<stdio.h> voidmain() { inti,j,sum; for(i=3;i>=1;i--) {sum=0; for(j=1;j<=i;j++) sum+=i*j;}}15、下列程序的输出成果是【16】4,3,7 intf1(intx,inty){returnx>y?x:y;} intf2(intx,inty){returnx>y?y:x;} main() { inta=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf(“%d,%d,%d\n”,e,f,g);}16、請将如下程序中的函数申明語句补充完整。 #include<stdio.h> int__【17】max(inta,intb);____ voidmain() { intx,y,(*p)(); scanf(“%d%d”,&x,&y); p=max; printf(“%d\n”,(*p)(x,y));}intmax(inta,intb){return(a>b?a:b);}17、下列程序的输出成果是【18】30 voidmain() { inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];printf(“%d\n”,s);}18、下列程序的输出成果是【19】18 main() { inta[3][3],*p,i; p=a[1]; for(i=0;i<6;i++)p[i]=i+2; printf(“%d”,a[2][0]+a[2][1]+a[2][2]);}19、下列程序的输出成果是【20】4main() { inta=1,b; for(b=1;b<=10;b++) {if(a>=8)break; if(a%2==1) {a+=5;continue;} a=3;}printf(“%d\n”,b);}20、下列程序的输出成果是【21】7main(){ intk=5,n=0; while(k>0) { switch(k) { default:break; case1:n+=k; case2: case3:n+=k;}k--;}printf(“%d\n”,n);}21、下列程序的输出成果是【22】6 structabc {inta;intb;intc;} main() { structabcs[2]={{1,2,3},{4,5,6}}; intt; t=s[0].a+s[1].b; printf(“%d\n”,t);}22、下列程序的输出成果是【23】18 intf(inta[],intn) { if(n>1) returna[0]+f(a+1,n-1); else returna[0];}main(){ intaa[10]={1,2,3,4,5,6,7,8,9,10},s; s=f(aa+2,4); printf(“%d\n”,s);}23、下列程序的输出成果是【24】2main() { inta=3,b; for(b=1;b<=8;b++) {if(a>=10)break; if(a%2==1) {a+=8;continue;} a=4;}printf(“%d\n”,b);}24、下列程序的输出成果是【25】13main(){ intk=6,n=0; while(k>0) { switch(k) { default:n+=1;break; case1:n+=k;break; case2: case3:n*=2;}k--;}printf(“%d\n”,n);}25、下列程序的输出成果是【26】12 structabc {inta;intb;intc;} main() { structabcs[2]={{1,2,3},{4,5,6}}; intt; t=s[0].b*s[1].c; printf(“%d\n”,t);}26、下列程序的输出成果是【27】15 intf(inta[],intn) { if(n>1) returna[0]+f(a+1,n-1); else returna[0];}main(){ intaa[10]={1,2,3,4,5,6,7,8,9,10},s; s=f(aa+3,3); printf(“%d\n”,s);}27、下面程序的功能是:运用指针将字符串a中的内容复制到字符数组b中。#include<stdio.h>voidmain(){ chara[]=“Iamaboy.”,b[20]; inti; for(i=0;*(a+i)!=‘\0’;i++) 【28】*(b+i)=*(a+i);/*用地址法访問数组元素*/ *(b+i)=‘\0’;printf(“stringais:%s\n”,a);printf(“stringbis:”);for(i=0;b[i]!=‘\0’;i++) printf(【29】“%c”,b[i]);/*用下標法访問数组元素*/}28、下面avg函数的作用是计算数组array的平均值,并返回。floatavg(floatarray[10]){ inti; floatavgr,sum=0; for(i=0;【30】i<sizeof(array);i++) sum+=【31】array[i]; avgr=sum/10; 【32】returnavgr;/*函数值返回*/}29、下面程序的功能是:判断素数,在主函数中输入壹种整数,在子函数中進行判断,并返回。#include<stdio.h>voidmain(){ inti,sum=0; i=1; do{ 【33】sum=sum+i; 【34】i++; }while(【35】i<=100) printf(“%d\n”,sum);}30、下面程序的功能是:输入10個整数,并用起泡法实現對這10個数据升序排序。#include<stdio.h>voidmain(){ inta[10]; inti,j,t; for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(j=0;【36】j<9;j++) for(【37】i=0;i<9-j-i;i++) if(【38】a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} for(i=0;i<10;i++) printf(“%d”,a[i]);}31、下面程序的功能是:将字符串b的内容连接字符数组a的内容背面,形成新字符串a。#include<stdio.h>voidmain(){ chara[40]=“Great”,b[]=“Wall”; inti=0,j=0; while(a[i]!=‘\0’)i++; while(【39】b[i]!=‘\0’) { 【40】a[i]=b[j];i++;j++;} 【41】b[i]=‘\0’; printf(“%s\n”,a);}32、下列程序中,fun()函数的功能是计算x2-2x+6。主函数将调用fun()函数计算:y1=sin2(x)-2sin(x)+6。 #include<stdio.h> #include<math.h> 【42】doublefun(doublex) {returnx*x-2*x+6;} voidmain() { doublex,y1,y2; scantf(“%lf”,&x); y1=【43】fun(sin(x)); printf(“y1=%lf\n”,y1);}

温馨提示

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

评论

0/150

提交评论