c语言作业(六)

1、以下对二维数组 a 的正确说明是(c)。

A.int a[3][]

B.float a(3,4)

C.double a[1][4]

D.float a(3)(4)

2、判断字符串a是否大于b,应当使用(D )

A.if (a>b)

B.if (strcmp(a,b))

C.if (strcmp(b,a)>0)

D.if (strcmp(a,b)>0)

3、有以下程序

main()
{ 
    int a=666,b=888;
    printf("%d\n",a,b);
}

程序运行后的输出结果是( 666 )。

错误信息

666

888

666,888
3、下列选项中,不能用作标识符的是(D )。
标识符首位不能是数字

A._1234_

B._1_2

C.int_2_

D.2_int_

4、在 C++ 中,用于实现动态多态性的是(虚函数)。

内联函数

重载函数

模板函数

虚函数

动态多态性:编译时无法立即确定其所要调用的同名函数,注意是同名函数,这才是多态的体现!要在运行时才能确定其要调用同名函数!
另一种静态多态:是在编译时就能被确定其要调用同名函数。
是能通过设立一个虚函数的方法,来动态确定要调用的同名函数。

5、下列标识符错误的是(c)
标识符首位不能是数字

A.xly

B._123

C.2ab

D._ab

6、以下不符合 C 语言语法的赋值语句是(D)。

A.a=1,b=2

B.++j;

C.a=b=5;

D.y=(a=3,6*5);

7、以下对C语言函数的描述中,正确的是(A)。


A.C程序必须由一个或一个以上的函数组成

B.C 函数既可以嵌套定义又可以递归调用

C.函数必须有返回值,否则不能使用函数

D.C 程序中有调用关系的所有函数必须放在同一个程序文件中

8、设 x,y,t 均为 int 型变量,执行下列语句后,y的值为(3)。
x=y=3; t=++x||++y;

不确定

4

3

1
9、下列程序段,循环体执行次数是:2次

y = 2;
while (y <= 8)
    y = y + y;

2
16
4
3
10、用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数

A.int *a[10];

B.int (*a)[10];

C.int (*a)(int);

D.int (*a[10])(int);

11、下面有关java和c++的描述,错误的是?(B)

JAVA不支持多继承

A.java是一次编写多处运行,c++是一次编写多处编译

B.c++和java支持多继承

C.Java不支持操作符重载,操作符重载被认为是c++的突出特征

D.java没有函数指针机制,c++支持函数指针

12、不能把字符串”HELLO!”赋给数组b的语句是(B)

A.char b[10]={‘H’,’E’,’L’,’L’,’O’,’!’,’\0’};

B.char b[10];b=”HELLO!”;//这里的b是地址,数组首地址

C.char b[10];strcpy(b,”HELLO!”);

D.char b[10]=”HELLO!”;
13、*p++ 自增p 还是 p 所指向的变量?//自增P,然后指向之前所指向的变量

自增p

自增p所指向的变量

和机器相关
14、下面程序会输出什么:1 2 2 2

static int a=1;
void fun1(void){    a=2;  }
void fun2(void){    int a=3;  }
void fun3(void){   static int a=4;  }
int main(int argc,char** args)
{
    printf(“%d”,a); 
    fun1( ); 
    printf(“%d”,a); 
    fun2( ); 
    printf(“%d”,a);
    fun3( );
    printf(“%d”,a); 
}

1 2 3 4

1 2 2 2

1 2 2 4

1 1 1 4
15、已知一运行正常的程序中有这样两个语句:int p1,*p2=&a; p1=b; 由此可知,变量a和b的类型分别是(C)。

A.intint

B.int*和int

C.intint*

D.int*和int*

16、c++中,声明const int i,是在哪个阶段做到 i只可读的(编译的时候)

编译

链接

运行

以上都不对
17、以下程序的运行结果是(B)
int main(void)
{
printf(“%s , %5.3s\n”,”computer”,”computer”);
return 0;
}

A.computer , puter

B.computer , com

C.computer , computer

D.computer , compu.ter

18、运行下面这段C语言程序之后,输出在屏幕上的结果是:A

void foobar(int a, int *b, int **c)
{
    int *p = &a;
    *p = 101;
    *c = b;
    b = p;
}

int main()
{
    int a = 1;
    int b = 2;
    int c = 3;
    int *p = &c;
    foobar(a, &b, &p);
    printf("a=%d, b=%d, c=%d, *p=%d\n", a, b, c, *p);
    return (0);
}
A.a=1, b=2, c=3, *p=2

B.a=101, b=2, c=3, *p=2

C.a=101, b=101, c=2, *p=3

D.a=1, b=101, c=2, *p=3

19、下列程序的运行结果是3,5,请为横线处选择合适的程序( )

#include<stdio.h>
 struct S
 {
    int n;
    char c[10];
 } *p;
 main()
 {
    struct S a[3]={{3,"abc"},{5,"def"},{7,"ghi"}};
    p=a;
    printf("%d,",(*p).n);
    printf("%d\n",((*)(p+1)).n);
 }

20、在 C 语言中下面那个语句的结果是 1 ?B

A.main 函数正常结束的返回值

B.return 7&1;

C.char *p="hello"; return p == "hello";

D.上面都不对

21、下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]…中,把偶数从数组中删除,奇数个数通过函数值返回。 例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7,删除偶数后,a所指数组中的数据为:9,1,3,5,7,返回值为5。
函数原型:int cnt_array_oushu(int *a, int len)

#include<stdio.h>
#define N 9;
int cnt_array_oushu(int *a, int len) 
{
    int *p = a;
    int arr[];
    int i = 0;
    int j = 0;
    for(i=0;i<len;i++)
    {
        if((a[i]%2) == 0)
        {
            arr[j] = a[i];
        }
        else
        {
            p = p + 1;
        }
    }

}
int main(void)
{
    int a[] = {9,1,4,2,3,6,5,8,7};
    int sum;
    sum = cnt_array_oushu(a, N) 
    return 0;
}

猜你喜欢

转载自blog.csdn.net/linzetao233/article/details/78969588