• / 112
  • 下载费用:30 金币  

百科园C语言专业资料题库.doc

关 键 词:
百科 语言 专业 资料 题库
资源描述:
''第一章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值的数据类型为( )(C double)3判断字符型变量c1是否为数字字符的正确表达式为( )(A (C1>=‘0’)&&(C1<=‘9’))4若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为 ( )(B 0和20)5下面四个选项中,均是不合法的用户标识符的选项是( )。(B b-a goto int)6判断字符型变量c1是否为小写字母的正确表达式为( )。(B (c1>=’a’)&&(c1<=’z’))7表达式18/4*sqrt(4.0)/8值的数据类型为( )。(B double)8下面四个选项中,均是合法的用户标识符的选项是( )。(A -123 temp INT)9若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )(D 1)10假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )。(B 8)11以下选项中关于C语言常量的叙述错误的是:( )(D 经常被使用的变量可定义为常量)12若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为( )。(B 32)13下面正确的字符常量是( )(B ‘w’)14在C语言中,要求运算数必须是整型的运算符是( ) (A %)15以下关于C语言数据类型使用的叙述中错误的是( )(B 若只处理’真’和’假’两种逻辑值,应使用逻辑类型)16以下选项中,能表示逻辑值"假"的是( )(B 0) 17C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )(D 必须为字母或下划线)18在C语言中,char型数据在内存中的存储形式是( )。(C ASCLL码)19下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是( ) (C !(x%==0))20设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为( )。(C 2)21若有数学式,则不正确的C语言表达式是( )(A 3*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(double x){ if(x==0.0||x==2.0) return 0.0; else if(x<0.0) return(x-1)/(x-2); else return(x+1)/(x-2);}double fun(int n){ int i; double s=0.0,y; for(i=-n; i<=n;i++) { y=f(1.0*i); s+=y;}/**********ERROR**********/ return s}void main(){ printf("%lf\n", fun(5));}参考答案double f(double x) return s;2./*下列给定程序中,函数fun的功能是:求三个数的最小公倍数。例如,给变量x1、x2、x3分别输入15、11、2,则输出结果应当是330。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: */#include int fun(int x,int y,int z){ int j,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; } return j;}void main(){ int x1,x2,x3,j; printf("Input x1 x2 x3: "); scanf("%d%d%d",&x1,&x2,&x3); printf("x1=%d,x2=%d,x3=%d \n",x1,x2,x3); j=fun(x1,x2,x3); printf("The minimal common multiple is: %d\n",j);}参考答案 j=0; while (t!=0 || m!=0 || n!=0) 3/*下列程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:*/#include #include long fun(long num){/**********ERROR**********/ long k; do {k *=num%10;/**********ERROR**********/num \=10; }while(num); return(k);}void main(){ int n; printf("\Please enter a number: "); scanf("%ld",&n); printf("\n%ld\n",fun(n));}参考答案 long k=1; num/=10;4/*下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值: 请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: */#include #include double fun(int m){double y=1.0; int i;/**********ERROR**********/ for(i=2;i#include int fun(int k){ int m=0,mc=0, j; while((k>=2)&&(mc<10)) {/**********ERROR**********/ if((k%13=0)||(k%17=0)) { m=m+k;mc++;} k--;/**********ERROR**********/ ) return m;}void main(){ printf("%d\n ",fun(500));} 参考答案 if((k%13==0)||(k%17==0)) }6注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:*/#include #include #include double fun(int m){ double t=1.0; int i; for(i=2;i<=m;i++)/**********ERROR**********/ t+=1.0/k;/**********ERROR**********/ return i;}void main(){int m;printf("\nPlease enter 1 integer number: "); scanf("%d",&m); printf("\nThe result is %1f\n", fun(m));}参考答案 t+=1.0/i; return t; 7./*下列给定程序中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序: */#include #include double fun(int n){ double result =1.0;/**********ERROR**********/ if n==0 return 1.0; while(n>1&&n<170)/**********ERROR**********/ result=n--; return result;}void main(){ int n; printf("Input N:"); 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 int fun(int m){ int k=2; while (k<=m&&(m%k))/**********ERROR**********/ k++ /**********ERROR**********/ if(m=k) return 1; else return 0;}void main(){ int n; printf("\nPlease enter n: ");scanf("%d",&n); if(fun(n)) printf("YES\n"); else printf("NO!\n");}参考答案 k++; if(k==m) 程序填空1 /*已知如下公式:下面程序的功能使根据上述公式输出满足精度要求的eps的值,请填空使程序完整。*/#include#includeint main ( ){ double s=0.0,eps,t=1.0;int n ;scanf ("%lf",&eps);for (n=1 ; t>=fabs(eps); n++) {s+=t ;/**********FILL**********/t= [1] ;}/**********FILL**********/ [2] ;return 0;}参考答案 t*n/(2*n+1) printf("%lf\n",2*s) 2/*请补充main函数,该函数的功能是:打印出满足个位的数字、十位上的数字和百位上的数字都相等的所有三位数。本题的结果为: 111 222 333 444 555 666 777 888 999。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。试题程序:*/#include #include void main(){ int g, 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==b g+s*10+b*1003/*请补充main函数,该函数的功能是:打印出1-1000中满足个位数字的立方等于其本身所有数。本题的结果为:1 64 125 216 729 注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数main的横线上填入所编写的若干表达式或语句。试题程序:*/#include #include void main(){ int i,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 int fun(int a,int b,int c){ int t;/**********FILL**********/ t=(a>b)?(b>c?b:(a>c?c:【1】))/**********FILL**********/ :((a>c)?【2】/**********FILL**********/ :((b>c)?c:【3】)); return t; }void main(){ int a1=3,a2=5,a3=4,r; r=fun(a1,a2,a3); printf("\nThe middle number is: %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 double fun( double r){/**********FILL**********/return 3.14159*[1] /2.0;}void main(){double x;printf("Enter x: ");/**********FILL**********/ scanf("%lf", [2] );/**********FILL**********/ printf("s=%lf\n",fun( [3] ));}参考答案 return 3.14159*r*r/2.0; scanf("%lf",&x); printf("s=%lf\n",fun(x));6例如,在主函数中从键盘给n输入30后,输出为:s=1.226323。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序: */#include double fun(int n){ int i; double sum=0.0;/**********FILL**********/ for(i=1; [1] ;i++)/**********FILL**********/if(i%3==0 [2] i%7==0)/**********FILL**********/sum+= [3] /i; return sum;}void main(){ int n; double s; printf("\nInput n:"); 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 void main(){ int n,m; long sum;/**********FILL**********/ [1] ; printf("\nInput n,m\n"); scanf("%d,%d",&n,&m); while(n<=m) {/**********FILL**********/ [2] ;n++; }/**********FILL**********/ printf("sum=% [3] \n",sum);}参考答案 sum=0; sum+=n; ld8/*请补充函数fun,该函数的功能是:判断某一个年份是否为闰年。 例如,1900年不是闰年,2004是闰年。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。试题程序:*/#include #include int fun(int n){ int flag=0; if(n%4==0) {/**********FILL**********/if ( [1] )flag=1; }/**********FILL**********/ if ( [2] )flag=1;/**********FILL**********/ return [3] ;}void main(){ int year; printf("Input the year:"); scanf("%d",&year); if (fun(year))printf("%d is a leap year. \n",year); elseprintf("%d is not a leap year.\n",year);}参考答案 if(n%100!=0) if (n%400==0) return flag; 程序设计(无答案)1/*请编写函数fun,它的功能是:计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。 例如,若主函数从键盘给n输入20后,则输出为s= 0.583333。注意:n的值要求不大于100。部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */#include double fun(int n){/************Begin*************//************End***************/}void main(){ int n; double s; FILE *out,*in; printf("\nInput n:"); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n",s); /******************************/ in=fopen("in34.dat","r"); out=fopen("out34.dat","w"); fscanf(in,"%d\n",&n); fprintf(out,"%f\n",fun(n)); fscanf(in,"%d\n",&n); fprintf(out,"%f\n",fun(n)); fclose(out); /******************************/2/*请编写函数fun,该函数的功能是:计算并输出 S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5) 例如,若主函数从键盘给n输入20后,则输出为S=534.188884。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */#include#includedouble fun(int n){/***********Begin**************//**********End***************/ }void main(){ FILE *wf,*in; int n; double s; printf("\n\nInput n: "); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n\n",s);/******************************/ in=fopen("in32.dat","r"); wf=fopen("out32.dat","w"); fscanf(in,"%d\n",&n); fprintf(wf,"%f\n",fun(20)); fscanf(in,"%d\n",&n); fprintf(wf,"%f\n",fun(40)); fclose(in); fclose(wf);/*****************************/}3/*请编写函数fun,其功能是计算并输出如下多项式的值: Sn=l+1/1!+1/2!+1/3!+1/4!+…+1/n! 例如,若主函数从键盘给n输入15,则输出为S=2.718282。注意:n的值要求大于1但不大于100。部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include double fun(int n){ /***********Begin*************/ /***********End****************/}void main(){ int n; double s; FILE *out,*in; printf("\nInput n: "); scanf("%d",&n); s=fun(n); printf("s=%f\n",s); /******************************/ in=fopen("in31.dat","r"); out=fopen("out31.dat","w"); fscanf(in,"%d\n",&n); fprintf(out,"%f\n",fun(n)); fscanf(in,"%d\n",&n); fprintf(out,"%f\n",fun(n)); fclose(in); fclose(out); /******************************/}4/*编写函数fun,它的功能是:计算和输出下列级数的和。S=1/(1x2)+1/(2x3)+...1/(nx(n+1)) ,例如,当n=10时,函数值为0.909091。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */#include#includedouble fun(int n){ /*************Begin************//*************End*************/}void main(){ FILE *wf,*in; int n; printf("%f\n",fun(10));/******************************/ wf=fopen("out40.dat","w"); in=fopen("in40.dat","r"); fscanf(in,"%d\n",&n); fprintf(wf,"%f\n",fun(n)); fclose(in); fclose(wf);/*****************************/}5/*请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。 例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。 注意:n的值要大于2但不大于100。部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include#includedouble fun(int n) { /*************Begin*************/ /*************End**************/}void main(){int n; double sum; FILE *out,*in; printf("Input N="); scanf("%d",&n); sum=fun(n); printf("\n\nsum=%f\n\n",sum); /******************************/ in=fopen("in36.dat","r"); out=fopen("out36.dat","w"); fscanf(in,"%d\n",&n); fprintf(out,"%f\n",fun(n)); fclose(in); fclose(out); /******************************/}6/*请编写一个函数 unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n>=2)位的整数,则函数求出w的后n-1位的数作为函数值返回。 例如,w值为5923,则函数返回923;若w值为923,则函数返回23。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include#includeunsigned fun(unsigned w){/***********Begin**************//***********End****************/}void main(){ FILE *wf,*in; unsigned x; printf("Enter a unsigned integer number: "); scanf ("%u",&x); printf("The original data is:%u\n",x); if(x<10) printf("Data error! "); else printf ("The result :%u\n", fun(x));/******************************/ in=fopen("in35.dat","r"); wf=fopen("out35.dat","w"); fscanf(in,"%u",&x); fprintf(wf,"%u\n",fun(x)); fscanf(in,"%u",&x); fprintf(wf,"%u\n",fun(x)); fclose(in); fclose(wf);/*****************************/}7/*请编写函数fun,它的功能是:求Fibonacci数列中大于t(t>3)的最小数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 假如:当t=1000时,函数值为1597。注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include #include int fun(int t){ /**************Begin************/ /**************End*************/}void main(){ int n; FILE *out,*in; n=1000; printf("n=%d, f=%d\n",n, fun(n)); /******************************/ in=fopen("in39.dat","r"); out=fopen("out39.dat","w"); while(!feof(in)){ fscanf(in,"%d\n",&n); fprintf(out,"%d\n",fun(n));} fclose(in); fclose(out); /******************************/}8/*请编写函数fun,其功能是:计算并输出下列多项式值。 S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n) 例如,若主函数从键盘给n输入8后,则输出为S= 0.662872。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */#includedouble fun(int n){/*************Begin*************//*************End*************/}void main(){ FILE *wf,*in; int n; double s; printf("\nInput n: "); scanf("%d",&n); s=fun(n); printf("\ns=%f\n ",s);/******************************/ in=fopen("in42.dat","r"); wf=fopen("out42.dat","w"); fscanf(in,"%d\n",&n); fprintf(wf,"%f\n",fun(10)); fclose(in); fclose(wf);/*****************************/}9/*请编写一个函数fun,它的功能是:根据以下公式求的值(要求满足精度0.005,即某项小于0.005时停止迭代)。 /2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+…+1*2*3*…*n/(3*5*7*…*(2n+1)) 程序运行后,如果输入精度0.005,则程序输出3.137130。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include #include #include double fun(double eps){/*************Begin************//*************End**************/}void main(){ double x; FILE *wf,*in; printf("Input eps: "); scanf("%lf",&x); printf("\neps=%lf,PI=%lf\n",x,fun(x));/******************************/ in=fopen("in37.dat","r"); wf=fopen("out37.dat","w"); fscanf(in,"%lf",&x); fprintf (wf,"%lf\n",fun(x)); fclose(in); fclose(wf);/*****************************/}10/*请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。S=1+x+x2/2!+x3/3!+…+xn/n! 例如,当n=10,x=0.3时,函数值为1.349859。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序: */#include#includedouble fun(double x, int n){/************Begin*************//************End***************/}void main(){ FILE *wf,*in; double x; int n; printf("%f ",fun(0.3,10));/******************************/ in=fopen("in38.dat","r"); wf=fopen("out38.dat","w"); fscanf(in,"%lf %d\n",&x,&n); fprintf(wf,"%f\n",fun(x,n)); fclose(in); fclose(wf);/*****************************/}第四章单项选择1下面的程序片断所表示的数学函数关系是(A)y = -1; if(x != 0) y = 1; if(x > 0) y = 1;else y = 0;2以下程序的执行结果是main() (C.1) { int x = 0, s = 0; while( !x != 0 ) s += ++x; printf( "%d ",s ); }3在下述程序中,判断i > j共执行了多少次(C.6)#include main(){ int i = 0, j = 10, k = 2, s = 0; for( ; ; ) { i += k; if(i > j) { printf("%d\n", s); break; } s += i; }}4以下程序段的输出结果是(C.20)int i, j, m = 0;for(i = 1; i <= 15; i += 4) for(j = 3; j <= 19; j += 4) m++;printf("%d\n", m);5执行下列语句后的输出为()(C.****) int j=-1; if(j<=1) printf("****\n"); else printf("%%%%\n");6以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);(A.4次)7下列程序的输出结果是(A.a=2,b=1)main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d\n",a,b);8以下程序的执行结果是__(A.1,2,3,). main() { int num = 0; while( num <= 2 ) { num++; printf( "%d,",num ); } }9 int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为(A.1)。10有以下程序 main() { int i; for(i=0; i<3; i++) switch(i) { case 1: printf("%d", i); case 2: printf("%d", i); default : printf("%d", i); } }执行后输出结果是(A.011122)11下列程序的输出结果是()。main(){ int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf("a=%d,b=%d\n",a,b);(A.a=2,b=1)12有以下程序,程序运行后的输出结果是 (D AbCdEf)#includeint main(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);  else putchar(i+c);} printf("\n");return 0;13以下程序的输出结果是(A .28 70) main() { int x, i; for(i = 1; i <= 100; i++) { x = i;if( ++x % 2 == 0) if( ++x % 3 == 0 ) if( ++x % 7 == 0) printf(“%d “, x); } printf(“\n”);}14有如下程序main(){ float x=2.0,y;if(x<0.0)y=0.0;else if(x<10.0)y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是(A. 0.500000)15有以下程序main(){ int i=1,j=1,k=2; if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是 (A 2,2,2)16.假定所有变量均已正确定义,下列程序段运行后x的值是()(D. 4)k1=1;k2=2;k3=3;x=15;if(!k1) x--;else if(k2) x=4; else x=3;17. 以下程序段的输出结果是(B. 1 -2)int x= 3;do { pritnf(“%3d”, x-=2);} while (!(--x));18. 有以下程序,若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 (B. m=123n=456p=789)(中间无空格)#includeint main(){int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);return 0;}19以下程序中,while循环的循环次数是( ) (A 死循环不能确定次数)main(){ int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; }}20设有定义:int a=1,b=2,c=3;以下语句中执行效果与其它三个不同的是()(D if(a>b) c=a;a=b;b=c;)21为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定:else子句总是与()配对。(B 其之前最近的if)22以下叙述正确的是:(c)(用do-while构成循环时,只有在while后的表达式为零时结束循环)23有如下程序main(){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}(B a=2,b=1)24运行以下程序后,输出的结果是main(){ int k = -3; if(k <= 0) printf("****\n"); else printf("&&&&\n");}(A ****)25int a=1,b=2,c=3; if(a>c)b=a;a=c;c=b;则c的值为()。(B 2)26在C语言中,为了结束由while语句构成的循环,while后一对圆括号中表达式的值应该为()。(B 0)27设a、b和c都是int变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是{C !((a1;i--) for(j=1;jb>c)a=b; else a=c; 则a的值为()。(C 1)37以下描述中正确的是()。(D 在do-while循环体中,一定要有能使while后表达式的值变为零(“假”)的操作)38选择结构中的条件与循环结构中循环成立的条件, 在写法上可以是任一表达式,但其值只能被判断为"真"或"假"。 哪个数作为逻辑"假"值()。(D 0)39以下程序的输出结果是main(){ int i, sum=0; for(i = 1; i < 6; i++) sum += i; printf("%d\n" sum);}(A 15)第四章一·选择题1.有以下程序,程序运行后的输出结果是( ) B.6#includeint fun (int x,int y){ if (x!=y) return ((x+y)/2);else return (x);}int main(){ int a=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));return 0;}2. 有以下程序,程序运行的输出结果( ) A.8#include int f(int x);int main(){ int n=1,m; m=f(f(f(n))); printf(“%d\n”,m); return 0 ;}int f(int x){ return x*2;}3. 有以下程序,程序执行后变量w中的值是( ) C.5.0#includeint funl(double a){return a*=a;}int fun2(double x,double y){ double a=0,b=0; a=funl(x);b=funl(y);return (int)(a+b);}int main(){double w;w=fun2(1.1,2.0);……}4. 有以下程序,程序运行后的输出结果是( )B.64#includeint fun(){ static int x=1;x*=2;return x;}int main(){int i,s=1;for(i=1;i<=3;i++) s*=fun();printf("%d\n",s);}5. 有以下程序,程序运行后的输出结果是( )D.9#includeint f(int x,int y){return ((y-x)*x);}int main(){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf("%d\n",d);}6. 有以下程序,程序运行后的输出结果是( )B.21#include void fun(int p){int d=2;p=d++; printf(“%d”,p);}int main(){int a=1;fun(a); printf(“%d\n”,a); return 0;}7. 有以下程序:程序运行后的输出结果是( )A.21#include int f(){static int x=1;x+=1;return x;}int main(){ int i,s=1;for(i=1;i<=5;i++) s+=fun();printf("%d\n",s);return 0;}8. 若有代数式 (其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是( )A.sqrt(fabs(pow(n,x)+exp(x)))9. 以下关于return语句叙述中正确的是( )D.一个自定义函数中可以根据不同情况设置多条return语句10. 设有如下函数定义,若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是( ) B.3int fun(int k){ if (k<1) return 0;else if(k==1) return 1;else return fun(k-1)+1;}11. 在一个C语言源程序文件中所定义的全局变量,其作用域为( )C.由具体定义位置和extern说明来决定范围12. 以下叙述正确的是( )A.C语言函数可以嵌套调用,例如:fun(fun(x))13. 以下程序的主函数中调用了在其前面定义的fun函数,则以下选项中错误的fun函数首部是 ( ) B.double fun (double a)14. 以下说法不正确的是( )C.用户可以重新定义标准库函数15. 下列叙述中正确的是( )A.C语言规定必须用main作为主函数名,程序将从此函数开始执行,到此函数结束16. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )D.形参只是形式上的存在,在调用之前不占用具体存储单元17. 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。B.auto和register18. 设函数中有整形变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是( )D.static19. 以下正确的函数定义形式是:( )A.double fun(int x;in y){}20. 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则 ( )C.称为函数的间接递归调用二·程序设计/*请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,输入17,则应输出4 6 8 9 10 12 14 15 16。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */#include#include#includeint fun(int m, int xx[]){ /***************Begin************/ /*************** End ************/}int main(){ FILE *wf,*in; int m, n,k, zz[100]; printf("\nPlease enter an integer number between 10 and 100: "); scanf("%d",&n); m=fun(n,zz); printf("\n\nThere are %d non-prime numbers less than %d: ",m,n); for(n=0;n
展开阅读全文
  语墨文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:百科园C语言专业资料题库.doc
链接地址:http://www.wenku38.com/p-145054.html

                                            站长QQ:1002732220      手机号:18710392703    


                                                          copyright@ 2008-2020 语墨网站版权所有

                                                             经营许可证编号:蜀ICP备18034126号

网站客服微信
收起
展开