第七周 数组(一)

第七周单元测验

1、单选题:
‍int a[4]={5,3,8,9};其中 a[3]的值为(    )。‏
选项:
A: 5
B: 3
C: 8
D: 9
答案: 【 9

2、单选题:
‍在下列一维数组定义中,(    )是错误的。‌
选项:
A: int n,a[n];
B: float b[5];
C: #define N 5  long c[N];
D: int a[7];
答案: 【 int n,a[n];

3、单选题:
‏若有数组int a[12] = {1,2,3,4,5,6,7,8,9,10,11,12};,则数值最小的和最大的元素下标分别是(    )。‍
选项:
A: 1,12
B: 0,11
C: 1,11
D: 0,12
答案: 【 0,11

4、单选题:
​在有定义int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};和char c='a', d, g ;的前提下,则引用数组a中数值为 4 的表达式是(     )‎
选项:
A: a[g-c]
B: a[4]
C: a['d'-'c']
D: a['d'-c]
答案: 【 a['d'-c]

5、单选题:
‏在下列一维数组定义及赋予初值中,合法的是(   )。‎
选项:
A: int abc[5] ={0,1,2,3,4,5};
B: int ab12[5] ={1,2,3,4,“5”};
C: int Else[5] ={1,2,3,4,5};
D: int do[5] ={1,2,3,4,5};
答案: 【 int Else[5] ={1,2,3,4,5};

6、判断题:
‏定义一个一维数组,在数组标识符后面既可以是方括号“[]”,也可以是花括号“{}”。‎
选项:
A: 正确
B: 错误
答案: 【 错误

7、判断题:
‎定义一个一维数组,数组中的每个元素都必须赋以一个初值。‏
选项:
A: 正确
B: 错误
答案: 【 错误

8、判断题:
‌在一维数组中,赋以元素初值的数量不能超过数组长度,但可以小于等于数组长度。‏
选项:
A: 正确
B: 错误
答案: 【 正确

9、判断题:
​引用一维数组中的元素,序号是从1开始。​
选项:
A: 正确
B: 错误
答案: 【 错误

10、判断题:
​给一维数组赋值时,可以一个一个元素赋值,也可以一起赋值。‏
选项:
A: 正确
B: 错误
答案: 【 正确

第九周 函数(一)

第九周单元测验

1、单选题:
‏以下不正确的说法是(  ).‏
选项:
A: 在不同函数中可以使用相同名字的变量
B: 形式参数是局部变量
C: 在函数内定义的变量只在本函数范围内有定义
D: 在某函数内定义的变量可在其余函数中通用
答案: 【 在某函数内定义的变量可在其余函数中通用

2、单选题:
‎以下正确的函数声明是(  ).‎
选项:
A: double fun(int x , int y)
B: double fun(int x ; int y)
C: double fun(int x , int y) ;  
D: double fun(int x,y)
答案: 【 double fun(int x , int y) ;  

3、单选题:
‍若调用一个函数,且此函数中没有return语句,则正确的说法是(  ).‍
选项:
A: 该函数没有返回值
B: 该函数返回若干个系统默认固定值
C: 能返回一个用户所希望的函数值
D: 返回一个不确定的值
答案: 【 返回一个不确定的值

4、单选题:
​已知一个函数的定义如下:‎​    double fun(int x, double y)‎​    { …… }‎​则该函数正确的函数原型声明为(  ).‎
选项:
A: double fun (int x,double y) 
B: fun (int x,double y)
C: double fun (int x ,double y ); 
D: fun(x,y) ;
答案: 【 double fun (int x ,double y ); 

5、单选题:
‌C语言规定,函数返回值的类型是由(   )决定的.‎
选项:
A: return语句中的表达式类型
B: 调用该函数时的主调函数类型
C: 调用该函数时由系统临时
D: 在定义函数时所指定的函数返回类型
答案: 【 在定义函数时所指定的函数返回类型

