C语言第六章习题1

合集下载

C语言程序设计 第六章 函数 试题及答案

C语言程序设计 第六章 函数 试题及答案
A)实参可以是常量、变量或表达式
B)形参可以是常量、变量或表达式
C)实参可以是任意类型
D)实参应与其对应的形参类型一致
参考答案:B
6.8以下正确的说法是。
A)定义函数时,形参的类型说明可以放在函数体内
B)return后面的值不能为表达式
C)如果函数的类型与返回值类型不一致,以函数类型为准
D)如果形参与实参的类型不一致,以实参类型为准
A)float型B)int型C)long型D)double型
参考答案:B
6.12 C语言规定,函数返回值的类型是由所决定。
A)return语句中的表达式类型
B)调用该函数时的主调函数类型
C)调用该函数是系统临时指定
D)在定义该函数时所指定的函数类型
参考答案:D
*6.13下面函数调用语句含有实参的个数为。
if(m!=-1) n=m;
}
printf("\nn=%d",n);
}
【1】A)k*10 B)k%10 C)k/10 D)k*10%10
【2】A)a2*10 B)a2 C)a2/10 D)a2%10
参考答案:【1】C【2】A
6.18以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A','B','C');则符合程序段运行结果的选项是。
A-->C A-->C B-->C B-->C
A-->B A-->B A-->C A-->C
参考答案:C
6.19若用数组名作为函数调用的实参,传递给形参的是。
A)数组的首地址B)数组第一个元素的值
C)数组中全部元素的值D)数组元素的个数

C语言第六章习题

C语言第六章习题


int pn(int n,int x); int main() { int n,x; cin>>n>>x; cout<<pn(n,x)<<endl; return 0; }
int pn(int n,int x) { if(n==0) return 1; else if(n==1) return x; else return ((2*n-1)*x-pn(n-1,x)-(n-1)*pn(n-2,x))/n; }
第六章习题
பைடு நூலகம்
2.1
double Exp(const int x) { double sum=1.0; int n=1,m=1; int temp=x; while((double)temp/m>(1e-6)) { sum=sum+(double)temp/m; temp=temp*x; n++; m=m*n; } return sum; }
void gotbaha() { int m,k,i; cin>>m; if(m<6) cin>>m; else if(m%2!=0) cin>>m; for(i=3;i<=m/2;i=i+2) { if(prime(i)) k=m-i; if(prime(k)) { cout<<m<<"="<<i<<"+"<<k<<endl; break;} }}
int main() { int x; cin>>x; cout<<Exp(x)<<endl; return 0; }

C语言第6章习题解答

C语言第6章习题解答

第6章函数和模块设计【习题6-1】更正下面函数中的错误。

(1)返回求x和y平方和的函数。

(2)返回求x和y为直角边的斜边的函数。

sum_of_sq(x,y) hypot(double x,double y){ {double x,y; h=sqrt(x*x+y*y);return(x*x+y*y); return(h);} }程序如下:/*c6_1(1).c*/ /*c6_1(2).c*/(1) (2)double sum_of_sq(double x,double y) double hypot(double x,double y) { {return(x*x+y*y); double h;} h=sqrt(x*x+y*y);return(h);}【习题6-2】说明下面函数的功能。

(1)itoa(int n,char s[ ])(2)int htod(char hex [ ]){ { int i,dec=0;static int i=0,j=0; for(i=0;hex[i]!='\0';i++)int c; { if(hex[i]>='0'&&hex[i]<='9') if(n!=0) dec=dec*16+hex[i]-'0';{ if(hex[i]>='A'&&hex[i]<='F') j++; dec=dec*16+hex[i]-'A'+10;c=n%10+'0'; if(hex[i]>='a'&&hex[i]<='f') itoa(n/10,s); dec=dec*16+hex[i]-'a'+10;s[i++]=c; }} return(dec);else }{ (3)void stod(int n)if(j==0) s[j++]='0'; { int i;s[j]='\0'; if(n<0){ putchar('-');n=-n;} i=j=0; if((i=n/10)!=0) stod(i);} putchar(n%10+'0');} }功能:(1)(略)(2)(略)【习题6-3】编写已知三角形三边求面积的函数,对于给定的3个量(正值),按两边之和大于第三边的规定,判别其能否构成三角形,若能构成三角形,输出对应的三角形面积。

