• 2016年计算机程序设计


    一、阅读程序

    1.

    1. #include
    2. int z=1;
    3. void p(int *x,int y){
    4. ++(*x);
    5. y=y-1; z=*x+y+z
    6. printf("%d,%d,%d",*x,y,z);
    7. }
    8. void main(){
    9. int x=1,y=5,z=9; p(&x,y);
    10. printf("%d,%d,%d",x,y,z);
    11. }

    答案: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.

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

    答案: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.

    1. #include
    2. int main(){
    3. int i,m=0,n=0,k=0;
    4. for(i=9;i<=11;i++)
    5. switch(i/10){
    6. case 0:m++;n++;
    7. case 10;n++;break;
    8. default:k++;n++;
    9. }
    10. printf("%d,%d,%d\n",m,n,k);
    11. return 0
    12. }

    答案:1 4 2

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

    10/10=1

    4.

    1. #include
    2. int f(int m){
    3. static int k=2;k++;
    4. return k+m;
    5. }
    6. void main(){
    7. int s,x=2;s=f(2);
    8. printf("%d,%d\n",s,f(s));
    9. }

    答案:5.9

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

    5.

    1. #include
    2. int main(){
    3. int a=1,b=0;
    4. if(a=b){
    5. b++;
    6. }
    7. else if(a=0){
    8. b+=2;
    9. }else{
    10. b+=3;
    11. }
    12. printf("%d\n",b);
    13. return 0;
    14. }

    答案:3

    二、空白处填写正确语句

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

    1. #include
    2. int main(){
    3. int i,j,min;
    4. float temp,a[10];
    5. printf("enter data:\n");
    6. for(i=0;i<10,i++){
    7. scanf("%f",&a[i]);
    8. }
    9. for(i=0;i<0;i++){
    10. min=i;
    11. }
    12. for (j=j+1;j<10;j++){
    13. if (a[min]>a[j]){
    14. min=j;
    15. }
    16. }
    17. temp=a[min];
    18. a[min]=a[j];
    19. a[i]=temp;
    20. printf("\n the sorted numbers:in");
    21. for(i=0;i<10;i++)
    22. printf("%6.2f",a[i]);
    23. printf("\n");
    24. return 0;}

    三、编程题

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

    1. #include
    2. void swap(int *x,int *y){
    3. int t;
    4. if(*x<*y){
    5. t=*x;
    6. *x=*y;
    7. *y=t;
    8. }
    9. }
    10. void main(){
    11. int a,b,*p1,*p2;
    12. scanf("%d&d\n",&a,&b);
    13. p1=&a;
    14. p2=&b;
    15. swap("%d%d\n",a,b);
    16. }

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

    1. #include
    2. #include
    3. void replace(char a[]){
    4. int i;
    5. for(i=0;i
    6. if a[i]='h'&&a[i+1]='e'&&a[i+2]='r';{
    7. a[i]='s';
    8. a[i+1]='h';
    9. a[i+2]='e';
    10. }
    11. else return 1
    12. }
    13. void main(){
    14. char a[100];b=[100]={0};
    15. get(a);strcpy(b,a);
    16. replace(a);
    17. if(strcpy(a,b)==)
    18. print("null");
    19. else{
    20. printf("%d\n",a);
    21. return 0;
    22. }
    23. }

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

    1. #include
    2. #define row 4
    3. #define col 3
    4. void mat_mub(const int a[4][3],const int b[3][4],int c[3][3]){
    5. int i,j,k;
    6. for(i=0;i<3;i++){
    7. c[i][j]=0;
    8. for(k=0;k<4;k++){
    9. c[i][j]=b[i][k]*a[k][j];
    10. }
    11. }
    12. }}
    13. int main(void)
    14. {
    15. int i,j;
    16. int a[clo][cow];
    17. int b[cow][clo];
    18. int c[cow][cow];
    19. mat_mub(a,b,c);
    20. printf("显示数组C中的元素:\n");
    21. for(i=0;i
    22. {
    23. for(j=0;j
    24. {
    25. printf("C[%d][%d]=%d\n",i,j,c[i][j]);
    26. }
    27. }
    28. return 0;
    29. }

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

    Struct NODE{

    NODE *link;

    int value;}Node;

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

    1. #include
    2. #include
    3. #define len sizeof(struct NODE)
    4. struct NODE{
    5. NODE*link;
    6. int value;
    7. }Node;
    8. int n;
    9. int main(){
    10. int num;
    11. struct NODE Node* Create();
    12. int Count_nodes(Node *root);
    13. struct NODE *head;
    14. struct NODE *p1,*p2;
    15. n=0;
    16. p1=p2(struct NODE*)malloc(LEN);
    17. scanf("%d",&p1->value);
    18. head=null;
    19. while(p1->Value!=0){
    20. n=n+1;
    21. if(n==1)head=p1;
    22. else p2->link=p1;
    23. p2=p1;
    24. p1=(struct NODE*)malloc(LEN);
    25. scanf("%d",&p1->Value);
    26. }
    27. p2->link=null;
    28. return(head);}
    29. int count_nodes(Node*root){
    30. int num;
    31. struct NODE *p;
    32. p=head;
    33. num=0;
    34. if(p!=null)
    35. do{
    36. ++num;
    37. p=p->link;
    38. } while(p!=null
    39. return(num);
    40. }

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

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

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

    1. #include
    2. struct book{
    3. char num[10];
    4. char name[10];
    5. long Date[10];
    6. char ed[10];
    7. char in[20];
    8. }book[s];
    9. int main(){
    10. int i,Char ch[10];
    11. for(i=0,Char ch[10]){
    12. print("书名");
    13. scanf("%s"&book[i].num);
    14. printf("图书列表");
    15. printf("书名简介");
    16. for(i=0;i<5,i++)
    17. printf("%s%5s%5d%5s%5s\n",book[i].num,"书""名""简","介");
    18. return 0;
    19. }
    20. }

  • 相关阅读:
    保姆级透明背景动画导出 —— json格式(Mac系统)
    springboot实现websocket客户端断线重连
    C++入门教程(一、初步了解)
    【TopK问题】基于堆的方法&基于分治策略的方法
    【vue3】05. 跟着官网学习vue3
    【Linux】【网络】应用层协议:HTTP
    模拟量偏差报警功能块(SCL代码)
    基于JAVA上虞烟草物流配送系统计算机毕业设计源码+数据库+lw文档+系统+部署
    记录mac安装基础软件问题
    0146 网络层
  • 原文地址:https://blog.csdn.net/qq_43714918/article/details/133840209