6、单选题:
​若在某程序中定义了多个函数,则以下说法中正确的是(  ).‍
选项:
A: C语言程序总是从第一条语句开始执行
B: 在C语言程序中,要调用的函数必须在main()函数中定义
C: C语言程序总是从main()函数开始执行
D: C语言程序中的main()函数必须放在程序的开始部分
答案: 【 C语言程序总是从main()函数开始执行

7、单选题:
‏已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则(   ).‌
选项:
A: FA必须定义在FB之前
B: FB必须定义在FA之前
C: 若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
D: 若FB定义在FA之后,则FB的原型必须出现在FA的定义之前 
答案: 【 若FB定义在FA之后,则FB的原型必须出现在FA的定义之前 

8、单选题:
‎若有下面的函数调用: fun(a+b,3,max(n-1,b)) 则fun的实参个数是(  ).‏
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 3

9、单选题:
​下列关于C函数的叙述中,正确的是(  ).‍
选项:
A: 每个函数至少要具有一个参数 
B: 每个函数都必须返回一个值
C: 函数在被调用之前必须先声明  
D: 函数不能自己调用自己 
答案: 【 函数在被调用之前必须先声明  

10、单选题:
对以下程序,正确的说法是(      ).‌#include <stdio.h>‌sub (char x,char y)‌{ int z;‌ z=x%y;‌return  z;‌}‌int main( )‌{ int g=5,h=3,k;‌  k=sub(g,h);‌  printf("%dn",k);‌  return 0;‌‌ }‌
选项:
A: 实参与其对应的形参类型不一致,程序不能运行
B: 被调函数缺少数据类型说明,程序不能运行
C: 主函数中缺少对被调函数的说明语句,程序不能运行
D: 程序中没有错误,可以正常运行
答案: 【 程序中没有错误,可以正常运行

11、单选题:
‍调用函数时,当实参和形参都是基本数据类型的变量时,它们之间数据传递的过程是(      ).‍
选项:
A: 实参将其地址传递给形参,并释放原先占用的存储单元
B: 实参将其地址传递给形参,调用结束时形参再将其地址回传给实参
C: 实参将其值传递给形参,调用结束时形参再将其值回传给实参
D: 实参将其值传递给形参,调用结束时形参并不将其值回传给实参
答案: 【 实参将其值传递给形参,调用结束时形参并不将其值回传给实参

12、单选题:
‏C语言中,若未说明自定义函数的类型,则系统默认该函数的类型是(        )。‌
选项:
A:  int 型
B: float 型
C: double 型
D: long 型
答案: 【  int 型

13、单选题:
‍C语言中规定自定义函数的返回值的类型是由(        ).‌
选项:
A: return语句中的表达式类型所决定
B: 调用该函数时的主调用函数类型所决定
C: 调用该函数时系统临时决定
D: 在定义该函数时所指定的类型所决定
答案: 【 在定义该函数时所指定的类型所决定

14、单选题:
设有以下函数:​#include <stdio.h>​int f(int  a)​{ int b=0,c;​  c=3;​  b++ ;  ​  c++;​  return (a+b+c);  }​如果在下面的程序中调用该函数,则输出结果是(        ).​int main()​{ int i;​​  for(i=0;i<3;i++)  ​​  printf("%dn",f(i));  ​​ return 0;​​}​
选项:
A: 579
B: 567
C: 345
D: 333
答案: 【 567

15、单选题:
以下程序的输出结果是(    ).‏  #include <stdio.h>‏  fun(int x,int y,int z)‏  { z=x*x+y*y;‏  }‏  int main()‏  { int a=31;‏    fun(5,2,a);‏    printf("%d",a);  ‏   return 0;‏}‏
选项:
A: 0
B: 29
C: 31
D: 无定值
答案: 【 31

16、单选题:
以下函数调用语句中含有实参个数为(      ).注:exp泛指表达式‏    func((exp1,exp2),(exp3,exp4,exp5));‏
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 2

17、单选题:
有如下函数调用语句  func(exp1,exp2+exp3,(exp4, exp5));该函数调用语句中,含有的实参个数是(    ).‌注:exp泛指表达式‌
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 3

18、判断题:
‍在不同函数中可以使用相同名字的变量。​
选项:
A: 正确
B: 错误
答案: 【 正确