c语言第六七章习题答案

c语言第六七章习题答案
for(i=0;i<N;i++)
scanf("%d",&a[i]);
for(i=0;i<N;i++)
{
s=1;
for(j=0;j<N-1-i;j++)
if(a[j]>a[j+1])
{
s=0;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
if(s==1) break;/*无反序则跳出*/
}
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
}
6.3
#include <stdio.h>
#define N 10
gets(ch);
l=strlen(ch);
for(i=0;i<l;i++)
{
n=(long)(ch[i]-48);/*将字符形式的整数转换成整型*/
j=l-i-1;
while(j>0)/*整数每位乘以其位权*/
{
n*=10;
j--;
}
num+=n;
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
i++;
j--;
}
for(k=0;k<N;k++)
printf("%d ",a[k]);

C语言第六章复习题(含答案)

C语言第六章复习题(含答案)

1.t为int类型,进入下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是( B )(A) 循环控制表达式的值为0 (B) 循环控制表达式的值为1(C) 循环控制表达式不合法(D) 以上说法都不对2.有以下程序main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是( D )。

(A) 自然数1~9的累加和 (B) 自然数1~10的累加和(C) 自然数1~9中的奇数之和(D) 自然数1~10中的偶数之和3.以下程序段的输出结果是( C )。

int x=3;do{ printf("%3d",x-=2); }while(!(- -x));(A)1 (B)30 (C)1 -2 (D)死循环4.以下程序中,while循环的循环次数是( D)。

main(){ int i=0;while(i<10){ if(i<1) continue;if(i==5) break;i++;}......}(A) 1 (B) 10(C) 6 (D) 死循环,不能确定次数5.下面程序的输出是( B )。

(A)741 (B)852 (C)963 (D)main(){int y=9;for(;y>0;y--){if(y%3==0){printf("%d",--y);continue;}}}6.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是( A )。

for (i=5;i;i--)for(j=0;j<4;j++){...}(A)20 (B)25 (C)24 (D)307.执行语句: for(i=l;i++<4;;);后,变量i的值是(C)。

(A) 3 (B) 4 (C) 5 (D) 不定8.假定a和b为int型变量,则执行以下语句后b的值为( D )。

C语言程序设计(第3版)第6章习题参考答案

C语言程序设计(第3版)第6章习题参考答案
printf("\nplease input the first idiom: ");
gets(stridiom1);
printf("\nplease input the second idiom: ");
gets(stridiom2);
fnConcat(stridiom1,stridiom2);
printf("\nthe result is: %s",stridiom1)=0;
while(b[j] != '\0') /*把第二个字符串的内容连接到第一个字符串的后面*/
{
a[i+j] = b[j];
j++;
}
a[i+j]= '\0'; /*添加字符串结束符*/
}
void main()
{ char stridiom1[80],stridiom2[80];
i++;
}
a[j]= '\0'; /*添加字符串结束符*/
}
void main()
{ char stridiom1[80];
printf("\nplease input the first idiom: ");
gets(stridiom1);
fnConvert(stridiom1);
printf("\nthe result is: %s",stridiom1);
scanf("%d",&n);
printf("%ld",fnF(n));
getch();
}
(4)编一函数判别某一数是否为素数,若是,返回值为1,否则,返回值为0。

C语言程序设计第六章数组习题及答案

C语言程序设计第六章数组习题及答案

1.以下对一维整型数组a的定义,正确的是_。

(2分)A.int a(10) ;B.int n = 10 , a[n] ;C.int n ;scanf( "%d" , &n ) ;int a[n] ;D.int a[10] ;2.若有定义:int a[10] ;,则对a数组元素的正确引用是_。

(2分)A.a[10]B.a[3.5]C.a(5)D.a[10-10]3.对定义int a[10] = {6 , 7 , 8 , 9 , 10} ; 的正确理解是_。

