C语言辅导资料 下载本文

} }

A.SSW* B.SW* C.SW*A D.SW

【例4.13】已知:char string1[10]=”abcde”, string2[10]=”xyz”;则下列C语句输出结果是

printf(“%d”, strlen(strcpy(string1,string2))); A.3 B.5 C.8 D.9

【例4.14】有以下程序:

#include #include void main() {

char s[]=”\\n123\\\\”;

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

执行后的输出结果是

A.赋初值的安符串有错 B.6,7 C.5,6 D.6,6

【例4.15】下面程序的功能是将字符串s中所有的字符c删除。请选择填空。

#include void main() {

char s[80]; int i,j; gets(s);

for(i=j=0; s[i]!=?\\0?; i++) if(s[i]!=?c?)

; s[j]=?\\0?; puts(s); }

A.s[j++]=s[i] B.s[++j]=s[i] C.s[j]=s[i]; j++ D.s[j]=s[i]

【例4.16】以下程序的输出结果是

#include void main() {

int b[3][3]={0,1,2,0,1,2,0,1,2}, i, j ,t=0; for(i=0; i<3; i++) for(j=1; j<=i; j++) t=t+b[i][b[j][j]]; printf(“%d\\n”, t); }

A.3 B.4

29

C.1 D.9

【例4.17】有如下程序:

#include void main() {

static int a[3][3]={{1, 2},{3, 4},{5, 6}}, i, j, s=0; for(i=0; i<3; i++) for(j=0; j<=i; j++) s+=a[i][j]; printf(“%d\\n”, s); }

该程序的输出结果是 A.18 B.19 C.20 D.21

【例4.18】有以下程序

#include void main() {

int i;

for(i=0;i<3;i++) switch(i) { case 1: printf(\ case 2: printf(\ default: printf(\ } }

执行后输出结果是 。 A) 011122 B) 012 C) 012020 D) 120

2、填空题 【例4.19】若有定义:static int a[3][4]={{1, 2},{0},{4,6,8,10}};则初始化后,a[1][2]= ,

a[2][1]= 。

【例4.20】在C语言中,二维数组元素在内存中的存放顺序是 。 【例4.21】若二维数组a有m列,则在a[i][j]前的元素个数为 。 【例4.22】判断字符串a和b是否相等,应当使用 。

【例4.23】以下程序可求出矩阵a的两条对角线上的元素之和,请填空。

#include void main() {

int a[3][3]={1,3,6,7,9,11,14,15,17},sum1=0, sum2=0, i, j; for(i=0; i<3; i++) for(j=0; j<3; j++) if(i= =j)

sum1=sum1+a[i][j]; for(i=0; i<3; i++)

30

for( ; ; j--) if((i+j)= =2)

sum2=sum2+a[i][j];

printf(“sum1=%d, sum=%d\\n”,sum1, sum2); }

【例4.24】设数组a包括10个整型元素,下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。请填空。

#include void main() {

int a[10], b[10], i; for(i=0; i<10; i++) scanf(“%d”, &a[i]); for( ; i<10; i++) for(i=1; i<10; i++) {

printf(“=”,b[i]);

if( = =0) printf(“\\n”); } }

【例4.25】下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b,请填空。

#include void main() {

int a[10],b[10],i;

for(i=0; ; i++) scanf(“%d”,&a[i]); for(i=1; ;i++) b[i]=a[i]-a[i-1]; for(i=1;i<10;i++) {

printf(“=”,b[i]); if( ) printf(“\\n”); } }

【例4.26】以下程序可求出所有的水仙花数,(提示:所谓水仙花数是指一个三位正整数,其各位数字的立方之和等于该正整数。例如:407=4*4*4+0*0*0+7*7*7,故407是一个水仙花数)请填空。

#include void main()

31

{

int x,y,z,a[8], m,i=0;

printf(“The special numbers are(in the arrange of 1000:\\n)”); for( ; m++ ) {

x=m/100;

y= ; z=m;

if(x*100+y*10+z==x*x*x+y*y*y+z*z*z) {

; i++; } }

for(x=0; x

【例4.27】下面程序的功能是生成并打印某数列的前20项,该数列第1,2项分别为0和1,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值。生成的20个数存在一维数组x中,并按每行4项的形式输出,请填空。

#include void main() {

int x[21],i; x[1]=0; x[2]=1; i=3; do{

x[i]= ; x[i+1]= ; i= i+2 ; }while(i<=20); for(i=1;i<=20;i++) {

printf(“]”,x[i]); if(i%4= =0) printf(“\\n”); } }

【例4.28】下面程序的功能是输入5个整数,找出最大数和最小数所在的位置,并把二者对调,然后输出调整后的5个数。请填空。

#include void main() {

32