寒假作业2月13号

数组练习

1、选择题

1.1、若有定义语句:int a36; ,按在内存中的存放顺序,a 数组的第10个元素是 D

A)a04 B) a13 C)a03 D)a14

1.2、有数组 int a5 = {10,20,30,40,50}, 以下表达式编译错误是_____B ______。

A) a ++ ;

B) a5 = 20 ;

C) a + 20 ;

D) (a-3, a3) ;

1.3、以下错误的定义语句是 B____

A)int x\[\]3 = {{0},{1},{1,2,3}};

B)int x43 = {{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C)int x4\[\] = {{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D)int x\[\]3 = {1,2,3,4};

1.4、设int i,x33={1,2,3,4,5,6,7,8,9};则下面语句

for(i=0;i<3;i++)

printf(″%d, ″,xi2-i);

的输出结果是 ++++D++++

A)1, 4, 7 B)1, 5, 9 C)3, 6, 9 D)3, 5, 7

1.5、表达式"sizeof(int 12)/sizeof(int)"的值为_ C ___。

A) 2 B) 3 C) 4 D) 5

1.6有以下程序

#include main()

{ char s\[\]="012xy\07s34f4w2";

int i,n=0;

for(i=0;si!=0;i++)

if(si>='0'&&si<='9')

n++;

printf("%d\n",n);

}

程序运行后的输出结果是___B_ ________

A)0 B)3 C)7 D)8

1.7、有以下程序

#include <stdio.h>

main( )

{ char s ="wstuv"; printf("%c\n",*s+2);

}

程序运行后的输出结果是

A)t B) tuv C)y D)出错

1.8 数组 int a5 = {10, 20, 30, 40,50}, 有以下语句,其输出__C_____

printf("%d\n", *(&a +1) );

A) 20 B) 30 C) 随机值 D)编译报错

1.9 有以下程序

include <stdio.h>

int main()

{ int s12={1,2,3,4,4,3,2,1,1,1,2,3}, c5={0,0,0,0,0}, i ;

for(i=0;i<12;i++) cs\[i]++ ;

for(i=1;i<5;i++) printf("%d,",ci); printf("\n");

} C

A) 4 ,3, 3, 2 B) 2 , 3, 4, 4

C) 1, 2, 3 ,4 D ) 4, 4, 2 ,3

1.10 有数组 int a34 = {10,20,30,40,50,60,70,80,90,100,110,120},执行以下语句输出的是_________D______

printf("%d\n", *(*a+2) + 3 );

A) 语句有错 B) 120 C) 30 D) 33

2、填空题

2.1、有以下程序

#include <stdio.h>

main( )

{ int i,n ={0,0,0,0,0};

for(i=1;i<=4;i++)

{ni=ni-1*3+1;

printf("%d",ni);}

}

程序运行后输出结果是 1 4 13____

2.2、执行以下程序的输出结果是_3 7.

#include <stdio.h>

int main()

{ int i,n4={1,0,0,0};

for(i=1;i<=3;i++)

{ ni=ni-1*2+1; printf("%d",ni); }

}

2.3、下面程序运行的结果为___3 5______。

main()

{

int x5,i;

x0 = 1;x1 = 2;

for(i = 2;i<5;i++) xi = xi-1 + xi-2;

for(i = 2;i<5;i++) printf("%d",xi);

}

2.4、有以下程序

# i n c l u d e < s t h i o . h >

int m ai n ( )

{

i n t a rr \[\] = { 1 , 3 , 5 , 7 , 2 , 4 , 6 , 8 } , i , s t a r t ;

s c a n f( " % d ", & s t a r t) ;

f o r ( i =0 , i < 7 , i + =2 )

p r i n tf( " % d " , a rr (** **s** **t** **a** **r** **t** **+** **i** **)** **%** **5** ** ) ;

}

若在程序运行时输入整数 10 < 回车**>** ,则输出结果为____1___

2.5下面程序运行的结果为__4 5 8 2 0_______。

#include "stdio.h"

main()

{ int i,j,a\[\]={0,2,8,4,5};

printf("\n");

for(i=1;i<=5;i++)

{ j=5-i;

printf("%2d",aj);

}

}

