c/c++练习–19

来源:互联网 发布:linux中vim基本操作 编辑:程序博客网 时间:2024/06/06 19:33

c/c++练习–19


  • 习题来源:C语言经典编程282例

181.取出给定16位二进制数的奇数位

#include <stdio.h>#include <stdlib.h>int main(void){    int a=0,b=1,sum=0;    printf("please input a number:\n");    scanf("%d",&a);    for(int i=0;i<8;i++){        sum |= a&b;        b<<=2;    }    printf("%d",sum);    return(EXIT_SUCCESS);}                                           

182.取一个整数的后四位

在屏幕上输入一个八进制数,实现输出其后四位对应的数。

#include <stdio.h>#include <stdlib.h>int main(void){    unsigned int    a=0,b=1;    printf("please input a base-8 number:\n");    scanf("%o",&a);    b = a & 15;    printf("%d",b);    return(EXIT_SUCCESS);}                                                   

183.普通位运算

当a=2,b=4,c=6,d=8时求a&c,b|d,a^d,~a的值。

#include <stdio.h>#include <stdlib.h>int main(void){    int a=2,b=4,c=6,d=8;    printf("%d %d %d %d\n",a&c,b|d,a^d,~a);    return(EXIT_SUCCESS);}                                           

184.整数与0异或

#include <stdio.h>#include <stdlib.h>int main(void){    int a=2;    printf("%d \n",a^0);    return(EXIT_SUCCESS);}                                               

185.使用malloc函数分配内存

创建一个结构体类型指针,其中包含两个成员,一个是整数,另一个是结构体指针,使用malloc函数分配一个结构体的内存空间,然后给这两个成员赋值,并显示出来。

#include <stdio.h>#include <stdlib.h>typedef struct node{    int num;    struct node *next;}*Nodedef;int main(void){    Nodedef head;    head = (Nodedef)malloc(sizeof(struct node));    head->num=1;    head->next = NULL;    printf("%d %p\n",head->num,head->next);    free(head);    return(EXIT_SUCCESS);}               

186.使用calloc函数分配内存

创建一个结构体类型指针,其中包含两个成员,一个是整数,另一个是结构体指针,使用malloc函数分配一个结构体的内存空间,然后给这两个成员赋值,并显示出来。

#include <stdio.h>#include <stdlib.h>typedef struct node{    int num;    struct node *next;}*Nodedef;int main(void){    Nodedef head;    head = (Nodedef)calloc(1,sizeof(struct node));    head->num=1;    head->next = NULL;    printf("%d %p\n",head->num,head->next);    free(head);    return(EXIT_SUCCESS);}               

187.为具有3个数组元素的数据分配内存

#include <stdio.h>#include <stdlib.h>int main(void){    int *head;    head = (int *)malloc(3*sizeof(int));    head[0]=1;    head[1]=1;    head[2]=1;    printf("%d %d   %d\n",*head,  head[1], head[2]);    free(head);    return(EXIT_SUCCESS);}                                           

188.为二位数组动态分配内存

#include <stdio.h>#include <stdlib.h>int main(void){    int **head;    head = (int **)malloc(3*sizeof(int* [3]));    for(int i=0;i<3;i++)        head[i] = (int *)malloc(3*sizeof(int));    for (int i=0;i<3;i++){        for(int j=0;j<3;j++){            head[i][j] = i*3+j;            printf("%d\t",head[i][j]);        }        printf("\n");    }    for(int i=0;i<3;i++)free(head[i]);    free(head);    return(EXIT_SUCCESS);}

189.商品信息的动态存放

#include <stdio.h>#include <stdlib.h>struct goods{    char    *name;    int num;    int mount;    float   price;  };int main(void){    struct goods *head;    head = (struct goods *)malloc(sizeof(struct goods));    head->name = "apple";    head->num = 101;    head->mount = 100;    head->price = 2.01;    printf("%s--%d--%d--%f\n",head->name,head->num,head->mount,head->price);    free(head);    return(EXIT_SUCCESS);}                                               

190.用不带参数的宏定义求平行四边形面积

利用不带参数的宏定义求平行四边形的面积,平行四边形的面积=底边*高,将平行四边形

#include <stdio.h>#include <stdlib.h>#define LENGTH  3#define HIGN        4int main(void){    printf("%d\n",LENGTH*HIGN);    return(EXIT_SUCCESS);}                                                   
0 0
原创粉丝点击