内容发布更新时间 : 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
{ 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
{ 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
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
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]