(2分)A.将5个初值依次赋给a[1]--a[5]B.将5个初值依次赋给a[0]--a[4]C.将5个初值依次赋给a[6]--a[10]D.因为数组长度与初值个数不相同,所以此语句不正确4..若有定义:int a[3][4]; , 则对a数组元素的正确引用是_。

(2分)A.a[3][4]B.a[1,3]C.a[1+1][0]D.a(2)(1)5.以下对二维数组a初始化正确的语句是_。

(2分)A.int a[2][ ]={{0 , 1 , 2}, {3 , 4 , 5}};B.int a[ ][3]={{0, 1, 2}, {3, 4, 5}};C.int a[2][4]={{0, 1 , 2}, {3 , 4}, {5}};D.int a[ ][3]={{0, 1, 2}, { }, {3, 4}};6.对二维数组a进行如下初始化:int a[ ][3]={0 , 1 , 2 , 3 , 4 , 5};则a[1][1]的值是_。

(2分)A.0B.3C.4D.17.下面程序段的运行结果是_。

(2分)#include<stdio.h>int main( ){int i , x[3][3] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9} ;for( i = 0 ; i < 3 ; i++ )printf( "%2d" , x[i][2-i] ) ;return 0 ;}A.1 5 9B.1 4 7C.3 5 7D.3 6 98.以下对数组s的初始化,错误的是_。

C语言第6章习题答案

C语言第6章习题答案
(2) #include <stdio.h> #include <stdlib.h> void inputdata(int a[],int n); void process(int a[],int n); void outputdata(int a[],int n); int main() {
int a[10],n=10; inputdata(a,n); outputdata(a,n); process(a,n); outputdata(a,n); system("Pause"); return 0; } void inputdata(int a[],int n) //0~99 之间的数 {
string_b=You are a student.
(5) A (10) D (15) A
(16) A
string_a=I am a teacher. string_b=I am a teacher. 4、程序填空 (1) *p != '\0', *p-'0', j— (2) i <strlen(str), j=i, k+1 (3)a+i, (char)(n%10) + '0' (4)*pk = i, a,n,i+1,pk (5) s1++, *s2, s1=p 5、编程题 (1) #include <stdio.h> int main() { int a=3,b=7,c=2; int *ptra = &a,*ptrb = &b,*ptrc = &c; int temp; printf("a=%d,b=%d,c=%d\n",a,b,c); printf("*ptra=%d,*ptrb=%d,*ptrc=%d\n",*ptra,*ptrb,*ptrc); if ( *ptra > *ptrb ) {
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章作业
一.选择题
1.以下while循环中,循环体执行的次数是:()
k=1;
while (--k) k=10;
a) 10次b) 无限次c) 一次也不执行d) 1次
2.有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()
x=0;
while (!x!=0) x++;
a) 退出while循环后,x的值为0
b) 退出while循环后,x的值为1
c) while的控制表达式是非法的
d) while循环执行无限次
3. 有以下程序段,其中n为整型变量,执行后输出结果是:()
n=20 ;
while(n--) ; printf(“%d”,n) ;
a) 2 b) 19 c) -1 d) 0
4. 有以下程序段,其中t为整型变量,以下选项中叙述正确的是:()
t=1;
while (-1)
{ t--;
if(t) break;}
a) 循环一次也不执行
b) 循环执行一次
c) 循环控制表达式(-1)不合法
d) 循环执行2次
5. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()
x=-1;
do
{;}
while (x++);
printf(“x=%d”,x);
a) 该循环没有循环体,程序错误
b) 输出x=1
c) 输出x=0
d) 输出x=-1
6. 有以下程序段,其中x,y为整型变量,程序输出结果是:()
for(x=0,y=0;(x<=1)&&(y=1);x++,y--) ;
printf(“x=%d,y=%d”,x,y);
a) x=2,y=0 b) x=1,y=0
c) x=1,y=1 d) x=0,y=0
7. 有以下程序:
main()
{ int x=3,y;
do
{ y=--x;
if( !y) printf(“x”) ;
else printf(“y”) ;
} while(x);
}
程序的输出结果是:()
a) xyx b) yyx c) yxx d) yxy
8. 有以下程序段,此处do-while循环的结束条件是:()
int n=0,p;
do {scanf(“%d”,&p);n++;} while (p!=12345&&n<3);
a) p的值不等于12345并且n的值小于3
b) p的值等于12345并且n的值大于等于3
c) p的值不等于12345或者n的值小于3
d) p的值等于12345或者n的值大于等于3
9. 有以下程序:
main()
{ int a,b,t;
for(a=3,b=0 ;!a==b ;a--,b++)
if(a>b) { t=a;a=b;b=t;}
printf(“%d,%d\n”,a,b);
}
程序的输出结果是:()
a) 4,1 b) 1,4 c) 4,-1 d) -1,4
10. 有以下程序:
main()
{ int x=3,y=0;
do
{ while( !y) y=-x;
} while(x--);
printf(“%d,%d\n”,x,y);
}
程序的输出结果是:()
a) -1,3 b) -1,-3 c) 0,0 d) 1,-3
11. 有以下程序:
main()
{ int m,n;
printf(“Enter m,n:”); scanf(“%d%d”,&m,&n);
while(m!=n)
{while(m>n) m-=n;
while(n>m) n-=m;}
printf(“m=%d\n”,m);
}
程序的输出结果是:()
a) m=3 b) m=2 c) m=1 d) m=0
12. 有以下程序:
main()
{ int i,s=1;
for(i=1 ;i<=50 ;i++)
if( !(i%5)&& !(i%3)) s+=i;
printf(“%d\n”,s);
}
程序的输出结果是:()
a) 409 b) 277 c) 1 d) 91
13. 有以下程序:
main()
{ int x=0,y=0,i;
for(i=1 ; ;++i)
{ if(i%2==0) {x++ ;continue ;}
if(i%5==0) {y++ ;break ;}
}
printf(“%d,%d”,x,y);
}
程序的输出结果是:()
a) 2,1 b) 2,2 c) 2,5 d) 5,2
14. 有以下程序:
main()
{ int a,b;
for(a=1,b=1 ;a<=100 ;a++)
{ if(b>=10) break;
if(b%3==1)
{ b+=3; continue; }
}
printf(“%d\n”,a);
}
程序的输出结果是:()
a) 101 b) 6 c) 5 d) 4
15. 有以下程序:
main()
{ int i=0;
for(i+=3 ;i<=5 ;i=i+2)
switch(i%5)
{ case 0: printf(“*”);
case 1: printf(“#”); break;
def ault: printf(“!”); break;
case 2: printf(“&”);
}
}
程序的输出结果是:()
a) *# b) !& c) !*# d) *#* 二.填空题
1.要求使以下程序段输出10个整数,请填空。

