C语言程序设计教程第四章练习题解析最新版
《C语言程序设计》第4章习题答案

1、选择题(1)C(2)D(3)B(4)D(5)C(6)B(7)B(8)C(9)A(10)C(11)C(12)B 2、填空题(1)①int men[10] ;②float step[4]={1.9,-2.33,0,20.6};③_int grid[4][10] ;(2)①int m[10]={9,4,7,49,32,-5};②0 9③scanf("%d",m[1]);④m[0] =39;⑤m[0] =a[3]+a[5];(3)①3 ②5 ③8 ④8 ⑤9 ⑥12 ⑦9(4)①int a[10]={9,4,12,8,2,10,7,5,1,3}; ②0 9 ③8 8(5)103、程序填空题(1)array[20]20&array[i ]20max=array[i];min=array[i];sum+array[i];sum/20(2)-5.77000021(3)ABCDEFGHIJKLEFGHIJKLABFDEFGHIJKLABFDEFGHI4、程序设计题(1)#define SIZE 100#include<stdio.h>void main(){int a[SIZE+1],i,j;for(i=2;i<=100;i++)a[i]=i;for(i=2;i<=100;i++)for(j=i+1;j<=100;j++)if(a[i]!=0&&a[j]%a[i]==0)a[j]=0;printf("\n");j=0;for(i=2;i<=100;i++){if(a[i]!=0){printf("%-4d",a[i]);j++;}if(j==10){j=0;printf("\n");}}}(2)#define S 14#include"stdio.h"void main(){int a[S][S],i,j,n;printf("please enter n:");scanf("%d",&n);for(i=1;i<=n;i++){a[i][i]=1;a[i][1]=1;}for(i=3;i<=n;i++)for(j=2;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=i;j++)printf(" %3d",a[i][j]);printf("\n");}}(3)#define SIZE 80#include<stdio.h>void main(){char str1[SIZE+SIZE],str2[SIZE];int i,j;puts("Please enter 2 string:");scanf("%s",str1);scanf("%s",str2);i=0;while(str1[i]!='\0')i++;j=0;while(str2[j]!='\0'){str1[i]=str2[j];i++;j++;}str1[i]='\0';printf("%s\n",str1);}(4)#define SIZE 80#include<stdio.h>#include<string.h>void main(){char string[SIZE];int len,i,j,flag;long number;puts("Please enter a digital string:");scanf("%s",string);len=strlen(string);if(string[0]=='-'){flag=-1;i=1;}else{flag=1;i=0;}number=string[i]-'0';for(i++;i<len;i++)number=number*10+(string[i]-'0');number=flag*number;printf("%d\n",number);}(5)#define SIZE 40#include<stdio.h>void main(){int m,n,i,j;float price[SIZE],sum;printf("\nPlease input M and N:");scanf("%d%d",&m,&n);m=m-n;printf("Please input %d price :",n);sum=0;for(i=0;i<n;i++){scanf("%f",&price[i]);sum=sum+price[i];}printf("Aver are %10.2f.",sum/n);while(m>0){for(i=0;i<n-1;i++)price[i]=price[i+1];printf("\nPlease input one price:"); scanf("%f",&price[n-1]);m--;sum=0;for(i=0;i<n;i++){sum=sum+price[i];}printf("Aber are %10.2f",sum/n);}}。
c语言程序设计第四版第四章答案谭浩强