19、判断题:
‏函数在做调用时,实际参数必须与形式参数一致,包括数量和数据类型。‏
选项:
A: 正确
B: 错误
答案: 【 正确

20、判断题:
‎函数的返回值必须与函数定义时的返回类型一致。‏
选项:
A: 正确
B: 错误
答案: 【 正确

21、判断题:
​每个函数都可以被其他函数调用。‎
选项:
A: 正确
B: 错误
答案: 【 错误

22、判断题:
‌在C语言调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参‍
选项:
A: 正确
B: 错误
答案: 【 正确

23、填空题:
有以下程序‎‎‍#include <stdio.h>‎‍‎‍int fun1(double a)‎‍{return a*=a;‎‍ }‎‍ ‎‍int fun2(double x,double y)‎‍{return (int)(x+y);‎‍}‎‍‎‍int main()‎‍{‎‍int w;‎‍w=fun1(3.6)*fun2(1.2,3.3);‎‍printf("%d",w);‎‍return 0;‎‍}‎程序执行后输出显示是____________.‎
答案: 【 48

24、填空题:
有以下程序:‌#include <stdio.h>‌#define P 3‌int F(int x){‌return(P*x*x);‌}‌int main()‌{‌  printf("%dn",F(3+5));‌  return 0;‌}‌程序运行后的输出结果是(   ).‌
答案: 【 192

25、填空题:
有如下程序​#include <stdio.h>​  int func(int a,int b)​  { return(a+b); ​  }​  int main()​  { int x=2,y=5,z=8,r;​    r=func(func(x,y),z);​    printf("%dn",r);  ​    return 0;​    }​  该程序的输出结果是________.​
答案: 【 15

第十周 函数(二)

第十周单元测验

1、单选题:
以下对C语言函数的有关描述中,正确的是(   ).​
选项:
A: 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B: C函数既可以嵌套定义又可以递归调用
C: 函数必须有返回值,否则不能使用函数
D: C程序中有调用关系的所有函数必须放在main函数前
答案: 【 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

2、单选题:
若函数调用时用数组名作为函数参数,以下叙述中,不正确的是(     ).‏
选项:
A: 实参与其对应的形参共占用同一段存储空间
B: 实参将其地址传递给形参,结果等同于实现了参数之间的双向值传递
C: 实参与其对应的形参分别占用不同的存储空间
D: 在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组
答案: 【 实参与其对应的形参分别占用不同的存储空间

3、单选题:
以下叙述中,不正确的是(      ).‍
选项:
A: 使用static float a定义的外部变量存放在内存中的静态存储区
B: 使用float b定义的外部变量存放在内存中的动态存储区
C: 使用static float c定义的内部变量存放在内存中的静态存储区
D: 使用float d定义的内部变量存放在内存中的动态存储区
答案: 【 使用float b定义的外部变量存放在内存中的动态存储区

4、单选题:
如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量(    ).‏
选项:
A: 为全局变量,在本程序文件范围内有效
B: 为局部变量,只在该函数内有效
C: 为局部变量,只在该复合语句中有效
D: 定义无效,为非法变量
答案: 【 为局部变量,只在该复合语句中有效

5、单选题:
以下叙述中,不正确的是(      ).‍
选项:
A: 在同一C程序文件中,不同函数中可以使用同名变量
B: 在main函数体内定义的变量是全局变量
C: 形参是局部变量,函数调用完成即失去意义
D: 若同一文件中全局变量和局部变量同名,则全局变量在局部变量作用范围内不起作用
答案: 【 在main函数体内定义的变量是全局变量

6、单选题:
对于C语言的函数,下列叙述中正确的是(      ).​
选项:
A: 函数的定义不能嵌套,但函数调用可以嵌套
B: 函数的定义可以嵌套,但函数调用不能嵌套
C: 函数的定义和调用都不能嵌套
D: 函数的定义和调用都可以嵌套
答案: 【 函数的定义不能嵌套,但函数调用可以嵌套

