广西科技大学-2018-工科类专业-C语言复习练习题_第1页
广西科技大学-2018-工科类专业-C语言复习练习题_第2页
广西科技大学-2018-工科类专业-C语言复习练习题_第3页
广西科技大学-2018-工科类专业-C语言复习练习题_第4页
广西科技大学-2018-工科类专业-C语言复习练习题_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE91第2部分补充练习题第1、2章C语言概述及数据类型与表达式一、单项选择题C语言源程序名的后缀是。A.exeB.cC.objD.cpp以下叙述中错误的是。A.计算机不能直接执行用C语言编写的源程序B.C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D.后缀为.obj和.exe的二进制文件都可以直接运行可在C程序中作为用户标识符的一组是。A.andB.DateC.HiD.case_2007y-m-dDr.TomBigl以下关于long、int和short类型数据占用内存大小的叙述中正确的是。A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定若变量均已正确定义并赋值,以下合法的C语言赋值语句是。A.x=y==5;B.x=n%2.5;C.x+n=i;D.x=5=4+1;以下正确的字符串常量是。A."\\\"B.'abc'C.OlympicGamesD.""已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后输出结果是。A.A,BB.A,68C.65,66D.65,68执行scanf("a=%d,b=%d",&a,&b);语句,若要使变量a和b的值分别为3和4,则正确的输入方法为.A.3,4B.a:3b:4C.a=3,b=4D.34设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)。A.10□X□20□Y<回车>B.10□X20□Y<回车>C.10□X<回车>D.10X<回车>20□Y<回车>20Y<回车>转换说明符%x的输出形式是。A.十六进制数B.八进制数C.十进制数D.二进制数若有以下类型说明语句:charw;intx;floaty;doublez;则表达式w*x+z-y的结果为类型。A.floatB.doubleC.intD.char将int型变量n转换成float型变量的方法是。A.floatnB.(float)nC.float(n)D.intn以下不能正确计算代数式值的C语言表达式是。A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)C语言中运算对象必须是整型的运算符是。A./B.%C.!D.*运行以下程序段时编译出错,其原因是。charc1='a',c2='123';printf("%c,%d\n",c1,c2);A.字符串要用"123"表示 B.'123'只能赋值给字符数组C.c2是字符变量,不能用%d格式输出 D.c2是字符变量,只能赋以字符常量,不能赋以字符串常量设有定义:intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是。A.k++B.k+=1C.++kD.k+1已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中的大写字母转换成对应小写字母的语句是。A.c=(c-'A')%26+'a'B.c=c+32C.c=c-'A'+'a'D.c=('A'+c)%26-'a'有以下程序:#include<stdio.h>voidmain()

