2016年计算机程序设计

简介: 2016年计算机程序设计

一、阅读程序

1.

#include<stdio.h>
int z=1;
void p(int *x,int y){
    ++(*x);
    y=y-1; z=*x+y+z
    printf("%d,%d,%d",*x,y,z);
}
void main(){
    int x=1,y=5,z=9; p(&x,y);
    printf("%d,%d,%d",x,y,z);
}

答案:2,4,7 2,5,9

解析:先运行main函数,x=1,y=5,z=1;

x=1+1=2,y=5-1=4,z=2+4+1=7;所以输出2,4,7

x=1,x=5,x=9,p(&x,y),p()是一个函数,该函数的第一个参数是一个指针,第二个参数是一个数值。y的值和它调用函数p()之前的值还是一个样。

x=2,y=5,z=9

2.

#include<stdio.h>
void main{
    int i,j,row=0,column=0,max;
    int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,5,2}};
    max=a[0][0];
    for(i=1;i<3;i++)
        for(j=0;j<2;j++){
            if a[i][j]>max{
                max=a[i][j]; row=i;column=j;            
            }        
        }
    printf("max=%d,row=%d,column=%d\n",max,row,column);
}

答案:max=10,row=2,column=1

解析:二维数组a[3][4]表示有3行和4列,在该数组中最大的数值是10。

i<3,j<2,row=i,column=j,所以row=2,column=1。

3.

#include<stdio.h>
int main(){
    int i,m=0,n=0,k=0;
    for(i=9;i<=11;i++)
    switch(i/10){
        case 0:m++;n++;
        case 10;n++;break;
        default:k++;n++;    
    }
    printf("%d,%d,%d\n",m,n,k);
    return 0
}

答案:1 4 2

解析:9/10=0,m=0+1=1,k=0+1=1,n=0+1=1;

10/10=1

4.

#include<stdio.h>
int f(int m){
    static int k=2;k++;
    return k+m;
}
void main(){
    int s,x=2;s=f(2);
    printf("%d,%d\n",s,f(s));
}

答案:5.9

解析:s=2时,m=2,k=2+1=3,so s=f(2)=5,f(s)=3+1+5=9

5.

#include<stdio.h>
int main(){
    int a=1,b=0;
    if(a=b){
        b++;    
    }
    else if(a=0){
        b+=2;    
    }else{
        b+=3;    
    }
    printf("%d\n",b);
    return 0;
}

答案:3

二、空白处填写正确语句

选择法对10个浮点数按从小到大排序。

#include<stdio.h>
int main(){
    int i,j,min;
    float temp,a[10];
    printf("enter data:\n");
    for(i=0;i<10,i++){
            scanf("%f",&a[i]);
    }
    for(i=0;i<0;i++){
        min=i;    
    }
    for (j=j+1;j<10;j++){
        if (a[min]>a[j]){
            min=j;        
        }    
    }
    temp=a[min];
    a[min]=a[j];
    a[i]=temp;
    printf("\n the sorted numbers:in");
    for(i=0;i<10;i++)
    printf("%6.2f",a[i]);
    printf("\n");
    return 0;}

三、编程题

1.对输入的两个整数按大小顺序输出。用函数处理,而且用指针类型的数据作函数参数。

#include<stdio.h>
void swap(int *x,int *y){
    int t;
    if(*x<*y){
        t=*x;
        *x=*y;
        *y=t;    
    }
}
void main(){
    int a,b,*p1,*p2;
    scanf("%d&d\n",&a,&b);
    p1=&a;
    p2=&b;
    swap("%d%d\n",a,b);
}

2.在主函数中用gets()输入一个字符串,调用自定义函数replace()将其中所有的her替换成she,最后在主函数中输出结果,若输入的字符串中不包含her,应输出相应的提示。

#include<stdio.h>
#include<string.h>
void replace(char a[]){
    int i;
    for(i=0;i<strlen(a);i++)
    if a[i]='h'&&a[i+1]='e'&&a[i+2]='r';{
        a[i]='s';
        a[i+1]='h';
        a[i+2]='e';    
    }
    else return 1
}
void main(){
    char a[100];b=[100]={0};
    get(a);strcpy(b,a);
    replace(a);
    if(strcpy(a,b)==)
    print("null");
    else{
        printf("%d\n",a);
        return 0;    
    }
}

3.请编写程序完成两个矩阵相乘。要求A是x行y列的矩阵,B是y行z列的矩阵,结果A*B。

#include<stdio.h>
#define row 4
#define col 3
void mat_mub(const int a[4][3],const int b[3][4],int c[3][3]){
    int i,j,k;
    for(i=0;i<3;i++){
        c[i][j]=0;
        for(k=0;k<4;k++){
            c[i][j]=b[i][k]*a[k][j];        
        }    
    }
}}
int main(void)
{
    int i,j;
    int a[clo][cow];
    int b[cow][clo];
    int c[cow][cow];
    mat_mub(a,b,c);
    printf("显示数组C中的元素:\n");
    for(i=0;i<clo;i++)
    {
        for(j=0;j<clo;j++)
        {
            printf("C[%d][%d]=%d\n",i,j,c[i][j]);
        }
    }
    return 0;
}

