还剩18页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《C语言程序设计》模拟题(补)
一、简答题
1、简述C语言程序的结构
二、选择题
1、下面程序段的输出结果是【1】inta=60;a+=a-=a+a;printf“%d\n”a;A120B60C-120D-
601、下面正确的字符常量是【2】A‘c’B‘//’’C“w”D‘’
1、以下不能用作标识符的是【3】A_26BScanfCcaseDDouble
1、下面程序段中循环体执行的次数是【4】inta=10b=0;do{b+=2;a-=2+b;}whilea=0;A1B2C3D
41、以下关于函数的叙述正确的是【5】A函数中必须要有return语句B函数中可以有多个return语句,但只有一个被执行Creturn语句中必须有一个表达式D函数中定义的变量不能与其它函数中的变量同名
1、满足x为奇数时值为真,x为偶数时值为假的表达式是【6】A!x%2==1Bx%2==0Cx%2D!x%
21、以下语句中无法正确赋值的是【7】Acharb
[10]={‘H’‘e’‘l’‘l’‘o’‘!’};Bcharb
[10];b=“Hello!”;Ccharb
[10];strcpyb“Hello!”;Dcharb
[10]=“Hello!”;
1、若有以下的定义和语句,则值为5的表达式是【8】inta[]={12345678910};Aa
[5]Ba[a
[4]]Ca[a
[3]]Da[a
[5]]
1、若有定义intk=7;floata=
2.5b=
4.7;则表达式a+k%3*inta+b%2/4的值是【9】A
2.750000B
2.500000C
3.500000D
0.
0000001、已知ch是字符型变量,下面正确的赋值语句是【10】Ach=”\”Bch=’123’Cch=’\xff’Dch=’\08’
1、下面程序的运行结果是【11】voidmain{charc=’a’;if‘0’=c=’9’printf“YES”;elseprintf“NO”;}A语句有错误BNOCYESNODYES
1、已知inta=4b=5c;则执行表达式c=a=ab后,变量a的值为【12】A0B1C4D
51、以下程序的运行结果是【13】#includestdio.hvoidmain{intx1=3x2=1x3=1;ifx1=x2+x3printf“****”;elseprintf“####”;}A存在语法错误B无输出结果C输出****D输出####
1、下面程序段的输出结果是【14】#includestdio.hcharp1
[10]=“abc”p2[]=“ABC”str
[50]=“xyz”;strcpystr+2strcatp1p2;printf“%s\n”str;AxyabcABCBzabcABCCyzabcABCDxyzabcABC
1、设有inta=1b=2c=3d=4m=2n=2;执行m=abn=cd后n的值为【15】A1B2C3D
016、若已定义x和y为double类型,则表达式x=1y=x+3/2的值是【16】A1B2C
2.0D
2.
517、以下程序段的输出结果为【17】intx=1y=2;voidfun1{x=3;y=4;}voidfun2intxinty{printf“%d%d\n”xy;}voidmain{fun1;printf“%d%d”xy;fun256;}A3456B1256C1234D
341217、下面程序执行时,while的循环次数是【18】inti=0;whilei10{ifi1continue;ifi==5break;i++;}A1B10C6D死循环,不能确定次数
17、对一维数组a的说明语句中正确的是【19】Ainta10Bintn=10;a[n];C#defineSIZE10inta[SIZE];Dintn;scanf“%d”n;inta[n];
17、若调用一个函数,且此函数中没有return语句,则该函数【20】A没有返回值B返回若干个系统默认值C能返回一个用户所希望的函数值D返回一个不确定的值
21、下列运算符中优先级最高的是【21】A)!B)%C)-=D)
22、若intj=10;执行下列程序后变量j的正确结果是【22】switchj{case9:j+=1;case10:j+=1;case11:j+=1;default:j+=1;}A10B11C12D
1323、下列程序的运行结果是【23】intiix
[3]
[3]={123456789};forii=0;ii3ii++printf“%d”x[ii][2-ii];A)159B147C357D
36924、在定义inta
[10];之后对a的引用正确的是【24】Aa
[10]Ba
[63]Ca6Da[10-10]
25、在定义了a
[2]
[3]之后对a的引用正确的是【25】A)a12Ba
[13]Ca
[12][!1]Da
[2]
[0]
26、设有程序段intk=10;whilek=0k=k-1;则下面描述中正确的是【26】A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次
27、判断两个字符串s1和s2相等的正确语句是【27】Aifs1=s2Bifs1==s2Cifstrcpys1s2Difstrcmps1s2==
028、以下正确的字符常量的定义为【】A、’c’B、“cj”C、’abc’D、’’
29、若x、y都是int型变量,且x=100y=200则printf“%d”xy;的输出结果是【】A200B100C100200D不确定
30、运行以下程序,如果从键盘输入ABCDE回车,则输出结果是【】#includestdio.hintfunchcharstr[]{intnum=0;whilestr[num]!=‘\0’num++;returnnum;}voidmain{charstr
[10];getsstr;printf“%d\n”funchstr;}A7B6C5D
431、为表示关系x=y=z下面C语言表达式中正确的是【】Ax=yy=zBx=yandy=zCx=y=zDx=yy=z
32、下面程序段的输出结果是【】intx=2y=0z;x*=3+2;printf“%d”x;x*=y=z=4;printf“%d”x;A840B1040C104D
433、下列程序段的输出结果为【】inta=9;a+=a-=a+a;printf“%d\n”a;A18B9C-18D-
934、设有整型变量a的值为5,使整型变量b的值不为2的表达式【】Ab=a/5Bb=6---aCb=a%2Db=a-a--a/
235、语句printf“a\bre\’hi\’y\\\bou\n”的输出结果为【】Aa\bre\’hi\’y\\\bouBa\bre\’hi\’y\bouCre’hi’youDabre’hi’y\bou
36、设abcd均是int型变量,为了使以下程序输出为1234+123+12+1,正确的输入形式应当为【】scanf“%4d+%3d+%2d+%1d”abcd;printf“%4d+%3d+%2d+%1d”abcd;A1234123121回车B1234123412341234回车C1234+1234+1234+1234回车D1234+123+12+1回车
37、以下程序的输出结果是【】voidmain{inta=1b=1;switcha+b){case2:printf*\n;case3:printf**\n;}}A***B**C*D***
38、分析以下程序,以下程序【】voidmain{intx=5a=0b=0;ifx=a+bprintf“****\n”;elseprintf“####\n”;}A有语法错不能通过编译B通过编译但不能连接C输出****D输出####
39、假定所有变量均已正确说明,下列程序段运行后x的值是【】a=b=c=0;x=35;if!ax=-1;elseifb;ifcx=3;elsex=4;A-1B4C35D
340、下面程序运行的结果是【】#includestdio.hvoidmain{intijx=0;fori=0;i2;i++{x++;forj=0;j=3;j++{ifj%2continue;x++;}x++;}printf“x=%d\n”x;}Ax=4Bx=8Cx=6Dx=
1241、下面程序的运行结果是【】#include“stdio.h”voidmain{intija=0;fori=0;i2;i++{forj=0;j4;j++{ifj%2break;a++;}a++;}printf“%d\n”a;}A4B5C6D
742、下面程序的运行结果是【】voidmain{charch
[7]={“12ab56”};intis=0;fori=0;ch[i]=‘0’ch[i]=‘9’;i+=2s=10*s+ch[i]-’0’;printf“%d\n”s;}A1B1256C12ab56D
743、下面程序的运行结果是【】voidmain{chara[]=“morning”t;intij=0;fori=1;i7;i++ifa[j]a[i]j=i;t=a[j];a[j]=a
[7];a
[7]=a[j];putsa;}AmogninrBmoCmorningDmornin
44、以下正确的函数说明形式是【】AdoublefunintxintyBdoublefunintx;intyCdoublefunintxinty;Ddoublefunintxy;
45、以下程序的输出结果是【】voidfunintaintbintc{a=456;b=567;c=678;}voidmain{intx=10y=20z=30;funxyz;printf%d%d%dxyz;}A302010B102030C456567678 D678567456
三、程序选择题
1、下面程序是从键盘中输入学号,然后输出学号中百位数字为3的学号,输入0时结束循环,请选择填空#includestdio.hvoidmain{longintnum;scanf“%ld”num;do{if【1】printf“%ld”num;scanf“%ld”num;}while【2】;}【1】Anum%100/10==3Bnum/10%10==3Cnum%10/10==3Dnum/100%10==3【2】A!numB!num==0Cnum0==0D!num!=
01、下面程序段的运行结果是【3】(其中□表示空格)charc
[5]={‘a’’b’’\0’’c’’\0’};printf“%s”c;【3】A‘a’’b’BabCab□cDabc
3、下列程序的运行结果是【4】intix
[3]
[3]={123456789};fori=0;i3;i++printf“%d”x[i][2-i];【4】A159B147C357D
3694.下面的程序将字符串s中的每个字符按升序插入到数组a中,请选择填空#includestdio.h#includestring.hvoidmain{chara
[20]=“cehiknqtw”;chars[]=“bafl”;intijk;fork=0;【5】;k++{j=0;whiles[k]=a[j]a[j]!=‘\0’j++;for【6】a[i+1]=a[i];a[j]=【7】;}putsa;}【5】As[k]!=‘0’Bs[k]!=‘0’Cs[k]==0Ds[k]!=0【6】Ai=strlena+k;i=j;i--Bi=strlena;i=j;i--Ci=j;i=strlena+k;i++Di=j;i=strlena;i++【7】Aa[k]Bs[k+1]Cs[k]Ds[k-1]
5.下面程序的功能是找出数组中的最大值和此元素的下标,请选择填空#includestdio.hvoidmain{inta
[10]={468209235671}kp;【8】;fork=1;k10;k++ifa[k]a[p]【9】;printf”最大值=%d下标=%d\n”a[p]【10】;}【8】Ap=a
[0]Bp=0Cp=1Dp=a0【9】Ap=kBa[p]=a[k]Ca[k]=a[p]Dk=p【10】AkBpCa[k]Da[p]
四、填空题
1、以下程序求解百钱百鸡问题,公鸡五元一只,母鸡三元一只,小鸡一元三只,用一百元买一百只鸡,且必须有公鸡、母鸡和小鸡,求解所有可能的方案请填空#includestdio.hvoidmain{【1】;n=0;fori=1;i=18;【2】forj=1;j=31;j++{k=【3】;if【4】==300{n++;printf“n=%dcock=%dhen=%dchick=%d\n”nijk;}}}
2、以下程序段的输出结果是【5】intkjs;fork=2;k6;k++k++{s=1;forj=k;j6;j++s+=j;}printf“%d\n”s;
3.输入一个整数10,以下程序的运行结果是【6】#includestdio.hmain{intae
[10]ci=0;printf“输入一个整数\n”;scanf“%d”a;whilea!=0{c=suba;a=a/2;e[i]=c;i++;}for;i0;i--printf“%d”e[i-1];}subinta{intc;c=a%2;returnc;}
4、下面的函数invert的功能是将一个字符串的内容颠倒过来.voidinvertcharstr[]{intij【7】;fori=0j=strlenstr;【8】;i++j--{k=str[i];str[i]=str[j];str[j]=k;}}
5、在C语言中,要求对所有用到的变量,遵循先定义后【9】的原则
6、C语言规定,可执行程序的开始执行点是【10】
7.设floatx=
2.5y=
4.7;inta=7;,则表达式x+a%3*intx+y%2/4的值为【11】
8.判断变量a、b的值均不为0的逻辑表达式为【12】
9.整型变量m的值为27,语句printfm=%xm;的输出结果为【13】
10.如定义语句为chara[]=windowsb[]=95;,语句printf%sstrcatab;的输出结果为【14】11.inti=234j=567;函数printf%d%d\nij的输出结果是【15】
12.求1至100的和,程序应写成fors=0i=1;【16】;++is+=i;
13.定义a为长度为10的字符串,同时为字符串赋初值continue的语句为【17】
14.已知方程ax2+bx+c=0系数a、b、c且存在两个实根,计算其中一个实根的算术表达式为【18】
15.若s=d,执行语句s=s=as=zs-32:s;字符变量s的值为【19】
16.函数change定义如下,若a=
10、b=5,执行changeab后a、b的值分别为【20】 voidchangeintaintb{intt=0;t=a;a=b;b=t;}
四、阅读程序题
1、以下程序的输出结果是 #includestdio.hintfunintn{intr;ifn==1||n==2r=1;elser=funn-1+funn-2;returnr;}voidmain{printf%d\nfun8;}
5、编程题
1.输入10个数据,用选择法对10个数由小到大排序,并输出
2.写一个函数,用于求n个学生的平均成绩并设计主函数,定义一个一维数组score里面存放10个学生的成绩,输出这10位学生的平均成绩
3.有一个3*4的矩阵,要求编写程序求出其中值最大的那个元素的值,以及所在的行号和列号
4.写一个函数,求10个学生的平均成绩并设计主函数,定义一个一维数组score里面存放10个学生的成绩,输出这10位学生的平均成绩
5.求Fibonacci数列的前40个数1,1,2,3,5,8,13…参考答案
一、简答题
1、1)一个程序由一个或多个源程序文件组成预处理指令、全局声明、函数定义2)函数是C程序的主要组成部分3)一个函数包括两个部分函数首部和函数体(声明部分和执行部分)4)程序总是从main函数开始执行的5)程序中对计算机的操作是由函数中的C语句完成的6)在每个数据声明和语句的最后必须有一个分号7)C语言本身不提供输入输出语句8)程序应当包含注释
二、选择题(本大题共35小题,每小题1分,共35分)对每一个【】,从A)、B)、C)、D)四个供选择的答案中,选出一个正确的答案12345678910CACCBCBCBC11121314151617181920DACABCADCD21222324252627282930ADCDCCDAAC31323334353637383940ABCCCDADBB4142434445AABCB
三、程序选择题12345678910DBCCDBCBAB
四、填空题1intijkn2i++3100-i-j43*5*i+3*3*j+k510610107k8ij9使用10main()函数
112.512a!=0b!=013m=1b14windows951523456716i=10017chara
[10]=continue;18-b+sqrtb*b-4*a*c/2/a19D20a=10,b=5
四、阅读程序题
1、21
五、编程题
1.#includestdio.hintmain{voidsortintarray[]intn;inta
[10]i;printfenterarray:\n;fori=0;i10;i++scanf%da[i];sorta10;//调用Sort函数,a为数组名,大小为10printfThesortedarray:\n;fori=0;i10;i++printf%da[i];printf\n;return0;}voidsortintarray[]intn{intijkt;fori=0;in-1;i++{k=i;forj=i+1;jn;j++ifarray[j]array[k]k=j;t=array[k];array[k]=array[i];array[i]=t;}}
2.方法一#includestdio.hintmain{floataveragefloatarray
[10];//函数声明floatscore
[10]aver;inti;printfinput10score:\n;fori=0;i10;i++scanf%fscore[i];printf\n;aver=averagescore;//调用average函数printfaveragescoreis%
5.2f\naver;return0;}floataveragefloatarray
[10]//定义average函数{inti;floataversum=array
[0];fori=1;i10;i++sum=sum+array[i];//累加学生成绩aver=sum/10;returnaver;}方法二#includestdio.hintmain{floataveragefloatarray[]intn;floatscore
[10]={
67.
589.
59969.
57789.
576.
5546099.5};//定义长度为10的数组printfTheaverageofclassBis%
6.2f\naveragescore10;//用数组名score和10作实参return0;}floataveragefloatarray[]intn//定义average函数,未指定形参数组长度{inti;floataversum=array
[0];fori=1;in;i++sum=sum+array[i];//累加n个学生成绩aver=sum/n;returnaver;}
3.题#includestdio.hintmain{intijrow=0colum=0max;inta
[3]
[4]={{1234}{9876}{-1010-52}};//定义数组并赋初值max=a
[0]
[0];//先认为a
[0]
[0]最大fori=0;i=2;i++forj=0;j=3;j++ifa[i][j]max//如果某元素大于max就取代max的原值{max=a[i][j];row=i;//记下此元素的行号colum=j;//记下此元素的列好}printfmax=%d\nrow=%d\ncolum=%d\nmaxrowcolum;return0;}
4.题方法一#includestdio.hintmain{floataveragefloatarray
[10];//函数声明floatscore
[10]aver;inti;printfinput10score:\n;fori=0;i10;i++scanf%fscore[i];printf\n;aver=averagescore;//调用average函数printfaveragescoreis%
5.2f\naver;return0;}floataveragefloatarray
[10]//定义average函数{inti;floataversum=array
[0];fori=1;i10;i++sum=sum+array[i];//累加学生成绩aver=sum/10;returnaver;}方法二#includestdio.hintmain{floataveragefloatarray[]intn;floatscore
[10]={
67.
589.
59969.
57789.
576.
5546099.5};//定义长度为10的数组printfTheaverageofclassBis%
6.2f\naveragescore10;//用数组名score和10作实参return0;}floataveragefloatarray[]intn//定义average函数,未指定形参数组长度{inti;floataversum=array
[0];fori=1;in;i++sum=sum+array[i];//累加n个学生成绩aver=sum/n;returnaver;}
5.题#includestdio.hintmain{intf1=1f2=1f3;inti;printf%12d\n%12d\nf1f2;fori=1;i=38;i++{f3=f1+f2;printf%12d\nf3;f1=f2;f2=f3;}return0;}。