{intx,y,z;

x=y=1;z=x++,y++,++y;

printf("%d,%d,%d\n",x,y,z);

}程序运行后的输出结果是。A.2,3,3B.2,3,2C.2,3,1D.2,2,1指出下面输入函数正确的是。A.scanf("a=b=%d",&a,&b);B.scanf("a=%d,b=%f",&m,&f);C.scanf("%3c",c);D.scanf("%5.2f",&f);有以下程序:#include<stdio.h>voidmain()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);}程序运行后,若从键盘输入(从第1列开始)123<回车>45678<回车>则输出结果是。A.1267B.1256C.1278D.1245以下程序的功能是:给r输入数据后计算半径为r的圆面积s。#include<stdio.h>voidmain()/*Beginning*/{intr;floats;scanf("%d",&r);s=π*r*r;printf("s=%f\n",s);}程序在编译时出错,出错的原因是。A.注释语句书写位置错误B.存放圆半径的变量r不应该定义为整型C.输出语句中格式描述符非法D.计算圆面积的赋值语句中使用了非法变量以下程序的输出结果是。#include<stdio.h>voidmain(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}A.3B.5C.-1D.-2以下程序的输出结果是。#include<stdio.h>voidmain(){intx=4,y=8;x+=y;y+=x;printf("%d%d\n",x,y);}A.1220B.48C.1212D.84下列程序的执行结果是。#include<stdio.h>voidmain(){intx='c';printf("%c\n",'B'+(x-'b'+1));}A.DB.HC.ID.J下列程序的执行结果是。#include<stdio.h>voidmain(){inta=5;floatx=2.14;a*=x*('D'-'A');printf("%f\n",(float)a);}A.32.100000B.32C.32.000000D.33.000000数字字符0的ASCII值为48,以下程序运行后的输出结果是。#include<stdio.h>voidmain(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-a);}A.3,2B.50,2C.2,2D.2,50有以下程序:#include<stdio.h>voidmain(){chara1='M',a2='m';printf("%c\n",a1,a2);}以下叙述中正确的是。A.程序输出大写字母MB.程序输出小写字母mC.格式说明符不足,编译出错D.程序运行时产生出错信息有以下程序:#include<stdio.h>voidmain(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}当运行时输入:a<回车>后,以下叙述正确的是。A.变量c1被赋予字符a,c2被赋予回车符B.程序将等待用户输入第2个字符C.变量c1被赋予字符a,c2中仍是原有字符2D.变量c1被赋予字符a,c2中将无确定值二、填空题一个C源程序是由若干个函数构成,其中必须有一个是main函数。两整数相除的结果为int类型。函数体由{开始,由符号}结束。函数体的前面是定义语句部分,其后是执行语句部分。在C语言中整数可用二进制进制数、十六进制数和十进制进制数三种数制表示。在C语言程序中,整型数据占4字节,用关键字float定义单精度实型变量,字符型数据占1字节。执行以下程序后的输出结果是14。#include<stdio.h>voidmain(){inta=10;a=(3*5,a+4);printf("a=%d\n",a);}设有定义:floatx=123.4567;则执行以下语句后的输出结果是123.460000。printf("%f\n",(int)(x*100+0.5)/100.0);已知字母A的ASCII码为65。以下程序运行后的输出结果是67G。#include<stdio.h>voidmain(){chara,b;a='A'+'5'-'3';b=a+'6'-'2';printf("%d,%c\n",a,b);}有以下程序,当运行时输入:12<回车>后,输出结果是12。#include<stdio.h>voidmain(){charch1,ch2;intn1,n2;ch1=getchar();ch2=getchar();printf("%c%c\n",ch1,ch2);n1=ch1-'0';n2=n1*10+(ch2-'0');printf("%d\n",n2);}执行以下程序后的输出结果是。#include<stdio.h>voidmain(){intx,y,z;x=y=2;z=3;y=z++-1;printf("%d\t%d\t",x,y);//x=2y=2z=4y=++x-1;printf("%d\t%d\n",x,y);//x=3,y=2,z=4y=z1;printf("%d\t%d\t",z,y);//x=3,y=3,z=3y=--z-1;printf("%d\t%d\n",z,y);//x=3,y=1,z=2}执行以下程序后的输出结果是。#include<stdio.h>voidmain(){intx;x=-3+4*5-6;printf("%d,\t",x);//11,x=3+4%5-6;printf("%d,\t",x);//1,x=(7+6)%5%2;printf("%d\n",x);//1}执行以下程序后的输出结果是。#include<stdio.h>voidmain(){inta,b=97;a=-3;printf("\ta=%d\tb=\'%c\'\t\"end\"\n",a,b);//-3a}以下程序输入1.2345.6789<CR>,则程序运行结果为x=1.230000,y=45.678900,请填空完成程序。注:<CR>表示回车。#include<stdio.h>voidmain(){doublex,y;scanf();//"%4lf%7lf",&x,&yprintf("x=%lf,y=%lf\n",x,y);}以下程序的运行结果是。#include<stdio.h>voidmain(){inti=5,j=9;floatx=2.3,y=4.5;printf("%8.2f\n",i%(int)(x+y)*j/2/3+y);//11.5}第3章算法的基本控制结构一、单项选择题以下叙述中错误的是。A.C语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同这个选项是。A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1有以下程序段intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;执行该程序段后,k的值是。A.3B.2C.1D.0设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句if(a<b)if(c==d)y=0;elsey=1;该语句所表示的含义是。0a<b且c=dA.y=1a≥b0a<b且c=dB.y=1a≥b且c≠d0a<b且c=dC.y=1a<b且c≠d0a<b且c=dD.y=1c≠d以下程序运行后的输出结果是。#include<stdio.h>voidmain(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}A.6,1B.2,1C.6,0D.2,0以下程序运行后的输出结果是。#include<stdio.h>voidmain(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1)//b=1a=1a=6b=2a=3b=3a=8b=4break;{a+=5;continue;}a-=3;}printf("%d\n",b);}A.3B.4C.5D.6设变量已正确定义,则以下能正确计算f=n!的程序段是。A.f=0;for(i=1;i<=n;i++)f*=i;B.f=1;for(i=1;i<n;i++)f*=i;C.f=1;for(i=n;i>1;i++)f*=i;D.f=1;for(i=n;i>=2;i--)f*=i;设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是。A.10<a<15B.a==11||a==12||a==13||a==14C.a>10&&a<15D.!(a<=10)&&!(a>=15)当执行以下程序段时,供选择的答案是。a=-3;do{a+=a;}while(!a);A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统提示有语法错误若定义intk;则以下循环语句的循环执行次数是。for(k=2;k==0;)printf("%d",k--);A.无限B.0C.1D.2为了避免嵌套的条件语句if-else的二义性,C语言规定。A.else与缩排位置相同的if配对B.else与其之前最近的if配对C.else与其之后最近的if配对D.else与同一行上的if配对以下不正确的描述是。A.用while和do-while循环时,循环变量初始化的操作应在循环语句前完成B.while循环是先判断表达式,后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for,while和do-while循环中的循环体语句均可以由空语句构成下列条件语句中,功能与其他语句不同的是。A.if(a)printf("%d\n",x);elseprintf("%d\n",y);B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);以下程序的输出结果是。#include<stdio.h>voidmain(){inti=0,s=0;for(;;){if(i==3||i==5)continue;if(i==6)break;i++;s+=i;}printf("%d\n",s);}A.10B.13C.21D.程序是死循环以下程序的输出结果是。#include<stdio.h>voidmain(){inta=3,b=4,c=5,d=2;if(a>b)if(b>c)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",d);}A.2B.3C.43D.44在以下给出的表达式中,与while(E)中的(E)不等价的表达式是。A.(!E==0)B.(E>0‖E<0)C.(E==0)D.(E!=0)要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是。A.while((ch=getchar())!=N)printf("%c",ch);B.while(ch=getchar()!='N')printf("%c",ch);C.while(ch=getchar()=='N')printf("%c",ch);D.while((ch=getchar())=='N')printf("%c",ch);有以下程序:#include<stdio.h>voidmain(){intx=6;while(x--);printf("x=%d\n",x);}运行程序的输出结果是。A.x=0B.x=-1C.x=1D.while构成无限循环二、填空题表示条件:10<z<100或z<0的C语言表达式是。当x=6,y=5,z=4时,表达式a=x>y>z的值是。阅读下列程序:#include<stdio.h>voidmain(){charc;while((c=getchar())!='\n'){if(c>='A'&&c<='Z')c=c+32;elseif(c>='a'&&c<='z')c=c-32;printf("%c",c);}printf("\n");}执行时,如果从键盘上输入:DEFabc<回车>,则运行结果是。输入:742<回车>,以下程序的运行结果是9866。#include<stdio.h>voidmain(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}}printf("\n");}执行以下程序后的输出结果是4。#include<stdio.h>voidmain(){inti,j,x=0;