2.6有以下程序

#include <stdio.h>

int main()

{ int n2,i,j;

for(i=0;i<2;i++) ni=0; for(i=0;i<2;i++)

for(j=0;j<2;j++) nj=ni+1;

printf("%d\n",n1);

}

程序运行后的输出结果是 【13】

3、编程题

3.1、 一个班10个学生的成绩,存放在一个一维数组中,要求找出其中成绩最高的学生的成绩和该生的序号。试编程。(试着用下标法和地址法两种方法表示数组)

cs 复制代码
#include <stdio.h>

int main()
{
    int a[] = {55,88,76,54,88,99,46,35,66,78};
    int max = a[0];
    int maxi = 0;
    for(int i=1;i<10;i++)
    {
        if(max < a[i]){
            max = a[i];
            maxi = i;
        }
    }
    printf("成绩最高为:%d,序号为:%d",max,maxi);
    return 0;
}
cs 复制代码
#include <stdio.h>

int main()
{
    int a[] = {55,88,76,54,88,99,46,35,66,78};
    int max = *a;
    int maxi = 0;
    for(int i=1;i<10;i++)
    {
        if(max < (*(a+i))){
            max = *(a+i);
            maxi = i;
        }
    }
    printf("成绩最高为:%d,序号为:%d",max,maxi);
    return 0;
}

3.2、有5个学生上4门课程,要求输入全部学生的各门课程成绩,然后输出各门课程的平均成绩,并按照各个学生的平均成绩排序(成绩最高的学生排在数组最前面,最低学生排在数组最后面的行) (试着用下标法和地址法两种方法表示数组)。

cs 复制代码
#include <stdio.h>
int main()
{
    int a[5][4],sum=0,sum1=0;
 
    for(int i=0;i<5;i++)
 
    {
        for(int j=0;j<4;j++)
 
        {
                scanf("%d",&a[i][j]);
 
        }
 
    }
 
    for(int j=0;j<4;j++)
 
    {
        for(int i=0;i<5;i++)
 
        {
                sum+=a[i][j];
 
        }
 
    }
 
    printf("%d\n",sum);
 
    for(int i=0;i<5;i++)
 
    {
        sum1=0;
 
        for(int j=0;j<4;j++)
 
        {
                sum1+=a[i][j];
 
        }
 
        printf("%d\n",sum1);
 
    }
 
    for(int i=0;i<5;i++)
 
    {
        for(int j=0;j<4;j++)
 
        {
                scanf("%d",&(*(*(a+i)+j)));
 
        }
 
    }
 
    for(int j=0;j<4;j++)
 
    {
        for(int i=0;i<5;i++)
 
        {
                sum+=*(*(a+i)+j);
 
        }
 
    }
 
    printf("%d\n",sum);
 
    for(int i=0;i<5;i++)
 
    {
        sum1=0;
 
        for(int j=0;j<4;j++)
 
        {
                sum1+=*(*(a+i)+j);
 
        }
 
        printf("%d\n",sum1);
 
    }
    return 0;
 
}
相关推荐
hope_wisdom7 分钟前
C/C++数据结构之二叉树基础
c语言·数据结构·c++·二叉树
磊 子7 分钟前
STL算法库讲解1
开发语言·c++·算法
8Qi88 分钟前
LeetCode 474:一和零(Ones and Zeroes)—— 题解 ✅
算法·leetcode·职场和发展·动态规划·01背包
知南x10 分钟前
【DPDK核心知识了解】(3) 数据结构与缓冲区管理(建立零拷贝的认知)
数据结构
stolentime14 分钟前
CF2066D2 Club of Young Aircraft Builders (hard version)题解
c++·算法·动态规划·组合数学
Chen_harmony16 分钟前
二十五、预处理详解
c语言
一个不知名程序员www20 分钟前
算法学习入门---算法题DAY3
c++·算法
七夜zippoe21 分钟前
DolphinDB向量化计算:高性能数据处理
算法·dolphindb
悠仁さん30 分钟前
哈夫曼树的简单介绍
算法
bIo7lyA8v32 分钟前
算法与数据结构协同优化的设计思想的技术8
数据结构·算法