C语言程序设计-第1-7章选择、填空习题及答案_第1页
C语言程序设计-第1-7章选择、填空习题及答案_第2页
C语言程序设计-第1-7章选择、填空习题及答案_第3页
C语言程序设计-第1-7章选择、填空习题及答案_第4页
C语言程序设计-第1-7章选择、填空习题及答案_第5页
免费预览已结束,剩余17页可下载查看

付费下载

下载本文档

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

文档简介

C.语句D.C.语句D.字符B.先说明后引用D.引用和说明顺序无关B.执行语句之前D.位置无关B.符号语言D.面向对象的语言循环三种基本结构构成_组成。出口,没有死循环和死语句一、选择题.C程序的基本单位是(A)。A.函数B.文件.C程序中的变量(B)。A.不用说明C.先引用后说明.变量的说明在(B)。A.执行语句之后C.执行语句当中.C语言是一种(C)oA.机器语言C.高级语言二、填空题.一个C程序总是从主函数开始执行。.结构化程序由顺序、选择、.一个C程序只有一个名为main的主函数。.C程序中的每个语句以分号结束。.C程序中,函数由函数首部和函数体.每个基本结构有一个入口和一个.算法是计算机解决问题所依据的步骤。、选择题下列数据中属于字符串常量的是(B)。A.ABCB."ABC"C.'abc'D.'A'2.在计算机内存中,'\n'占用的字节数是C)。A.4B.3C.D.3.字符串"ABC"在内存中占用的字节数是(D)。.8.9.A.6B.8C.D.在C语言中,合法的长整型常数是A.568701400B.0Lchar型常量在内存中存放的是(A.ASCII代码值A)B)C.B.0.03546287BCD代码值D.2.654e11C.十进制代码值下列各项中正确的标识符是(D)。A.?bbB.a=8下列不正确的转义字符是(D)。A.\\B.\0D.C.设整型变量A.0设a的值为A.b=a/2内码值C.\"D.b4D.0x4a、5,b的值均为5,则表达式B.1执行下列语句后,B.b=6-(--a)10.执行语句x=(a=3,b=a--)后,x、(m=n=a++)/(n=b-2)C.2的值为(B)oD.3b的值不为2的是(C)C.b=a%2a、b的值依次是(C)。D.b=(float)a/2C.3,2,3D.2,3,2C.3,2,3D.2,3,2A.3,3,2B.3,2,2.设有语句inta=3;,则执行了语句a+=a-=a*a;后,变量a的值是(D)。A.3B.0C.9D.-12.在下列运算符中,优先级最高的是(A.&&B.%C.D.>=13.设整型变量aA.&&B.%C.D.>=13.设整型变量a的值为3,则计算表达式10C.后,表达式的值为(B)oD.表达式出错14.设整型变量14.设整型变量a、b、c的值均为2,表达式a---b+++c++的结果是(C)。692D.692D.表达式出错15.若已定义12.5215.若已定义12.52D.2.0x和y为double类型,则表达式x=1,y=x+3/2的值是(D)。.下列表达式中符合C语言语法的赋值表达式是(C)oA.a=4+b++c=a+8B,a=4+b++=a+8C.a=(4+b,b++,a+8)D.a=4+b,c=a+8.若有以下定义:chara;intb;floatc;doubled;,则表达式a*b+d-c的值的类型为(D)。A.intB.floatC.charD.double二、填空题.在内存中存储"A"要占2个字节,存储'A'要占」个字节。.符号常量的定义方法是#define常量名常量。.无符号基本整型的数据类型符为unsignedint双精度实型数据类型符为double,字符型数据类型符为char。.十进制数673的二进制、八进制和十六进值数分别为1010100001、2412和2A1。.在C语言中,书写八进制数时必须加前缀0;书写十六进制数时必须加前缀0x。.在微机上,int型、short型、long型、float型和double型数据一般在内存中分别占2字节、2字节、4字节、4字节和8字节。.设有下列运算符:<<、+、++、&&>=,其中优先级最高的是++,优先级最低的是&&o.设x、y为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1.0。.设整型变量x、v、z均为5,则:执行x-=y-z后,x的值为5。执行x%=y+z后,x的值为5。M数学式之的C语言表达式为期」三、简答题.字符常量与字符串常量有什么区别?.对于TurboC系统来说,char型变量与int型变量在内存中存储数据的区别是什么?.整型变量可细分为哪六类?.什么是一个实型数据的规范化指数形式?.设x=3.5,a=5,y=6.7,求算术表达式x+a%3*(int)(x+y)%2/4的值。.设a=2,b=3,x=4.5,y=1.6,求表达式(float)(a+b)/2+(int)x%inty的值。.设整型变量a=12,写出下列表达式运算后a的值。①a*=2+5②a/=a+a③a+=a-=a*=a.写出下列程序的运行结果。main(){charc1='A',c2='B',c3='C',c4='\101',c5='\h42';printf("A%cb%c\t%c\tbc\n”,c1,c2,c3);printf("\t\b%c%c”,c4,c5);)结果:AAbBCabcAB

.写出下面程序的运行结果。main(){inti,j,m,n;i=5;j=6;m=++i;n=--j;printf("%d,%d,%d,%d",i,j,m,n);)结果:6,5,6,5习题三、选择题1.printf()函数输出实数时,使用的格式字符是(C)A.%dB.%cC..下面变量说明中A.%dB.%cC..下面变量说明中(C)是正确的。A.char:a,b,c;C.chara,b,c;.putchar()函数可以向终端输出一个(A.整型变量表达式值C.字符串.阅读以下程序,当输入数据的形式为:main(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n",x+y+z);)x+y+z=48B,x+y+z=35%fD.%ochara;b;c;D.chara,b,cD)oB.实型变量值D.字符或字符型变量值25,13,10〈CR>,正确的输出结果为(D)C.x+z=35D.不确定值5.以下说法正确的是(D)A.输入项可以是一个实型常量B.只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);D.当输入数据时,必须指明变量的地址,如scanf("%f",&f);.以下能正确地定义整型变量a、b和c并为其赋初值5的语句是(C)。A.inta=b=c=5;B.inta,b,c=5;C.inta=5,b=5,c=5;D.a=b=c=5;.已知ch是字符型变量,下面正确的赋值语句是(B)。A.ch='a+b';B.ch='\xff';C.ch='\08';D.ch="\";8.设x、y均为float型变量,则以下不合法的赋值语句是(B)°A.++x;B.y=(x%2)/10;C.x*=y+8;D.x=y=0;9.以下格式符中,不能用来输入实型数的是(B)A.fB.e(E)C.g(G)D.x10.若floatnum=123.456,以%+10.4d的格式输出,结果正确的是(B)A.123.456000B,123.4560C.123.4560D.+123.4560二、填空题.以下程序的输出结果是x=1y=2*sum*=310squaredis:100main(){intx=1,y=2;printf("x=%dy=%d*sum*=%d\n",x,y,x+y);printf("10squaredis:%d\n",10*10);

).以下程序的输出结果是a=325x=3.14。main(){inta=325;doublex=3.1415926;printf("a=%2dx=%7.2f\n",a,x);).假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空:a+=b;TOC\o"1-5"\h\zb=a-b;a-=b;.若x为int型变量,则执行以下语句后x的值是214。x=7;x+=x-=x+x;.C语句可以分为五类,含三种控制语句、声明语句、表达式语句、空语句和复合语句。.赋值语句是由赋值表达式加上一个分号构成。.a=12,n=5,表达式a%=(n%=2)值是0。.有一个输入函数scanf("%d",k);则不能使float类型变量k得到正确数值的原因是k前无&和%d与k的类型不一致。.putchar()函数可以向终端输出一个字符。.已有定义inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x,则对应以下scanf()函数调用语句的数据输入形式是-12C410.34。scanf("%o%x%e",&i,&j,&x);.pirntf()函数中用到格式符%5s,其中数字5表示输出的字符串占5歹U,如果字符串长度大于5,则按实际宽度输出。.使用getchar()和putchar()函数必须在源程序中加#include"stdio.h"。习题四、选择题.执行下面的程序段后,b的值为(B)。intx=35;charz='A';intb;b=((x&&15)&&(z<'a'));A0B.1C.2D.3.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n-c>d)后n的值为(B)A.123A.123D.4.若k是int型变量,且有下面的程序段,输出结果是(A)K=-3;if(k<=0)printf("####");elseprintf("&&&&”);A.####B.&&&&C.####&&&&D.有语法错误,无输出结果C.####&&&&.设A、B和C都是int型变量,且A=3,B=4,C=5,则下面表达式中值为0的达式是(D)A.A&&BB.A<=BA.A&&BB.A<=BC.AC.A||B+C&&BD.!((A<B)&&!C||1).阅读程序:#include"stdio.h"main(){floatx,y;scanf("%f",&x);if(x<0.0)y=0.0;elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x<10.0)y=1.0/x;elsey=10.0;printf("%f\n",y);B.0.250000B.0.250000若运行时从键盘上输入2.0,则上面程序的输出结果是(C)A.0.000000C.0.500000D.1.0000006.阅读程序:6.#include"stdio.h"main()intx=1,y=0,a=0,b=0;switch(x)switch(y)case0:a++;break;case1:b++;break;a++;b++;break;7.}printf("a=}上面程序输出结果是(a=2,b=l%d,b=%d'n",a,b)A)。7.}printf("a=}上面程序输出结果是(a=2,b=l%d,b=%d'n",a,b)A)。C.a=l,b=0下面程序的输出是(C)。D.a=l,b=la=2,b=2main(){inta=k=(a++<=0)&&(!(b--<=0));printf("%d%d%d%'n",k,a,b);}main(){inta=k=(a++<=0)&&(!(b--<=0));printf("%d%d%d%'n",k,a,b);}A.003B.012C.D.1128.为表示关系x>y>z,应使用C语言表达式A.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)C.(x>=y>=z)D(x>=y)&(y>=z).8.为表示关系x>y>z,应使用C语言表达式A.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)C.(x>=y>=z)D(x>=y)&(y>=z).若要求在if后一■对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(A.a<>0B.!aC.a=0.若有以下定义:floatx;inta,b;则正确的switch语句是(D)。switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}switch(x){case1,2:printf("*\n");case3:printf("**\n");}switch(a+B){case1:printf("\n");case1+2:printf("**\n");}D.aD.switch(a+b){case1:{case1:printf("*\n");case2:printf("**\n");}.下列语句中,错误的是(C)oA.while(a=b)a++;B.while(0);.执行语句:for(i=1;i++<4;)后变量iA.3B,4C.doD.do{printf(ok\n");{x++;}while(x==5)}while(--x==0);的值为:(B)。C.5D.6.以下程序的输出结果是:D.101091D.无限多次D.30a=25&&b--<=2&&c++?printf("***a=D.101091D.无限多次D.30a=25&&b--<=2&&c++?printf("***a=%d,b=%d,C=%d\n",a,b,c)printf("###a=%d,b=d,C=%main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);)A.10192B.9876C.10990.以下for语句的循环次数为:(B)ointi=0,j=0;for(;!j&&i<=5;i++)j++;TOC\o"1-5"\h\zA.5次B.1次C.6次.以下程序段中内嵌循环共被执行的次数为:(A)for(i=5;i;i--)for(j=0;j<4;j++){}A.20B.24C.25二、填空题1.设ch是char型变量,其值为A,且有下面的表达式:ch=(ch>'A'&&ch<='Z')?(ch+32):ch该表达式的值是AQ2,若已知a=10,b=20,则表达式“!a<b”的值为1。.已知a=10,b=20,c=30,则表达式d\n",a,b,c);的值为###a=10,b=19,c=30。.下面程序的输出结果是0,0,4omain(){inta=-1,b=4,k;k=(++a<0)&&!(b-->=0);printf("%d%d%d\n",k,a,b);).假定所有变量均已正确说明,下列程序段运行后,x的值是4a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;.若执行下面的程序时,从键盘上输入3和4,则输出结果是3main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a&&b)printf("%d'n",s);elseprintf("%d'n",s--);).以下程序的输出结果是x=11,i=11。main(){intx=1,i=1;for(;x<50;i++){if(x>=10)break;if(x%2!=1){x+=3;continue;)x-=1;)printf("x=%d,i=%d\n",x,i);).以下程序的输出结果是i=9,j=10。main(){inti=10,j=0;do{j=j+i;i--;}while(i>j);printf("i=%d,j=%d\n",i,j);}.以下程序的输出结果是35。main(){intm=7,n=5,i=1;do{if(i%m==0)if(i%n==0){printf(%d\n”,i);break;}i++;}while(i!=0);}.以下程序的输出结果是1,-2。main(){intx=3;do{printf("%d”,x-=2);}while(!(--x));}.以下程序的输出结果是i=4,j=6omain(){inti,j;for(i=0;i<5;i++){for(j=1;j<10;j++)if(j==6)break;if(i<3)continue;if(i>3)break;}printf("i=%d,j=%d\n",i,j);}习题五一、选择题1,下列为一维数组初始化时,正确的是(D).A.inta[]={1,3,5,7,9,…,15};B.inta[5]={};C.inta[5]={5*3};D.inta[5]={0};2,下列一维数组说明中,正确的是(A).A.#defineM10B.intm;floats[M];scanf(%d',&m);floata[m];C.intm=10,a[m];D.inta[];.若要将2,4,6,8存入数组a中,不正确的是(C).A.inta[4]={2,4,6,8};B.inta[]={2,4,6,8};C.inta[4];a={2,4,6,8};D.inta[4];a[0]=2;a[1]=4,a[2]=6;a[3]=8;.若有说明:inta[5][5];则对数组元素的正确引用是(C).A.a[3+2][3]B.a[0,3]C.a[4][1+2]D.a[][2].下列二维数组初始化中,错误的是(A)B.inta[][3]={2,3,4,5,6,7};s中最大元素的下标,请填空。s中最大元素的下标,请填空。B.数组x和数组y的长度相同D.数组x的长度小于数组y的长度”,则a[1][1]值为0,a[2][1]的值为0"后,b[4]=0,a[1][2]=6C.inta[3][3]={0};.若有以下数组定义:charch[]="book_120\n";A.7B.8.以下程序段的输出结果是(A).charstr[8]={'a','b','c','d',''0',V,'z',''0'};printf("%s",str);A.abcdB.abcdyz.设有如下定义:chars1[20]="tianjin",s2[10]="beijing";执行语句:strcpy(s1+4,s2);printf("%s",s1);A.tianB.tianbeijing.合法的数组定义是(B)A.inta[]={"string"};C.chara={"string"};.若有以下说明,则数值为4的表达式是(inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;A.a[g-c]B.a[4].下列语句中,正确的是(D)A.chara[3][]={'abc','I'};C.chara[3][]={'a',"I"};.设有如下定义,则正确的叙述为(C)charx[]={"abcdefg"};chary[]={'a','b','c','d','e','f','g'};A.数组x和数组y等价C.数组x的长度大于数组y的长度二、填空题.设有定义语句“inta[3][4]={{1},{2},{3}}.执行“intb[5]={},a[][3]={1,2,3,4,5,6}.下面程序的功能是输出数组D.inta[5][4]={{1,2},{2,3},{3,4},{4,5}};则数组ch的存储长度是(D)oC.9D.10C.abcdyzD.出错后,输出结果是(B).tianjinbeijingD.tianbeijB.inta[]={0,1,2,3,4,5};chara[]={0,1,2,3,4,5};D)a['d'-'c']D.a['d'-c]B.chara[][3]={'abc','I'};chara[][3]={"abc","I"};main(){intk,p;ints[]={1,-9,7,2,-10,3};for(p=0,k=p;p<6;p++)k=p;if(s[p]>s[k])printf("%d\n",k);}.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。#include"string.h"main(){inti,j,k;charstr[]={"1234567"};for(i=0,j=strlen(str)/2;i<j;i++,j--){k=str[i];str[i]=str[j];str[j]=k;}}.下面程序求5M5方阵的主对角线元素乘积,请填空。#include<stdio.h>main(){inta[5][5],i,j,ss;printf("inputdata:");for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);ss=1;for(i=0;i<5;i++)ss=ss*a[i][j];printf("-ss=%d\n",ss);).以下程序求任意10个实数的最大值和最小值。#include<stdio.h>main(){inti;floata[10],max,min;for(i=0;i<10;i++)scanf("%f",&a[i]);max=min=a[0];for(i=1;i<10;i++){if(max<a[i])max=a[i];if(min>a[i])min=a[i];)printf("最大值=%f\n",max);printf("最小值=%f\n",min);).以下程序求二维数组中每行元素的最大值。#include<stdio.h>#defineM4#defineN5main(){inta[M][N],amax,i,j;for(i=0;i<M;i++)for(j=0;j<N;j++)scanf("%d,&a[i][j]);for(i=0;i<M;i++){amax=a[i][0];for(j=1;j<N;j++)if(a[i][j]>amax)amax=a[i][j];printf("%d%d\n",i,amax);))习题六、选择题.以下叙述不正确的是(D)。一个C源程序可由一个或多个函数组成一个C源程序必须包含一个main()函数C程序的基本组成单位是函数C程序中的注释说明只能位于一条语句的后面以下关于C语言函数参数的说法不正确的是(B)。A.实参可以是常量、变量或表达式B.形参可以是常量、变量或表达式C.实参可以为任意类型D.形参应与其对应的实参类型一致C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(C)。A.地址传递B.由实参传给形参再由形参传回给实参C.单向值传递D.C.单向值传递C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)A.float型B.int型C语言规定,函数返回值的类型是由(A.return语句中的表达式类型所决定C.调用该函数时系统临时决定C.long型D.double型D)。B.调用该函数时的主调函数类型所决定D.定义函数时所指定的函数类型所决定.在C语言程序中,以下正确的描述是(C)。A.函数可以嵌套定义,但不可以嵌套调用B.函数的定义和调用均可以嵌套C.函数不可以嵌套定义,但可以嵌套调用D.函数的定义和调用均不可以嵌套.若用数组名作为函数调用的实参,传递给形参的是(A)。A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数.如果在一个函数中的复合语句中定义了一个变量,以下关于该变量正确的说法是(A)A.只在该复合语句中有效B.在该函数中有效C.在本程序范围内均有效D.为非法变量.以下不正确的说法为(D)。A.在不同函数中可以使用相同名字的变量B.形式参数是局部变量C.在函数内定义的变量只在本函数范围内有效D.在函数内的复合语句中定义的变量在本函数范围内有效.以下程序的正确运行结果是(A)。#include<stdio.h>main(){intk=4,m=1,p;p=func(k,m);printf("%d,",p);p=func(k,m);printf("%d\n",p);}func(inta,intb){staticintm=0,i=2;i+=m+1;D.8,8D.8,8后面的文件名用<>(尖括号)括起时,寻找被包含的文A.8,17B,8,16C,8,20.在“文件包含"预处理语句的使用形式中,当#include件的方式是(C)。A.仅仅搜索当前目录B.先在源程序所在目录搜索,再按系统设定的标准方式搜索C.直接按系统设定的标准方式搜索目录D.仅仅搜索源程序所在目录.以下程序的正确运行结果是(A)。intd=1;fun(intp){intd=5;d+=p++;printf("%d,d);}main(){inta=3;fun(a);d+=a++;printf("%d\n,d);}A.84B.99C.95D.44.若有以下调用语句,则不正确的fun()函数的首部是(D)main(){…inta[50],n;fun(n,&a[9]);A.voidfun(intm,intx[])C.voidfun(intp,int*s).下面的程序执行后输出的结果是(Af(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);)main(){inta=2,i;for(i=0;i<3;i++)printf("%d",f(a));)A.789B.7911.以下程序执行后的输出结果是(B)inta,b;voidfun(){a=100;b=200;}main(){inta=5,b=7;fun();printf("%d,%d\n",a,b);}A.100,200B,5,7.下列不属于编译预处理的是(D)。A.包含文件B.条件编译.下列语句中正确的是(D)。A.#defineMYNAME="ABC"C.for(i=0;i<10;i++);.下列语句中错误的是(A)oA.#definePI=3.1415926C.if(2);B.voidfun(ints,inth[41])D.voidfun(intn,inta))°C.71013D,777C.200,100D,7,5C.宏定义D.连接B.#includestring.hD.#include<stdio.h>B.#include"math.h"D.for(;;)if(1)break;.设有以下宏定义,则执行语句“z=2*(N+Y(5+1));"后,z的值为(B)#defineN3#defineY(n)((N+1)*n)A出错B.42C.48D.54.以下程序中的for循环执行的次数是(C)o#include"stdio.h"defineN2defineMN+1defineNUM(M+1)*M/2main(){inti,n=0;for(i=1;i<=NUM;i++)printf("\n");}A.5B.6C.8D.9二、填空题.C语言中的函数,从能否可以返回值上可分为有返回值函数和无返回值函数。.定义函数时,在函数头中除有函数名称外,还应有函数类型、参数类型和名称等信息。.必须对函数定义才能确立函数可实现的功能,只有对函数调用才能实现函数的功能。.C语言中,函数的调用有函数语句、函数表达式和函数实参三种方式。.C语言中,每个变量都有作用域和生存期,变量的作用域是变量有效范围,变量的生存期是变量作用域.对函数或变量的声明是告诉系统此程序段要用到在其后面才定义的函数或变量,使函数或变量的作用域得以扩展。.C语言中,变量的存储类型有4种,存储方式有2种.以下程序的输出结果是246。voidfun(){staticinta=0;a+=2;printf("%d",a);}main(){intcc;for(cc=1;cc<4;cc++)fun()printf("\n");}.以下程序的运行结果是111。main(){increment。;increment。;increment();}increment(){intx=0;x+=1;printf("%d",x);}.以下程序执行后输出的结果是乌o#include<stdio.h>f(inta){intb=0;staticc=3:a=c++,b++;return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}.以下程序执行后输出的结果是4olongfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%d\n",fib(3));}.以下程序执行后输出的结果是14o#include<stdio.h>longsum(registerintx,intn){longs;inti;registerintt;t=s=x;for(i=2;i<=n;i++){t*=x;s+=t;}return(s);}main(){intx=2,n=3;printf("s=%ld\n",sum(x,n));)则表达式F(2+3)的值是7则表达式F(2+3)的值是7.下面程序的执行结果是5,6,12。#include<stdio.h>intfx(intx,inty){ints;s=(x++)+(++y);returns;)main(){inta,b,k;a=5;b=6;k=fx(a,b);printf("%d%d%d\n”,a,b,k);).下面程序for循环执行6次,程序的运行结果是12345。#include<stdio.h>#defineM3#defineFMNM+Mmain(){inti,n=0;for(i=0;i<FMN;i++){n++;printf("%d",n);}).下面程序的执行结果是0o#include<stdio.h>#defineSR(x)x*xmain(){inta,m=5,n=2;a=SR(m-n)/SR(m+n);printf("%d\n",a);}.设数组a有50个元素,函数fun1()的功能是按顺序分别给数组a中的元素赋以从2开始的偶数值,函数fun2()则按顺序每五个元素求一个平均值,并将求得的值放在数组s中,在空白处完成该程序。#include<stdio.h>#defineN50fun1(floata[]){intk,i;for(i=0,k=2;i<N;i++){a[i]=k;k+=2;}}fun2(floata[],floats[]){floatsum=0;inti,k;for(i=0,k=0;i<N;i++){sum+=a[i];if((i+1)%5==0){s[k]=sum/5;k++;sum=0;}}}main(){floata[N],s[N/5];inti;fun1(a);fun2(a,s);for(i=0;i<N;i++)printf("%5.1f",a[i]);printf("\n");for(i=0;i<N/5;i++)printf("%5.1f",s[i]);.下面程序的运行结果是abcxyz。#include<stdio.h>#include<string.h>main(){intk=0;chars1[10]="abc",s2[10]="xyz";strcat(s1,s2);while(s1[k++]!='\0')s2[k]=s1[k];puts(s2);}.下面程序经宏展开后,程序运行结果是200#definePRprintf("sum=%d\n",sum)#defineADDsum+=imain(){inti,sum=0;for(i=10;i<20;i++)ADD;PR;}习题七一、选择题.变量的指针,其含义是指该变量的(B)。A.值B.地址C.名D.一个标志.以下程序中调用scanf()函数给变量a输入数值的方法是错误的,错误原因是(B)。main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}*p表示的是指针变量p的地址*p表示的是变量a的值,而不是变量a的地址*p表示的是指针变量p的值*p只能用来说明p是一个指针变量.以下程序错误的原因是(A)omain(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;}p和q的类型不一致,不能执行*p=*q;语句*p中存放的是地址值,因此不能执行*p=40;语句q指向具体的存储单元,所以*q没有实际意义q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句.已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是(B)A.k=*ptr1+*ptr2;B.ptr2=k;C.ptr1=ptr2;D.k=*ptr1*(*ptr2);.以下程序运行结果是(B)osub(intx,inty,int*z).{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d\n",a,b,c);}A.5,2,3下面程序段的运行结果是(A)ochar*s="abcde";s+=2;printf("%d",s);A.cdeC.字符'c'的地址若有以下定义,inta[5],A.*&a[5]若有以下定义,inta[5],A.p+5若有以下定义,inta[10],则对*则对*C.B.D.a数组元素地址的正确引用是P=a;B.a+2C.a数组元素地址的正确引用是p=a;B.*a+1p+5表示(A)*p=a;C.'c'无确定的输出结果(B)。*(p+5)(A)。&a+1D.D.5,-2,-7D.*(a+2)&a[0]A.元素a[5]的地址C.元素a[6]的地址B.D.10.若有以下定义,且0<U<6,则正确的赋值语句是ints[4][6],t[6][4],(*p)[6];元素a[5]的值元素a[6]的值(D)。A.p=t;B.p=s;C.P=s[i];D.p=t[i];11.下面程序段的运行结果是(A),char*format="%s,a=%d,b=%d\n"inta=1,b=10;a+=b;printf(format,"a+=b",a,b);A.for,"a+=b",abB.C.a+=b,a=11,b=10.下面程序段的运行结果是(D)char*p="%d,a=%d,b=%d\n";inta=111,b=10,c;c=a%b;p+=3;printf(p,c,a,b);A.1,a=111,b=10C.a=111,b=10.下面程序的运行结果是

温馨提示

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

评论

0/150

提交评论