7、单选题:
以下程序的输出结果是(      ).​#include <stdio.h>​int a,b;​void fun()​{ a=100;  ​b=200; }​int main()​{ int a=5,b=7;​   fun();​   printf("%d%dn",a,b);  ​   return 0; ​}​
选项:
A: 100200
B: 57
C: 200100
D: 75
答案: 【 57

8、单选题:
185、设有以下函数:‏#include <stdio.h>‏int f(int a)‏{ int b=0;‏   static  c=3;‏   b++ ;  ‏   c++;‏   return (a+b+c);  }‏如果在下面的程序中调用该函数,则输出结果是(    ).‏int main()‏{ int a=2,i;‏   for(i=0;i<3;i++)  printf("%dn",f(a));  ‏ return 0;‏}‏
选项:
A: 789
B: 7911
C: 71013
D: 777
答案: 【 789

9、单选题:
在一个C源程序文件中,要定义一个只允许本文件中所有函数使用的全局变量,则该变量需要使用的存储类别是:(       ).‎
选项:
A: extern
B: register
C: auto
D: static
答案: 【 static

10、单选题:
C语言中,凡未指定存储类别的局部变量的隐含存储类别是(        ).​
选项:
A: auto
B: static
C: extern
D: register
答案: 【 auto

11、单选题:
在C语言中,全局变量的存储类别是(       ).‍
选项:
A: static
B: extern
C: void
D: registe
答案: 【 static

12、单选题:
以下自定义函数func()的功能是:使具有n个元素的一维数组b的每个元素的值都增加2,划线处应填入(    ).‌func(int  b[ ],int n)‌{ int ;‌for(i=0;i<n;i++)‌ __________;  }‌
选项:
A: b[i++]
B: b[i]++
C: b[i+=2]
D: b[i]+=2
答案: 【 b[i]+=2

13、单选题:
以下程序的输出结果是(    ).‌  #include <stdio.h>‌  void fun()‌   { static int a=0;‌    a+=2;‌    printf("%d",a);  }‌   int main()‌   { int cc;‌    for(cc=1;cc<4;cc++) fun( );‌    printf("n");  ‌    return 0;}‌
选项:
A: 2222
B: 2468
C: 222
D: 246
答案: 【 246

14、填空题:
下面程序的输出是________.‏#include <stdio.h>‏int m=13;‏int fun2(int x, int y)‏{ int m=3;‏  return(x*y-m); ‏}‏int main()‏{ int a=7, b=5;‏  printf("%d",fun2(a,b)/m);‏  return 0;‏‍}‏
答案: 【 2

15、填空题:
请读程序:‏#include <stdio.h>‏fun(int b[ ], int n)‏{ int i, r=0;‏  for(i=0; i<=n; i++) r=r+b[i];‏return r;‏}‏int main()‏{‏  int x, a[]={ 2,3,4,5,6,7,8,9};‏  x=fun(a, 3);‏  printf("%d",x);  ‏  return 0;‏}‏上面程序的输出结果是________.‏
答案: 【 14

16、填空题:
下面程序的输出是_________.‍#include <stdio.h>‍int fun3(int x)‍{static int a=3;‍  a+=x;‍  return(a);  }‍int main()‍{int k=2,m=1,n;‍  n=fun3(k);‍  n=fun3(m);‍  printf("%d",n);‍  return 0;‍}  ‍‏‍
答案: 【 6

17、填空题:
下列程序执行后输出的结果是________.‍#include<stdio.h>‍int fun2(int a)‍{int b=0;‍  static int c=3;‍  a=c++,b++;‍  return(a);  }‍int main()‍{int a=2,i,k;‍  for(i=0;i<3;i++)‍     k=fun2(a++);‍  printf("%d",k);  ‍  return 0;‍}‍
答案: 【 5

18、填空题:
下列程序执行后输出结果是___________。‏#include <stdio.h>‏int age(int n)‏{‏     int c;‏     if (n == 1)‏     {‏          c = 10;‏     }‏     else if (n > 1)‏     {‏          c = age(n - 1) + 2;‏     }‏     return  c;‏ }‏ ‏int main(void)‏{‏     printf(“%d”, age(3));‏     return 0;‏}‏
答案: 【 14