for(i=0;i<=_____;printf(“%d\n”,i+=2));
2. 执行下面程序段后,k的值是__________。

r=1; n=203; k=1;
do {k*=n%10*r; n/=10; r++;} while(n);
3. 下面程序的输出结果是_________________。

main()
{ int i,x=10;
for(i=1;i<=x;i++)
if(x%i==0) printf(“%d ”,i);
}
4. 下面程序的输出结果是_____________。

main()
{ int i,sum;
for(i=1;i<6;i++) sum+=i;
printf(“%d”,sum);
}
5. 下面程序的输出结果是______。

main()
{ int i,sum=0;
for(i=2;i<10;i++)
{ if((i%2)!=0) continue;
sum+=i;}
printf(“%d\n”,sum);
}
6. 下面程序的输出结果是_________。

main()
{ int i,j=0,a=0;
for(i=0;i<5;i++)
do
{ if(j%3) break;
a++; j++;
} while(j<10);
printf(“%d,%d\n”,j,a);
}
7. 下面程序的输出结果是_________。

main()
{ int x=9;
for(;x>0;)
{ if(x%3==0)
{ printf(“%d”,--x); continue; }
x--;
}
}
8. 下面程序的输出结果是____________。

main()
{ int i,j=2;
for(i=1;i<=2*j;i++)
switch(i/j)
{ case 0: case 1: printf(“*”); break;
case 2: printf(“#”);
}
}
三.编程题
1.输出100以内能被3整除且个位数为6的所有整数。

相关文档
最新文档