百科园C语言题库完整.docx
- 文档编号:23529395
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:181
- 大小:90.75KB
百科园C语言题库完整.docx
《百科园C语言题库完整.docx》由会员分享,可在线阅读,更多相关《百科园C语言题库完整.docx(181页珍藏版)》请在冰豆网上搜索。
百科园C语言题库完整
第一章
1.以下叙述中错误的是()B.C语言编写的每个函数都可以进行独立编译并执行
2.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是()
A.C语言程序仅可以编译执行
3.C语言规定:
在一个源程序中,main的位置()A.可以任意
4.一个C语言程序是由()C.函数组成
5.以下关于结构化程序设计的叙述中正确的是()B.c语言中,程序的模块化是利用函数实现的
6.以下叙述正确的是()C.c语言本身没有输入和输出语句
7.以下叙述中错误的是()A.C语言编写的每个函数都可以进行独立编译并执行
8.以下叙述正确的是()B.c程序中注释部分可以单独占一行
9.以下叙述正确的是()
D.c语言函数可以嵌套调用,如fun(fun(x))
10.一个C程序的执行是从()
D.本程序main函数开始,到main函数结束
11.以下叙述不正确的是()
A.在c程序中,注释说明只能位于一条语句后面
第二章
单项选择
1以下选项中非法的字符常量是()
(B‘/019’)
2设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()
(Cdouble)
3判断字符型变量c1是否为数字字符的正确表达式为()
(A(C1>=‘0’)&&(C1<=‘9’))
4若有定义语句:
intk1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为()
(B0和20)
5下面四个选项中,均是不合法的用户标识符的选项是()。
(Bb-agotoint)
6判断字符型变量c1是否为小写字母的正确表达式为()。
(B(c1>=’a’)&&(c1<=’z’))
7表达式18/4*sqrt(4.0)/8值的数据类型为()。
(Bdouble)
8下面四个选项中,均是合法的用户标识符的选项是()。
(A-123tempINT)
9若a是数值类型,则逻辑表达式(a==1)||(a!
=1)的值是()
(D1)
10假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。
(B8)
11以下选项中关于C语言常量的叙述错误的是:
()
(D经常被使用的变量可定义为常量)
12若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。
(B32)
13下面正确的字符常量是()
(B‘w’)
14在C语言中,要求运算数必须是整型的运算符是()
(A%)
15以下关于C语言数据类型使用的叙述中错误的是()
(B若只处理’真’和’假’两种逻辑值,应使用逻辑类型)
16以下选项中,能表示逻辑值"假"的是()
(B0)
17C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()
(D必须为字母或下划线)
18在C语言中,char型数据在内存中的存储形式是()。
(CASCLL码)
19下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是()
(C!
(x%==0))
20设:
inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()。
(C2)
21若有数学式
则不正确的C语言表达式是()
(A3*a*e/b*c)
第三章
程序改错
1/*下列给定程序中,函数fun的功能是:
计算S=f(-n)+f(-n+1)+…+f(0)+f
(1)+f
(2)+…f(n)的值。
例如,当n为5时,函数值应为10.407143。
f(x)函数定义如下:
f(x)=
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
*/
#include
#include
#include
/**********ERROR**********/
f(doublex)
{
if(x==0.0||x==2.0)
return0.0;
elseif(x<0.0)
return(x-1)/(x-2);
else
return(x+1)/(x-2);
}
doublefun(intn)
{
inti;doubles=0.0,y;
for(i=-n;i<=n;i++)
{y=f(1.0*i);s+=y;}
/**********ERROR**********/
returns
}
voidmain()
{
printf("%lf\n",fun(5));
}
参考答案doublef(doublex)returns;
2./*下列给定程序中,函数fun的功能是:
求三个数的最小公倍数。
例如,给变量x1、x2、x3分别输入15、11、2,则输出结果应当是330。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
*/
#include
intfun(intx,inty,intz)
{intj,t,n,m;
/**********ERROR**********/
j=1;
t=m=n=1;
/**********ERROR**********/
while(t!
=0&&m!
=0&&n!
=0)
{
j=j+1;
t=j%x;
m=j%y;
n=j%z;
}
returnj;
}
voidmain()
{
intx1,x2,x3,j;
printf("Inputx1x2x3:
");
scanf("%d%d%d",&x1,&x2,&x3);
printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);
j=fun(x1,x2,x3);
printf("Theminimalcommonmultipleis:
%d\n",j);
}
参考答案j=0;while(t!
=0||m!
=0||n!
=0)
3/*下列程序中函数fun的功能是:
计算正整数num各位上的数字之积。
例如,若输入252,则输出应该是20。
若输入202,则输出应该是0。
请改正程序中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
*/
#include
#include
longfun(longnum)
{
/**********ERROR**********/
longk;
do
{
k*=num%10;
/**********ERROR**********/
num\=10;
}while(num);
return(k);
}
voidmain()
{
intn;
printf("\Pleaseenteranumber:
");
scanf("%ld",&n);
printf("\n%ld\n",fun(n));
}
参考答案longk=1;num/=10;
4/*下列给定程序中,函数fun()的功能是:
根据整型形参m的值,计算如下公式的值:
请改正函数fun()中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
*/
#include
#include
doublefun(intm)
{doubley=1.0;
inti;
/**********ERROR**********/
for(i=2;i /**********ERROR**********/ y-=1/(i*i); return(y); } voidmain() {intn=5; printf("\nTheresultis%1f\n",fun(n)); } 参考答案for(i=2;i<=m;i++)y-=1.0/(i*i); 5/*下列给定的程序中,函数fun的功能是: 计算并输出k以内最大的10个能被13或17整除的自然数之和。 k的值由主函数传入,若k的值为500,则函数的值为4622。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */ #include #include intfun(intk) {intm=0,mc=0,j; while((k>=2)&&(mc<10)) { /**********ERROR**********/ if((k%13=0)||(k%17=0)) {m=m+k;mc++;} k--; /**********ERROR**********/ ) returnm; } voidmain() { printf("%d\n",fun(500)); } 参考答案if((k%13==0)||(k%17==0))} 6注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */ #include #include #include doublefun(intm) { doublet=1.0; inti; for(i=2;i<=m;i++) /**********ERROR**********/ t+=1.0/k; /**********ERROR**********/ returni; } voidmain() { intm; printf("\nPleaseenter1integernumber: "); scanf("%d",&m); printf("\nTheresultis%1f\n",fun(m)); } 参考答案t+=1.0/i;returnt; 7./*下列给定程序中函数fun的功能是: 计算n! 。 例如,给n输入5,则输出120.000000。 请改正程序中的错误,使程序能输出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */ #include #include doublefun(intn) {doubleresult=1.0; /**********ERROR**********/ ifn==0 return1.0; while(n>1&&n<170) /**********ERROR**********/ result=n--; returnresult; } voidmain() { intn; printf("InputN: "); scanf("%d",&n); printf("\n\n%d! =%lf\n",n,fun(n)); } 参考答案if(n==0)result*=n--; 8/*下列给定程序中,函数fun的功能是: 判断一个整数m是否是素数,若是返回1,否则返回0。 在main函数中,若fun()返回1则输出"YES",若fun()返回0则输出"NO! "。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */ #include #include intfun(intm) {intk=2; while(k<=m&&(m%k)) /**********ERROR**********/ k++ /**********ERROR**********/ if(m=k) return1; elsereturn0; } voidmain() {intn; printf("\nPleaseentern: "); scanf("%d",&n); if(fun(n))printf("YES\n"); elseprintf("NO! \n"); } 参考答案k++;if(k==m) 程序填空 1/*已知如下公式: 下面程序的功能使根据上述公式输出满足精度要求的eps的 值,请填空使程序完整。 */ #include #include intmain() { doubles=0.0,eps,t=1.0; intn; scanf("%lf",&eps); for(n=1;t>=fabs(eps);n++) { s+=t; /**********FILL**********/ t=[1]; } /**********FILL**********/ [2]; return0; } 参考答案t*n/(2*n+1)printf("%lf\n",2*s) 2/*请补充main函数,该函数的功能是: 打印出满足个位的数字、十位上的数字和百位上的数字都相等的所有三位数。 本题的结果为: 111222333444555666777888999。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: */ #include #include voidmain() { intg,s,b; for(g=1;g<10;g++) for(s=1;s<10;s++) for(b=1;b<10;b++) { /**********FILL**********/ if() /**********FILL**********/ printf("%5d",); } } 参考答案g==s&&s==bg+s*10+b*100 3/*请补充main函数,该函数的功能是: 打印出1-1000中满足个位数字的立方等于其本身所有数。 本题的结果为: 164125216729 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数main的横线上填入所编写的若干表达式或语句。 试题程序: */ #include #include voidmain() { inti,g; for(i=1;i<1000;i++) { /**********FILL**********/ g=[1]; /**********FILL**********/ if([2]) printf("%4d",i); } } 参考答案g=i%10;if(g*g*g==i) 4/*函数fun的功能是: 从三个形参a、b、c中找出中间的数,作为函数值返回。 例如,当a=3,b=5,c=4时,中间的数为4。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: */ #include intfun(inta,intb,intc) {intt; /**********FILL**********/ t=(a>b)? (b>c? b: (a>c? c: 【1】)) /**********FILL**********/ : ((a>c)? 【2】 /**********FILL**********/ : ((b>c)? c: 【3】)); returnt; } voidmain() { inta1=3,a2=5,a3=4,r; r=fun(a1,a2,a3); printf("\nThemiddlenumberis: %d\n",r); } 参考答案t=(a>b)? (b>c? b: (a>c? c: a)): ((a>c)? a: ((b>c)? c: b)); 5/*给定程序的功能是: 求二分之一圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注: 圆面积公式为: 2,在程序中定义的变量名要与公式的变量相同)。 例如,输入圆的半径值: 19.527,输出为: s=598.949991。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。 试题程序: */ #include doublefun(doubler) { /**********FILL**********/ return3.14159*[1]/2.0; } voidmain() { doublex; printf("Enterx: "); /**********FILL**********/ scanf("%lf",[2]); /**********FILL**********/ printf("s=%lf\n",fun([3])); } 参考答案return3.14159*r*r/2.0;scanf("%lf",&x);printf("s=%lf\n",fun(x)); 6例如,在主函数中从键盘给n输入30后,输出为: s=1.226323。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: */ #include doublefun(intn) { inti; doublesum=0.0; /**********FILL**********/ for(i=1;[1];i++) /**********FILL**********/ if(i%3==0[2]i%7==0) /**********FILL**********/ sum+=[3]/i; returnsum; } voidmain() { intn; doubles; printf("\nInputn: "); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n",s); } 参考答案for(i=1;i<=n;i++)if(i%3==0||i%7==0)sum+=1.0/i; 7/*请补充main函数,该函数的功能是: 计算两个自然数n和m(m<10000)之间所有数的和(n和m从键盘输入)。 例如,当n=1,m=100时,sum=5050;当n=100,m=1000时,sum=495550。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: */ #include #include voidmain() { intn,m; longsum; /**********FILL**********/ [1]; printf("\nInputn,m\n"); scanf("%d,%d",&n,&m); while(n<=m) { /**********FILL**********/ [2]; n++; } /**********FILL**********/ printf("sum=%[3]\n",sum); } 参考答案sum=0;sum+=n;ld 8/*请补充函数fun,该函数的功能是: 判断某一个年份是否为闰年。 例如,1900年不是闰年,2004是闰年。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: */ #include #include intfun(intn) { intflag=0; if(n%4==0) { /**********FILL**********/ if([1]) flag=1; } /**********FILL**********/ if([2]) flag=1; /**********FILL**********/ return[3]; } voidmain() { intyear; printf("Inputtheyear: "); scanf("%d",&year); if(fun(year)) printf("%disaleapyear.\n",year); else printf("%disnotaleapyear.\n",year); } 参考答案if(n%100! =0)if(n%400==0)returnflag; 程序设计(无答案) 1/*请编写函数fun,它的功能是: 计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。 例如,若主函数从键盘给n输入20后,则输出为s=0.583333。 注意: n的值要求不大于100。 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include doublefun(intn) { /************Begin*************/ /************End***************/ } voidmain() { intn; doubles; FILE*out,*in; printf("\nInputn: "); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n",s); /******************************/ in=fopen("in34.dat","r"); out=fopen("out34.dat","w"); fscanf(i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 百科 语言 题库 完整
![提示](https://static.bdocx.com/images/bang_tan.gif)