19、填空题:
‏下列程序执行后输出结果是___________。‏#include  <stdio.h>‏int  func(int a, int b)‏{  ‏         return (a+b); ‏ }‏int  main(void)‏{  ‏          int  x = 2, y = 5, z = 8, r ;‏          r = func( func(x, y), z);‏         printf(“%d”, r);‏         return  0;‏}‏
答案: 【 15

第十一周 指针(一)

第十一周单元测试

1、单选题:
‎执行语句int a=20,*p=&a;后,下列描述错误的是(   ).‌
选项:
A: p的值为20 
B: p指向整型变量a
C: *p表示变量a的值 
D: p的值是变量a的地址
答案: 【 p的值为20 

2、单选题:
‎下面能正确使用的语句是(   ). ‌
选项:
A: int *x;int y=1;x=&y;
B: int *x;x=&y;
C: int *x;*x=1;
D: int *x,y=1;x=y;
答案: 【 int *x;int y=1;x=&y;

3、单选题:
‌语句int *p=&k;定义了指针p,与这个语句等效的语句序列是(  ).‎
选项:
A: int k,*p;p=&k;
B: int k,*p;p=k;
C: int k,*p;*p=&k;
D: int k,*p;*p=k;
答案: 【 int k,*p;p=&k;

4、单选题:
‍若有说明语句:float  *p,a; 则能通过scanf语句正确给a输入数据的程序段是(  ).‎
选项:
A: *p=&a; scanf("%f",p);
B: *p=&a;  scanf("%f",p);
C: p=&a; scanf("%f",*p); 
D: p=&a; scanf("%f",p); 
答案: 【 p=&a; scanf("%f",p); 

5、单选题:
​若有定义 int x=0,*p=&x;,则语句 printf("%dn",*p);的输出结果是(  ).‍
选项:
A: 随机值
B: 0
C: x 的地址
D:  p 的地址 
答案: 【 0

6、单选题:
​设有定义 int n1=0,n2=3,*p=&n2,*q=&n1;,以下赋值语句中与 n2=n1;语句等价的是(  ).​
选项:
A: *p=*q; 
B: p=q; 
C: *p=&n1;
D: p=*q; 
答案: 【 *p=*q; 

7、单选题:
以下程序输出结果是(    ).​#include <stdio.h>​int main() {   ​     int a=2,*pa=&a;​     float n=5.888,b,*pn=&n;​    b=*pa+(int)*pn;​    printf("%.1fn",b);​    return 0;​}​
选项:
A: 8
B: 7
C: 8.0
D: 7.0
答案: 【 7.0

8、单选题:
‍若有定义 int a=1,*b,c;,以下不正确的表达式是(   )。‎
选项:
A: b=&a;
B: b=&a,c=*b;
C: b=a;
D: c=a;
答案: 【 b=a;

9、单选题:
以下程序段的printf显示结果为(   )。 ‌int a=5,*p=&a,b,*q; ‌a=10; ‌*p=15; ‌q=p; ‌*q=20; ‌b=*q; ‌p=&b; ‌​printf("a=%d,b=%d,*p=%d,*q=%dn",a,b,*p,*q); ‌
选项:
A: a=5,b=10,*p=15,*q=20
B: a=20,b=20,*p=20,*q=20
C: a=20,b=15,*p=10,*q=5
D: a=15,b=15,*p=15,*q=15
答案: 【 a=20,b=20,*p=20,*q=20

10、单选题:
‏有定义:int a=3, b=5, *p1=&a, *p2=&b;,则正确的赋值语句为(   )。‎
选项:
A: p1*=p2;
B: p1+=p2;
C: p1/=p2; 
D: p1=p2;
答案: 【 p1=p2;

11、单选题:
​下列程序段的printf显示输出的结果是(   )。 int k=3,j=4; int *p=&k,*q=&j; (*p)--; j=k; (*q)--; printf("(%d,%d) ",k,j);‍
选项:
A: (3,4) 
B: (4,3) 
C: (1,2)
D: (2,1)
答案: 【 (2,1)