第四章什么是算术运算什么是关系运算什么是逻辑运算解:略。
C语言中如何表示“真”和“假”系统如何判断一个量的“真”和“假”解:设有一个逻辑表达式,若其结果为“真”,则以1表示;若其结果为“假”,则以0表示。
但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。
例如3&&5的值为“真”,系统给出3&&5的值为1。
写出下面各逻辑表达式的值。
设a=3,b=4,c=5。
(1) a+b>c&&b==c(2) a||b+c&&b-c(3) !(a>b)&&!c||1(4) !(x=a)&&(y=b)&&0(5) !(a+b)+c-1&&b+c/2解:(1) 0(2) 1(3) 1(4) 0(5) 1有3个整数a、b、c,由键盘输入,输出其中最大的数。
解:方法一#include <>main(){ int a,b,c;printf("请输入3个整数:");scanf("%d,%d,%d",&a,&b,&c);if(a<b)if(b<c) printf("max=%d\n",c);else printf("max=%d\n",b);else if(a<c) printf("max=%d\n",c);else printf("max=%d\n",a);}方法二:使用条件表达式,可以使程序更加简明、清晰。
程序如下:#include <>main(){ int a,b,c,temp,max;printf("请输入3个整数:");scanf("%d,%d,%d",&a,&b,&c);temp=(a>b)a:b; /* 将a和b中的大者存人temp中 */max=(temp>c)temp:c; /* 将a和b中的大者与c比较,取最大者*/printf("3个整数的最大数是%d\n”,max);}有一函数:写一程序,输入x值,输出y值。
C程序设计(第五版)-第4章选择结构程序设计课后习题答案

C程序设计(第五版)-第4章选择结构程序设计课后习题答案1. 什么是算术运算?什么是关系运算?什么是逻辑运算?【答案解析】算熟运算:算术运算即“四则运算”,是加法、减法、乘法、除法、乘⽅、开⽅等⼏种运算的统称。
其中加减为⼀级运算,乘除为⼆级运算,乘⽅、开⽅为三级运算。
在⼀道算式中,如果有多级运算存在,则应先进⾏⾼级运算,再进⾏低⼀级的运算。
C语⾔中的算熟运算符包括:+、-、*、/、++、--、%等种类。
如果只存在同级运算;则从左⾄右的顺序进⾏;如果算式中有括号,则应先算括号⾥边,再按上述规则进⾏计算。
⽰例:$ (1 + 1)^{2} * 4+5 * 3$解析:1. 先进⾏括号内运算1+1,然后进⾏乘⽅运算得到结果4.2. 接下来与4相乘,得到结果163. 因为乘法优先级⼤于加法,因此先进⾏5*3,得到结果154. 最终相加得到结果31结果:31关系运算:关系的基本运算有两类:⼀类是传统的集合运算(并、差、交等),另⼀类是专门的关系运算(选择、投影、连接、除法、外连接等),⽽在C语⾔中,关系运算通常被认为是⽐较运算,将两个数值进⾏⽐较,判断⽐较结果是否符合给定的条件。
常见的关系运算符包括:<、<=、>、>=、==、!=等种类。
其中,前4种关系运算符(<、<=、>、>= )的优先级别相同,后2种(==、!=)也相同。
⽽前4种⾼于后2种。
例如, >优先于==。
⽽>与<优先级相同。
并且,关系运算符的优先级低于算术运算符,关系运算符的优先级⾼于赋值运算符(=)。
逻辑运算:在逻辑代数中,有与、或、⾮三种基本逻辑运算。
表⽰逻辑运算的⽅法有多种,如语句描述、逻辑代数式、真值表、卡诺图等。
⽽在C语⾔中,逻辑运算通常⽤于使⽤逻辑运算符将关系表达式或其它逻辑量连接起来组成逻辑表达式⽤来测试真假值。
常见的逻辑运算符包括:&&、||、!等种类&&:与是双⽬运算符,要求有两个运算对象,表⽰两个运算对象都成⽴,则结果为真,否则结果为假。
C语言程序设计教程第四章练习题解析

12、C语言程序得基本单位就是( )、
A.程序行
B、语句
C、函数
D、字符
答案:C
解析:函数就是C语言程序得基本单位
13、C语言中决定函数返回值得类型得就是()、
A、return语句中得表达式类型
B、调用函数得主调函数类型
C。调用函数时临时
intd=1;
intfun(intp)
{
staticintd=5;
d+=p;
printf("%d ",d);
return d;
}
voidmain()
{
ﻩint a=3;
ﻩprintf("%d \n",fun(a+fun(d)));
}
A.699
B、66 9
C、61515
D、6 615
答案:C
解析:首先调用fun(d),将全局变量d=1带入,此时fun()函数内得静态局部变量d得值就是1,d+=p后d得值就是6,输出d得值,返回d得值;
A、当调用时,会调用内部函数
B、当调用时,会调用外部函数
C.当调用时,会调用两次,先调用内部函数再调用外部函数
D、都不调用,会报错
答案:A
解析:当内部函数与外部函数重名时,会优先调用内部函数
6、在C语言中,声明外部函数需要添加得关键字就是()
A、extern
B、static
C、this
D.auto
答案:A
{
ﻩintd=5;
ﻩd+=p++;
ﻩprintf(”%d”,d);
}
C语言程序设计教程李含光版第4章习题解答

