2/14 home work

1、选择题

1.1、若有下面的变量定义,以下语句中合法的是(A )。

int i,a[10],*p;

A) p=a+2;       B) p=a[5];    

 C) p=a[2]+2;      D) p=&(i+2);

1.2、有以下程序

main()

{

   int  a[3][3],*p,i;

   p=&a[0][0];

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

      p[i]=i;

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

      printf("%d ",a[1][i]);

}

程序运行后的输出结果是 _____B_______

A)0 1 2

B)1 2 3

C)2 3 4

D)3 4 5

1.3、有以下程序

int  main()

{   int  a[3][2]={0}, (*ptr)[2],i,j;

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

    {   ptr=a+i;

        scanf("%d",*ptr);

        *ptr++;

    }

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

    {

        for(j=0;j<2;j++)

           printf("%2d",a[i][j]);

        printf("\n");

    }

}

若运行时输入:1  2  3<回车>,则输出结果为 _____D______

A)产生错误信息

B)1 0

    2 0

   0 0

C)1 2

   3 0

    0 0

D)1 0

    2 0

   3 0

1.4、有以下程序

main()

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

    for(p=a;p<a+10;p++)

      printf("%d,",*p);

}

程序运行后的输出结果是 _____A_____

A)1,2,3,4,5,6,7,8,9,0,

B)2,3,4,5,6,7,8,9,10,1,

C)0,1,2,3,4,5,6,7,8,9,

D)1,1,1,1,1,1,1,1,1,,1,

1.5、有以下程序

main()

{

   char  s[]="159",*p;

   p=s;

   printf("%c",*p++);

   printf("%c",*p++);

}

程序运行后的输出结果是____A____

A)1 5 B)1 6 C)1 2 D)5 9

1.6、有以下程序

point(char  *p)

{

   p+=3;

}

int  main()

{   char  b[4]={'a','b','c','d'}, *p=b;

    point(p);    printf("%c\n",*p);

}

程序运行后的输出结果是 ____D______

A)a B)b C)c D)d

1.7、设有如下定义语句 int m[ ]={2,4,6,8}, *k=m;

以下选项中,表达式的值为 6的是B

A *(k+2) B k+2 C *k+2 D *k+=2

1.8、若有定义语句:int year=2009,*p=&year;,以下不能使变量 year 中的值增至 2010 的语 句是( D)。

A)*p+=1; B)( *p)++; C)++(*p); D)*p++;

1.9、设有定义:double x[10],*p=x;,以下能给数组 x 下标为 6 的元素读入数 据的正确语句是C

A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));

C)scanf("%lf",p+6); D)scanf("%lf",p[6]); 

1.10、若有定义语句:char s[3][10], (*k)[3], *p; ,则以下赋值语句正确的是___A_

A)p=s; B)p=s[0]; C)p=k; D)k=s;

1.11、有定义语句:int *p[4]; 以下选项中与此语句等价的是  C 

A)int p[4]; B)int **p; C)int *(p[4]); D)int (*p)[4];

1.12、若有定义语句:int a[4][10], *p, *q[4]; 且 0≤i<4,则错误的赋值 是  C

A)p=a  B)q[i]=a[i]  C)p=a[i]  D)p=&a[2][1]

1.13、若有以下定义  B

int x[10],*pt=x;

则对 x 数组元素的正确应用是 

A)*&x[10] B)*(x+3)

3C)*(pt+10) D)pt+3

1.14、有以下程序    D

#include <stdio.h> 

main()

{ int a[ ]={1,2,3,4},y,*p=&a[3];

--p; y=*p; printf(“y=%d\n”,y);

}

程序的运行结果是

A)y=0 B)y=1 C)y=2 D)y=3

1.15、设char  *s = “\ta\017bc”;则指针变量s指向的字符串所占的字节数是____C___

   A)  6   B)  2   C)   5   D) 9

1.16、  若有定义语句:char s[3][10], (*k)[3], *p;,则以下赋值语句正确的是   C