12、判断题:
‍指针变量和它指向的变量之间的关系,可以用指针运算符“*”表示.‏
选项:
A: 正确
B: 错误
答案: 【 正确

13、判断题:
‍变量的两个值 : 本身值和地址值都是可以改变的.‎
选项:
A: 正确
B: 错误
答案: 【 错误

14、判断题:
‌不允许把一个数值或字符赋予指针变量.‍
选项:
A: 正确
B: 错误
答案: 【 正确

15、判断题:
​指针变量,只能作为函数的形参,不可以作函数的实参.​
选项:
A: 正确
B: 错误
答案: 【 错误

16、判断题:
‍直接访问就是直接利用变量的地址进行存取直接访问.‌
选项:
A: 正确
B: 错误
答案: 【 正确

17、判断题:
​已知p是指针变量,某个变量的地址可以给p赋值. ​
选项:
A: 正确
B: 错误
答案: 【 正确

18、填空题:
‍以下程序输出a和b的结果是_____________注意:答案连着写,中间不要有空格、或其它分隔符.‍‍#include <stdio.h>‍‍void swap(int *pa,int *pb)‍‍{ ‍‍  int *p;‍‍      p=pa;‍‍      pa=pb;‍‍      pb=p; ‍‍}‍‍int main() {   ‍‍      int a=10,b=20;‍‍      int *p1=&a,*p2=&b;‍‍      if(a<b) swap(p1,p2);‍‍      printf("%d%dn",a,b);‍‍      return 0;‍‍}‍
答案: 【 1020

19、填空题:
‌以下程序输出的结果是________.‏‌#include<stdio.h>‏‌int a=5; int b=7;‏‌int plus(int *x,int *y)‏‌{ ‏‌  int z;‏‌     z=*x+*y;‏‌  return (z);‏‌}‏‌int main() {   ‏‌      int a=4,b=5,c,*pa=&a,*pb=&b;‏‌      c=plus(pa,pb);‏‌      printf("%dn",c);‏‌      return 0;‏‌}‏
答案: 【 9

20、填空题:
​以下程序的输出结果是_____.‏​#include <stdio.h>‏​int main() {   ‏​    int a=1,b=1,*pa,*pb;‏​    pa=&a;‏​    pb=&b;‏​    for(;*pa<=100;(*pa)++)‏​    {‏​     if(*pb>=10) break;‏​            if(*pb%3==1) ‏​   { ‏​      *pb+=3; ‏​      continue; ‏​    }‏​   }‏​    printf("%dn",a);‏​     return 0;‏​}‏
答案: 【 4

第十二周 指针(二)

第十二周单元测验