for(i=0;i<2;i++)

{x++;

for(j=0;j<3;j++)

if(j%2)break;

x++;

}

printf("x=%d\n",x);

}以下程序的功能是:输出a、b、c三个变量中的最小值,请填空。#include<stdio.h>voidmain(){inta,b,c,t1,t2;scanf("%d%d%d",&a,&b,&c);t1=a<b?;t2=c<t1?;printf("%d\n",t2);}有以下程序段,且变量已正确定义和赋值:for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf("s=%f\n\n",s);请填空,使下面程序段的功能与之完全相同。s=1.0;k=1;while(){s=s+1.0/(k*(k+1));;}printf("s=%f\n\n",s);:一球从100米高度垂直自由落下,每次落地后反弹回上次高度的一半,再落下……。以下程序计算该球第10次反弹高度(米),以及球第10次落地时经过的路程(米)。求s=1+12+123+1234+12345。程序如下,请填空。#include<stdio.h>voidmain(){intt=0,i,s=0;for(i=1;i<=5;i++){t=i+10*t;112123s=s+t;}printf("s=%d",s);}以下程序的功能是输出如下形式的方阵,请填空。13141516910111256781234#include<stdio.h>voidmain(){inti,j,x;for(j=4;j<=1;j--){for(i=1;i<=4;i++){x=(j-1)*4+i;printf("%4d",x);}printf("\n");}}以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。#include<stdio.h>voidmain(){floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if()printf("YES\n");/*a、b、c能构成三角形*/elseprintf("NO\n");/*a、b、c不能构成三角形*/

}以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。#include<stdio.h>voidmain(){inti,j;