A)p=s; B)p=k; C)p=s[0]; D)k=s;

2、填空题

2.1以下程序的输出结果是____6___

#include<stdio.h> 

main()

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

p=a+2;

printf(“%d”,*p++);

}

2.2、以下程序段的定义语句中,x[1]的初值是__2___,程序运行后输出的内容是__3579_____

#include<stdio.h>

main()

{ int x[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;

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

{ p[i]=&x[2*i+1]; printf(“%d ”,p[i][0]);

}

printf(“\n”);

}

2.3  以下程序段的输出结果是(  RGB  )

#include <sthio.h> 

mian()

{ char *ch[4]={“red”,”green”,”blue”}; int i=0;

while(ch[i]);

{ putchar(ch[i][0]; i++;   }

}

 2.4、以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。 请在输出语句中填写代表最大值的输出项。

#include  <stdio.h>  

int   main()

{ int a[10], *p, *s;

for(p=a; p-a<10; p++) 

scanf(“%d”, p); 

for(p=a,s=a;p-a<10;p++) 

if(*p>*s) s=p;

printf(“max=%d,  序号:%d\n” , _____*S______ );

}

2.5 有以下程序,输出结果为___2,5______

      main() 

{  

int a[5]={1,2,3,4,5};    

int *ptr=(int *)(&a+1);    

printf("%d,%d",*(a+1),*(ptr-1)); 

2.6  以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。 请在输出语句中填写代表最大值的输出项。

#include <stdio.h> 

int main( )

{ int a[10], *p, *s;

for(p=a;p-a<10; p++

scanf(%d,p);

for(p=a,s=a;p-a<10;p++)

if(*p>*s) s=p;

printf(max=%d\n” ___s___ );

3、编程题

3.1、 有一个整型数组int [10] = {10,20,30,40,50,60,70,80,90,100};标准输入一个整型数值m(0<m<10) ,使前面10-m个数值向后移动m个位置,最后m个数变成前面的m个数

  1 #include<stdio.h>
  2 int main(int argc, const char *argv[])
  3 {
  4     int a[10] = {10,20,30,40,50,60,70,80,90,100};
  5     int m;
  6     scanf("%d",m);
  7     int x=0;
  8     int i=0;
  9     for(i=0;i<m;i++)
 10     {
 11         x=a[i];
 12         a[i]=a[i+m];
 13         a[i+m]=x;
 14     }
 15     return 0;
 16 }                 

### 回答1: 这是一个文件路径,指向名为haoguanjia的文件夹,该文件夹位于/home/xbo/work/路径下。如果你在终端中想要进入该文件夹,可以使用cd命令: ``` cd /home/xbo/work/haoguanjia/ ``` 这将会将你的当前工作目录更改为haoguanjia文件夹。 ### 回答2: “/home/xbo/work/haoguanjia/haoguanjia” 是一个文件路径。它的意思是在根目录下的home文件夹中的xbo文件夹中的work文件夹中的haoguanjia文件夹中的haoguanjia。 文件路径的结构通常是层级关系,它可以帮助我们定位和访问文件或文件夹。根据这个路径,我们可以知道haoguanjia文件夹是在work文件夹下面的,而work文件夹是在xbo文件夹下面的。 文件路径在操作系统中非常重要。它可以帮助我们查找和操作文件,例如打开、编辑、删除等。同时,文件路径也有助于我们组织和管理文件和文件夹。 对于这个路径,“/”代表根目录,即文件系统的最顶层目录。在UNIX和类UNIX系统中,通常标识为根目录。在Windows系统中,通常表示为系统分区的根目录。 在文件路径中的每个文件夹和文件都由“/”分隔开,使得我们能够清晰地看到它们之间的层级关系。 总结,"/home/xbo/work/haoguanjia/haoguanjia" 是一个具体的文件路径,指向根目录下的home文件夹中的xbo文件夹中的work文件夹中的haoguanjia文件夹中的haoguanjia。这样的文件路径在操作系统中是很常见的,用于定位和处理文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值