资源描述
数组练习
1 定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是___________
2 下列数组定义语句中,错误的是()
① char x[1]='a'; ②auto char x[1]={0};
③ static char x[l]; ④ char x[l];
3 用"冒泡排序法"对n个数据排序,需要进行n一1 步。其中第k步的任务是:自下而上,相邻两数比较,小者调上;该操作反复执行n-k次。现在假设有4个数据:4、l、3、2要排序,假定4为上、2为下,则利用"冒泡排序法"执行第2步后的结果是_________________。
4 用"选择排序法"对n个数据排序,需要进行n-1步。其中第k步的任务是:在第k个数据到第n个数据中寻找最小数,和第k个数据交换。现在假设有4个数据:4、1、3、2要排序,则利用"冒泡排序法"执行第2步后的结果是______________________。
5 下列数组定义语句中,正确的是()
① int a[][]={1,2,3,4,5,6}; ② char a[2]「3]='a','b';
③ int a[][3]= {1,2,3,4,5,6}; ④ static int a[][]={{1,2,3},{4,5,6}};
6 定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是()
①char s[]={‘1','2','3','\0 '}; ②char s「」={"123"};
③char s[]={"123\n"}; ④ char s[4]={'1','2','3'};
7 设有下列数据定义语句,则数组元素x[i]的值是__________________。
int i= 3,x[4]={ 1,2,3};
8 设有下列数据定义语句,则 puts(&s[0][0])的输出结果是__________; puts(s[0]〕
输出结果是_____________。
char s[4][5]={{'l','\0'},{"23"},"345","4\0"};
9 设有下列数据定义语句:
char a[4][10]={"11","22","33","44"};
则 puts(strcat(a[1],a[3]))的输出结果是________________;
putS(strcpy(a[0],a[2]))的输出结果是________________。
10 设有下列数据定义语句:
char str[2][10]={"abc","ABC"};
则printf("%d",strcmp(str[1],str[0]))的输出结果是__________;
printf("%d",strcmp(strlwr(str[1],str[0])),str[0]))的输出结果是_______。
11 下列程序的功能是读取10个实数,然后依次输出前l个实数和、前2个实数和、…、前9个实数和、前10个实数和。请填写程序中缺少的语句。
main()
{float f[10],X=0.0;
int i;
for(i=0;i<10;i++)
scanf(" % f", &f[i]);
for(i=1;i<=10;i++)
{_______________________
printf("sum of NO %2d----%f\n",i,x);
}
}
12 运行下列程序的输出结果是()
① 111ll ②llll ③lll ④ 222
main()
{int a[]={1,2,3,4, 5 },i;
for( i=1;i< 5; i++)
printf("% 1d", a[i]- a[i一1]);
}
13 下列程序的功能是输入一个5行5列的实数矩阵,然后求出其中的最大数和最小数,并且对调这两个数后,再输出,请填写程序中缺少的语句。
main()
{ float f[ 5][5],max, x;
int i,j,max_l,max_J,min_i,min_J;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{scanf("%f",&x);
f[i][j]=x;
}
max=min=f[0][0];
max_i=max_i=min_i=min_j= 0;
for(i= 0;i<5;i++)
for(j=0;j<5;j++)
{if(max<f[i][j])
max=f[i][j],max_i=i,max_j=j;
if(min>f[i][j])
___________________
}
f[max_i][max_j]=min;
f[min_i][min_j]=max;
for(i=0;i<5;i++)
{printf("\n");
for(j=0;j<5;j++)
printf("%8.2f",f[i][j]);
}
14 阅读下列 程序,写出程序运行后的输出结果。
main()
{int al[]={1,3,6,7,100},a2[]={2,4,5,8,100},a[10],i,j,k;
i=j=0;
for(k=0;k<8;k++)
if(a1[i]<a2[j])
a[k]=a1[i++];
else
a[k]=a2[j++];
for (k= 0; k< 8; k++ )
printf("%1d",a[k]);
}
15 阅读下列程序,写出程序运行后的输出结果。
#include "string.h"
main()
{char s[3][20]={"2345","123456","2347"};
int i, k;
for( k= 0, i=1; i< 3; i++)
if((strcmp(s[k],s[i]))<0) k= i:
puts(s「k」);
}
16 阅读下列程序,写出程序的主要功能。
main()
{ int i, a[10], x, flag= 0;
for(i=0; i<10;i十十)
scanf("%d",& a 【i】);
scanf("%d",& X);
for(i=0;i<10;i十十)
if( x== a[i])
{ flag= i十1;
break;
}
if(flag== 0 )
printf("no found!\n");
else
printf("%d\n",flag);
}
17 阅读下列程序,写出程序的主要功能。
main()
{ int i,sum= 0,a[ 10];
for(i=0;i<10;i++)
scanf("% d",&a[i]);
for(i=9;i>=0;i--)
if( a[i]% 7== 0)
{sum+=a[i];
printf("%d",a[i]);
}
printf("\"nsum=%d\n",sum);
}
18 编一个程序,计算并输出下列数列的前24项,每行输出4项。
数列第1项的值1
数列第2项的值2
数列第k项的值=第k-l项的值十第k-2项的值,当k为奇数时,
数列第k项的值=第k-l项的值一第k-2项的值,当k为偶数时。
19 编一个程序,输入一个3X3的实数矩阵,求两个对角线元素中各自的最大值。
20 编一个程序,输入3个字符串(长度均不超过30)存入一个二维的字符型数组中,将第3个字符串连接到第2个字符率之后,然后再连接到第1个字符串之后,组成新的字符串存入一维的字符型数组中,然后输出该新的字符串(说明:本题不允许使用字符串连接函数)。
展开阅读全文