for(i=0;;i++){j=i*10+6;

if()continue;

printf("%d\n",j);

}

}以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下,请填空完成该程序。ABCDE

FGHI

JKL

MN

O#include<stdio.h>voidmain(){inti,j,n;charch='A';

scanf("%d",&n);

if(n<11)

{for(i=1;i<=n;i++)

{for(j=1;j<=n-i+1;j++)

{printf("%2c",ch);

ch=ch+1;

}

printf(]n”);

}

}

elseprintf("nistoolarge!\n");

printf("\n");}第4章函数一、单项选择题以下叙述中正确的是。A.C语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D.main可作为用户标识符,用以命名任意一个函数作为主函数以下叙述中错误的是。A.C程序必须由一个或一个以上的函数组成B.函数调用可以作为一个独立的语句存在C.若函数有返回值,必须通过return语句返回D.函数形参的值也可以传回给对应的实参以下叙述中正确的是。A.C程序中注释部分可以出现在程序中任意合适的地方B.花括号"{"和"}"只能作为函数体的定界符C.构成C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是C语句之间的分隔符,不是语句的一部分若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是。A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参设函数fun的定义形式为voidfun(charch,floatx){…}则以下对函数fun的调用语句中,正确的是。A.fun("abc",3.0);B.t=fun('D',16.5);C.fun('65',2.8);D.fun(32,32);调用函数的实参与被调用的形参应该有如下关系。A.只要求实参和形参个数相等B.只要求实参和形参顺序相同C.只要求实参和形参数据类型相同D.上述三点均需具备在C语言中以下不正确的说法是。A.实参可以是常量、变量或表达式B.形参可以是常量、变量或表达式C.实参可以为任意类型D.形参应与其对应的实参类型一致以下关于说法正确的是。A.实参和与其对应的形参各自占用独立的存储单元B.实参与其对应的形参共占用一个存储单元C.实参和与其对应的形参同名时才共同占用存储单元D.形参是虚拟的,不占用存储单元在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则。A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C语言中不允许这样的递归调用有以下程序:#include<stdio.h>fun(intx,inty){return(x+y);}voidmain(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}程序运行后的输出结果是。A.6 B.7 C.8 D.9有以下程序:#include<stdio.h>intfun1(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;

a=fun1(x);b=fun1(y);return(int)(a+b);}voidmain(){floatw;w=fun2(1.1,2.0);}

程序执行后变量w中的值是。A.5.21B.5C.5.000000D.0.0有以下程序:#include<stdio.h>intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}voidmain(){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);}程序运行后的输出结果是。A.4,3,7 B.3,4,7 C.5,2,7 D.2,5,7有以下程序:#include<stdio.h>intsum(intn){intp=1,s=0,i;for(i=1;i<=n;i++)s+=(p*=i);returns;}voidmain(){printf("sum(5)=%d\n",sum(5));}程序运行后的输出结果是。A.sum(5)=151 B.sum(5)=152C.sum(5)=153 D.sum(5)=155有以下程序:#include<stdio.h>fun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}voidmain(){printf("%d\n",fun(7));}程序运行后的输出结果是。A.7 B.3 C.2 D.0有以下程序:

#include<stdio.h>intfun(intn)

{if(n==1)return1;

elsereturn(n+fun(n-1));}voidmain()

