第七章数组及其应用

第十六周测试题函数及数组

1、单选题:
下列程序的输出结果是( )。 ​​# include <stdio.h>​int f(int n)​{  static int k, s;​n--;​for(k=n; k>0; k--)​s += k;  ​return s;​}​int main(void)​{  int k;​k=f(3);​printf("(%d,%d)", k, f(k));​return 0;​}​‍​
选项:
A: (3,3)
B: (3,6)
C: (6,6)
D: (6,12)
答案: 【 (3,6)

2、单选题:
函数f定义如下,执行语句“sum=f(5)+f(3);”后,sum的值应为( )。‌‌int f(int m)                      ‌{  static int i=0; ‌   int s=0;           ‌  for(;i<=m;i++) ‌     s+=i; ‌ return s;‌}‌‌‌
选项:
A: 21
B: 15
C: 16
D: 8
答案: 【 15

3、单选题:
‏函数中未指定存储类型的局部变量,其隐含的存储类型是()‌
选项:
A: auto
B: register
C: extern
D: static
答案: 【 auto

4、单选题:
如果所有的变量按照下面的程序进行定义和声明,那么在main()函数中所有可用的变量为 ()。‌void fun(int x)‌{  ‌    static int y;‌    ……‌    return;‌}‌int z;‌void main( )‌{   ‌    int a,b;‌    fun(a);‌    ……‌}‌
选项:
A: x,y,z,a,b
B: a,b
C: z,a,b
D: x,y,z
答案: 【 z,a,b

5、单选题:
‍宏定义 #define div(a,b)  a/b, 经div(x+5,y-5)引用,替换展开后是()。​
选项:
A: x+5/y-5
B: (x+5)/(y-5)
C: (x+5/y-5)
D: 以上都错误
答案: 【 x+5/y-5

6、单选题:
下面关于形参和实参的说法中,正确的是( )。‏
选项:
A: 形参是虚设的,所以它始终不占存储单元。
B: 实参与它所对应的形参占用不同的存储单元。
C: 实参与它所对应的形参占用同一个存储单元。
D: 实参与它所对应的形参同名时可占用同一个存储单元。
答案: 【 实参与它所对应的形参占用不同的存储单元。

7、单选题:
如果要一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,则这个变量的存储类型应该被说明为( )。‎
选项:
A: 自动变量
B: 静态变量
C: 外部变量
D: 寄存器变量
答案: 【 静态变量

8、单选题:
以下正确地定义了一维整型数组a的语句组是( )‎​‎‎​‎​‎​‎​‎‎​‎
选项:
A: int a(10);
B: int n=10,a[n]
C: int n; scanf(“%d”,&n); int a[n];
D: int a[SIZE];(在程序开始有#define SIZE 10)
答案: 【 int a[SIZE];(在程序开始有#define SIZE 10)

9、单选题:
下面程序的运行结果是( )‍#include<stdio.h>‍int main()‍{‍   int a[]= {2,3,5,4},i;‍   for(i=0; i<4; i++)‍       switch(i%2)‍       {‍       case 0:‍           switch(a[i]%2)‍           {‍           case 0:‍               a[i]++;‍               break;‍           case 1:‍               a[i]--;‍           }‍           break;‍       }‍   for(i=0; i<4; i++)‍       printf("%2d",a[i]);‍   printf("n");‍   return 0;‍}  ‍‍‍
选项:
A: 3 3 4 4
B: 2 0 5 0
C: 3 0 4 0
D: 0 3 0 4
答案: 【 3 3 4 4

10、单选题:
下面的程序段将输出 ▁▁▁▁▁ 。‍double a[] = {1, 2, 3, 4, 5};printf("%dn", sizeof(a));‍‎‍
选项:
A: 20
B: 10
C: 5
D: 40
答案: 【 40

11、单选题:
‎有两个字符数组a,b,则以下正确的输入语句是() ‏
选项:
A: gets(a,b);
B: scanf("%s%s",a,b);
C: scanf("%s%s",&a,&b);
D: gets("a"),gets("b");
答案: 【 scanf("%s%s",a,b);

12、单选题:
下列字符串赋值语句中,不能正确把字符串"Hello World"赋给数组的语句是() ‏
选项:
A: char a1[]={'H','e ','l','l','o',' ','W','o','r','l','d',''};
B: char a2[15]; strcpy(a2,"Hello World");
C: char a3[15]; a3="Hello World";
D: char a4[15]={"Hello World"};
答案: 【 char a3[15]; a3="Hello World";

13、单选题:
‍对于定义 char str[] = "abc00defn"(注:其中0为数字零),求字符串str的长度len和数组str的大小size,len和size分别是( )‍
选项:
A: 12,13

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

发表评论

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