{ unsigned int p=0; while(s!=0) { p=p+s%10; s=s/10; } return p; } (2) . #include<stdio.h> #include<stdlib.h> #include<math.h> void f1(float,float,float,float); void f2(float,float,float,float); void f3(float,float,float,float); int main() { float a,b,c,d; scanf("%f %f %f",&a,&b,&c); if(a==0) { printf("不是一元二次方程\n"); exit(0); } d=b*b-4*a*c; if(d>0) f1(a,b,c,d); else if(d==0) f2(a,b,c,d); else f3(a,b,c,d); return 0; } void f1(float a,float b,float c,float d) { float x1,x2; { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("%.2f ,%.2f\n",x1,x2); } } void f2(float a,float b,float c,float d)
3
(4) . #include<stdio.h> #define RATE 0.053 double fun(float); void display(float,int); int main() { float dep; int season; scanf("%f %d",&dep,&season); display(dep,season); return 0; } double fun(float d) { return d*RATE; } void display(float d,int s) { int i; printf("季度 利息 余额\n"); printf("-------------------------------\n"); for(i=1;i<=s;i++) { printf("%-4d %-.2f %-.2f\n",i,fun(d),fun(d)*i+d); printf("-------------------------------\n"); } } (5) . #include<stdio.h> double fun(void); int main() { printf("%lf\n",fun()); return 0; } double fun(void) { double s=0; int n=1; while((double)(2*n-1)/((2*n)*(2*n))>1e-4) { s=s+(double)(2*n-1)/((2*n)*(2*n)); n++;
C语言程序设计第四版第四章答案谭浩强.doc

case 3: printf( * *%d,%d,%d "9hundred9ten9indiv);
printf(n\n反序数字为:”);
printf(H%d%d%d\nM,indiv,ten,hundred);
break;
case 2: printf(n%d,%dH,ten,indiv);
解:计算利润时,要特别注意不同利润的不同提成比例。例如,利润为15万元,其中有10万元按10%的比例提成,另外5万元则按7.5%提成。
(1)用if语句编程序。
#include <stdio.h>
main()
{long i;
float bonus,bonl^bon2^bon4^bon6^bonl0;
bonl=100000*0.1;
printf(M\n反序数字为:”);
printf(fl%d%d\nf\indiv,ten);
break;
case 1: printf(n%dn,indiv);
printf(M\n反序数字为:”);
printf(H%d\nM,indiv);
break;
}
}
4.10企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提成10%;利 润高于10万元,低于20万元(100()00vlW200000)时,其中10万元按10%提成,高于10万元的部分,可提成7.5%;200000<1^400000时,其中20万元仍按上述办法提成(下 同),高于20万元的部分按5%提成;400000<1^600000时,高于40万元的部分按3%提 成;600000 <1^1000000时,高于60万的部分按1.5%提成;1>1000000时,超过100万元 的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句编程序; ⑵用switch语句编程序。
C语言程序设计 – 第 04 章课后习题