1、单选题:
‏有如下定义:int a[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值5的是(   )‌
选项:
A: a[2]
B: a[3]
C: *(p+2) 
D: *p+4
答案: 【 a[3]

2、单选题:
 有以下函数:‎fun(char *a,char *b)‎{ ‎  while((*a!='')&&(*b!='')&&(*a==*b))‎  {   ‎     a++;‎     b++;   ‎  }‎  return(*a-*b);‎}‎该函数的功能是(    ).‎
选项:
A: 将b所指字符串连接到a所指字符串后面
B: 将b所指字符串连接到b所指字符串中
C: 计算a和b所指字符串的长度之差
D: 比较a和b所指字符串的大小
答案: 【 比较a和b所指字符串的大小

3、单选题:
​执行以下程序段后, m的值为(     )                  ‏​    int a[6]={1,2,3,4,5,6}, m, *p;‏​    p=&a[0];‏​    m=(*p)*(*(p+2))*(*(p+4));‏
选项:
A: 15
B: 14
C: 13
D: 12
答案: 【 15

4、单选题:
下面程序段的运行显示结果是(   )。‌char str[ ]=“ABC”, *p=str;‌printf(“%dn”, *(p+3));‌
选项:
A: 67
B: 0
C: 地址
D: 字符
答案: 【 0

5、单选题:
设有如下的类型说明: ​int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;​‏若数组所占内存单元的起始地址为446且整型数据占4个字节,利用printf整数输出,则p+5和*(p+5)分别是(     )。​‏​
选项:
A: 6,466
B: 6,462
C: 466,6
D: 462,6
答案: 【 466,6

6、单选题:
‏以下程序运行后,输出结果是(    )‍‏#include <stdio.h>‍‏int main() ‍‏{   ‍‏int x[]={1,2,3},s,*p=x,i;‍‏ for(i=0,s=1;i<3;i++,p++)‍‏  s*=*p;‍‏printf("%dn",s);‍‏return 0;‍‏}‍
选项:
A: 2
B: 4
C: 6
D: 8
答案: 【 6

7、单选题:
​对于 char *pstr;,以下赋值语句正确的是(   )。​
选项:
A: *pstr="Hi"
B: pstr="Hi"
C: *pstr="Hi"
D: **pstr="Hi"
答案: 【 pstr="Hi"

8、单选题:
以下程序段的输出显示结果为(   )。 ‍ char *pstr="My name is Tom"; ‍ int n=0; ‍ while(*pstr++!='') ‍  n++; ‍  printf("%dn",n); ‍
选项:
A: 11
B: 14
C: 15
D: 不确定
答案: 【 14

9、单选题:
以下程序段的输出显示结果为(    )。‍ int num[9]={1,2,3,4,5,6,7,8,9},*p; ‍ p=num; ‍ *(p+1)=0; ‍ printf("%d,%d,%dn",*p,num[1],(*p)++);‍
选项:
A: 2,0,1
B: 1,0,1
C: 1,0,3
D: 2,1,1 
答案: 【 2,0,1

10、单选题:
以下程序段的输出显示结果为(   )。 ‌ int num[]={1,2,3,4,5,6,7,8,9},*pnum=&num[2]; ‌ pnum++; ‌ ++pnum; ‌ printf("%dn",*pnum); ‌
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 5

11、单选题:
以下程序段的输出显示结果为(   )。  ‎ char astr[5]="1234"; ‎ char *pstr=astr; ‎  printf("%d",pstr[1]-'0'); ‎
选项:
A: 1
B: 2
C: 字符1的ASCII码值
D: 字符2的ASCII码值
答案: 【 2

12、单选题:
下述程序段的输出结果为(   )。 ‏ char astr[]="abcde"; ‏ char *pstr=&astr[5]; ‏ while(--pstr>=astr) ‏  putchar(*pstr); ‏  putchar('n');‏
选项:
A: abc
B: cba
C: abcde
D: edcba
答案: 【 edcba

13、判断题:
​可以定义一个字符指针变量指向一个字符串。​
选项:
A: 正确
B: 错误
答案: 【 正确

14、判断题:
‌当两个指针变量指向不同一个数组时,两指针变量相减所得之差是两个指针所指数组元素之间相差的元素个数。‍
选项:
A: 正确
B: 错误
答案: 【 错误

15、判断题:
‏有指针变量p和数组a,指针变量和数组都可以实现p++和a++。‌
选项:
A: 正确
B: 错误
答案: 【 错误

16、判断题:
‎char *s="C Language"; 表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。‌
选项:
A: 正确
B: 错误
答案: 【 正确

17、判断题:
‎如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。​
选项:
A: 正确
B: 错误
答案: 【 正确

18、填空题:
有以下程序:​#include <stdio.h>​int main() {   ​     int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;​         printf("%d",*p+*q);​          return 0;​}​程序运行后,printf打印输出的结果是________。​
答案: 【 10

19、填空题:
有以下程序:​#include <stdio.h>​int main() {   ​      char s[]="159",*p;​        p=s;​        printf("%c",*p++);​                   printf("%c",*p++);​          return 0;​}​程序运行后,printf输出结果是___________. ​
答案: 【 15

20、填空题:
‏运行下面的程序,printf输出显示字符串是___________。‎‏#include<stdio.h>‎‏void fun(char *p);‎‏int main()‎‏{‎‏char ary[11]="4321";‎‏fun(ary);‎‏printf("%s",ary);‎‏return 0;‎‏}‎‏‎‏void fun(char *p)‎‏{ ‎‏

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注