{intx;

scanf("%d",&x);x=fun(x);printf("%d\n",x);

}执行程序时,给变量x输入10,程序的输出结果是。A.55 B.54 C.65 D.45以下程序的输出结果是。#include<stdio.h>voidf(intv,intw){intt;t=v;v=w;w=t;}voidmain(){intx=1,y=3,z=2;if(x>y)f(x,y);elseif(y>z)f(y,z);elsef(x,z);printf("%d,%d,%d\n",x,y,z);}A.1,2,3B.3,1,2C.1,3,2D.2,3,1有以下程序:#include<stdio.h>fun(inta,intb){if(a>b)return(a);elsereturn(b);}voidmain(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}运行程序的输出结果是。A.3B.6C.8D.12下列程序的输出结果是。

#include<stdio.h>fun(inta,intb,intc)

{

c=a*b;

}

voidmain(){

intc;

fun(2,3,c);

printf("%d\n",c);

}A.0B.6C.1D.无法确定C语言规定:在一个源程序中,main函数的位置_____。A.必须在最开始B.可以任意C.必须在系统调用的库函数的后面D.必须在最后若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是。A.voidmain(){……x=fun(2,10);……}floatfun(inta,intb){……}B.floatfun(inta,intb){……}voidmain(){……x=fun(i,j);……}C.floatfun(int,int);voidmain(){……x=fun(2,10);……}floatfun(inta,intb){……}D.voidmain(){floatfun(inta,intb);……x=fun(i,j);……}floatfun(inta,intb){……}二、填空题若自定义函数不要求返回一个值,则应在函数说明时加一个类型说明符。执行以下程序后的输出结果是9。#include<stdio.h>intf(intx,inty)

{return(y-x)*x;}

voidmain()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

printf("%d\n",d);

}下面的函数是一个求非负整数阶乘的递归函数。请填空。fac(intn){if(n==0);elsereturn;}以下程序是用来从10到99数字中挑出能被3整除且至少有一位是5的两位数,并打印出所有这样的数及其个数。请填空。#include<stdio.h>voidmain(){intk,m=0;for(k=10;k<=99;k++){m+=sub(k);}printf("个数为:%d\n",m);}sub(intk){inta1,a2,n=0;a2=;a1=k/10;if(k%3==0&&(a2==5||a1==5)){printf("%d",k);return1;}elsereturn0;}以下函数abc的功能是。调用该函数后,从键盘输入4,则整个函数的运行结果为。voidabc(){intchoice;do{printf("***主菜单***\n");printf("1.输入2.排序\n");printf("3.输出4.退出\n");printf("请选择1-4");scanf("%d",&choice);switch(choice){case1:sr();break;/*sr()为自定义输入函数*/case2:sort();break;/*sort()为自定义排序函数*/case3:sc();break;/*sc()为自定义输出函数*/case4:exit(0);}}while(1);}以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。intisprime(inta){inti;

for(i=2;i<=a/2;i++)

if(a%i==0);