4.节点结构体定义如下:

Struct NODE{

NODE *link;

int value;}Node;

请编写两个函数Node*create()和int count_nodes(Node *root)。其函数功能分别为创建一个单向链表、统计单向链表的节点个数。

#include<stdio.h>
#include<stdio.h>
#define len sizeof(struct NODE)
struct NODE{
    NODE*link;
    int value;
}Node;
int n;
int main(){
    int num;
    struct NODE Node* Create();
    int Count_nodes(Node *root);
    struct NODE *head;
    struct NODE *p1,*p2;
    n=0;
    p1=p2(struct NODE*)malloc(LEN);
    scanf("%d",&p1->value);
    head=null;
    while(p1->Value!=0){
        n=n+1;
        if(n==1)head=p1;
        else p2->link=p1;
        p2=p1;
        p1=(struct NODE*)malloc(LEN);
        scanf("%d",&p1->Value);    
    }
    p2->link=null;
    return(head);}
    int count_nodes(Node*root){
        int num;
        struct NODE *p;
        p=head;
        num=0;
        if(p!=null)
        do{
            ++num;
            p=p->link;        
        }    while(p!=null
        return(num);
    }

5.请编写一个程序实现图书信息管理的功能

要求:(1)能够插入每个图书的书号、书名、出版日期、出版社和简介;

(2)能够显示每本书的相关信息。

#include<stdio.h>
struct book{
    char num[10];
    char name[10];
    long Date[10];
    char ed[10];
    char in[20];
}book[s];
int main(){
    int i,Char ch[10];
    for(i=0,Char ch[10]){
        print("书名");
        scanf("%s"&book[i].num);
        printf("图书列表");
        printf("书名简介");
        for(i=0;i<5,i++) 
        printf("%s%5s%5d%5s%5s\n",book[i].num,"书","名","简","介");
        return 0;   
    }
}


相关文章
|
4天前
|
存储 编解码 并行计算
【软件设计师备考 专题 】计算机系统的组成、体系结构分类及特性
【软件设计师备考 专题 】计算机系统的组成、体系结构分类及特性
61 0
|
4天前
|
数据库连接 API 数据库
计算机编程领域的 provisional 概念
计算机编程领域的 provisional 概念
30 0
|
4天前
|
算法 Serverless 编译器
什么是计算机程序
计算机程序,简而言之,是一系列指令的集合,这些指令指挥计算机硬件执行特定的操作。这些指令通常是用高级编程语言编写的,然后通过编译器或解释器转换成计算机硬件可以理解的机器语言。计算机程序是计算机系统的核心组成部分,它使得计算机能够执行复杂的任务,如数据分析、图像处理、游戏运行等。
12 0
|
4天前
|
前端开发 Go Android开发
人机对话:程序设计,学哪种语言好?
人机对话:程序设计,学哪种语言好?
|
10月前
|
NoSQL 前端开发 测试技术
编程之你不知道的坑,足以致命!
编程之你不知道的坑,足以致命!
69 0
编程之你不知道的坑,足以致命!
|
C语言 Perl
西门子S7-1200有哪几种编程方法?什么是线性化编程、模块化编程、结构化编程?
今天我们来说一说西门子S7-1200有哪几种编程方法,给大家简单介绍一下什么是线性化编程、模块化编程和结构化编程。
西门子S7-1200有哪几种编程方法?什么是线性化编程、模块化编程、结构化编程?
|
算法 安全 架构师
软件编程概念与入门
软件编程概念与入门 1.概要 2 项目开发流程 3.编程提升
|
消息中间件 安全 程序员
关于防御性编程,你应该知道的事
提起编程,对于程序员同学而言并不陌生,关于防御性编程相信大家也有所耳闻,但是它具体包括哪些内容呢?
关于防御性编程,你应该知道的事
|
存储 JavaScript 前端开发
利用汇编挖掘编程语言的本质
虽然现在基本不会直接使用汇编来开发程序,但是汇编仍然有学习研究的价值,可以利用汇编语来挖掘编程语言的本质。
173 0
利用汇编挖掘编程语言的本质
您是依靠灵感来做设计和编写程序吗?
写了好几年的代码了,遇到了很多客户提出来的难题。有好多都是新的以前没有遇到过的。 对于这些没有遇到过的问题,我基本上是依靠灵感才得到的解决方法! 来了灵感才能解决,没有灵感的话就会卡住。 记得“怪怪”的回复中说过:“总能想到很巧的办法就把问题解决”,其实这些都是靠的是灵感。
705 0