python输入一个英文句子、求其中最长的单词的changd_数组练习

(1)3有以下程序

main()

{

int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;

while(i++<7) if(p[i]%2)

j+=p[i];

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

}

13+15+17=45;

程序运行后的输出结果是_B____。

A)42 B)45 C)56

D)60

(2)3有以下程序

main()

{

int p[8]={11,12,13,14,15,16,17,18},i=1,j=1;

while(i++<7) if(p[i]%2)

j+=p[i];

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

}

13+15+17+1=46;

程序运行后的输出结果是__46___。

A)42 B)46 C)56

D)60

(3)3有以下程序

main()

{

int p[8]={11,12,13,14,15,16,17,18},i=0,j=1;

while(i++<7) if(p[i]%2)

j+=p[i];

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

}

程序运行后的输出结果是___46__。

A)42 B)46 C)56

D)60

(4)3有以下程序

main()

{

int p[8]={11,12,13,14,15,16,17,18},i=1,j=0;

while(i++<7) if(p[i]%2)

j+=p[i];

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

}

程序运行后的输出结果是__45___。

A)42 B)45 C)56

D)60

(5)以下叙述中错误的是__C___。

A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B)数组名代表的是数组所占存储区的首地址,其值不可改变

C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D)可以通过赋初值的方式确定数组元素的个数

(6)3有以下程序

main()

{ int p[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2){k=k+p[i];i++;}

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

}

11+13 ,当执行了p[2]=14.不满足条件,就终止循环了

执行后输出结果是___24__。

A)58 B)56 C)45

D)24

(7)3有以下程序

main()

{ int p[7]={11,13,14,15,16,17,18},i=1,k=1;

while(i<7&&p[i]%2)

{k=k+p[i];i++;}

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

}

13 + 1

执行后输出结果是__14___。

A)58 B)56 C)45

D)14

(8)1假定int类型变量占用两个字节,其有定义:int

x[10]={0,2,4};,则数组x在内存中所占字节数是__20___。

A)3 B)6 C)10

D)20

(9)1假定float类型变量占用四个字节,其有定义:float

x[10]={0.5,2.5,2.4};,则数组x在内存中所占字节数是___40__。

A)3 B)6 C)10

D)40

(10)1假定int类型变量占用两个字节,其有定义:int

x[5]={0,2,4};,则数组x在内存中所占字节数是____10_。

A)3 B)6 C)10

D)20

(13)1以下程序的输出结果是_____。

main()

{ int i, a[10];

for(i=9;i>=0;i--) a[i]=10-i;

printf(“%d%d%d”,a[1],a[3],a[5]);

}

A)258 B)741 C)852

D)975

(14)1以下程序的输出结果是_____。

main()

{ int i, a[10];(16)2当调用函数时,实参是一个数组名,则向函数传送的是___B__。

A)数组的长度 B)数组的首地址

C)数组每一个元素的地址 D)数组每个元素中的值

(19)2若有以下调用语句,则不正确的fun函数的首部是_D___。

A)void fun(int m, int x[])

B)void fun(int s, int h[41])

C)void fun(int p, int *s)

D)void fun(int n, int a)

main()

{ …

int a[50],n;

fun(n, &a[9]);

}

(20)3以下程序的输出结果是B_____。

//顺序执行

main()

{ int i,k,a[10],p[3]:

k=5;

for(i=0;i<10;i++) a[i]=i;

for(i=0;i<3;i++) p[i]=a[i*(i+1)];

for(i=0;i<3;i++) k+=p[i]*2;

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

}

A)20 B)21 C)22

D)23

21.设变量定义为“int s[ ]="hello\nworld\n";”,则数组s中有___B___个元素。

A、12 B、13

C、14 D、15

22.设变量定义为“int a[4];”,则表达式_D_____不符合C语言语法。(为何)

A、*a B、a[0]

C、a D、a++

(25)有以下程序

//编程

#include

main()

{

int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

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

c[s[i]]++;

for(i=1;i<5;i++)printf("%d",c[i]);

printf("\n");

}

程序的运行结果是(C)。

A)1 2 3 4 B)2 3 4 4

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

(26)若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是

( C)。

