9.30作业

  • C语言基础考题(40)

选择题 20分每题2分

1、已知字母A的ASCII码为十进制数值65,且S为字符型,则执行语句S='A'+'6'-'3';后S中的值为 ( )

A.'D'  B.68  C.不确定的值  D.'C'

2、若有定义语句:int a=12;,则执行语句:a+= a-= a*a;后,a的值是 ( )

A.264  B.552  C.144  D.-264

3、设有以下程序段int y;y=rand() % 30+1;则变量 y 的取值范围是 ( )

A.1<y<30  B.0≤y≤30  C.0<y≤30  D.1<y≤30

4、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 ( )

if (x>y) z=x; x=y; y=z;

A.x=10,y=20,z=30  B.x=20,y=30,z=30  C.x=20,y=30,z=10  D.x=20,y=30,z=20

5.请读程序:

#define ADD(x)  x+x

main()

{

int m=1,n=2,k=3;

int sum=ADD(m+n)*k;

printf("sum=%d",sum);

}

输出结果是 ( )

A.sum=9  B.sum=10  C.sum=12  D.sum=18

6.以下程序有错误,错误原因是( )

main()

{

int *p,I;char *q,ch;

p=&I;

q=&ch;

*p=40;

*p=*q;

...

}

A.p和q的类型不一致,不能执行*p=*q;语句

B.p中存放的是地址值,因此不能执行*p=40;语句

C.q没有指向具体的存储单元,所以*q没有实际意义

D.q虽然指向了具体的存储单元,但该单元中没有确定值,多以不能执行*p=*q;语句

7.当顺利执行了文件关闭操作时,fclose函数的返回值是 ( )

A.-1  B.TRUE  C.0  D.1

8.假设变量a,b均为整形,表达式(a=5,b=2,a>b?a++:b++.a+b)的值是 ( )

A.7  B.8  C.9  D.2

9.设有如下程序段,下面描述中正确的是 ( )

int k=10;while(k=0)k=k-1;

A.循环执行一次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次

10.设有以下程序段,则值为6的表达式是 ( )

struct st {int n;struct st *next};

static struct st a[3]={5,&a[1],7,&a[2],9,&a[0]},*p;p = &a[0];

A.p++->n  B.++p->n  C.p->n++  D.(*p).n++

编程题20分每题10分

1.编写函数求1~100中奇数的平方与偶数的立方的和

int sum(){
    int sum1 = 0;     // 偶数
    int sum2 = 0; // 奇数
    for (int i = 1; i <= 100; i++)
    {
        if (i % 2 == 0)
        {
            sum1 += (i * i * i);
        }
        else
        {
           sum2 += (i * i);
        }
    }
    printf("sum=%d\n",sum1+sum2);
    return sum1+sum2;
}

2、采用动态分配内存的方式,现将1k的缓冲区填充从512到1536的数据,并将其以32字节为一行打印输出出来。   

 size_t buffer_size = 1024;

    unsigned char *buffer = (unsigned char *)malloc(buffer_size);

    if (buffer == NULL) {

        fprintf(stderr, "内存分配失败\n");

        return 1;

}

for (int i = 512; i <= 1536; i++) {

        buffer[i - 512] = (unsigned char)i;

    }

    for (int i = 0; i < buffer_size; i++) {

        printf("%c ", buffer[i]);

        if ((i + 1) % 32 == 0) {

            printf("\n");

        }

    }

    free(buffer);

    return 0;

你可能感兴趣的:(算法)