C语言程序设计– 第四章课后习题一、选择题1. 以下关于运算符优先级的描述中正确的是(C)A. 关系运算符<算术运算符<赋值运算符<逻辑运算符(不含!)B. 逻辑运算符(不含!)<关系运算符<算术运算符<赋值运算符C. 赋值运算符<逻辑运算符(不含!)<关系运算符<算术运算符D. 算术运算符<关系运算符<赋值运算符<逻辑运算符(不含!)2. 能正确表示“当x的取值在[1, 10]或[200, 210]范围为真,否则为假”的表达式是(C)A. (x >= 1) && (x <= 10) & (x >= 200) & (x <= 210)B. (x >= 1) || (x <=10) || (x >= 200) || (x <= 210)C. (x >= 1) && (x <=10) || (x >= 200) && (x <= 210)D. (x >= 1) || (x <=10) && (x >= 200) || (x <= 210)3. 对于以下程序,输出结果为(A)# include <stdio.h>main(){int a, b, c;a =b =c = 0;printf("%d, %d, %d, %d\n", a, b, c, a++ && b++ || c++);}A. 1, 0, 1, 0B. 1, 1, 1, 0C. 1, 0, 1, 1D. 1, 1, 1, 1(解释:在VC++编译环境中,参数的计算是从右向左的,因此先计算右侧的表达式,并且每个参数计算完后相关待更新变量会被更新;对于逻辑与运算符,若左侧值为假,则右侧的值不会被计算(没必要算);对于逻辑或运算符若左侧的值为真,则右侧的值也不会被计算;布尔类型数据转整型时,true=1,false=0。
C程序的设计课后复习题答案(4_6章)