;}以下函数utoh将十进制正整数n转换成无符号十六进制并输出,请填空。utoh(unsignedn){inth;charch;h=n%16;ch=h<=9?h+'0':h+'A'-10;if(n/16>0)utoh(n/16);printf("%c",ch);}以下程序中,函数fun的功能是计算x-2x+6,主函数中将调用函数计算:y1=(x+8)-2(x+8)+6y2=sin(x)-2sin(x)+6请填空。#include<stdio.h>#include<math.h>doublefun(doublex){return(x*x-2*x+6);}voidmain(){doublex,y1,y2;printf("Enterx:");scanf("%lf",&x);y1=fun(x+8);y2=fun(sin(x));printf("y1=%lf,y2=%lf\n",y1,y2);}求以下分数序列的前n项之和。请填空。#include<stdio.h>doublefun(intn){inta=2,b=1,c,k;doubles=0.0;for(k=1;k<=n;k++){s+=(double)a/b;c=a;a=a+b;b=c;}Returns;}voidmain(){intn=5;printf("%lf\n",fun(n));}以下程序通过函数sunFun求,其中,由F函数实现。请填空。#include<stdio.h>voidmain(){printf("Thesum=%d\n",SunFun(10));}SunFun(intn){intx,s=0;for(x=0;x<=n;x++)s+=F(_x_);returns;}F(intx){returnx*x+1;}第5章数组一、单项选择题语句charstr[20];说明str是一个字符串,最多能表示。A.20个字符B.19个字符C.18个字符D.21个字符以下关于字符串的叙述中正确的是。A.C语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串一定比空格打头的字符串小有以下程序:#include<stdio.h>#defineMAX10voidmain(){inti,sum,a[]={1,2,3,4,5,6,7,8,9,10};sum=1;for(i=0;i<MAX;i++)sum-=a[i];printf("SUM=%d",sum);}程序运行结果是。A.SUM=55B.SUM=-54C.SUM=-55D.SUM=54有以下程序:#include<stdio.h>voidmain(){chara[40],b[40];inti,j;printf("Enterthestring:");scanf("%s",a);i=j=0;while(a[i]!='\0'){if(!(a[i]>='0'&&a[i]<='9')){b[j]=a[i];j++;}++i;}b[j]='\0';printf("%s",b);}程序运行后输出的结果是。A.把键盘输入的字符串显示在屏幕上B.把键盘输入的字符串中的数字字符删掉,然后显示该字符串C.把键盘输入的字符串中的字符0和9删掉,然后显示该字符串D.只保留由键盘输入的字符串中的字母数字,然后显示该字符串有以下程序:#include<stdio.h>voidmain(){chara[80];inti;printf("Enterthestring:");scanf("%s",a);i=0;while(a[i]!='\0'){if(a[i]>='A'&&a[i]<='Z')a[i]=a[i]-'A'+'a';i++;}printf("%s",a);}程序运行后输出的结果是。A.把键盘输入的字符串中的大写字母变换成小写字母,然后显示变换后的字符串B.把键盘输入的字符串中的数字字符删除掉,然后显示该字符串C.把键盘输入的字符串中的小写字母变换成大写字母,然后显示变换后的字符串D.把键盘输入的字符串原封不动地显示在屏幕上当用户要求输入的字符串中含有空格时,应使用的输入函数是。A.scanf()B.getchar()C.gets()D.getc()下面程序段的运行结果是。chars[6];s="abcd";printf("\"%s\"\n",s);A.abcdB."abcd"C.\"abcd\"D.编译出错下列程序运行后输出的结果为。#include<stdio.h>voidmain(){charch[7]={"12ab56"};inti,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);}A.1B.12C.1256D.1256有以下程序:#include<stdio.h>#include<string.h>voidmain(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n",i,j);}程序运行后的输出结果是。A.9,9 B.8,9 C.1,8 D.9,8有以下程序:#include<stdio.h>voidmain(){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);}程序运行后的输出结果是。A.11 B.19 C.13 D.5以下能正确定义一维数组的选项是______。A.inta[5]={0,1,2,3,4,5};B.chara[]={0,1,2,3,4,5};C.chara={'A','B','C'};D.inta[5]="0123";已有定义:chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是______。A.数组a和b的长度相同B.a数组长度小于b数组长度C.a数组长度大于b数组长度D.上述说法都不对二、填空题下面rotate函数的功能是:将n行n列的矩阵A转置,请填空。#defineN4voidrotate(inta[][N]){inti,j,t;for(i=0;i<N;i++)for(j=0;;j++){t=a[i][j];;a[j][i]=t;}}以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。#include<stdio.h>voidmain(){floatx[1000],sum=0.0,ave,a;intn=0,i;printf("Entermark:\n");scanf("%f",&a);while(a>=0.0&&n<1000){sum+=a;x[n]=a;n++;scanf("%f",&a);}ave=sum/n;printf("Output:\n");printf("ave=%f\n",ave);}第6章指针一、单项选择题下面是一个初始化指针的语句:int*px=&a;其中指针变量的名字应该是。A.*pzB.aC.pxD.&a若指针px为空指针,则。A.px指向不定B.px的值为零C.px的目标为零D.px的地址为零若有以下定义,且0<=i<5,则对于a数组元素的非法引用是。A.a[i]B.*(a+1)C.*(p+i)D.*(&a+i)有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是。A.5B.6C.8D.9二、填空题有以下程序:#include<stdio.h>voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/{intt,i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}voidmain(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}该程序运行后的输出结果是。第7章模块化程序设计一、单项选择题C源程序的基本单位是。A.程序行B.语句C.函数D.字符下列说法不正确的是___________。A.C程序由若干个源文件组成,一个源文件由若干个函数

温馨提示

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

评论

0/150

提交评论