A)m[--i] B)m[2*2] C)m[m[0]]

D)m[m[i]]

(27)以下能正确定义一维数组的选项是(C )

A)int a[5]={0,1,2,3,4,5};

B)char a[]={0,1,2,3,4,5};

C)char a={'A','B','C'};

D)int a[5]="0123";

1.有m个人围成一圈,开始报数,报道n,退出,问最后剩下的是几号。(从1号开始)

比如:

输入:5 3

输出:

4

输入: 6 2

输出:

5

2. 输入两个数,第一个数决定一个nXn的矩阵,第二个数决定从1开始赋值,赋值的上限

比如:

输入:5 18

输出:

1 2 3 4 5

16 17 18 0 6

15 0 0 0 7

14 0 0 0 8

13 12 11 10 9

输入: 4 12

输出:

1 2 3 4

12 0 0 5

11 0 0 6

10 9 8 7

4..输入10个数,找出出现次数最多的数(如果多个并列,则按数字出现顺序分别输出)

比如:

输入:1 2 2 3 4 5 6 7 8 9

输出:2

数据结构:定义一个整型数组int count[10]存储每个元素的个数,开始时每个元素个数初始化为1

算法:

(1)利用双层循环,每一个元素都与后面一个元素比较,如果两者相同,则该元素次数+1,

(2)以上的算法中两个相同的元素的次数是一样的,优化如下,比较两个元素的时候,如果两者相等,则该元素次数+1,后面的元素次数设置为0,比较的时候再判断这个元素是否已经比较

伪代码:

定义数组保存每个元素次数

使用双层循环遍历数组

如果当前元素后后面元素相等,并且后面的元素次数不为0

当前元素次数+1,后面的元素次数设置为0

从保存每个元素次数的数组中查找最大的值

5.魔方阵是一个古老的智力问题,它要求在一个m*m的矩阵中填入1~m^2的数字(m为奇数),使得每一行、每一列、每条对角线的累加和都相等。请编程实现输入m,输出m*m的魔方阵出来。

比如:

输入:3

输出:

6 1 8

7 5 3

2 9 4

//(1)将1放在第一行中间一列;

//(2)从2开始直到n×n止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1/减1(例如上面的三阶魔方阵,5在4的上一行后一列);

//(3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行);例如1在第一行,则2应放在最下一行,列数同样加1;

//(4)当上一个数的列数为n时,下一个数的列数应为1,行数减去1。例如2在第3行最后一列,则3应放在第二行第一列;

//(5)如果按上面规则确定的位置上已有数,或上一个数是第一行第n列时,则把下一个数放在上一个数的下面。例如按上面的规定,4应该放在第1行第2列,但该位置已经被占据,所以4就放在3的下面;

1.给定某个字符数组,统计数组中所有英文字符的个数,比如“123fdd”中有3个。

2.给定某个字符数组,统计数组中所有英文字符和阿拉伯数字的个数,比如“123fdd”中有英文字符有 3个,数字3个。

3.给定某个拥有5个元素的字符数组,数组的成员都有阿拉伯字符构成,试着将该数组转换成一个整数,比如字符数组的内容是:{‘1’,’2’,’3’,’3’,’2’}则将被转换成12332。

4.给定一个完全由英文字符构成的数组,将数组中的小写字母转换成大写字母,大写字母转换成小写字母并输出。例如“abcGGG”转化为“ABCggg”。

5.给定一个完全由英文字符构成的数组,将数组中下标为偶数的字符都转换为大写(如果原来是大写则不变)。

6.给一个完全由英文字符构成的字符数组加密,加密原则如下,除了字符‘Z’和‘z’之外,每个字符变成 ASCII码值比它大 1的字符,也就是‘A’变成‘B’。‘Z’或者‘z’转化为‘A’或者‘a’。

###7.计算某个由英文、数字以及标点符号构成的数组的总宽度,其中英文字符的宽度为1cm,数字宽度为0.5cm、标点符号宽度为0.8cm。

8.接上题,如果规定行的宽度为10cm,将某个字符长度超过50的字符串截断,恰好

使10cm宽的行能容纳。输出这个被截断的子数组。

9.给定某个整型数组,计算该数组所有偶数的和。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值