C 程序设计》课后习题答案(4-6 章)第四章#define PI 3.1415926#include<stdio.h> void main(){float h,r,l,s,sq,vq,vz; printf("please input r,h:"); scanf("%f,%f",&r,&h);l=2*PI*r;s=r*r*PI;sq=4*PI*r*r;vq=4.0/3.0*PI*r*r*r;vz=PI*r*r*h;printf("l=%6.2f\n",l);printf("s=%6.2f\n",s);printf("sq=%6.2f\n",sq);printf("vq=%6.2f\n",vq);printf("vz=%6.2f\n",vz); }9、#include<stdio.h>void main(){float c,f;printf("please input f:");scanf("%f",&f); c=(5.0/9.0)*(f-32); printf("c:%6.2f\n",c);}第五章5、#include<stdio.h>void main(){int x,y;printf("please input x:");scanf("%d",&x);if(x<1){y=x;printf("x=%d,y=x=%d\n",x,y);}e-seif(XAIO)宀 yH2*x —1八p 「i n f f (H %y H 2*xH %2n y )ve_se宀y H 3*11八p 「i n f f (H %y H 3*x1 Hwd云y )》ttinc-udeAsfdio.hvvoidmain()宀f o a fscorpchargrade-prinff (二p-easeinpuffhesfudenfscored)八scanf(=%sco 「exwhi_e((scorev100)=(scoreA0))宀prinsCDnroJP-easeinpufagain一kr)八printf("please input the student score:"); scanf("%f",&score); }switch((int)(score/10)) {case 10:case 9:grade='A';break;case 7:grade='C';break; case 6:grade='D';break;case 5: case 4 case 3 case 2 case 1 case 0:grade='E';}printf("score isis %c\n",score,grade);case grade='B';break ;%f,grade7、#include<stdio.h>#include<math.h>void main(){long int num;intindiv,ten,hundred,thousand,ten_tho usand,place;printf("please inputan integer(0-99999):");scanf("%ld",&num);if(num>9999) place=5;else if(num>999) place=4;else if(num>99) place=3;else if(num>9) place=2;else place=1;printf("Total digits:%d\n",place);printf("For each number:");ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10 000)/1000;oodhousand000)/10 f en n f ) (n um en —f h o u s an cM000housand*1000—hundred*100)/10八indiv''inf)(num —CDn —fhousand*10000—fhousancrl000—ifaen —fhousandHo)p 「inff(=%%%a%%dfen —fhousandjhousanchhundredjenjndiv)八e_seifahousandHo)prinff(=%ch%ch%ch%d=fhousanchhund redjenjndiv)八 e-seif(hundredHo) prinff(=%d-%d・%d hund redjen j ndi V*e-sei f (CD n H o )primf(=%a%dferundivxe_se p 「imf(=%dindivxprinsVIThereversenumbers)八swifch(p-ace)宀case•<妄4ffl -5prinff(=%d%d%d%d%d=indi<CDphundredjhousandkn —fhousand)八break-caseap 「inff(=%d%d%d%dindivjephundredthousand)八break八casep「inff (=%d%d%d ind i fe phucaser?prinff(=%d%d=indi<CDn)八break八case rp 「inff(=%dindivxbreak八o z二)琴c-udeAsfdio.hvvoid main(){long i;floatbonus,bon1,bon2,bon3,bon4,bon6,bon 10;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf("please input bonus:");scanf("%ld",&i);if(i<=100000) bonus=i*0.1;else if(i<=200000) bonus=bon1+(i-100000)*0.075;else if(i<=400000) bonus=bon2+(i-200000)*0.05;else if(i<=600000) bonus=bon4+(i-400000)*0.03;else if(i<=1000000) bonus=bon6+(i-600000)*0.015;elsebonus=bon10+(i-1000000)*0.01;printf("bonus:%10.2f\n",bonus);}(2)#include<stdio.h>void main(){long i;floatbonus,bon1,bon2,bon4,bon6,bon10; int branch;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf("please input bonus:");scanf("%ld",&i);branch=i/100000; if(branch>10) branch=10; switch(branch){ case 0:bonus=i*0.1;break;case 1:bonus=bon1+(i-100000)*0.075;break;case 2:case 3:bonus=bon2+(i-200000)*0.05;break;case 4:case 5:bonus=bon4+(i-400000)*0.03;break;case 6: case 7: case 8:case 9:bonus=bon6+(i-600000)*0.015;break;case 10:bonus=bon10+(i-1000000)*0.01; } printf("bonus is %f\n",bonus);}9, ttinc-udeAsfdio.hv voidmain() 宀 infabcdrrprinff (二p-ease inpuf four numbers)八scanf(=%d-%%%d a b c d * if(avb) 宀ll a aiHb 八b Aif(avc) U H a H c 」if(avd) U H a u a d 」 if(bvc) UHb 八 b u c 」 if(bvd) U H b -b H a d 」 if(cvd) u u c £d 」 p 「inff(=%d%d%d%2na b•<妄4ffl -10、#include<math.h>#include<stdio.h>void main(){int h=10;float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x 4=2,y4=-2,x,y,d1,d2,d3,d4;printf("please input (x,y):");scanf("%f,%f",&x,&y); d1=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4 ));d2=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1 ));d3=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2 ));d4=sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3 ));if(d1>1&&d2>1&&d3>1&&d4>1) h=0;printf("height %d\n",h); }A T V,、-、、/:第六章1、#include<stdio.h> void main(){int p,r,n,m,temp;printf("please input two integer:"); scanf("%d,%d",&n,&m);if(n<m){temp=n;n=m; m=temp;}p=n*m; r=n%m;while(r!=0){ n=m; m=r;r=n%m;}printf("max gongyueshu:%d\n",m); printf("min gongbeishu:%d\n",p/m); } 2、#include<stdio.h>void main(){char c;intletters=0,space=0,digit=0,other=0;printf("please input string:\n");while((c=getchar())!='\n'){ if((c>='a'&&c<='z')||(c>='A'&&c<=' Z')) letters++;else if(c==' ')space++;else if(c>='0'&&c<='9')digit++;else other++;}printf("letters:%d\n space:%d\ndigit:%d\nother:%d\n",letters,space,digit,ot her); }3、#include<stdio.h> void main() { int a,n;int i=1,sn=0,tn=0; printf("please input a,n:"); scanf("%d,%d",&a,&n);while(i<=n) {tn=tn+a; sn=sn+tn;a=a*10; ++i;}prin tf("a+aa+aaa+AAAAA=%d\n",s n);}4、#include<stdio.h>void main(){float s=0,t=1;int n;for(n=1;n<=20;n++){t=t*n;s=s+t;}printf("1!+2!+AAAAAAAA+20!=%e\n",s ); }5、#include<stdio.h>void main(){int n1=100,n2=50,n3=10;float k;float s1=0,s2=0,s3=0;for(k=1;k<=n1;k++)s1=s1+k;for(k=1;k<=n2;k++)s2=s2+k*k;for(k=1;k<=n3;k++)s3=s3+1/k;printf("sum=%f\n",s1+s2+s3);}6、#include<stdio.h>void main(){int i,j,k,n;printf("\nnarcissus number are"); for(n=100;n<1000;n++){i=n/100;j=(n-100*i)/10; k=n-100*i-10*j;if(n==i*i*i+j*j*j+k*k*k) printf("%d ",n);}}7、#include<stdio.h>void main(){int m,s,i;for(m=2;m<1000;m++){s=0;for(i=1;i<m;i++)if(m%i==0) s=s+i;if(s==m){printf("%d,its factors are",m);for(i=1;i<m;i++) if(m%i==0) printf("%d ",i); printf("\n");}}}#include<stdio.h> void main()int i,t,n=20;float a=2,b=1,s=0; for(i=1;i<=n;i++) {s=s+a/b;t=a;a=a+b;b=t;}printf("sum=%f\n",s);}9、#include<stdio.h> void main(){float sn=100,hn=sn/2;int n;for(n=2;n<=10;n++){sn=sn+2*hn;hn=hn/2;}printf("tenth arriveat %f meter.\n",sn);printf("tenth %f meter.\n",hn);10、#include<stdio.h>void main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2;x2=x1; day--;} printf("total=%d\n",x1);}11、#include<stdio.h> #include<math.h> void main() {float a,x0,x1;printf("Enter a positive number:"); scanf("%f",&a);x0=a/2; x1=(x0+a/x0)/2; do { x0=x1;x1=(x0+a/x0)/2; }while(fabs(x0-x1)>=1e-5);printf("The square root of %f is %f\n",a,x1);12、#include<stdio.h>#include<math.h> void main(){float x1,x0,f,f1; x1=1.5;do {x0=x1;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;}while(fabs(x1-x0)>=1e-5); printf("The root of is %f\n",x1);equation } 13、#include<stdio.h>#include<math.h>void main(){float x0,x1,x2,fx0,fx1,fx2; do{printf("Enter x1 and x2:");scanf("%f,%f",&x1,&x2); fx1=x1*((2*x1-4)*x1+3)-6; fx2=x2*((2*x2-4)*x2+3)-6; }while(fx1*fx2>0);do{x0=(x1+x2)/2; fx0=x0*((2*x0-4)*x0+3)-6;if((fx0*fx1)<0){x2=x0;fx2=fx0;}else{x1=x0;fx1=fx0;}}while(fabs(fx0)>=1e-5);printf("x=%f\n",x0);14、#include<stdio.h> void main() { int i,j,k; for(i=0;i<=3;i++) {for(j=0;j<=2-i;j++) printf(" "); for(k=0;k<=2*i;k++) printf("*"); printf("\n");} for(i=0;i<=2;i++) {for(j=0;j<=i;j++) printf(" "); for(k=0;k<=4-2*i;k++)printf("*"); printf("\n");} }15、#include<stdio.h>void main(){char i,j,k; /*i 是 A 的对手;j 是 B的对手;k是C的对手*/for(i='X';i<='Z';i++)for(j='X';j<='Z';j++)for(k='X';k<'Z';k++)if(i!=j&&i!=k&&j!=k)if(i!='X'&&k!='X'&&k!='Z')printf("A--%c\tB--%c\tC--%c\n",i,j ,k);}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
答案:D
解析:空格也会作为一个字符赋给字符变量。
18、对嵌套子程序调用说法正确的是()。
答案:B
解析:printf()是向控制台输出的函数
4、在C语言中,内部函数需要添加的关键字是()
A.extern
B.static
C.this
D.auto
答案:B
解析:在定义内部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数)。
5、当调用时,会调用内部函数
A.当调用时,会调用内部函数
B.当调用时,会调用外部函数
C.当调用时,会调用两次,先调用内部函数再调用外部函数
D.都不调用,会报错
答案:A
解析:当内部函数与外部函数重名时,会优先调用内部函数
6、在C语言中,声明外部函数需要添加的关键字是()
A.extern
B.static
C.this
D.auto
答案:A
解析:声明外部函数的方式是在函数的返回值类型前面添加extern关键字
14、若有函数调用语句:fun(a+b, (x,y), fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是()。
A.3
B.4
C.5
D.6
答案:A
解析:a+b返回一个值,(x,y)返回一个值,fun(n+k,d,(a,b))返回一个值。
15、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()。
A.10 22 33
B.10.0,22.0,33.0
C.10.0 22.0 33.0
D.10;22;33
答案:B
解析:用scanf()读取从键盘输入的数据时,中间不能加逗号,要用空格隔开
17、若有定义:int x,y; char a,b,c;并有以下输入数据(此处\u代表空格):1\u2\uA\uB\uC,那么能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是()。
A.scanf("x=%d y=%d",&x,&y);a=getchar();b=getchar();c=getchar();
B.scanf("%d %d",&x,&y);a=getchar();b=getchar();c=getchar();
C.scanf("%d%d%c%c%c,&x,&y,&a,&b,&c);
A.全局变量的作用域一定比局部变量的作用域范围大
B.静态类别变量的生存周期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
答案:B
解析:选项1不对:如果程序中只有一个主函数,则在整个程序运行中,局部变量都在起作用;
选项3不对:除了C++的引用类型参数,所有函数的形参都是局部变量;
A.只在该复合语句中有效,在该复合语句外无效
B.在该函数中任何位置都有效
C.在本程序的原文件范围内均有效
D.此定义方法错误,其变量为非法变量
答案:D
解析:1、2与3错:函数复合语句中定义的变量在该复合语句中引用;但如果函数含有该变量,则在函数中可以引用该变量
4对:在C++中在复合语句中定义变量为合法,但在C语言中是非法的
A.局部变量只在整个函数的运行周期中有效
B.全局变量的作用域为整个程序的运行周期
C.当全局变量与局部变量重名时,局部变量会屏蔽掉全局变量
D.全局变量会覆盖掉所有与它重名的局部变量
答案:D
解析:当全局变量与局部变量重名时,全局变量会被屏蔽掉
11、在C语言中,如果在一个函数的复合语句中定义了一个变量,则该变量()
A.3
B.4
C.5
D.6
答案:A
解析:(v1, v2),(v3,v4,v5)和v6一共三个实参
3、关于C语言中print()函数与scanf()函数,下列描述中正确的是()
A.printf()函数可以向任何地方输出数据
B.printf()只向控制台输出数据
C.scanf()只能输入英文字母和数字
D.scanf()函数可以识别输入的空格
选项4不对:static变量定义时就存储地全局区,初始化为0;
9、当全局变量与局部变量重名时,那么在调用时()
A.局部变量会被屏蔽
B.全局变量会被屏蔽
C.都不会调用,系统会报错
D.会调用两次,先调用局部变量,再调用全局变量
答案:B
解析:当局部变量与全局变量重名时,全局变量会被屏蔽。
10、在C语言中,关于变量的作用域,下列描述中错误的是()
单选题
1、关于C语言中的函数,下列描述正确的是()
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的嵌套均不可以嵌套
D.函数的定义和函数的调用均不可以嵌套
答案:B
解析:函数的定义不可以嵌套,但函数的调用可以嵌套
2、定义一个函数:exce((v1, v2), (v3,v4,v5),v6);在该函数调用时,实参的个数为()个
12、C语言程序的基本单位是()。
A.程序行
B.语句
C.Hale Waihona Puke 数D.字符答案:C
解析:函数是C语言程序的基本单位
13、C语言中决定函数返回值的类型的是()。
A.return语句中的表达式类型
B.调用函数的主调函数类型
C.调用函数时临时
D.定义函数时所指定的函数类型
答案:D
解析:函数的返回值取决于定义函数时指定的返回值类型
A.input x,y,z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
答案:B
解析:读取键盘输入的数据要用scanf()函数,scanf()中的参数要传入变量的地址
16、若变量已正确说明为float类型,要通过语句scanf("%f %f %f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是()。
7、关于C语言中的局部变量,下列描述中错误的是()
A.局部变量就是在函数内部声明的变量
B.局部变量只在函数内部有效
C.局部变量只有当它所在的函数被调用时才会被使用
D.局部变量一旦被调用,其生存周期持续到程序结束
答案:D
解析:当函数调用结束时局部变量就会失去作用
8、关于C语言中的全局变量,下列描述中正确的是()