C语言复习资料答案

内容发布更新时间 : 2024/11/15 0:14:02星期一 下面是文章的全部内容请认真阅读。

printf(”%d”,I); printf(“*\\n”); } }

输出结果: * 1* 22* 333*

四)break 和continue的用法 例题:

1.有以下程序

void main() { int a=1,b;

for(b=1;b<=10;b++) { if(a>=8) break;

if(a%2==1) { a+=5; continue;} a-=3; }

printf(\

}

输出结果:4

2.#include void main( )

{ int I, m=0, n=0, k=0; for(I=5;I<=7;I++) switch(i/6)

{ case 0: m++; n++; case 6: n++; break; default: k++; n++; }

printf(“%d,%d,%d\\n”, m, n, k); }

输出结果:1,4,2

算法略

五、数组

一)数组语法

1. 数组定义为int a[10][10];,则数组a有( A A)100 B)81 C)20 D)121 2. 以下一维数组 a的正确定义是(D )

A)int a(10); B)int n=10,a[n]; C) int n; D)#define N 10

)个数组元素。

Scanf(“%d”,&n); int a[N]; Int a[n];

3. 设有语句”int a[]={3,4,5,9,8,7};”则表达式a[1]-a[4]的值是( C )

A)-6 B)6 C)-4 D)2

4. 以下不能正确定义二维数组的是( D )

A) int a[2][2]={ {4}, {5}};B) int a[][2]={4,5,6,7};

C) int a[2][2]={ {4},5,6}; D) int a[2][]={{4,5},.{6,7}};

二)字符串 例题:

1. 以下程序的输出结果是( B)

#include #include main()

{ char st[20]=”2000\\0\\t\\\\”;

printf(“%d,%d\\n”,strlen(st),sizeof(st)); }

A)7,7 B)4,20 C)10,20 D)20,20

2. 要将字符串a连接到字符串b后面,使用下面( D)语句

A)strcpy(a,b); B)strcat(a,b); C)strcpy(b,a); D)strcat(b,a)

三)算法 例题:

1. 已知字符串char s[50]=”Iamstudent.”,请编写程序将字符a插入到student之前,结果

为“Iamastudent”。 程序如下:

#include #include void main() {

car s[50]=”Iamstudent.”; int j,len; len=strlen(s); s[len+1]=’\\0’

for(j=len-1;j>=3;j--)

s[j+1]=s[j]; s[3]=’\\0’ puts(s); }

2. 有一个3×4的矩阵,要求编程以求出其中值最大的那个元素,以及它所在的行号和列

号。 程序如下:

#include

void main() {

int i,j,row,col,max;

static int a[3][4]={{3,5,1,8},{6,4,11,7},{9,3,10,2}}; max=a[0][0];

for(i=0;i<_3_;i++) /*$BLANK1$*/ for(j=0;j<4;j++)

if(a[i][j]>max) /*$BLANK2$*/ {

max=_ a[i][j]__; /*$BLANK3$*/ row=i; col=j; }

printf(\ }

六、函数

一)函数语法 例题:

1. 在C程序中,若对函数类型未加说明,则函数的隐含类型为( A )

A)int B)double C)void D)char 2. C语言中的函数( D )

A)可以嵌套定义 B)不可以嵌套调用

C)可以嵌套定义,但不能递归调用 D)嵌套调用和递归调用都可以。 3. 有以下函数定义:

void fun( int n, double x) { ????} 下面函数调用正确的是( A )

A) fun( x, n) B) k=fun(10,12.5)

C) fun(int x, double y) D) void fun(n, x) 4. 有以下程序

#define N 20

fun(int a[],int n,int m) { int i,j;

for(i=m;i>=n;i--) a[i+1]=a[i];

} main()

{ int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9);

for(i=0;i<5;i++) printf(\}

程序运行后的输出结果是( C )

A)10234 B)12344 C)12334 D)12234

5. 有以下程序

void sum(int a[]) { a[0] = a[-1]+a[1]; } main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]);

printf(\ }

( A)

A)6 B)7 C)5 D)8 6. 以下程序运行后的输出结果是:

4 3 3 4 4 3 4 3 二)递归函数 例题:

【程序1】#include”stdio.h”

int fun( int n)

{ if(n<10) return n; else

return (n)*fun(n/10);

} main()

{ printf(“%d”,fun(218)); } 运行结果:

16

【程序2】

# include long fun( int n) { long s;

if( n== 1|| n==2) s=2; else s=n+ fun(n-1);

return s; }

void main ( )

{ printf(“\\n %ld”, fun (5)); } 运行结果: 14

三)变量的作用域和存储类型(见课件) 例题:

1. C语言auto型变量是( A )

A) 存储在动态存储区中 B) 存储在静态存储区中

C) 存储在外存储器中 D) 存储在计算机CPU的寄存器中

【程序1】int w=2; int f(int x) {int y=1;

static int z=3; y++;z++;

return(x+y+z); }

main()

{ int k;

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

printf(“M”,f(w++)); }

运行结果:8 10 12

【程序2】以下程序运行后的输出结果是:

fun(int a)

{ int b=0;static int c=3; b++; c++;

return (a+b+c); } main()

{ int i,a=5;

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

printf(\ \ printf(\

}

运行结果:

0 10 1 11 2 12

七、指针 例题:

1. 设有定义:int s[]={1,3,5,7,9},*p=&s[0];则值为7的表达式是( C )

A)*p+3 B)*p+4 C)*(p+3) D)*(p+4) 2. 若有以下定义,则值为4的表达式是( A )

int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;

A)p+=3,*(p++) B)p+=3,*++p C)p+=4,*p++ D)p+=4,++*p 3. 若有定义及赋值:

int a[10]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} , *p; p=a; 则引用a中的值是5的元素的表达式为( C )

A) a[4] B) *(p+4) C) *(a+5) D) *p[5]

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi